Contains definitions of global variables, functions and enumerated types.
More...
#include <cmath>
#include <cstring>
#include <cstdio>
#include "BOpcodeHandler.h"
#include "BStreamFileToolkit.h"
Go to the source code of this file.
|
#define | __wchar_t wchar_t |
|
#define | alter |
| complementary to const, indicates we thought about it instead of a forgotten "const"
|
|
#define | BBINFILETK_API BBINFILETK_API2 |
|
#define | BBINFILETK_API2 |
|
#define | ID_Key long |
|
#define | TK_DEFAULT_BUFFER_SIZE 32768 |
| default amount of the internal memory buffer used for file processing
|
|
#define | TK_File_Format_Version 2080 |
|
|
enum | TK_Debug_Logging_Options { TK_Logging_Sequence = 0x00000001,
TK_Logging_Tagging = 0x00000002,
TK_Logging_Segment_Names = 0x00000004
} |
|
enum | TK_Dictionary_Options { TK_Dictionary_Bounding_Volumes = 0x00000001
} |
|
enum | TK_File_Read_Options {
TK_Flag_Unhandled_Opcodes = 0x00000001,
TK_Ignore_Version = 0x00000002,
TK_Skip_External_References = 0x00000004,
TK_Ignore_Bounding_LODs = 0x00000008,
TK_Disable_Deferal = 0x00000010
} |
|
enum | TK_File_Write_Options {
TK_Suppress_LOD = 0x00000002,
TK_Full_Resolution_Vertices = 0x00000004,
TK_Full_Resolution_Normals = 0x00000008,
TK_First_LOD_Is_Bounding_Box = 0x00000010,
TK_Force_Tags = 0x00000020,
TK_Disable_Priority_Heuristic = 0x00000040,
TK_Disable_Global_Compression = 0x00000100,
TK_Disable_Instancing = 0x00000200,
TK_Generate_Dictionary = 0x00000400,
TK_Connectivity_Compression = 0x00000800,
TK_Disable_Tristrips = 0x00001000,
TK_Disable_Compound_Primitives = 0x00002000,
TK_Global_Quantization = 0x00004000,
TK_Full_Resolution_Parameters = 0x00008000,
TK_Full_Resolution_Colors = 0x00010000,
TK_Full_Resolution_Index_Colors = 0x00020000,
TK_Communicator_Mode = 0x00040000,
TK_Full_Resolution = (TK_Full_Resolution_Vertices|TK_Full_Resolution_Normals|TK_Full_Resolution_Parameters|TK_Full_Resolution_Colors|TK_Full_Resolution_Index_Colors)
} |
| Options which control how the HOOPS Stream File is generated. More...
|
|
enum | TK_General_Flags {
TK_Double_Precision = 0x01,
TK_Has_Condition = 0x01,
TK_Has_Filter = 0x02,
TK_Has_Custody = 0x04,
TK_UTF8_Strings = 0x80
} |
|
enum | TK_Status {
TK_Normal = 0,
TK_Error = 1,
TK_Pause = 2,
TK_Single = 3,
TK_Pending = 4,
TK_Revisit = 5,
TK_Complete = 6,
TK_Version = 7,
TK_NotFound = 8,
TK_Abort = 9,
TK_LibraryNotFound = 10
} |
| Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit function call. More...
|
|
|
BBINFILETK_API int | TK_File_Format_History [] |
| Table of format changes, commented values are informational (were never included in a release,.
|
|
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
◆ 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
◆ TK_File_Format_Version
#define TK_File_Format_Version 2080 |
◆ TK_Debug_Logging_Options
Options which control what data is collected when creating a debug log
Enumerator |
---|
TK_Logging_Sequence | Record sequence numbers
|
TK_Logging_Tagging | Record tag indices
|
TK_Logging_Segment_Names | Record segment names
|
◆ TK_Dictionary_Options
This enumerated type gives the user control of specific options to include if a dictionary is generated
Enumerator |
---|
TK_Dictionary_Bounding_Volumes | dictionary entries include bounding volume info
|
◆ TK_File_Read_Options
Options which control how the HOOPS Stream File is read
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
|
TK_Ignore_Version | Version checking will be bypassed
|
TK_Skip_External_References | TKE_External_Reference filespecs will not be read (the strings will still be stored in toolkit by the default handler)
|
TK_Ignore_Bounding_LODs | Instructs the toolkit to ignore any explicit bounding box lods included in the stream file
|
TK_Disable_Deferal | Instructs the toolkit to do thing in order rather than reordering as desired.
|
◆ 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
Enumerator |
---|
TK_Suppress_LOD | No LODS are exported, only the original shells are written out (single pass); implicitly disables dictionary
|
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
|
TK_Full_Resolution_Normals | Data fidelity is required for normals; as in above description of TK_Full_Resolution_Points
|
TK_First_LOD_Is_Bounding_Box | Adds a new LOD to represent the lowest resolution of objects, which is a bounding box representation
|
TK_Force_Tags | All appropriate objects (geometries,segments,includes) will be tagged
|
TK_Disable_Priority_Heuristic | Disables organization of multiresolution objects according to heuristic cost/benifit.
|
TK_Disable_Global_Compression | Inline lossless compression will not be used
|
TK_Disable_Instancing | Object instancing will not be used
|
TK_Generate_Dictionary | Enables random-access by creation of the file dictionary
|
TK_Connectivity_Compression | Enables connectivity compression
|
TK_Disable_Tristrips | Disables triangle strips, and the triangulation it requires, in shells. Incurs a heavy read-time computational cost.
|
TK_Disable_Compound_Primitives | Disables the use of OpcodeHandlers that encode multiple primitives (since they cannot be properly tagged)
|
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.
|
TK_Full_Resolution_Parameters | Data fidelity is required for parameters (a.k.a texture coordinates); as in above description of TK_Full_Resolution_Points
|
TK_Full_Resolution_Colors | Data fidelity is required for vertex/face colors; as in above description of TK_Full_Resolution_Points
|
TK_Full_Resolution_Index_Colors | Data fidelity is required for vertex/face colors-by-index; as in above description of TK_Full_Resolution_Points
|
TK_Communicator_Mode | Alters HSF Export for easier web viewer parsing
|
TK_Full_Resolution | for convenience, a combination of 5 other options.
|
◆ TK_General_Flags
General flags which may be used by many opcodes
Enumerator |
---|
TK_Double_Precision | entity is double precision
|
TK_Has_Condition | entity has an associated condition
|
TK_Has_Filter | entity has an associated filter
|
TK_Has_Custody | entity has an owning interest in its referee
|
TK_UTF8_Strings | entity string(s) are UTF8 rather than (presumably) ISO Latin-1
|