BStream.h

Contains definitions of global variables, functions and enumerated types.

The HOOPS/Stream Toolkit utilizes several global enumerated types. The functions which black box support for writing and reading HOOPS Stream Files are also global, and are defined in BStream.h

Content

Macro definitions

__wchar_t

BBINFILETK_API2

BBINFILETK_API

TK_File_Format_Version

TK_DEFAULT_BUFFER_SIZE

default amount of the internal memory buffer used for file processing

ID_Key

alter

complementary to const, indicates we thought about it instead of a forgotten “const”

Functions

Swap()

TK_Read_Stream_File()

Reads a HOOPS Stream File.

TK_Read_Stream_File()

Reads a HOOPS Stream File.

TK_Read_Stream_File()

TK_Read_Stream_File()

TK_Read_Stream_File()

Deprecated ; reads a HOOPS Stream File

Enumerators

TK_Status

Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit function call.

TK_File_Write_Options

Options which control how the HOOPS Stream File is generated.

TK_Dictionary_Options

TK_File_Read_Options

TK_Debug_Logging_Options

TK_General_Flags

Macro definitions

__wchar_t
BBINFILETK_API2
BBINFILETK_API
TK_File_Format_Version

the HSF specification version that this toolkit supports (along with any previous versions)

TK_DEFAULT_BUFFER_SIZE

default amount of the internal memory buffer used for file processing

ID_Key

