BStream.h

Macro Definitions

__wchar_t

BBINFILETK_API2

BBINFILETK_API

TK_File_Format_Version

TK_DEFAULT_BUFFER_SIZE

ID_Key

alter

Types

TK_Status

TK_File_Write_Options

TK_Dictionary_Options

TK_File_Read_Options

TK_Debug_Logging_Options

TK_General_Flags

Fields

TK_Normal

TK_Error

TK_Pause

TK_Single

TK_Pending

TK_Revisit

TK_Complete

TK_Version

TK_NotFound

TK_Abort

TK_LibraryNotFound

TK_Suppress_LOD

TK_Full_Resolution_Vertices

TK_Full_Resolution_Normals

TK_First_LOD_Is_Bounding_Box

TK_Force_Tags

TK_Disable_Priority_Heuristic

TK_Disable_Global_Compression

TK_Disable_Instancing

TK_Generate_Dictionary

TK_Connectivity_Compression

TK_Disable_Tristrips

TK_Disable_Compound_Primitives

TK_Global_Quantization

TK_Full_Resolution_Parameters

TK_Full_Resolution_Colors

TK_Full_Resolution_Index_Colors

TK_Communicator_Mode

TK_Disable_Custom_Shader

TK_Full_Resolution

TK_Dictionary_Bounding_Volumes

TK_Flag_Unhandled_Opcodes

TK_Ignore_Version

TK_Skip_External_References

TK_Ignore_Bounding_LODs

TK_Disable_Deferal

TK_Logging_Sequence

TK_Logging_Tagging

TK_Logging_Segment_Names

TK_Double_Precision

TK_Has_Condition

TK_Has_Filter

TK_Has_Custody

TK_UTF8_Strings

int

TK_File_Format_History

Functions

typename T

Swap

TK_Status

TK_Read_Stream_File

TK_Status

TK_Read_Stream_File

TK_Status

TK_Read_Stream_File

TK_Status

TK_Read_Stream_File

TK_Status

TK_Read_Stream_File

Detailed Description

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

Macro Definition

__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”

Type Documentation

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

Field Documentation

int TK_File_Format_History[]

Table of format changes, commented values are informational (were never included in a release,.

Function Documentation

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