Alphabetical Class Index   Class Hierarchy   Compound Members   File Members   File List  

BStream.h File Reference

Contains definitions of global variables, functions and enumerated types. More...

#include <math.h>
#include <string.h>
#include <stdio.h>
#include "BOpcodeHandler.h"
#include "BStreamFileToolkit.h"

Go to the source code of this file.

Defines

#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   1910

Enumerations

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 }
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 = (TK_Full_Resolution_Vertices|TK_Full_Resolution_Normals|TK_Full_Resolution_Parameters)
}
 Options which control how the HOOPS Stream File is generated. More...
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
}
 Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit function call. More...

Functions

TK_Status BBINFILETK_API TK_Read_Stream_File (char const *filename, int flags, BStreamFileToolkit *tk)
 Deprecated; reads a HOOPS Stream File
TK_Status BBINFILETK_API TK_Read_Stream_File (__wchar_t const *filename, int flags=0)
TK_Status BBINFILETK_API TK_Read_Stream_File (__wchar_t const *filename, BStreamFileToolkit *tk)
TK_Status BBINFILETK_API TK_Read_Stream_File (char const *filename, int flags=0)
 Reads a HOOPS Stream File.
TK_Status BBINFILETK_API TK_Read_Stream_File (char const *filename, BStreamFileToolkit *tk)
 Reads a HOOPS Stream File.

Variables

BBINFILETK_API int TK_File_Format_History []
 Table of format changes, commented values are informational (were never included in a release,.


Detailed Description

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


Define Documentation

#define ID_Key   long

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

#define TK_File_Format_Version   1910

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


Enumeration Type Documentation

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

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

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

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  for convenience, a combination of 3 other options.