ID_Key is just a pointer sized long integer by which it is assumed that the graphics system can uniquely identify its contents. Declared as 64-bit on win64 systems because a long is not big enough to store a pointer there (unlike all other 64-bit systems we have supported in the past

alter

complementary to const, indicates we thought about it instead of a forgotten “const”

Functions

template<typename T>
void Swap(T &a, T &b)

Warning

doxygenfunction: Unable to resolve function “TK_Read_Stream_File” with arguments None in doxygen xml output for project “base_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/base_stream/xml. Potential matches:

- TK_Status TK_Read_Stream_File(char const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(char const *filename, int flags = 0)
- TK_Status TK_Read_Stream_File(char const *filename, int flags, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, int flags = 0)

Warning

doxygenfunction: Unable to resolve function “TK_Read_Stream_File” with arguments None in doxygen xml output for project “base_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/base_stream/xml. Potential matches:

- TK_Status TK_Read_Stream_File(char const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(char const *filename, int flags = 0)
- TK_Status TK_Read_Stream_File(char const *filename, int flags, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, int flags = 0)

Warning

doxygenfunction: Unable to resolve function “TK_Read_Stream_File” with arguments None in doxygen xml output for project “base_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/base_stream/xml. Potential matches:

- TK_Status TK_Read_Stream_File(char const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(char const *filename, int flags = 0)
- TK_Status TK_Read_Stream_File(char const *filename, int flags, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, int flags = 0)

Warning

doxygenfunction: Unable to resolve function “TK_Read_Stream_File” with arguments None in doxygen xml output for project “base_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/base_stream/xml. Potential matches:

- TK_Status TK_Read_Stream_File(char const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(char const *filename, int flags = 0)
- TK_Status TK_Read_Stream_File(char const *filename, int flags, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, int flags = 0)

Warning

doxygenfunction: Unable to resolve function “TK_Read_Stream_File” with arguments None in doxygen xml output for project “base_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/base_stream/xml. Potential matches:

- TK_Status TK_Read_Stream_File(char const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(char const *filename, int flags = 0)
- TK_Status TK_Read_Stream_File(char const *filename, int flags, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, BStreamFileToolkit *tk)
- TK_Status TK_Read_Stream_File(wchar_t const *filename, int flags = 0)

Enumerators

enum TK_Status

Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit function call.

Various toolkit functions can take arguments which control processing behavior. Most functions also provide a return value of type TK_Status to indicate success, failure or other information about processing status.

Values:

enumerator TK_Normal

When used as input: read through to a ‘termination’ code. When used as output: function call succeeded

enumerator TK_Error

A return value; function call failed

enumerator TK_Pause

An input value; instructs toolkit to stop reading at a ‘pause’ code

enumerator TK_Single

An input value; instructs toolkit to stop reading after the first object is completed

enumerator TK_Pending

A return value; the toolkit is waiting for (needs) more data

enumerator TK_Revisit

A return value; interpret function succeeded, but we will run it through again later

enumerator TK_Complete

A return value; processing is complete

enumerator TK_Version

A return value; version mis-match detected, processing halted

enumerator TK_NotFound

A return value; failed to find a match

enumerator TK_Abort

A return value; non-fatal error. callback requested stop, or fall back to plan B (internal)

enumerator TK_LibraryNotFound

A return value; Indicates that an external dependency for reading a file (e.g. a material library) was required but not found.

enum TK_File_Write_Options

Options which control how the HOOPS Stream File is generated.

An HSF file has a variety of properties, and the toolkit utilizes default logic when generating a file. This enumerated type gives the user high-level control over file compression, tagging and content. These options are set by calling BStreamFileToolkit::SetWriteFlags

Values:

enumerator TK_Suppress_LOD

No LODS are exported, only the original shells are written out (single pass); implicitly disables dictionary

enumerator TK_Full_Resolution_Vertices

Data fidelity is required for geometry; this causes the full single-precision floating point information to be exported; does not affect LODs or lossless compression of connectivity information

enumerator TK_Full_Resolution_Normals

Data fidelity is required for normals; as in above description of TK_Full_Resolution_Points

enumerator TK_First_LOD_Is_Bounding_Box

Adds a new LOD to represent the lowest resolution of objects, which is a bounding box representation

enumerator TK_Force_Tags

All appropriate objects (geometries,segments,includes) will be tagged

enumerator TK_Disable_Priority_Heuristic

Disables organization of multiresolution objects according to heuristic cost/benifit.

enumerator TK_Disable_Global_Compression

Inline lossless compression will not be used

enumerator TK_Disable_Instancing

Object instancing will not be used

enumerator TK_Generate_Dictionary

Enables random-access by creation of the file dictionary

enumerator TK_Connectivity_Compression

Enables connectivity compression

enumerator TK_Disable_Tristrips

Disables triangle strips, and the triangulation it requires, in shells. Incurs a heavy read-time computational cost.

enumerator TK_Disable_Compound_Primitives

Disables the use of OpcodeHandlers that encode multiple primitives (since they cannot be properly tagged)

enumerator TK_Global_Quantization

Causes any required quantization to be global (bbox of scene) instead of local (bbox of individual geometry) . Regardless of this flag, however, local quantization applies until the first TKE_Bounding_Info. HStreamFiletoolkit sends a TKE_Bounding_Info automatically, but BStreamFiletoolkit does not.

enumerator TK_Full_Resolution_Parameters

Data fidelity is required for parameters (a.k.a texture coordinates); as in above description of TK_Full_Resolution_Points

enumerator TK_Full_Resolution_Colors

Data fidelity is required for vertex/face colors; as in above description of TK_Full_Resolution_Points

enumerator TK_Full_Resolution_Index_Colors

Data fidelity is required for vertex/face colors-by-index; as in above description of TK_Full_Resolution_Points

enumerator TK_Communicator_Mode

Alters HSF Export for easier web viewer parsing

enumerator TK_Disable_Custom_Shader

Disables custom shaders.

enumerator TK_Full_Resolution

for convenience, a combination of 5 other options.

enum TK_Dictionary_Options

This enumerated type gives the user control of specific options to include if a dictionary is generated

Values:

enumerator TK_Dictionary_Bounding_Volumes

dictionary entries include bounding volume info

enum TK_File_Read_Options

Options which control how the HOOPS Stream File is read

Values:

enumerator TK_Flag_Unhandled_Opcodes

Instructs toolkit to return an error for opcodes which are not handled by a custom toolkit during reading; the default is to silently skip over unhandled opcodes

enumerator TK_Ignore_Version

Version checking will be bypassed

enumerator TK_Skip_External_References

TKE_External_Reference filespecs will not be read (the strings will still be stored in toolkit by the default handler)

enumerator TK_Ignore_Bounding_LODs

Instructs the toolkit to ignore any explicit bounding box lods included in the stream file

enumerator TK_Disable_Deferal

Instructs the toolkit to do thing in order rather than reordering as desired.

enum TK_Debug_Logging_Options

Options which control what data is collected when creating a debug log

Values:

enumerator TK_Logging_Sequence

Record sequence numbers

enumerator TK_Logging_Tagging

Record tag indices

enumerator TK_Logging_Segment_Names

Record segment names

enum TK_General_Flags

General flags which may be used by many opcodes

Values:

enumerator TK_Double_Precision

entity is double precision

enumerator TK_Has_Condition

entity has an associated condition

enumerator TK_Has_Filter

entity has an associated filter

enumerator TK_Has_Custody

entity has an owning interest in its referee

enumerator TK_UTF8_Strings

entity string(s) are UTF8 rather than (presumably) ISO Latin-1