26 #include "HOpcodeShell.h"
27 #include "HPolyPoly.h"
30 #define OVERLOAD_INTERPRET_INT(base_class__name__abc) \
31 TK_Status Interpret (BStreamFileToolkit & tk, HC_KEY key, int variant=0) \
33 TK_Status status = base_class__name__abc::Interpret(tk,key,variant); \
37 #define OVERLOAD_INTERPRET_CHAR(base_class__name__abc) \
38 TK_Status Interpret (BStreamFileToolkit & tk, HC_KEY key, char const * name) \
40 TK_Status status = base_class__name__abc::Interpret(tk,key,name); \
45 #define OVERLOAD_WRITE(base_class__name__abc) \
46 TK_Status Write(BStreamFileToolkit & tk) alter \
48 TK_Status status = base_class__name__abc::Write(tk); \
49 m_pPersIdent->AssociateKey(m_key); \
53 #define OVERLOAD_EXECUTE(base_class___name__abc) \
54 TK_Status Execute (BStreamFileToolkit &tk) \
56 TK_Status status = base_class___name__abc::Execute(tk); \
57 m_pPersIdent->AssociateKey(last_key (tk)); \
61 #define OVERLOAD_WRITE_POLY(base_class__name__abc) \
62 TK_Status Write(BStreamFileToolkit & tk) alter \
64 TK_Status status = base_class__name__abc::Write(tk); \
65 for( int i = 0; i < m_primitive_count; i++ ) \
66 m_pPersIdent->AssociateKey(m_keys[i]); \
70 #define OVERLOAD_EXECUTE_POLY(base_class___name__abc) \
71 TK_Status Execute (BStreamFileToolkit &tk) \
73 TK_Status status = base_class___name__abc::Execute(tk); \
74 for( int i = 0; i < m_primitive_count; i++ ) \
75 m_pPersIdent->AssociateKey(m_keys[i]); \
91 delete_vhash(m_pKeyIdentHashTable);
92 delete_vhash(m_pIdentKeyHashTable);
99 long AssociateKey(
HC_KEY key);
105 bool DisAssociateKey(
HC_KEY key);
110 void AssociateKeysInSegment(
const char *seg = 0);
115 void DisAssociateKeysInSegment(
const char *seg = 0);
121 HC_KEY GetKeyFromIdent(
long ident);
127 long GetIdentFromKey(
HC_KEY ident);
132 void SetupStreamToolkit(HStreamFileToolkit *tk);
139 unsigned int m_PersCounter;
140 vhash_t *m_pKeyIdentHashTable;
141 vhash_t *m_pIdentKeyHashTable;
153 m_pPersIdent = persIdent;
155 OVERLOAD_INTERPRET_INT(HTK_Shell)
156 OVERLOAD_WRITE(HTK_Shell)
157 OVERLOAD_EXECUTE(HTK_Shell)
164 virtual TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
179 m_pPersIdent = persIdent;
182 OVERLOAD_INTERPRET_CHAR(HTK_Open_Segment)
183 OVERLOAD_WRITE(HTK_Open_Segment)
184 OVERLOAD_EXECUTE(HTK_Open_Segment)
191 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
207 m_pPersIdent = persIdent;
209 OVERLOAD_INTERPRET_INT(HTK_Circle)
210 OVERLOAD_WRITE(HTK_Circle)
211 OVERLOAD_EXECUTE(HTK_Circle)
218 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
234 m_pPersIdent = persIdent;
236 OVERLOAD_INTERPRET_INT(HTK_Ellipse)
237 OVERLOAD_WRITE(HTK_Ellipse)
238 OVERLOAD_EXECUTE(HTK_Ellipse)
245 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
263 m_pPersIdent = persIdent;
265 OVERLOAD_INTERPRET_INT(HTK_Grid)
266 OVERLOAD_WRITE(HTK_Grid)
267 OVERLOAD_EXECUTE(HTK_Grid)
274 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
290 m_pPersIdent = persIdent;
292 OVERLOAD_INTERPRET_INT(HTK_Image)
293 OVERLOAD_WRITE(HTK_Image)
294 OVERLOAD_EXECUTE(HTK_Image)
301 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **) const;
318 m_pPersIdent = persIdent;
320 OVERLOAD_INTERPRET_INT(HTK_Line)
321 OVERLOAD_WRITE(HTK_Line)
322 OVERLOAD_EXECUTE(HTK_Line)
329 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
346 m_pPersIdent = persIdent;
348 OVERLOAD_INTERPRET_INT(HTK_Polypoint)
349 OVERLOAD_WRITE(HTK_Polypoint)
350 OVERLOAD_EXECUTE(HTK_Polypoint)
357 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
374 m_pPersIdent = persIdent;
376 OVERLOAD_WRITE_POLY(HTK_PolyPolypoint)
377 OVERLOAD_EXECUTE_POLY(HTK_PolyPolypoint)
384 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
399 m_pPersIdent = persIdent;
401 OVERLOAD_INTERPRET_INT(HTK_Point)
402 OVERLOAD_WRITE(HTK_Point)
403 OVERLOAD_EXECUTE(HTK_Point)
410 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
427 m_pPersIdent = persIdent;
429 OVERLOAD_INTERPRET_INT(HTK_Spot_Light)
430 OVERLOAD_WRITE(HTK_Spot_Light)
431 OVERLOAD_EXECUTE(HTK_Spot_Light)
438 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
455 m_pPersIdent = persIdent;
457 OVERLOAD_INTERPRET_INT(HTK_Area_Light)
458 OVERLOAD_WRITE(HTK_Area_Light)
459 OVERLOAD_EXECUTE(HTK_Area_Light)
466 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
483 m_pPersIdent = persIdent;
485 OVERLOAD_INTERPRET_INT(HTK_Mesh)
486 OVERLOAD_WRITE(HTK_Mesh)
487 OVERLOAD_EXECUTE(HTK_Mesh)
494 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
511 m_pPersIdent = persIdent;
513 OVERLOAD_INTERPRET_INT(HTK_NURBS_Curve)
514 OVERLOAD_WRITE(HTK_NURBS_Curve)
515 OVERLOAD_EXECUTE(HTK_NURBS_Curve)
522 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
539 m_pPersIdent = persIdent;
541 OVERLOAD_INTERPRET_INT(HTK_Cutting_Plane)
542 OVERLOAD_WRITE(HTK_Cutting_Plane)
543 OVERLOAD_EXECUTE(HTK_Cutting_Plane)
550 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
567 m_pPersIdent = persIdent;
569 OVERLOAD_INTERPRET_INT(HTK_Text)
570 OVERLOAD_WRITE(HTK_Text)
571 OVERLOAD_EXECUTE(HTK_Text)
578 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
595 m_pPersIdent = persIdent;
597 OVERLOAD_INTERPRET_INT(HTK_Referenced_Segment)
598 OVERLOAD_WRITE(HTK_Referenced_Segment)
599 OVERLOAD_EXECUTE(HTK_Referenced_Segment)
606 TK_Status
Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
TK_PIReferenced_Segment(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:593
Definition: HSharedKey.h:560
TK_PIImage(HSharedKey *persIdent)
Definition: HSharedKey.h:288
TK_PIText(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:565
Definition: HSharedKey.h:367
Definition: HSharedKey.h:200
TK_PICutting_Plane(HSharedKey *persIdent)
Definition: HSharedKey.h:537
TK_PIMesh(HSharedKey *persIdent)
Definition: HSharedKey.h:481
Definition: HSharedKey.h:172
Definition: HSharedKey.h:504
Definition: HSharedKey.h:420
Definition: HSharedKey.h:392
Definition: HSharedKey.h:283
Definition: HSharedKey.h:532
TK_PIPoint(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:397
TK_PIEllipse(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:232
TK_PICircle(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:205
Definition: HSharedKey.h:311
Definition: HSharedKey.h:256
Definition: HSharedKey.h:339
TK_PILine(HSharedKey *persIdent)
Definition: HSharedKey.h:316
TK_PIOpen_Segment(HSharedKey *persIdent)
Definition: HSharedKey.h:177
TK_PIShell(HSharedKey *persIdent)
Definition: HSharedKey.h:151
TK_PISpot_Light(HSharedKey *persIdent)
Definition: HSharedKey.h:425
Definition: HSharedKey.h:448
TK_PIGrid(HSharedKey *persIdent)
Definition: HSharedKey.h:261
TK_PIPolypoint(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:344
Definition: HSharedKey.h:227
Definition: HSharedKey.h:146
virtual TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Definition: HSharedKey.h:476
TK_PIArea_Light(HSharedKey *persIdent)
Definition: HSharedKey.h:453
TK_PINURBS_Curve(HSharedKey *persIdent)
Definition: HSharedKey.h:509
TK_PIPolyPolypoint(unsigned char opcode, HSharedKey *persIdent)
Definition: HSharedKey.h:372
Definition: HSharedKey.h:588
Definition: HSharedKey.h:84