15 #ifndef HBINFILETK_TOOLKIT
16 #define HBINFILETK_TOOLKIT
19 #ifndef HSTREAM_READONLY
21 #ifndef DOXYGEN_SHOULD_SKIP_THIS
23 class Internal_Key_Array {
25 friend class Internal_Pending_Tag;
26 friend class Internal_Segment_Processor;
28 Internal_Key_Array() { m_data = 0; }
29 ~Internal_Key_Array() {
delete [] m_data; }
35 class Internal_Pending_Tag {
37 friend class Internal_Segment_Processor;
43 Internal_Pending_Tag() { m_next = 0; m_array = 0; }
44 ~Internal_Pending_Tag() {
delete m_array; }
46 Internal_Pending_Tag * m_next;
49 Internal_Key_Array * m_array;
53 class Internal_Texture_List {
57 Internal_Texture_List * m_next;
61 bool m_do_write_image;
64 Internal_Texture_List (
char const * name,
char const * image, HC_KEY key = -1);
65 ~Internal_Texture_List();
85 unsigned char m_renumbered_scope;
89 bool m_use_polypolylines;
90 bool m_polylines_already_handled;
91 bool m_geometry_attributes;
100 Internal_Segment_Processor (
ID_Key key = -1,
char const * name = 0);
101 ~Internal_Segment_Processor ();
110 void SetRoot (HC_KEY root) alter { m_root = root; }
111 HC_KEY GetRoot ()
const {
return m_root; }
116 #endif //HSTREAM_READONLY
142 friend class Internal_Segment_Processor;
151 Internal_Segment_List * m_unnamed_segments;
153 HC_KEY * m_excluded_segments;
154 int m_excluded_count;
155 #ifndef HSTREAM_READONLY
156 Internal_Segment_Processor * m_segment_processor;
157 Internal_Pending_Tag * m_pending_tags;
158 Internal_Texture_List * m_texture_list;
159 bool m_non_segment_revisits;
160 int m_revisit_offset;
162 int m_local_attributes;
164 char * m_prepend_root;
167 bool issorted_revisit(Internal_Revisit_Item **array,
int count);
168 void qsort_revisit(Internal_Revisit_Item ** first, Internal_Revisit_Item ** last) { qsort_revisit (first, last, 0); }
169 void qsort_revisit(Internal_Revisit_Item **, Internal_Revisit_Item **,
int);
218 TK_Status GenerateBuffer (
char * b,
int s,
int alter & f,
char const * start_segment = 0)
alter;
246 unsigned POINTER_SIZED_INT CountObjects (
char const * start_segment = 0)
alter;
260 int GetHoopsVersion() {
if (m_hoops_version == 0) validate_hoops_version();
return m_hoops_version; }
276 TK_Status StringToOpcode (
char const *type,
unsigned char *opcode_out);
298 void SetThumbnail (
int format,
int width,
int height,
unsigned char const * data)
alter;
311 void AddExcludedSegments (
int count, HC_KEY
const * keys)
alter;
322 bool SegmentIsExcluded (HC_KEY key)
const;
326 void ClearExcludedSegments ()
alter;
331 int GetExcludedSegmentCount ()
const {
return m_excluded_count; }
342 void SetPrependRootSegment(
const char * segment);
357 void validate_hoops_version();
359 void add_unnamed_segment (HC_KEY key)
alter;
361 void read_completed ()
alter;
363 void empty_lists ()
alter;
367 unsigned HLONG count_segment_objects (HC_KEY key,
char const * start_segment = 0) alter;
371 #endif //HBINFILETK_TOOLKIT
#define alter
complementary to const, indicates we thought about it instead of a forgotten "const" ...
Definition: BStream.h:225
Provides HOOPS/3dGS-specific handling of the TKE_Image opcode.
Definition: HOpcodeHandler.h:1296
Provides HOOPS/3dGS-specific handling of the TKE_Named_Style_Defs.
Definition: HOpcodeHandler.h:1414
Provides HOOPS/3dGS-specific handling of the TKE_Reopen_Segment opcodes.
Definition: HOpcodeHandler.h:87
virtual TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0) alter
virtual TK_Status Read(BStreamFileToolkit &tk) alter=0
HC_KEY m_key
segment key
Definition: HOpcodeHandler.h:1416
The BBaseOpcodeHandler abstract class is used as a base for derived classes which manage logical piec...
Definition: BOpcodeHandler.h:60
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition: BStream.h:237
#define ID_Key
Definition: BStream.h:219
char * m_name
Definition: BOpcodeHandler.h:7323
Provides HOOPS/3dGS-specific handling of the TKE_Open_Segment opcode.
Definition: HOpcodeHandler.h:36
virtual TK_Status Write(BStreamFileToolkit &tk) alter=0
Provides HOOPS/3dGS-specific handling of the TKE_Texture.
Definition: HOpcodeHandler.h:1322
Provides HOOPS/3dGS-specific handling of the TKE_Reference opcode.
Definition: HOpcodeHandler.h:123