HOpcodeHandler.h
1 // Copyright (c) Tech Soft 3D, Inc.
2 //
3 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4 // and considered a trade secret as defined under civil and criminal statutes.
5 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6 // unauthorized use or misappropriation of its trade secrets. Use of this information
7 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9 
10 #ifndef HOPCODE_HANDLER
11 #define HOPCODE_HANDLER
12 
13 #ifndef HBINFILETK_TOOLKIT
14  #include "HStreamFileToolkit.h"
15 #endif
16 
17 #include <limits>
18 
19 inline bool safe (double v, bool check_roundoff = false) {
20  if (std::abs(v) > (std::numeric_limits<float>::max)())
21  return false;
22  if (check_roundoff) {
23  if (std::abs(v - float(v)) > std::numeric_limits<float>::epsilon() * 0.001 * std::abs(v))
24  return false;
25  }
26  return true;
27 }
28 
29 inline bool safe (int c, double const * vs, bool check_roundoff = false) {
30  while (c-- > 0)
31  if (!safe(*vs++, check_roundoff))
32  return false;
33  return true;
34 }
35 
36 
37 
38 
39 
41 
43 
53 class HBINFILETK_API HTK_Open_Segment : public TK_Open_Segment {
54  public:
56  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
57  { return TK_Open_Segment::Interpret(tk, key, variant); }
58  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
59  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
60 };
61 
62 
64 
74 class HBINFILETK_API HTK_Close_Segment : public TK_Close_Segment {
75  public:
77  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
78  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
79  { return TK_Close_Segment::Interpret(tk, key, special); }
80  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
81 };
82 
84 class HBINFILETK_API HTK_Reopen_Segment : public TK_Reopen_Segment {
85  public:
87  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
88  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
89  { return TK_Reopen_Segment::Interpret(tk, key, special); }
90  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
91 };
92 
94 
104 class HBINFILETK_API HTK_Referenced_Segment : public TK_Referenced_Segment {
105  protected:
106  int mh_stage;
107  HC_KEY m_root;
109  public:
111  HTK_Referenced_Segment (char opcode) : TK_Referenced_Segment (opcode), mh_stage (0) {}
112 
115  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
116  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
117  { return TK_Referenced_Segment::Interpret(tk, key, special); }
118  void Reset ();
119  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
120 
123  void SetRoot (HC_KEY root) { m_root = root; }
124 
126  HC_KEY GetRoot () const { return m_root; }
127 };
128 
130 
140 class HBINFILETK_API HTK_Reference : public TK_Reference {
141  protected:
142  int mh_stage;
145  public:
147  HTK_Reference () : TK_Reference (), mh_stage (0), mh_owner (-1) {}
148 
151  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
152  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
153  { return TK_Reference::Interpret(tk, key, special); }
154  bool NeedsContext (BStreamFileToolkit & tk) const;
155  void Reset ();
156  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
157 
158  bool Direct() const { return m_referee == 0; }
159 };
160 
162 
172 class HBINFILETK_API HTK_Instance : public TK_Instance {
173  public:
175  HTK_Instance (int from_index=0, int from_variant=0, int to_index=0, int to_variant=0,
176  int options=0, float const * xform=0);
177 
179  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
180  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
181  { return TK_Instance::Interpret(tk, key, special); }
182  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
183 };
184 
185 
187 class HBINFILETK_API HTK_Delete_Object : public TK_Delete_Object {
188  public:
190  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
191  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
192  { return TK_Delete_Object::Interpret(tk, key, special); }
193  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
194 };
195 
198 
206 class HBINFILETK_API HTK_LOD : public TK_LOD {
207  public:
209  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
210  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
211  { return TK_LOD::Interpret(tk, key, special); }
212  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
213 };
214 
215 
218 
228 class HBINFILETK_API HTK_Renumber : public TK_Renumber {
229  public:
231  HTK_Renumber (unsigned char opcode, HC_KEY key = 0) : TK_Renumber (opcode, key) {}
232 
234  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
235  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
236  { return TK_Renumber::Interpret(tk, key, special); }
237  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
238 };
239 
241 
243 
253 class HBINFILETK_API HTK_Color : public TK_Color {
254  friend class HTK_Color_Composite;
255  public:
257  HTK_Color (int mask=0, int channels=0)
258  : TK_Color () { m_mask = mask; m_channels = (short)channels; }
259 
261  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
262  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
263  { return TK_Color::Interpret(tk, key, special); }
264  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
265 };
266 
268 
278 class HBINFILETK_API HTK_Color_RGB : public TK_Color_RGB {
279  public:
281  HTK_Color_RGB (int mask=0, float const * rgb=0)
282  : TK_Color_RGB () {
283  m_mask = mask;
284  if (rgb != 0) {
285  m_rgb[0] = rgb[0]; m_rgb[1] = rgb[1]; m_rgb[2] = rgb[2];
286  }
287  }
288 
290  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
291  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
292  { return TK_Color_RGB::Interpret(tk, key, special); }
293  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
294 };
295 
297 
307 class HBINFILETK_API HTK_Color_By_Value : public TK_Color_By_Value {
308  public:
310  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
311  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
312  { return TK_Color_By_Value::Interpret(tk, key, special); }
313  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
314 };
315 
317 
327 class HBINFILETK_API HTK_Color_By_Index : public TK_Color_By_Index {
328  public:
330  HTK_Color_By_Index (unsigned char opcode, int mask=0, int index=0)
331  : TK_Color_By_Index (opcode) { m_mask = mask; m_index = index; }
332 
334  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
335  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
336  { return TK_Color_By_Index::Interpret(tk, key, special); }
337  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
338 };
339 
340 
342 
352 class HBINFILETK_API HTK_Color_By_FIndex : public TK_Color_By_FIndex {
353  public:
355  HTK_Color_By_FIndex (int mask=0, float index=0.0f)
356  : TK_Color_By_FIndex () { m_mask = mask; m_index = index; }
357 
359  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
360  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
361  { return TK_Color_By_FIndex::Interpret(tk, key, special); }
362  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
363 };
364 
368 class HBINFILETK_API HTK_Color_Composite : public BBaseOpcodeHandler {
369  protected:
370  BBaseOpcodeHandler * m_parts[16];
371 
372  public:
375 
379  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
380  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
381  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
382  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
383 };
384 
385 
387 
389 
399 class HBINFILETK_API HTK_PBR : public TK_PBR {
400  public:
403  : TK_PBR () {}
404 
406  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
407  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
408  { return TK_PBR::Interpret(tk, key, special); }
409  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
410 
411 };
412 
415 
425 class HBINFILETK_API HTK_Color_Map : public TK_Color_Map {
426  public:
428  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
429  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
430  { return TK_Color_Map::Interpret(tk, key, special); }
431  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
432 };
433 
436 
446 class HBINFILETK_API HTK_Callback : public TK_Callback {
447  public:
449  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
450  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
451  { return TK_Callback::Interpret(tk, key, special); }
452  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
453 };
454 
456 
458 
468 class HBINFILETK_API HTK_Rendering_Options : public TK_Rendering_Options {
469  public:
471  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
472  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
473  { return TK_Rendering_Options::Interpret(tk, key, special); }
474  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
475 };
476 
479 
489 class HBINFILETK_API HTK_Heuristics : public TK_Heuristics {
490  public:
492  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
493  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
494  { return TK_Heuristics::Interpret(tk, key, special); }
495  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
496 };
497 
500 
510 class HBINFILETK_API HTK_Geometry_Options : public TK_Geometry_Options {
511  public:
513  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
514  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
515  { return TK_Geometry_Options::Interpret(tk, key, special); }
516  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
517 };
518 
521 
531 class HBINFILETK_API HTK_Visibility : public TK_Visibility {
532  public:
534  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
535  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
536  { return TK_Visibility::Interpret(tk, key, special); }
537  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
538 };
539 
542 
552 class HBINFILETK_API HTK_Selectability : public TK_Selectability {
553  public:
555  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
556  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
557  { return TK_Selectability::Interpret(tk, key, special); }
558  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
559 };
560 
562 
572 class HBINFILETK_API HTK_Matrix : public TK_Matrix {
573  public:
575  HTK_Matrix (unsigned char opcode) : TK_Matrix (opcode) {}
576 
578  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
579  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
580  { return TK_Matrix::Interpret(tk, key, special); }
581  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
582 };
583 
585 
590 class HBINFILETK_API HTK_Enumerated : public TK_Enumerated {
591  public:
593  HTK_Enumerated (unsigned char opcode) : TK_Enumerated (opcode) {}
594 
596  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key=-1, int variant=0);
597  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
598  { return TK_Enumerated::Interpret(tk, key, special); }
599  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
600 };
601 
603 class HBINFILETK_API HTK_Size : public TK_Size {
604  public:
606  HTK_Size (unsigned char opcode) : TK_Size (opcode) {}
607 
609  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
610  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
611  { return TK_Size::Interpret(tk, key, special); }
612  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
613 };
614 
616 
620 class HBINFILETK_API HTK_Linear_Pattern : public TK_Linear_Pattern {
621  public:
623  HTK_Linear_Pattern (unsigned char opcode) : TK_Linear_Pattern (opcode) {}
624 
626  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key=-1, int variant=0);
627  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
628  { return TK_Linear_Pattern::Interpret(tk, key, special); }
629  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
630 };
631 
633 
636 class HBINFILETK_API HTK_Named : public TK_Named {
637  public:
639  HTK_Named (unsigned char opcode) : TK_Named (opcode) {}
640 
642  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key=-1, int variant=0);
643  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
644  { return TK_Named::Interpret(tk, key, special); }
645  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
646 };
647 
651 class HBINFILETK_API HTK_Animation : public TK_Animation {
652 public:
655 
657  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key = -1, int variant = 0);
658  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, char const * special);
659  TK_Status Clone(BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
660 };
661 
662 
664 class HBINFILETK_API HTK_Streaming : public TK_Streaming {
665  public:
667  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
668  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
669  { return TK_Streaming::Interpret(tk, key, special); }
670  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
671 };
672 
675 
685 class HBINFILETK_API HTK_Conditions : public TK_Conditions {
686  public:
688  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
689  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
690  { return TK_Conditions::Interpret(tk, key, special); }
691  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
692 };
693 
696 
706 class HBINFILETK_API HTK_Conditional_Action : public TK_Conditional_Action {
707  friend class HTK_Conditional_Actions;
708  public:
710  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
711  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
712  { return TK_Conditional_Action::Interpret(tk, key, special); }
713  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
714 };
715 
719 class HBINFILETK_API HTK_Conditional_Actions : public BBaseOpcodeHandler {
720  protected:
721  BBaseOpcodeHandler * m_parts[16];
722 
723  public:
726 
730  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
731  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
732  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
733  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
734 };
735 
738 
748 class HBINFILETK_API HTK_User_Options : public TK_User_Options {
749  public:
751  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
752  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
753  { return TK_User_Options::Interpret(tk, key, special); }
754  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
755 };
756 
759 
769 class HBINFILETK_API HTK_Unicode_Options : public TK_Unicode_Options {
770  public:
772  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
773  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
774  { return TK_Unicode_Options::Interpret(tk, key, special); }
775  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
776 };
777 
779 
789 class HBINFILETK_API HTK_User_Index : public TK_User_Index {
790  public:
792  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
793  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
794  { return TK_User_Index::Interpret(tk, key, special); }
795  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
796 };
797 
799 
809 class HBINFILETK_API HTK_User_Index_Data : public TK_User_Index_Data {
810 public:
812  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
813  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
814  { return TK_User_Index_Data::Interpret(tk, key, special); }
815  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
816 };
817 
819 
829 class HBINFILETK_API HTK_User_Value : public TK_User_Value {
830  public:
832  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
833  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
834  { return TK_User_Value::Interpret(tk, key, special); }
835  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
836 };
837 
839 
849 class HBINFILETK_API2 HTK_Camera : public TK_Camera {
850  public:
852  HTK_Camera (unsigned char opcode = TKE_Camera) : TK_Camera (opcode) {}
853 
855  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
856  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
857  { return TK_Camera::Interpret(tk, key, special); }
858  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
859 };
860 
861 
863 
873 class HBINFILETK_API HTK_Window : public TK_Window {
874  public:
876  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
877  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
878  { return TK_Window::Interpret(tk, key, special); }
879  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
880 };
881 
882 
884 
895 class HBINFILETK_API HTK_Clip_Region : public TK_Clip_Region {
896  public:
898  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
899  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
900  { return TK_Clip_Region::Interpret(tk, key, special); }
901  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
902 };
903 
904 
906 
917 class HBINFILETK_API HTK_Complex_Clip_Region : public TK_Complex_Clip_Region {
918  public:
920  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
921  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
922  { return TK_Complex_Clip_Region::Interpret(tk, key, special); }
923  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
924 };
925 
926 
928 
938 class HBINFILETK_API HTK_Clip_Rectangle : public TK_Clip_Rectangle {
939  public:
941  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
942 };
943 
944 
946 
956 class HBINFILETK_API HTK_Text_Font : public TK_Text_Font {
957  public:
959  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
960  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
961  { return TK_Text_Font::Interpret(tk, key, special); }
962  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
963 };
964 
966 
968 
982 class HBINFILETK_API2 HTK_Bounding : public TK_Bounding {
983  public:
985  HTK_Bounding (unsigned char opcode)
986  : TK_Bounding (opcode) {}
988  HTK_Bounding (unsigned char opcode, float * min, float * max)
989  : TK_Bounding (opcode, min, max) {}
991  HTK_Bounding (unsigned char opcode, float * center, float radius)
992  : TK_Bounding (opcode, center, radius) {}
993 
995  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
996  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
997  { return TK_Bounding::Interpret(tk, key, special); }
998  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
999 };
1000 
1003 
1013 class HBINFILETK_API HTK_Point : public TK_Point {
1014  public:
1016  HTK_Point (unsigned char opcode) : TK_Point (opcode) {}
1017 
1019  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1020  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1021  { return TK_Point::Interpret(tk, key, special); }
1022  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1023 };
1024 
1025 
1027 
1037 class HBINFILETK_API HTK_Line : public TK_Line {
1038  public:
1040  HTK_Line (unsigned char opcode = TKE_Line) : TK_Line (opcode) {}
1041 
1043  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1044  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1045  { return TK_Line::Interpret(tk, key, special); }
1046  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1047 };
1048 
1050 
1060 class HBINFILETK_API HTK_Polypoint : public TK_Polypoint {
1061  public:
1063  HTK_Polypoint (unsigned char opcode) : TK_Polypoint (opcode) {}
1064 
1066  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1067  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1068  { return TK_Polypoint::Interpret(tk, key, special); }
1069  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1070 };
1071 
1073 
1083 class HBINFILETK_API HTK_NURBS_Curve : public TK_NURBS_Curve {
1084  public:
1085 
1087  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1088  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1089  { return TK_NURBS_Curve::Interpret(tk, key, special); }
1090  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1091 };
1092 
1094 
1104 class HBINFILETK_API HTK_NURBS_Surface : public TK_NURBS_Surface {
1105  protected:
1106 
1108  TK_Status interpret_trim (BStreamFileToolkit & tk, int);
1110  TK_Status execute_trim (BStreamFileToolkit & tk, HT_NURBS_Trim *);
1111 
1112  public:
1113 
1115  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1116  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1117  { return TK_NURBS_Surface::Interpret(tk, key, special); }
1118  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1119 };
1120 
1122 
1132 class HBINFILETK_API HTK_Area_Light : public TK_Area_Light {
1133  public:
1134 
1136  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1137  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1138  { return TK_Area_Light::Interpret(tk, key, special); }
1139  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1140 };
1141 
1143 
1153 class HBINFILETK_API HTK_Spot_Light : public TK_Spot_Light {
1154  public:
1156  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1157  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1158  { return TK_Spot_Light::Interpret(tk, key, special); }
1159  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1160 };
1161 
1163 
1173 class HBINFILETK_API HTK_Cutting_Plane : public TK_Cutting_Plane {
1174  public:
1176  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1177  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1178  { return TK_Cutting_Plane::Interpret(tk, key, special); }
1179  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1180 };
1181 
1183 
1193 class HBINFILETK_API HTK_Circle : public TK_Circle {
1194  public:
1196  HTK_Circle (unsigned char opcode) : TK_Circle (opcode) {}
1197 
1199  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1200  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1201  { return TK_Circle::Interpret(tk, key, special); }
1202  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1203 };
1204 
1206 
1216 class HBINFILETK_API HTK_Ellipse : public TK_Ellipse {
1217  public:
1219  HTK_Ellipse (unsigned char opcode) : TK_Ellipse (opcode) {}
1220 
1222  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1223  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1224  { return TK_Ellipse::Interpret(tk, key, special); }
1225  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1226 };
1227 
1229 
1239 class HBINFILETK_API HTK_Sphere : public TK_Sphere {
1240  public:
1243 
1245  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1246  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1247  { return TK_Sphere::Interpret(tk, key, special); }
1248  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1249 };
1250 
1252 
1262 class HBINFILETK_API HTK_Cylinder : public TK_Cylinder {
1263  public:
1266 
1268  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1269  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1270  { return TK_Cylinder::Interpret(tk, key, special); }
1271  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1272 };
1273 
1275 
1285 class HBINFILETK_API HTK_PolyCylinder : public TK_PolyCylinder {
1286  public:
1289 
1291  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1292  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1293  { return TK_PolyCylinder::Interpret(tk, key, special); }
1294  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1295 };
1296 
1298 
1308 class HBINFILETK_API HTK_Grid : public TK_Grid {
1309  public:
1311  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1312  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1313  { return TK_Grid::Interpret(tk, key, special); }
1314  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1315 };
1316 
1319 
1329 class HBINFILETK_API HTK_Text : public TK_Text {
1330  public:
1332  HTK_Text (unsigned char opcode) : TK_Text (opcode) {}
1333 
1335  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1336  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1337  { return TK_Text::Interpret(tk, key, special); }
1338  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1339 };
1340 
1343 
1353 class HBINFILETK_API HTK_Font : public TK_Font {
1354  public:
1356  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
1357  { return TK_Font::Interpret(tk, key, variant); }
1358  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
1359  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1360 };
1361 
1362 
1365 
1375 class HBINFILETK_API2 HTK_Image : public TK_Image {
1376  public:
1377  HTK_Image () {
1378  m_jpeg_native = true;
1379  }
1380 
1382  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1383  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1384  { return TK_Image::Interpret(tk, key, special); }
1385  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1386 };
1387 
1388 
1391 
1401 class HBINFILETK_API2 HTK_Texture : public TK_Texture {
1402  protected:
1403  int mh_stage;
1405  HC_KEY m_key;
1406 
1407  public:
1408  HTK_Texture () : mh_stage (0), m_referee (0) {}
1409  ~HTK_Texture ();
1410 
1413  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
1414  { return TK_Texture::Interpret(tk, key, variant); }
1415  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
1416  void Reset ();
1417  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1418 };
1419 
1421 class HBINFILETK_API2 HTK_Texture_Definitions : public BBaseOpcodeHandler {
1422 protected:
1426 
1427 public:
1428  HTK_Texture_Definitions (bool shader = false);
1430 
1434  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1435  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1436  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1437 
1438  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1439 };
1440 
1443 
1453 class HBINFILETK_API2 HTK_Custom_Shader : public TK_Custom_Shader {
1454 public:
1456  ~HTK_Custom_Shader();
1457 
1459  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, int variant = 0);
1460  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, char const * special);
1461  TK_Status Clone(BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1462 
1463 private:
1464  TK_Status ExecuteShaderData(BStreamFileToolkit & tk, TKO_Custom_Shader_Primitive primitive_enum);
1465  TK_Status ExecuteShaderUniformsData(TKO_Custom_Shader_Def_Stage shader_stage, TKO_Custom_Shader_Primitive primitive_enum, HC_KEY shader_key);
1466  TK_Status InterpretShaderData(BStreamFileToolkit & tk, const char* primitive);
1467  TK_Status InterpretShaderUniformsData(TKO_Custom_Shader_Def_Stage shader_stage, const char* primitive, HC_KEY shader_key);
1468 
1469  TK_Status SetShaderTag(BStreamFileToolkit & tk, TKO_Custom_Shader_Def_Stage shader_stage, TKO_Custom_Shader_Primitive primitive_enum, HC_KEY shader_key);
1470  TK_Status GetShaderKey(BStreamFileToolkit & tk, TKO_Custom_Shader_Def_Stage shader_stage, TKO_Custom_Shader_Primitive primitive_enum, HC_KEY& shader_key);
1471 };
1472 
1474 
1485  HC_KEY m_key{ HC_ERROR_KEY };
1486  int mh_stage{ 0 };
1487 
1488  HC_KEY* m_texture_keys{ nullptr };
1489  HC_KEY* m_sampler_keys{ nullptr };
1490 
1491 public:
1494 
1497  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, int variant = 0);
1498  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, char const * special);
1499  TK_Status Clone(BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1500 
1501  void Reset();
1502 
1504  void SetTextures(int length);
1505 };
1506 
1508 
1518 class HBINFILETK_API2 HTK_Custom_Shader_Texture : public TK_Custom_Shader_Texture {
1519  HC_KEY m_key{ HC_ERROR_KEY };
1520  int mh_stage{ 0 };
1521 
1522 public:
1525 
1528  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, int variant = 0);
1529  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, char const * special);
1530  TK_Status Clone(BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1531 
1532  void Reset();
1533 };
1534 
1536 
1546 class HBINFILETK_API2 HTK_Custom_Shader_Sampler : public TK_Custom_Shader_Sampler {
1547  HC_KEY m_key{ HC_ERROR_KEY };
1548  int mh_stage{ 0 };
1549 
1550 public:
1553 
1556  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, int variant = 0);
1557  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, char const * special);
1558  TK_Status Clone(BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1559 
1560  void Reset();
1561 };
1562 
1564 class HBINFILETK_API2 HTK_Custom_Shader_Definitions : public BBaseOpcodeHandler {
1565 protected:
1566  BBaseOpcodeHandler ** m_parts{ nullptr };
1567  int m_num_parts{ 0 };
1568 
1569 public:
1572 
1576  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, int variant = 0);
1577  TK_Status Interpret(BStreamFileToolkit & tk, ID_Key key, char const * special)
1578  {
1579  return BBaseOpcodeHandler::Interpret(tk, key, special);
1580  }
1581 
1582  TK_Status Clone(BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1583 
1584 private:
1585  void AddPart(int& size);
1586 };
1587 
1590 
1600 class HBINFILETK_API2 HTK_Glyph_Definition : public TK_Glyph_Definition {
1601  public:
1603  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
1604  { return TK_Glyph_Definition::Interpret(tk, key, variant); }
1605  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
1606  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1607 };
1608 
1611 class HBINFILETK_API2 HTK_Glyph_Definitions : public BBaseOpcodeHandler {
1612  protected:
1615  public:
1618 
1622  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1623  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1624  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1625  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1626 };
1627 
1630 
1640 class HBINFILETK_API2 HTK_Shape_Definition : public TK_Shape_Definition {
1641  public:
1643  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
1644  { return TK_Shape_Definition::Interpret(tk, key, variant); }
1645  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
1646  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1647 };
1648 
1651 class HBINFILETK_API2 HTK_Shape_Definitions : public BBaseOpcodeHandler {
1652  protected:
1655  public:
1658 
1662  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1663  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1664  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1665  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1666 };
1667 
1670 
1680 class HBINFILETK_API2 HTK_Named_Style_Def : public TK_Named_Style_Def {
1681  protected:
1682  HC_KEY m_key;
1683  int mh_stage;
1684  HC_KEY m_root;
1685  public:
1687  HTK_Named_Style_Def () : TK_Named_Style_Def (), mh_stage (0) {}
1688 
1691  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
1692  { return TK_Named_Style_Def::Interpret(tk, key, variant); }
1693  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
1694  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1695 
1696  void SetRoot (HC_KEY root) { m_root = root; }
1697  HC_KEY GetRoot () const { return m_root; }
1698 
1699  void Reset ();
1700 };
1701 
1704 class HBINFILETK_API2 HTK_Named_Style_Defs : public BBaseOpcodeHandler {
1705  protected:
1708  HC_KEY m_root;
1709  public:
1712 
1716  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1717  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1718  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1719  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1720 
1721  void SetRoot (HC_KEY root) { m_root = root; }
1722  HC_KEY GetRoot () const { return m_root; }
1723 };
1724 
1725 
1728 
1738 class HBINFILETK_API2 HTK_Line_Style : public TK_Line_Style {
1739  public:
1741  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0)
1742  { return TK_Line_Style::Interpret(tk, key, variant); }
1743  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
1744  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1745 };
1746 
1749 class HBINFILETK_API2 HTK_Line_Styles : public BBaseOpcodeHandler {
1750  protected:
1753  public:
1754  HTK_Line_Styles ();
1755  ~HTK_Line_Styles ();
1756 
1760  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1761  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1762  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1763  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1764 };
1765 
1766 #endif //HOPCODE_HANDLER
1767 
BBaseOpcodeHandler ** m_parts
Array of line pattern def handlers.
Definition: HOpcodeHandler.h:1751
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:856
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:493
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:1413
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:514
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:311
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:88
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:597
HC_KEY m_root
relative root
Definition: HOpcodeHandler.h:1708
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:668
HTK_Animation()
Definition: HOpcodeHandler.h:654
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1157
HC_KEY m_root
Definition: HOpcodeHandler.h:107
ID_Key mh_owner
Definition: HOpcodeHandler.h:143
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1336
HTK_Bounding(unsigned char opcode)
Definition: HOpcodeHandler.h:985
Provides HOOPS/3dGS-specific handling of the TKE_User_Options opcode.
Definition: HOpcodeHandler.h:748
HTK_Size(unsigned char opcode)
Definition: HOpcodeHandler.h:606
Handles the TKE_Reopen_Segment opcode.
Definition: BOpcodeHandler.h:1256
Provides HOOPS/3dGS-specific handling of the TKE_Custom_Shader.
Definition: HOpcodeHandler.h:1453
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:429
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Delete_Object opcode.
Definition: HOpcodeHandler.h:187
Handles the TKE_Close_Segment opcode.
Definition: BOpcodeHandler.h:1228
Handles the TKE_Geometry_Options opcode.
Definition: BOpcodeHandler.h:4225
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:1356
HTK_Cylinder()
Definition: HOpcodeHandler.h:1265
Definition: HOpcodeHandler.h:1611
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:180
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Cylinder opcode.
Definition: BOpcodeHandler.h:6487
Handles the TKE_Color_By_Value opcode.
Definition: BOpcodeHandler.h:1957
int mh_stage
Definition: HOpcodeHandler.h:1403
Provides HOOPS/3dGS-specific handling of the TKE_Geometry_Options opcode.
Definition: HOpcodeHandler.h:510
virtual bool NeedsContext(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:226
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:689
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:472
Provides HOOPS/3dGS-specific handling of the TKE_Glyph_Definition.
Definition: HOpcodeHandler.h:1600
TKO_Custom_Shader_Def_Stage
Definition: BOpcodeEnums.h:1603
Definition: BOpcodeHandler.h:4611
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Text and TKE_Text_With_Encoding opcodes.
Definition: HOpcodeHandler.h:1329
Handles the TKE_Reference opcodes.
Definition: BOpcodeHandler.h:1381
Provides HOOPS/3dGS-specific handling of the TKE_LOD opcode.
Definition: HOpcodeHandler.h:206
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition: BStreamFileToolkit.h:367
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Selectability opcode.
Definition: BOpcodeHandler.h:4385
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:262
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:116
Handles the TKE_Glyph_Definition opcode.
Definition: BOpcodeHandler.h:7755
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:191
Provides HOOPS/3dGS-specific handling of the TKE_Reopen_Segment opcode.
Definition: HOpcodeHandler.h:84
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Color_RGB opcode.
Definition: HOpcodeHandler.h:278
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:813
Handles the TKE_Line_Style opcode.
Definition: BOpcodeHandler.h:7923
Provides HOOPS/3dGS-specific handling of the TKE_Custom_Shader_Definition.
Definition: HOpcodeHandler.h:1484
Definition: HOpcodeHandler.h:1421
Provides HOOPS/3dGS-specific handling of the TKE_Rendering_Options opcode.
Definition: HOpcodeHandler.h:468
Definition: BOpcodeHandler.h:2365
Provides HOOPS/3dGS-specific handling of the TKE_NURBS_Surface opcode.
Definition: HOpcodeHandler.h:1104
Handles the TKE_Texture opcode.
Definition: BOpcodeHandler.h:7227
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:833
Handles the TKE_Inlude_Segment TKE_Named_Style and TKE_Style_Segment opcodes.
Definition: BOpcodeHandler.h:1287
Handles the TKE_Custom_Shader_Definition opcode.
Definition: BOpcodeHandler.h:7416
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1269
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Camera opcode.
Definition: HOpcodeHandler.h:849
Provides HOOPS/3dGS-specific handling of the TKE_Streaming_Mode opcode.
Definition: HOpcodeHandler.h:664
Handles the TKE_LOD opcode.
Definition: BOpcodeHandler.h:1506
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:1603
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Does not handle any top level opcodes, but rather only the trim types allowable on nurbs surfaces...
Definition: BOpcodeHandler.h:5768
HC_KEY m_root
Definition: HOpcodeHandler.h:1684
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1044
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_PolyCylinder opcode.
Definition: HOpcodeHandler.h:1285
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Callback opcode.
Definition: BOpcodeHandler.h:2403
Provides HOOPS/3dGS-specific handling of various opcodes.
Definition: HOpcodeHandler.h:590
Provides HOOPS/3dGS-specific handling of the TKE_Spot_Light opcode.
Definition: HOpcodeHandler.h:1153
int m_num_parts
number of handlers
Definition: HOpcodeHandler.h:1752
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:643
int mh_stage
Definition: HOpcodeHandler.h:142
Handles the TKE_Open_Segment opcode.
Definition: BOpcodeHandler.h:1169
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:1741
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:752
Handles the TKE_Sphere opcode.
Definition: BOpcodeHandler.h:6366
int mh_stage
Definition: HOpcodeHandler.h:1683
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4856
Provides HOOPS/3dGS-specific handling of the TKE_Callback opcode.
Definition: HOpcodeHandler.h:446
Provides HOOPS/3dGS-specific handling of the TKE_Visibility opcode.
Definition: HOpcodeHandler.h:531
Provides HOOPS/3dGS-specific handling of the TKE_Image opcode.
Definition: HOpcodeHandler.h:1375
Handles the TKE_Custom_Shader_Sampler opcode.
Definition: BOpcodeHandler.h:7566
TK_Status Write(BStreamFileToolkit &tk)
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Image opcode.
Definition: BOpcodeHandler.h:7096
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1292
BBaseOpcodeHandler * m_referee
for internal use only
Definition: HOpcodeHandler.h:1404
Handles the TKE_Font opcode.
Definition: BOpcodeHandler.h:6975
virtual TK_Status Read(BStreamFileToolkit &tk)=0
Handles the TKE_Unicode_Options opcode.
Definition: BOpcodeHandler.h:4818
BBaseOpcodeHandler ** m_parts
Array of shape def handlers.
Definition: HOpcodeHandler.h:1653
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:56
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1712
Handles the TKE_Heuristics opcode.
Definition: BOpcodeHandler.h:4009
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:407
int m_num_parts
number of handlers
Definition: HOpcodeHandler.h:1614
Handles the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE_Circular_Wedge opcodes...
Definition: BOpcodeHandler.h:6145
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Write(BStreamFileToolkit &tk)
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Named_Style_Defs.
Definition: HOpcodeHandler.h:1680
Definition: BOpcodeHandler.h:4584
Provides HOOPS/3dGS-specific handling of the TKE_Ellipse and TKE_Elliptical_Arc opcodes.
Definition: HOpcodeHandler.h:1216
Handles the TKE_Area_Light opcode.
Definition: BOpcodeHandler.h:5938
Handles the TKE_Cutting_Plane opcode.
Definition: BOpcodeHandler.h:6082
virtual TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Provides HOOPS/3dGS-specific handling of the TKE_Renumber_Key_Local and TKE_Renumber_Key_Global opcod...
Definition: HOpcodeHandler.h:228
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Named_Style_Def opcode.
Definition: BOpcodeHandler.h:7853
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1223
Provides HOOPS/3dGS-specific handling of the TKE_Texture.
Definition: HOpcodeHandler.h:1738
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:152
Provides HOOPS/3dGS-specific handling of the TKE_Reopen_Segment opcodes.
Definition: HOpcodeHandler.h:104
BBaseOpcodeHandler ** m_parts
Array of glyph def handlers.
Definition: HOpcodeHandler.h:1613
Handles the TKE_Renumber_Key_Global, TKE_Renumber_Key_Local, and TKE_Priority opcodes.
Definition: BOpcodeHandler.h:1578
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Complex_Clip_Region opcodes.
Definition: BOpcodeHandler.h:8079
TK_Status Write(BStreamFileToolkit &tk)
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1088
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:210
Definition: BOpcodeHandler.h:4525
Handles the TKE_Repeat_Object opcode.
Definition: BOpcodeHandler.h:1449
Provides HOOPS/3dGS-specific handling of the TKE_Selectability opcode.
Definition: HOpcodeHandler.h:552
Definition: HOpcodeHandler.h:1564
Handles the TKE_NURBS_Curve opcode.
Definition: BOpcodeHandler.h:5681
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Conditions opcode.
Definition: BOpcodeHandler.h:4683
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Custom_Shader opcode.
Definition: BOpcodeHandler.h:7629
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:579
void SetShaderTag(TKO_Custom_Shader_Def_Stage shader_stage, TKO_Custom_Shader_Primitive primitive_enum, int tag)
int m_num_parts
number of handlers
Definition: HOpcodeHandler.h:1424
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1717
Provides HOOPS/3dGS-specific handling of the TKE_Bounding and TKE_Bounding_Info opcodes.
Definition: HOpcodeHandler.h:982
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Sphere opcode.
Definition: HOpcodeHandler.h:1239
TK_Status Write(BStreamFileToolkit &tk)
Provides HOOPS/3dGS-specific handling of the TKE_NURBS_Curve opcode.
Definition: HOpcodeHandler.h:1083
Provides HOOPS/3dGS-specific handling of the TKE_Edge_Pattern opcode.
Definition: HOpcodeHandler.h:620
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Write(BStreamFileToolkit &tk)
Provides HOOPS/3dGS-specific handling of the TKE_Color opcode.
Definition: HOpcodeHandler.h:253
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
HC_KEY m_key
segment key
Definition: HOpcodeHandler.h:1682
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:921
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1020
Handles the TKE_Clip_Rectangle opcode.
Definition: BOpcodeHandler.h:7973
Handles the TKE_Text_Font opcode.
Definition: BOpcodeHandler.h:5207
int mh_stage
Definition: HOpcodeHandler.h:106
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4904
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:1691
Definition: BOpcodeHandler.h:4552
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1577
Provides HOOPS/3dGS-specific handling of the TKE_User_Value opcode.
Definition: HOpcodeHandler.h:829
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Definition: HOpcodeHandler.h:1704
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Polyine and TKE_Polygon opcodes. ...
Definition: HOpcodeHandler.h:1060
Provides HOOPS/3dGS-specific handling of the TKE_Color_By_Value opcode.
Definition: HOpcodeHandler.h:307
Provides HOOPS/3dGS-specific handling of the TKE_Close_Segment opcode.
Definition: HOpcodeHandler.h:74
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1116
Handles the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes.
Definition: BOpcodeHandler.h:5501
HTK_Color(int mask=0, int channels=0)
Definition: HOpcodeHandler.h:257
HTK_Named(unsigned char opcode)
Definition: HOpcodeHandler.h:639
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1761
Provides HOOPS/3dGS-specific handling of the TKE_Conditional_Action opcode.
Definition: HOpcodeHandler.h:706
HTK_Referenced_Segment(char opcode)
Definition: HOpcodeHandler.h:111
Provides HOOPS/3dGS-specific handling of the TKE_Shape_Definition.
Definition: HOpcodeHandler.h:1640
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:627
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:235
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Window opcode.
Definition: HOpcodeHandler.h:873
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:877
Definition: HOpcodeHandler.h:1651
Handles the TKE_Modelling_Matrix and TKE_Texture_Matrix opcodes.
Definition: BOpcodeHandler.h:4484
Provides HOOPS/3dGS-specific handling of the TKE_Custom_Shader_Sampler.
Definition: HOpcodeHandler.h:1546
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:535
Definition: HOpcodeHandler.h:368
HTK_Circle(unsigned char opcode)
Definition: HOpcodeHandler.h:1196
Handles the TKE_Color_RGB opcode.
Definition: BOpcodeHandler.h:1905
Provides HOOPS/3dGS-specific handling of the TKE_Clip_Rectangle opcode.
Definition: HOpcodeHandler.h:938
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1663
HC_KEY GetRoot() const
Definition: HOpcodeHandler.h:126
HTK_PolyCylinder()
Definition: HOpcodeHandler.h:1288
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:360
Handles the TKE_PolyCylinder opcode.
Definition: BOpcodeHandler.h:6579
HTK_Line(unsigned char opcode=TKE_Line)
Definition: HOpcodeHandler.h:1040
Provides HOOPS/3dGS-specific handling of the TKE_Matrix opcode.
Definition: HOpcodeHandler.h:572
HTK_Renumber(unsigned char opcode, HC_KEY key=0)
Definition: HOpcodeHandler.h:231
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Line_Weight, TKE_Edge_Weight, TKE_Marker_Size and TK...
Definition: HOpcodeHandler.h:603
Handles the TKE_Polyline and TKE_Polygon opcodes.
Definition: BOpcodeHandler.h:5620
HTK_Polypoint(unsigned char opcode)
Definition: HOpcodeHandler.h:1063
Provides HOOPS/3dGS-specific handling of the TKE_Text_Font opcode.
Definition: HOpcodeHandler.h:956
Handles the TKE_Bounding and TKE_Bounding_Info opcodes.
Definition: BOpcodeHandler.h:5447
Handles the TKE_Shape_Definition opcode.
Definition: BOpcodeHandler.h:7804
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Camera opcode.
Definition: BOpcodeHandler.h:4994
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:78
Provides HOOPS/3dGS-specific handling of the TKE_Clip_Region opcode.
Definition: HOpcodeHandler.h:895
Provides HOOPS/3dGS-specific handling of the TKE_Color_By_Index and TKE_Color_By_Index_16 opcode...
Definition: HOpcodeHandler.h:327
Handles the TKE_Text and TKE_Text_With_Encoding opcodes.
Definition: BOpcodeHandler.h:6836
int m_num_parts
number of handlers
Definition: HOpcodeHandler.h:1707
Definition: HOpcodeHandler.h:651
Handles the TKE_Rendering_Options opcode.
Definition: BOpcodeHandler.h:2464
virtual TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Definition: BOpcodeHandler.h:216
HTK_Linear_Pattern(unsigned char opcode)
Definition: HOpcodeHandler.h:623
Provides HOOPS/3dGS-specific handling of the TKE_Grid opcode.
Definition: HOpcodeHandler.h:1308
BBaseOpcodeHandler ** m_parts
Array of style def handlers.
Definition: HOpcodeHandler.h:1706
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:996
TKO_Custom_Shader_Primitive
Definition: BOpcodeEnums.h:1700
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:291
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
The BBaseOpcodeHandler abstract class is used as a base for derived classes which manage logical piec...
Definition: BOpcodeHandler.h:55
Provides HOOPS/3dGS-specific handling of the TKE_Color_By_FIndex opcode.
Definition: HOpcodeHandler.h:352
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition: BStream.h:278
Handles the TKE_Window opcode.
Definition: BOpcodeHandler.h:5156
Provides HOOPS/3dGS-specific handling of the TKE_Cylinder opcode.
Definition: HOpcodeHandler.h:1262
Handles the TKE_Visibility opcode.
Definition: BOpcodeHandler.h:4330
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:793
HTK_Ellipse(unsigned char opcode)
Definition: HOpcodeHandler.h:1219
Provides HOOPS/3dGS-specific handling of the TKE_Unicode_Options opcode.
Definition: HOpcodeHandler.h:769
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Color_Map opcode.
Definition: HOpcodeHandler.h:425
Provides HOOPS/3dGS-specific handling of the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE...
Definition: HOpcodeHandler.h:1193
Provides HOOPS/3dGS-specific handling of the TKE_User_Index opcode.
Definition: HOpcodeHandler.h:789
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1067
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
HTK_Camera(unsigned char opcode=TKE_Camera)
Definition: HOpcodeHandler.h:852
HTK_Enumerated(unsigned char opcode)
Definition: HOpcodeHandler.h:593
Handles the TKE_NURBS_Surface opcode.
Definition: BOpcodeHandler.h:5854
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Complex_Clip_Region opcode.
Definition: HOpcodeHandler.h:917
Handles the TKE_Color_By_Index and TKE_Color_By_Index_16 opcode.
Definition: BOpcodeHandler.h:2018
#define ID_Key
Definition: BStream.h:254
HTK_Color_RGB(int mask=0, float const *rgb=0)
Definition: HOpcodeHandler.h:281
void SetRoot(HC_KEY root)
Definition: HOpcodeHandler.h:123
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1312
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:335
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1623
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1200
Handles the TKE_User_Options opcode.
Definition: BOpcodeHandler.h:4772
TK_Status Write(BStreamFileToolkit &tk)
Handles the TKE_Clip_Region opcodes.
Definition: BOpcodeHandler.h:8015
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:731
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1246
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
bool m_is_shader
search for shaders, not textures
Definition: HOpcodeHandler.h:1425
Definition: HOpcodeHandler.h:1749
Handles the TKE_Color_Map opcode.
Definition: BOpcodeHandler.h:2118
Provides HOOPS/3dGS-specific handling of the TKE_Marker_Symbol, TKE_Line_Pattern, and TKE_Edge_Patter...
Definition: HOpcodeHandler.h:636
Definition: HOpcodeHandler.h:719
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
HTK_Matrix(unsigned char opcode)
Definition: HOpcodeHandler.h:575
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:899
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:556
Provides HOOPS/3dGS-specific handling of the TKE_Font opcode.
Definition: HOpcodeHandler.h:1353
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1177
HTK_Color_By_FIndex(int mask=0, float index=0.0f)
Definition: HOpcodeHandler.h:355
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1435
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
virtual void SetTextures(int length)
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1137
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Conditional_Action opcode.
Definition: BOpcodeHandler.h:4722
HTK_PBR()
Definition: HOpcodeHandler.h:402
Provides HOOPS/3dGS-specific handling of the TKE_Heuristics opcode.
Definition: HOpcodeHandler.h:489
Provides HOOPS/3dGS-specific handling of the TKE_Open_Segment opcode.
Definition: HOpcodeHandler.h:53
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Definition: BOpcodeHandler.h:4655
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
int m_num_parts
number of handlers
Definition: HOpcodeHandler.h:1654
void Reset()
Provides HOOPS/3dGS-specific handling of the TKE_PBR opcode.
Definition: HOpcodeHandler.h:399
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
Definition: HOpcodeHandler.h:1643
Provides HOOPS/3dGS-specific handling of the TKE_Custom_Shader_Texture.
Definition: HOpcodeHandler.h:1518
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:1383
Handles the TKE_Delete_Object opcode.
Definition: BOpcodeHandler.h:1477
Provides HOOPS/3dGS-specific handling of the TKE_Repeat_Object opcode.
Definition: HOpcodeHandler.h:172
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:711
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Spot_Light opcode.
Definition: BOpcodeHandler.h:5999
HC_KEY m_key
for internal use only
Definition: HOpcodeHandler.h:1405
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Conditions opcode.
Definition: HOpcodeHandler.h:685
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:380
Handles the TKE_Line opcode.
Definition: BOpcodeHandler.h:5561
virtual TK_Status Execute(BStreamFileToolkit &tk)
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Texture.
Definition: HOpcodeHandler.h:1401
Handles the TKE_Custom_Shader_Texture opcode.
Definition: BOpcodeHandler.h:7495
Provides HOOPS/3dGS-specific handling of the TKE_Cutting_Plane opcode.
Definition: HOpcodeHandler.h:1173
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:610
HTK_Bounding(unsigned char opcode, float *min, float *max)
Definition: HOpcodeHandler.h:988
HTK_Named_Style_Def()
Definition: HOpcodeHandler.h:1687
Provides HOOPS/3dGS-specific handling of the TKE_User_Index_Data opcode.
Definition: HOpcodeHandler.h:809
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:773
Handles the TKE_Ellipse and TKE_Elliptical_Arc opcodes.
Definition: BOpcodeHandler.h:6276
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Write(BStreamFileToolkit &tk)
Handles the TKE_Grid opcode.
Definition: BOpcodeHandler.h:6704
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
HTK_Color_By_Index(unsigned char opcode, int mask=0, int index=0)
Definition: HOpcodeHandler.h:330
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Area_Light opcode.
Definition: HOpcodeHandler.h:1132
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
HTK_Text(unsigned char opcode)
Definition: HOpcodeHandler.h:1332
virtual TK_Status Write(BStreamFileToolkit &tk)=0
Handles the TKE_PBR opcode.
Definition: BOpcodeHandler.h:2191
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_User_Value opcode.
Definition: BOpcodeHandler.h:4965
HTK_Bounding(unsigned char opcode, float *center, float radius)
Definition: HOpcodeHandler.h:991
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Provides HOOPS/3dGS-specific handling of the TKE_Line, TKE_Infinite_Line, and TKE_Infinite_Ray opcode...
Definition: HOpcodeHandler.h:1037
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:960
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Handles the TKE_Color_By_FIndex opcode.
Definition: BOpcodeHandler.h:2067
Provides HOOPS/3dGS-specific handling of the TKE_Reference opcode.
Definition: HOpcodeHandler.h:140
TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
HTK_Sphere()
Definition: HOpcodeHandler.h:1242
Provides HOOPS/3dGS-specific handling of the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes.
Definition: HOpcodeHandler.h:1013
HTK_Reference()
Definition: HOpcodeHandler.h:147
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: HOpcodeHandler.h:450
BBaseOpcodeHandler ** m_parts
Array of texture handlers.
Definition: HOpcodeHandler.h:1423
HTK_Point(unsigned char opcode)
Definition: HOpcodeHandler.h:1016