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
default amount of the internal memory buffer used for file processing |
|
complementary to const, indicates we thought about it instead of a forgotten “const” |
Functions
|
Reads a HOOPS Stream File. |
|
Reads a HOOPS Stream File. |
|
|
|
|
|
Deprecated ; reads a HOOPS Stream File |
Enumerators
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit function call. |
|
Options which control how the HOOPS Stream File is generated. |
|
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
Warning
doxygenfunction: Unable to resolve function “TK_Read_Stream_File” with arguments None in doxygen xml output for project “3dgs_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/3dgs_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 “3dgs_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/3dgs_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 “3dgs_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/3dgs_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 “3dgs_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/3dgs_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 “3dgs_stream” from directory: /hoops_3df/documentation/build/html/../doxygen/3dgs_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.
-
enumerator TK_Normal
-
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.
-
enumerator TK_Suppress_LOD
-
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
-
enumerator TK_Dictionary_Bounding_Volumes
-
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.
-
enumerator TK_Flag_Unhandled_Opcodes
-
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
-
enumerator TK_Logging_Sequence
-
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
-
enumerator TK_Double_Precision