Introduction

Getting Started

Programming Guides

API Reference

Additional Resources

BOpcodeHandler.h
Go to the documentation of this file.
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 BOPCODE_HANDLER
11 #define BOPCODE_HANDLER
12 
13 #ifndef BBINFILETK_TOOLKIT
14  #include "BStreamFileToolkit.h"
15 #endif
16 
17 #ifndef POINTER_SIZED_INT
18 #if defined(WIN64) || defined(_M_X64) || defined(_WIN64)
19 # define POINTER_SIZED_INT __int64
20 # define POINTER_SIZED_UINT unsigned __int64
21 #else
22 # define POINTER_SIZED_INT long
23 # define POINTER_SIZED_UINT unsigned long
24 #endif
25 #endif
26 
27 #include "BOpcodeEnums.h"
28 
29 
31 
34 
55 class BBINFILETK_API2 BBaseOpcodeHandler
56 #ifdef HPS_CORE_BUILD
57  : public CMO
58 #else
60 #endif
61 {
62  protected:
63  int m_stage;
64  int m_progress;
65  unsigned char m_opcode;
66  unsigned char m_general_flags;
67  bool m_needs_tag;
69 
72  char * m_debug_string;
74  char * m_ascii_buffer;
75  int m_ascii_size;
76  int m_ascii_length;
77 
78  int m_ascii_stage;
80 
81  unsigned char m_byte;
82  unsigned short m_unsigned_short;
83  int m_int;
84  char m_char;
85 
86  public:
93  : m_stage (0), m_progress (0), m_opcode ((unsigned char)op), m_general_flags(0), m_needs_tag (false),
94  m_collection_part(false), m_debug_length (0), m_debug_allocated (0), m_debug_string (0),
95  m_ascii_buffer (0), m_ascii_size (0), m_ascii_length (0), m_ascii_stage (0), m_ascii_progress(0),
96  m_byte(0), m_unsigned_short(0), m_int(0), m_char('\0')
97  {}
98  virtual ~BBaseOpcodeHandler ();
99 
107  virtual TK_Status Read (BStreamFileToolkit & tk) = 0;
108 
116  virtual TK_Status Write (BStreamFileToolkit & tk) = 0;
117 
125  virtual TK_Status Execute (BStreamFileToolkit & tk);
126 
136  virtual TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant = 0);
137 
147  virtual TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
148 
154  virtual void Reset ();
155 
160  virtual bool Match_Instance (BStreamFileToolkit const & tk, Recorded_Instance * instance);
161 
162 
164  unsigned char Opcode () const { return m_opcode; }
165 
167  unsigned char General_Flags () const { return m_general_flags; }
168 
170  void Set_General_Flags (int f) { m_general_flags = (unsigned char)f; }
171 
176  int Pass (BStreamFileToolkit & tk) const { return tk.pass(); }
177 
182  TK_Status Tag (BStreamFileToolkit & tk, int variant= -1) const { return tk.tag(variant); }
183 
187  bool Tagging (BStreamFileToolkit & tk) const {
188  return m_needs_tag || tk.GetWriteFlags(TK_Force_Tags) != 0;
189  }
190 
194  void SetNeedsTag (bool n) { m_needs_tag = n; }
195 
199  bool NeedsTag () const { return m_needs_tag; }
200 
204  void SetCollectionPart(bool n) { m_collection_part = n; }
205 
209  bool IsCollectionPart() const { return m_collection_part; }
210 
217  virtual TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const {
218  *handler = 0;
219  return tk.Error();
220  }
221 
227  virtual bool NeedsContext (BStreamFileToolkit & tk) const { (void)tk; return false; }
228 
233  void SetLoggingString (char const * segment);
234 
239  void SetLoggingString (int length);
240 
244  char const * GetLoggingString () const { return m_debug_string; }
249  char * GetLoggingString () { return m_debug_string; }
250 
254  void LogDebug (BStreamFileToolkit & tk, char const * string = 0);
255 
256  protected:
257  // various means of pulling data from the toolkit buffer
258  // Note: format conversion is safe to do in output buffer
259 
261  static TK_Status GetData (BStreamFileToolkit & tk, char * b, int n) { return tk.read (b, n); }
262 
264  static TK_Status GetData (BStreamFileToolkit & tk, short * s, int n) {
265  TK_Status status;
266  if ((status = GetData (tk, (char *)s, n * (int)sizeof (short))) == TK_Normal)
267  fix (s, n);
268  return status;
269  }
270 
272  static TK_Status GetData (BStreamFileToolkit & tk, int * i, int n) {
273  TK_Status status;
274  if ((status = GetData (tk, (char *)i, n * (int)sizeof (int))) == TK_Normal)
275  fix (i, n);
276  return status;
277  }
278 
280  static TK_Status GetData (BStreamFileToolkit & tk, float * f, int n) {
281  TK_Status status;
282  if ((status = GetData (tk, (char *)f, n * (int)sizeof (float))) == TK_Normal)
283  fix_in (f, n);
284  return status;
285  }
286 
288  static TK_Status GetData (BStreamFileToolkit & tk, double * d, int n) {
289  TK_Status status;
290  if ((status = GetData (tk, (char *)d, n * (int)sizeof (double))) == TK_Normal)
291  fix_in (d, n);
292  return status;
293  }
294 
296  static TK_Status GetData (BStreamFileToolkit & tk, unsigned char * b, int n) { return GetData (tk, (char *)b, n); }
297 
299  static TK_Status GetData (BStreamFileToolkit & tk, unsigned short * s, int n) { return GetData (tk, (short *)s, n); }
300 
302  static TK_Status GetData (BStreamFileToolkit & tk, unsigned int * i, int n) { return GetData (tk, (int *)i, n); }
303 
305  static TK_Status GetData (BStreamFileToolkit & tk, char & c) { return GetData (tk, &c, 1); }
306 
308  static TK_Status GetData (BStreamFileToolkit & tk, short & s) { return GetData (tk, &s, 1); }
309 
311  static TK_Status GetData (BStreamFileToolkit & tk, int & i) { return GetData (tk, &i, 1); }
312 
314  static TK_Status GetData (BStreamFileToolkit & tk, unsigned char & b) { return GetData (tk, &b, 1); }
315 
317  static TK_Status GetData (BStreamFileToolkit & tk, unsigned short & s) { return GetData (tk, &s, 1); }
318 
320  static TK_Status GetData (BStreamFileToolkit & tk, unsigned int & i) { return GetData (tk, &i, 1); }
321 
323  static TK_Status GetData (BStreamFileToolkit & tk, float & f) { return GetData (tk, &f, 1); }
324 
326  static TK_Status GetData (BStreamFileToolkit & tk, double & d) { return GetData (tk, &d, 1); }
327 
328 
331  TK_Status status = TK_Normal;
332 
333  if (tk.GetVersion() >= 1975 &&
334  (status = GetData (tk, m_general_flags)) != TK_Normal)
335  return status;
336 
337  return status;
338  }
339 
340 
341 
342 
344  static TK_Status LookatData (BStreamFileToolkit & tk, unsigned char & b) { return tk.lookat ((char &)b); }
345 
346  // various means of putting data into the toolkit buffer
347  // Note: format conversion is NOT safe in input buffer -- use temps
348 
350  static TK_Status PutData (BStreamFileToolkit & tk, char const * b, int n) { return tk.write (b, n); }
351 
353  static TK_Status PutData (BStreamFileToolkit & tk, short const * s, int n) {
354  #ifdef STREAM_BIGENDIAN
355  short * buffer;
356  short * tmp;
357  TK_Status status;
358  int i;
359  BSTREAM_ALLOC_ARRAY(buffer, n, short);
360  tmp = buffer;
361  for (i=0; i<n; ++i)
362  *tmp++ = flip (*s++);
363  status = PutData (tk, (char const *)buffer, n * (int)sizeof (short));
364  BSTREAM_FREE_ARRAY(buffer, n, short);
365  if (status != TK_Normal)
366  return status;
367  return TK_Normal;
368  #else
369  return PutData (tk, (char const *)s, n * (int)sizeof (short));
370  #endif
371  }
372 
374  static TK_Status PutData (BStreamFileToolkit & tk, int const * i, int n) {
375  #ifdef STREAM_BIGENDIAN
376  int * buffer;
377  int * tmp;
378  TK_Status status;
379  int j;
380  BSTREAM_ALLOC_ARRAY(buffer, n, int);
381  tmp = buffer;
382  for (j=0; j<n; ++j)
383  *tmp++ = flip (*i++);
384  status = PutData (tk, (char const *)buffer, n * (int)sizeof (int));
385  BSTREAM_FREE_ARRAY(buffer, n, int);
386  if (status != TK_Normal)
387  return status;
388  return TK_Normal;
389  #else
390  return PutData (tk, (char const *)i, n * (int)sizeof (int));
391  #endif
392  }
393 
395  static TK_Status PutData (BStreamFileToolkit & tk, float const * f, int n) {
396  #if defined(NON_IEEE) || defined(STREAM_BIGENDIAN)
397  float * buffer;
398  float * tmp;
399  TK_Status status;
400  int i;
401  BSTREAM_ALLOC_ARRAY(buffer, n, float);
402  tmp = buffer;
403  for (i=0; i<n; ++i) {
404  *tmp = *f++;
405  fix_out (tmp++, 1);
406  }
407  status = PutData (tk, (char const *)buffer, n * (int)sizeof (float));
408  BSTREAM_FREE_ARRAY(buffer, n, float);
409  if (status != TK_Normal)
410  return status;
411  return TK_Normal;
412  #else
413  return PutData (tk, (char const *)f, n * (int)sizeof (float));
414  #endif
415  }
416 
418  static TK_Status PutData (BStreamFileToolkit & tk, double const * d, int n) {
419  #if defined(NON_IEEE) || defined(STREAM_BIGENDIAN)
420  double * buffer;
421  double * tmp;
422  TK_Status status;
423  int i;
424  BSTREAM_ALLOC_ARRAY(buffer, n, double);
425  tmp = buffer;
426  for (i=0; i<n; ++i) {
427  *tmp = *d++;
428  fix_out (tmp++, 1);
429  }
430  status = PutData (tk, (char const *)buffer, n * (int)sizeof (double));
431  BSTREAM_FREE_ARRAY(buffer, n, double);
432  if (status != TK_Normal)
433  return status;
434  return TK_Normal;
435  #else
436  return PutData (tk, (char const *)d, n * (int)sizeof (double));
437  #endif
438  }
439 
441  static TK_Status PutData (BStreamFileToolkit & tk, unsigned char const * b, int n) { return PutData (tk, (char const *)b, n); }
442 
444  static TK_Status PutData (BStreamFileToolkit & tk, unsigned short const * s, int n) { return PutData (tk, (short const *)s, n); }
445 
447  static TK_Status PutData (BStreamFileToolkit & tk, unsigned int const * i, int n) { return PutData (tk, (int const *)i, n); }
448 
450  static TK_Status PutData (BStreamFileToolkit & tk, char const & c) { return PutData (tk, &c, 1); }
451 
453  static TK_Status PutData (BStreamFileToolkit & tk, short const & s) { return PutData (tk, &s, 1); }
454 
456  static TK_Status PutData (BStreamFileToolkit & tk, int const & i) { return PutData (tk, &i, 1); }
457 
459  static TK_Status PutData (BStreamFileToolkit & tk, unsigned char const & b) { return PutData (tk, &b, 1); }
460 
462  static TK_Status PutData (BStreamFileToolkit & tk, unsigned short const & s) { return PutData (tk, &s, 1); }
463 
465  static TK_Status PutData (BStreamFileToolkit & tk, unsigned int const & i) { return PutData (tk, &i, 1); }
466 
468  static TK_Status PutData (BStreamFileToolkit & tk, float const & f) { return PutData (tk, &f, 1); }
469 
471  static TK_Status PutData (BStreamFileToolkit & tk, double const & d) { return PutData (tk, &d, 1); }
472 
474  TK_Status PutOpcode (BStreamFileToolkit & tk, int adjust = 1) {
475  TK_Status status;
476  unsigned int sequence;
477 
478  if ((status = PutData (tk, Opcode ())) != TK_Normal)
479  return status;
480 
481  tk.adjust_written (adjust);
482 
483  sequence = tk.NextOpcodeSequence();
484  if (tk.GetLogging())
485  log_opcode (tk, sequence, Opcode());
486 
487  return status;
488  }
489 
492  TK_Status status = TK_Normal;
493 
494  if (tk.GetTargetVersion() >= 1975 &&
495  (status = PutData (tk, General_Flags ())) != TK_Normal)
496  return status;
497 
498  return status;
499  }
500 
501 
502 
503  /* note -- fix for int types will work during read OR write phase, but floats need separate routines for native->IEEE and IEEE->native
504  */
506  static short flip (short s) {
507  return (short)(((s >> 8) & 0x00FF) | (s << 8));
508  }
510  static int flip (int i) {
511  return ((i >> 24) & 0x000000FF) | ((i >> 8) & 0x0000FF00) |
512  ((i << 8) & 0x00FF0000) | (i << 24);
513  }
514 
515  #ifdef STREAM_BIGENDIAN
516  static void flip (double * d) {
518  char b[8];
519  memcpy (b, &d, sizeof(double));
520  Swap (b[0], b[7]);
521  Swap (b[1], b[6]);
522  Swap (b[2], b[5]);
523  Swap (b[3], b[4]);
524  memcpy (&d, b, sizeof(double));
525  }
526  #endif
527 
528 #ifndef DOXYGEN_SHOULD_SKIP_THIS
529  #ifndef UNREFERENCED
530  #define UNREFERENCED(x) (void)(x)
531  #endif
532 #endif
533 
535  static void fix (int * i, int n) {
536  #ifdef STREAM_BIGENDIAN
537  while (n--){
538  *i = flip (*i);
539  i++;
540  }
541  #else
542  UNREFERENCED(i);
543  UNREFERENCED(n);
544  #endif
545  }
547  static void fix (short * s, int n) {
548  #ifdef STREAM_BIGENDIAN
549  while (n--){
550  *s = flip (*s);
551  s++;
552  }
553  #else
554  UNREFERENCED(s);
555  UNREFERENCED(n);
556  #endif
557  }
558 
560  static void fix_in (float * f, int n) {
561  #ifdef NON_IEEE
562  // need to re-interpret from IEEE to native format
563  #endif
564 
565  #ifdef STREAM_BIGENDIAN
566  int * i = (int *) f;
567  while (n--) {
568  *i = flip (*i);
569  i++;
570  }
571  #else
572  UNREFERENCED(f);
573  UNREFERENCED(n);
574  #endif
575  }
577  static void fix_in (double * d, int n) {
578  #ifdef NON_IEEE
579  // need to re-interpret from IEEE to native format
580  #endif
581 
582  #ifdef STREAM_BIGENDIAN
583  while (n--) {
584  flip (d++);
585  }
586  #else
587  UNREFERENCED(d);
588  UNREFERENCED(n);
589  #endif
590  }
592  static void fix_out (float * f, int n) {
593  #ifdef NON_IEEE
594  // need to re-interpret from native format to IEEE
595  #endif
596 
597  #ifdef STREAM_BIGENDIAN
598  int * i = (int*) f;
599  while (n--) {
600  *i = flip (*i);
601  i++;
602  }
603  #else
604  UNREFERENCED(f);
605  UNREFERENCED(n);
606  #endif
607  }
609  static void fix_out (double * d, int n) {
610  #ifdef NON_IEEE
611  // need to re-interpret from native format to IEEE
612  #endif
613 
614  #ifdef STREAM_BIGENDIAN
615  while (n--) {
616  flip (d++);
617  }
618  #else
619  UNREFERENCED(d);
620  UNREFERENCED(n);
621  #endif
622  }
623 
625  void log_opcode (BStreamFileToolkit & tk, unsigned int sequence, unsigned char opcode);
626 
627 
628  /* common conversions
629  these two are for converting between floats [0.0,1.0] and unsigned chars [0,255]
630  */
632  void floats_to_bytes (float const * in, unsigned char * out, int count) const {
633  while (count-- > 0)
634  *out++ = char (*in++ * 255.999f);
635  }
637  void bytes_to_floats (unsigned char const * in, float * out, int count) const {
638  while (count-- > 0)
639  *out++ = float (*in++) * (1.0f/255.0f);
640  }
641 
642  // access to toolkit utility functions
644  void add_segment (BStreamFileToolkit & tk, ID_Key key) { tk.add_segment (key); }
646  ID_Key remove_segment (BStreamFileToolkit & tk) { return tk.remove_segment(); }
648  void set_last_key (BStreamFileToolkit & tk, ID_Key key) { tk.set_last_key (key); }
651  if (tk.m_last_keys_used == 1)
652  return tk.m_last_keys[0];
653  else
654  return -1;
655  }
657  void adjust_written (BStreamFileToolkit & tk, int count) { tk.adjust_written (count); }
659  void increase_nesting (BStreamFileToolkit & tk, int amount=1) { tk.increase_nesting (amount); }
661  void decrease_nesting (BStreamFileToolkit & tk, int amount=1) { tk.decrease_nesting (amount); }
662 
666  void Revisit (BStreamFileToolkit & tk, float priority=0.0f, int variant=0) const { tk.revisit (Opcode(), priority, variant); }
667 
671  BBaseOpcodeHandler * Opcode_Handler (BStreamFileToolkit & tk, unsigned char op) const
672  { return tk.opcode_handler (op); }
673 
675  void Record_Instance (BStreamFileToolkit & tk, ID_Key key, int variant,
676  int val1, int val2, int val3) const {
677  tk.record_instance (key, variant, this, val1, val2, val3);
678  }
680  bool Find_Instance (BStreamFileToolkit & tk, int val1, int val2, int val3) {
681  return tk.find_instance (this, val1, val2, val3);
682  }
683 
685  void Remember_Item (BStreamFileToolkit & tk, ID_Key key) const { tk.remember_item(key); }
687  bool Find_Item (BStreamFileToolkit & tk, ID_Key key) const { return tk.find_item(key); }
688 
690  bool validate_count (int count, int limit = 1<<24) const { return 0 <= count && count <= limit; }
691 
695  static float read_float (char const *cp, char const ** newcpp = 0);
697  static float read_float (char const *cp, char ** newcpp)
698  { return read_float (cp, (char const **)newcpp); }
700  static char * write_float (char * buffer, double f);
701 
702 
703 
705  TK_Status SkipNewlineAndTabs(BStreamFileToolkit & tk, unsigned int* readSize=0);
707  TK_Status ReadAsciiLine(BStreamFileToolkit & tk, unsigned int* readSize=0);
709  TK_Status ReadAsciiWord(BStreamFileToolkit & tk, unsigned int* readSize=0);
711  TK_Status ReadEndOpcode(BStreamFileToolkit & tk);
713  bool RemoveAngularBrackets(char* string);
715  bool RemoveQuotes(char* string);
717  TK_Status Read_Referenced_Segment(BStreamFileToolkit & tk, int &i_progress);
718 
719  //TK_Status GetAsciiData(BStreamFileToolkit & tk, float * rFloats, unsigned int n);
720 
722  TK_Status GetAsciiData(BStreamFileToolkit & tk, int * rInts, unsigned int n);
723  //TK_Status GetAsciiData(BStreamFileToolkit & tk, short * rShorts, unsigned int n);
724 
726  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned char& value);
728  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, char& value);
730  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned short& value);
732  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, short& value);
734  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, int& value);
736  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, float& value);
738  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, float * rFloats, unsigned int n);
740  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, char * m_string, unsigned int n);
742  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned char * m_string, unsigned int n);
744  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, int * rInts, unsigned int n);
746  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, short * rShorts, unsigned int n);
748  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned short * rShorts, unsigned int n);
750  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, unsigned char &value);
752  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, int &value);
754  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, char &value);
756  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, unsigned short &value);
758  TK_Status GetAsciiImageData(BStreamFileToolkit & tk, const char * tag, unsigned char * rValues, unsigned int n);
759 
761  TK_Status PutAsciiOpcode (BStreamFileToolkit & tk, int adjust = 1, bool is_end = false, bool want_newline = true);
762  // TK_Status PutAsciiOpcode (BStreamFileToolkit & tk, int adjust = 1);
763 
765  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, char const * b, int n);
767  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, short const * s, int n);
769  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, int const * i, int n);
771  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, float const * f, int n);
773  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned char const * b, int n);
775  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned short const * s, int n);
777  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned int const * i, int n);
779  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, char const & c);
781  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, short const & s);
783  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, int const & i);
785  TK_Status PutAsciiFlag (BStreamFileToolkit & tk, char const *tag, int const & i);
787  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned char const & b);
789  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned short const & s);
791  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned int const & i);
793  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, float const & f);
795  TK_Status PutAsciiMask (BStreamFileToolkit & tk,char const *tag, int const & i);
797  TK_Status PutAsciiHex (BStreamFileToolkit & tk, char const *tag, int const & i);
799  TK_Status PutStartXMLTag (BStreamFileToolkit & tk, char const *tag);
801  TK_Status PutEndXMLTag (BStreamFileToolkit & tk, char const *tag);
802 };
803 
805 #define IMPLEMENT_CLONE(class_name) \
806  TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
807  *newhandler = BSTREAM_NEW(class_name); \
808  if (*newhandler != nullptr) \
809  return TK_Normal; \
810  else \
811  return tk.Error ("memory allocation in" #class_name "::clone failed"); \
812  } //
813 #define IMPLEMENT_CLONE_OPCODE(class_name) \
815  TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
816  *newhandler = BSTREAM_NEW(class_name)(Opcode()); \
817  if (*newhandler != nullptr) \
818  return TK_Normal; \
819  else \
820  return tk.Error ("memory allocation in" #class_name "::clone failed"); \
821 } //
822 
824 
830 class BBINFILETK_API TK_Default : public BBaseOpcodeHandler {
831 
832  protected:
833  char * m_opcode_buffer;
834  int m_buffer_count;
835 
836  public:
838  TK_Default () : BBaseOpcodeHandler (TKE_Pseudo_Handler) {m_opcode_buffer = 0, m_buffer_count = 0;}
839 
841 
843 
844 
845  TK_Status ReadAscii (BStreamFileToolkit & tk);
846  TK_Status WriteAscii (BStreamFileToolkit & tk);
847 
848 };
849 
855 class BBINFILETK_API TK_Unavailable : public BBaseOpcodeHandler {
856  public:
858  TK_Unavailable (char opcode) : BBaseOpcodeHandler (opcode) {}
859 
862 };
863 
866 
872 class BBINFILETK_API TK_Header : public BBaseOpcodeHandler {
873  protected:
876 
877  public:
879  TK_Header () : BBaseOpcodeHandler (TKE_Pseudo_Handler), m_current_object (0) {}
880  ~TK_Header();
881 
884 
885 
886  TK_Status ReadAscii (BStreamFileToolkit & tk);
887  TK_Status WriteAscii (BStreamFileToolkit & tk);
888 
889 
890  void Reset ();
891 };
892 
893 
895 
901 class BBINFILETK_API TK_File_Info : public BBaseOpcodeHandler {
902  protected:
904  int m_flags;
905 
906  public:
908  TK_File_Info () : BBaseOpcodeHandler (TKE_File_Info), m_flags (0) {}
909 
910 
914  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
915  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
916  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
917 
918 
919  TK_Status ReadAscii (BStreamFileToolkit & tk);
920  TK_Status WriteAscii (BStreamFileToolkit & tk);
921 
922 
924  void SetFlags (int f) { m_flags = f; }
926  int GetFlags () { return m_flags; }
927 };
928 
929 
931 
939 class BBINFILETK_API TK_Comment : public BBaseOpcodeHandler {
940  protected:
942  int m_length;
946  char * m_comment;
947 
949  void set_comment (char const * comment);
951  void set_comment (int length);
952 
953  public:
955  TK_Comment (char const * comment = 0);
956  ~TK_Comment();
957 
961 
962  TK_Status ReadAscii (BStreamFileToolkit & tk);
963  TK_Status WriteAscii (BStreamFileToolkit & tk);
964  TK_Status ExecuteAscii (BStreamFileToolkit & tk);
967  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant) {
968  (void)tk; (void)key; (void)variant;
969  return TK_Normal;
970  }
971  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
972  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
973  void Reset ();
974 
979  void SetComment (char const * comment) { set_comment (comment); }
984  void SetComment (int length) { set_comment (length); }
988  char const * GetComment () const { return m_comment; }
993  char * GetComment () { return m_comment; }
994 };
995 
996 
998 
1006 class BBINFILETK_API TK_Terminator : public BBaseOpcodeHandler {
1007  public:
1009  TK_Terminator (char opcode, bool is_file_terminator = true) : BBaseOpcodeHandler (opcode),
1010  m_terminate_file(is_file_terminator) {}
1011 
1015 
1016 
1017  TK_Status ReadAscii (BStreamFileToolkit & tk);
1018  TK_Status WriteAscii (BStreamFileToolkit & tk);
1019 
1020  protected:
1022  // meant to terminate the file or something else (viz. LOD collection)
1024 };
1025 
1026 
1028 
1035 class BBINFILETK_API TK_Compression : public BBaseOpcodeHandler {
1036  public:
1038  TK_Compression (char opcode) : BBaseOpcodeHandler (opcode) {}
1039 
1042 
1043  TK_Status ReadAscii (BStreamFileToolkit & tk);
1044  TK_Status WriteAscii (BStreamFileToolkit & tk);
1046  TK_Status ExecuteAscii (BStreamFileToolkit & tk);
1047  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
1048  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1049  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1050 };
1051 
1053 
1054 
1055 // this should be based off a "data handling" interface class broken out from BBaseOpcodeHandler
1056 class BBINFILETK_API Lock_Masks : public BBaseOpcodeHandler {
1057  public:
1058  int mask;
1059  int value;
1100 
1101 
1102  Lock_Masks () : BBaseOpcodeHandler (0) {}
1104  TK_Status Write (BStreamFileToolkit &) { return TK_Error; } //-V524
1105 
1106  TK_Status Read (BStreamFileToolkit & tk, bool mask_only);
1107  TK_Status Write (BStreamFileToolkit & tk, bool mask_only);
1108 
1109  void init() {
1110  mask = value = 0;
1111  color_mask = color_value = 0;
1112  color_face_mask = color_face_value =
1113  color_edge_mask = color_edge_value =
1114  color_line_mask = color_line_value =
1115  color_marker_mask = color_marker_value =
1116  color_text_mask = color_text_value =
1117  color_window_mask = color_window_value =
1118  color_face_contrast_mask = color_face_contrast_value =
1119  color_window_contrast_mask = color_window_contrast_value =
1120  color_back_mask = color_back_value =
1121  color_vertex_mask = color_vertex_value =
1122  color_edge_contrast_mask = color_edge_contrast_value =
1123  color_line_contrast_mask = color_line_contrast_value =
1124  color_marker_contrast_mask = color_marker_contrast_value =
1125  color_vertex_contrast_mask = color_vertex_contrast_value =
1126  color_text_contrast_mask = color_text_contrast_value = 0;
1127  color_simple_reflection_mask = color_simple_reflection_value = 0;
1128  color_cut_face_mask = color_cut_face_value = 0;
1129  color_cut_edge_mask = color_cut_edge_value = 0;
1130  visibility_mask = visibility_value = 0;
1131  }
1132 
1133  void set_color() {
1134  color_mask = color_value = TKO_Geo_All_Colors;
1135  color_face_mask = color_face_value =
1136  color_edge_mask = color_edge_value =
1137  color_line_mask = color_line_value =
1138  color_marker_mask = color_marker_value =
1139  color_text_mask = color_text_value =
1140  color_window_mask = color_window_value =
1141  color_face_contrast_mask = color_face_contrast_value =
1142  color_window_contrast_mask = color_window_contrast_value =
1143  color_back_mask = color_back_value =
1144  color_vertex_mask = color_vertex_value =
1145  color_edge_contrast_mask = color_edge_contrast_value =
1146  color_line_contrast_mask = color_line_contrast_value =
1147  color_marker_contrast_mask = color_marker_contrast_value =
1148  color_vertex_contrast_mask = color_vertex_contrast_value =
1149  color_text_contrast_mask = color_text_contrast_value =
1150  color_simple_reflection_mask = color_simple_reflection_value =
1151  color_cut_face_mask = color_cut_face_value =
1152  color_cut_edge_mask = color_cut_edge_value =
1154  }
1155 };
1156 
1158 
1160 
1170 class BBINFILETK_API TK_Open_Segment : public BBaseOpcodeHandler {
1171  protected:
1172  int m_length;
1174  char * m_string;
1176  void set_segment (char const * segment);
1179  void set_segment (int length);
1180 
1181  public:
1183  TK_Open_Segment () : BBaseOpcodeHandler (TKE_Open_Segment), m_length (0), m_allocated (0), m_string (0) {}
1184  ~TK_Open_Segment();
1185 
1188  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1189 
1190  TK_Status ReadAscii (BStreamFileToolkit & tk);
1191  TK_Status WriteAscii (BStreamFileToolkit & tk);
1192  void Reset ();
1193 
1198  void SetSegment (char const * segment) { set_segment (segment); }
1199 
1204  void SetSegment (int length) { set_segment (length); }
1205 
1209  char const * GetSegment () const { return m_string; }
1214  char * GetSegment () { return m_string; }
1215 
1216 };
1217 
1218 
1220 
1229 class BBINFILETK_API TK_Close_Segment : public BBaseOpcodeHandler {
1230  public:
1232  TK_Close_Segment () : BBaseOpcodeHandler (TKE_Close_Segment) {}
1233 
1236  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1237 
1238  TK_Status ReadAscii (BStreamFileToolkit & tk);
1239  TK_Status WriteAscii (BStreamFileToolkit & tk);
1240 };
1241 
1242 
1243 
1245 
1257 class BBINFILETK_API TK_Reopen_Segment : public BBaseOpcodeHandler {
1258  protected:
1259  int m_index;
1261  public:
1263  TK_Reopen_Segment () : BBaseOpcodeHandler (TKE_Reopen_Segment), m_index (-1) {}
1264 
1267  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1268 
1269  TK_Status ReadAscii (BStreamFileToolkit & tk);
1270  TK_Status WriteAscii (BStreamFileToolkit & tk);
1271 
1273  void SetIndex (int i) { m_index = i; }
1275  int GetIndex () const { return m_index; }
1276 };
1277 
1278 
1280 
1288 class BBINFILETK_API TK_Referenced_Segment : public BBaseOpcodeHandler {
1289  protected:
1290  int m_length;
1292  char * m_string;
1295  char * m_condition;
1299  unsigned char m_renumbered_scope;
1301  bool m_follow;
1303 
1304  bool m_referee_has_priority;
1305  int m_referee_priority;
1306 
1307  void set_segment (char const * segment);
1308  void set_segment (int length);
1309 
1310  public:
1312  TK_Referenced_Segment (unsigned char opcode);
1314 
1317  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1318 
1319  TK_Status ReadAscii (BStreamFileToolkit & tk);
1320  TK_Status WriteAscii (BStreamFileToolkit & tk);
1321  void Reset ();
1322 
1327  void SetSegment (char const * segment) { set_segment (segment); }
1332  void SetSegment (int length) { set_segment (length); }
1336  char const * GetSegment () const { return m_string; }
1341  char * GetSegment () { return m_string; }
1342 
1343 
1348  void SetCondition (char const * condition);
1353  void SetCondition (int length);
1357  char const * GetCondition () const { return m_condition; }
1362  char * GetCondition () { return m_condition; }
1363 
1364 
1366  void SetFollow (bool f) { m_follow = f; }
1368  bool GetFollow () { return m_follow; }
1369 
1370 };
1371 
1372 
1374 
1382 class BBINFILETK_API TK_Reference : public BBaseOpcodeHandler {
1383  protected:
1384  int m_index;
1387  char * m_condition;
1392  bool m_follow;
1393 
1394  public:
1396  TK_Reference ();
1397  ~TK_Reference();
1398 
1401  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1402 
1403  TK_Status ReadAscii (BStreamFileToolkit & tk);
1404  TK_Status WriteAscii (BStreamFileToolkit & tk);
1405  void Reset ();
1406 
1408  void SetIndex (int index) { m_index = index; }
1410  ID_Key GetIndex () { return m_index; }
1411 
1416  void SetCondition (char const * condition);
1421  void SetCondition (int length);
1425  char const * GetCondition () const { return m_condition; }
1430  char * GetCondition () { return m_condition; }
1431 
1432 
1434  void SetFollow (bool f) { m_follow = f; }
1436  bool GetFollow () { return m_follow; }
1437 };
1438 
1440 
1442 
1450 class BBINFILETK_API TK_Instance : public BBaseOpcodeHandler {
1451  protected:
1457  float m_matrix[16];
1458 
1459  public:
1461  TK_Instance (int from_index=0, int from_variant=0, int to_index=0, int to_variant=0,
1462  int options=0, float const xform[]=0);
1463 
1466  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1467 
1468  TK_Status ReadAscii (BStreamFileToolkit & tk);
1469  TK_Status WriteAscii (BStreamFileToolkit & tk);
1470 
1471  void Reset ();
1472 };
1473 
1475 
1478 class BBINFILETK_API TK_Delete_Object : public BBaseOpcodeHandler {
1479  protected:
1480  int m_index;
1481 
1482  public:
1485 
1488  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1489 
1490  TK_Status ReadAscii (BStreamFileToolkit & tk);
1491  TK_Status WriteAscii (BStreamFileToolkit & tk);
1492 
1494  void SetIndex (int i) { m_index = i; }
1496  int GetIndex () { return m_index; }
1497 };
1498 
1499 
1501 
1502 
1504 
1507 class BBINFILETK_API TK_LOD : public BBaseOpcodeHandler {
1508  protected:
1514  struct vlist_s *m_current_working;
1516 
1517  TK_Status ReadOneList (BStreamFileToolkit & tk);
1518 
1519  public:
1521  TK_LOD () : BBaseOpcodeHandler (TKE_LOD) {
1522  m_num_primitives = 0;
1523  m_primitives = 0;
1524  m_highest_level = 0;
1525  m_levels_allocated = 0;
1526  m_substage = 0;
1527  m_current_working = 0;
1528  m_current_level = 0;
1529  }
1530  ~TK_LOD();
1531 
1534  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1535 
1536  TK_Status ReadAscii (BStreamFileToolkit & tk);
1537  TK_Status WriteAscii (BStreamFileToolkit & tk);
1538 
1539  void Reset ();
1540 };
1542 #define TKLOD_ESCAPE 255
1543 
1544 
1546 
1548 
1553 class BBINFILETK_API TK_Geometry_Attributes : public BBaseOpcodeHandler {
1554  protected:
1555 
1556  public:
1558  TK_Geometry_Attributes () : BBaseOpcodeHandler (TKE_Geometry_Attributes) {}
1559 
1562 
1563  TK_Status ReadAscii (BStreamFileToolkit & tk);
1564  TK_Status WriteAscii (BStreamFileToolkit & tk);
1566 };
1567 
1569 
1579 class BBINFILETK_API TK_Renumber : public BBaseOpcodeHandler {
1580  protected:
1582 
1583  public:
1587  TK_Renumber (unsigned char opcode, ID_Key key = 0) : BBaseOpcodeHandler (opcode), m_key (key) {}
1588 
1591  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1592 
1593  TK_Status ReadAscii (BStreamFileToolkit & tk);
1594  TK_Status WriteAscii (BStreamFileToolkit & tk);
1595 
1596  void SetKey (ID_Key k) { m_key = k; }
1598  ID_Key GetKey () const { return m_key; }
1599 };
1600 
1601 
1603 
1608 class BBINFILETK_API TK_Tag : public BBaseOpcodeHandler {
1609  protected:
1610 
1611  public:
1613  TK_Tag (unsigned char opcode = TKE_Tag) : BBaseOpcodeHandler (opcode) {}
1614 
1617 
1618  TK_Status ReadAscii (BStreamFileToolkit & tk);
1619  TK_Status WriteAscii (BStreamFileToolkit & tk);
1620 
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 };
1626 
1628 
1635 // Note: unlike most opcode handlers, this one does not contain its own data, it is primarily a
1636 // wrapper around the key <-> index translation table in the toolkit.
1637 class BBINFILETK_API TK_Dictionary : public BBaseOpcodeHandler {
1638  protected:
1639  unsigned char m_format;
1641  unsigned char m_present;
1643 
1644  Internal_Translator::Index_Key_Pair * m_item;
1645 
1646  public:
1648  TK_Dictionary () : BBaseOpcodeHandler (TKE_Dictionary), m_format (0) {}
1649 
1652 
1653  TK_Status ReadAscii (BStreamFileToolkit & tk);
1654  TK_Status WriteAscii (BStreamFileToolkit & tk);
1655 
1657  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1658  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1659  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1660  void Reset ();
1661 };
1662 
1663 
1665 
1672 class BBINFILETK_API TK_Dictionary_Locater : public BBaseOpcodeHandler {
1673  protected:
1674  int m_size;
1675  int m_offset;
1676 
1677  public:
1679  TK_Dictionary_Locater () : BBaseOpcodeHandler (TKE_Dictionary_Locater), m_offset (0) {}
1680 
1683 
1684  TK_Status ReadAscii (BStreamFileToolkit & tk);
1685  TK_Status WriteAscii (BStreamFileToolkit & tk);
1686 
1688  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1689  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1690  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1691  void Reset ();
1692 
1694  void SetSize (int size) { m_size = size; }
1696  int GetSize () const { return m_size; }
1698  void SetOffset (int offset) { m_offset = offset; }
1700  int GetOffset () const { return m_offset; }
1701 };
1702 
1703 
1705 
1706 
1708 
1713 class BBINFILETK_API TK_Color : public BBaseOpcodeHandler {
1714  protected:
1715  int m_mask;
1716  short m_channels;
1717 
1721  class BBINFILETK_API channel {
1722  public:
1723  float m_rgb[3];
1724  char * m_name;
1725 
1726  channel() : m_name (0) {}
1727  ~channel() { Reset(); }
1728  void Reset () {
1729  if (m_name)
1730  BSTREAM_FREE_ARRAY(m_name, (int)(strlen(m_name) + 1), char);
1731  m_name = 0;
1732  }
1733  };
1734 
1742  float m_gloss;
1743  float m_index;
1745 
1747  void set_channel_rgb (channel & c, float r, float g, float b, int which_channel = -1) {
1748  c.m_rgb[0] = r; c.m_rgb[1] = g; c.m_rgb[2] = b;
1749  if (which_channel != -1) {
1750  m_channels |= (1 << which_channel);
1751  if (which_channel > TKO_Channel_Extended)
1752  m_channels |= (1 << TKO_Channel_Extended);
1753  }
1754  }
1756  void set_channel_name (channel & c, char const * name, int which_channel = -1);
1758  void set_channel_name (channel & c, int length, int which_channel = -1);
1759 
1760  public:
1761  TK_Color ();
1762  ~TK_Color ();
1763 
1764  TK_Status Read (BStreamFileToolkit & tk);
1765  TK_Status Write (BStreamFileToolkit & tk);
1766  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1767 
1768  TK_Status ReadAscii (BStreamFileToolkit & tk);
1769  TK_Status WriteAscii (BStreamFileToolkit & tk);
1770 
1771  void Reset ();
1772 
1774  void SetGeometry (int m) {
1775  m_mask = m & TKO_Geo_All_Colors;
1776  if ((m & TKO_Geo_Extended_Mask) != 0) {
1777  m_mask |= TKO_Geo_Extended;
1778  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1779  m_mask |= TKO_Geo_Extended_Colors;
1780  if ((m & TKO_Geo_Extended2_Mask) != 0)
1781  m_mask |= TKO_Geo_Extended2;
1782  }
1783  }
1784  }
1786  int GetGeometry () const { return m_mask; }
1788  void SetChannels (int c) {
1789  m_channels = (short)c;
1790  if ((c & (((unsigned int)~0) << (TKO_Channel_Extended_Shift))) != 0)
1791  m_channels |= (1 << TKO_Channel_Extended);
1792  }
1794  int GetChannels () const { return (int)m_channels; }
1795 
1797  void SetDiffuse (float r, float g, float b) { set_channel_rgb (m_diffuse, r, g, b, TKO_Channel_Diffuse); }
1799  void SetDiffuse (float const rgb[]) { SetDiffuse (rgb[0], rgb[1], rgb[2]); }
1801  void SetDiffuseName (char const * name) { set_channel_name (m_diffuse, name, TKO_Channel_Diffuse); }
1803  void SetDiffuseName (int length) { set_channel_name (m_diffuse, length, TKO_Channel_Diffuse); }
1805  float const * GetDiffuse () const { return m_diffuse.m_rgb; }
1807  char const * GetDiffuseName () const { return m_diffuse.m_name; }
1809  char * GetDiffuseName () { return m_diffuse.m_name; }
1810 
1812  void SetSpecular (float r, float g, float b) { set_channel_rgb (m_specular, r, g, b, TKO_Channel_Specular);}
1814  void SetSpecular (float const rgb[]) { SetSpecular (rgb[0], rgb[1], rgb[2]); }
1816  void SetSpecularName (char const * name) { set_channel_name (m_specular, name, TKO_Channel_Specular); }
1818  void SetSpecularName (int length) { set_channel_name (m_specular, length, TKO_Channel_Specular);}
1820  float const * GetSpecular () const { return m_specular.m_rgb; }
1822  char const * GetSpecularName () const { return m_specular.m_name; }
1824  char * GetSpecularName () { return m_specular.m_name; }
1825 
1827  void SetMirror (float r, float g, float b) { set_channel_rgb (m_mirror, r, g, b, TKO_Channel_Mirror); }
1829  void SetMirror (float const rgb[]) { SetMirror (rgb[0], rgb[1], rgb[2]); }
1831  void SetMirrorName (char const * name) { set_channel_name (m_mirror, name, TKO_Channel_Mirror); }
1833  void SetMirrorName (int length) { set_channel_name (m_mirror, length, TKO_Channel_Mirror); }
1835  float const * GetMirror () const { return m_mirror.m_rgb; }
1837  char const * GetMirrorName () const { return m_mirror.m_name; }
1839  char * GetMirrorName () { return m_mirror.m_name; }
1840 
1842  void SetTransmission (float r, float g, float b) { set_channel_rgb (m_transmission, r, g, b, TKO_Channel_Transmission); }
1844  void SetTransmission (float const rgb[]) { SetTransmission (rgb[0], rgb[1], rgb[2]); }
1846  void SetTransmissionName (char const * name) { set_channel_name (m_transmission, name, TKO_Channel_Transmission); }
1848  void SetTransmissionName (int length) { set_channel_name (m_transmission, length, TKO_Channel_Transmission); }
1850  float const * GetTransmission () const { return m_transmission.m_rgb; }
1852  char const * GetTransmissionName () const { return m_transmission.m_name; }
1854  char * GetTransmissionName () { return m_transmission.m_name; }
1855 
1857  void SetEmission (float r, float g, float b) { set_channel_rgb (m_emission, r, g, b, TKO_Channel_Emission);}
1859  void SetEmission (float const rgb[]) { SetEmission (rgb[0], rgb[1], rgb[2]); }
1861  void SetEmissionName (char const * name) { set_channel_name (m_emission, name, TKO_Channel_Emission); }
1863  void SetEmissionName (int length) { set_channel_name (m_emission, length, TKO_Channel_Emission);}
1865  float const * GetEmission () const { return m_emission.m_rgb; }
1867  char const * GetEmissionName () const { return m_emission.m_name; }
1869  char * GetEmissionName () { return m_emission.m_name; }
1870 
1872  void SetEnvironmentName (char const * name) { set_channel_name (m_environment, name, TKO_Channel_Environment); }
1874  void SetEnvironmentName (int length) { set_channel_name (m_environment, length, TKO_Channel_Environment); }
1876  char const * GetEnvironmentName () const { return m_environment.m_name; }
1878  char * GetEnvironmentName () { return m_environment.m_name; }
1879 
1881  void SetBumpName (char const * name) { set_channel_name (m_bump, name, TKO_Channel_Bump); }
1883  void SetBumpName (int length) { set_channel_name (m_bump, length, TKO_Channel_Bump); }
1885  char const * GetBumpName () const { return m_bump.m_name; }
1887  char * GetBumpName () { return m_bump.m_name; }
1888 
1890  void SetGloss (float g) { m_gloss = g; m_channels |= (1<<TKO_Channel_Gloss); }
1892  float GetGloss () const { return m_gloss; }
1894  void SetIndex (float i) { m_index = i; m_channels |= (1<<TKO_Channel_Index); }
1896  float GetIndex () const { return m_index; }
1897 };
1898 
1899 
1901 
1906 class BBINFILETK_API TK_Color_RGB : public BBaseOpcodeHandler {
1907  protected:
1908  int m_mask;
1909  float m_rgb[3];
1910 
1911  public:
1913  TK_Color_RGB () : BBaseOpcodeHandler (TKE_Color_RGB), m_mask (0) {}
1914 
1917  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1918 
1919  TK_Status ReadAscii (BStreamFileToolkit & tk);
1920  TK_Status WriteAscii (BStreamFileToolkit & tk);
1921 
1926  void SetGeometry (int m) {
1927  m_mask = m & TKO_Geo_All_Colors;
1928  if ((m & TKO_Geo_Extended_Mask) != 0) {
1929  m_mask |= TKO_Geo_Extended;
1930  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1931  m_mask |= TKO_Geo_Extended_Colors;
1932  if ((m & TKO_Geo_Extended2_Mask) != 0)
1933  m_mask |= TKO_Geo_Extended2;
1934  }
1935  }
1936  }
1941  int GetGeometry () const { return m_mask; }
1942 
1944  void SetRGB (float r, float g, float b) { m_rgb[0] = r; m_rgb[1] = g; m_rgb[2] = b; }
1946  void SetRGB (float const rgb[]) { SetRGB (rgb[0], rgb[1], rgb[2]); }
1948  float const * GetRGB () const { return m_rgb; }
1949 };
1950 
1951 
1953 
1958 class BBINFILETK_API TK_Color_By_Value : public BBaseOpcodeHandler {
1959  protected:
1960  int m_mask;
1961  float m_value[3];
1962  char m_space;
1963 
1964  public:
1966  TK_Color_By_Value () : BBaseOpcodeHandler (TKE_Color_By_Value), m_mask (0) {}
1967 
1970  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1971 
1972  TK_Status ReadAscii (BStreamFileToolkit & tk);
1973  TK_Status WriteAscii (BStreamFileToolkit & tk);
1974 
1979  void SetGeometry (int m) {
1980  m_mask = m & TKO_Geo_All_Colors;
1981  if ((m & TKO_Geo_Extended_Mask) != 0) {
1982  m_mask |= TKO_Geo_Extended;
1983  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1984  m_mask |= TKO_Geo_Extended_Colors;
1985  if ((m & TKO_Geo_Extended2_Mask) != 0)
1986  m_mask |= TKO_Geo_Extended2;
1987  }
1988  }
1989  }
1994  int GetGeometry () const { return m_mask; }
1995 
1997  void SetSpace (int s) { m_space = (char)s; }
1999  int GetSpace () const { return (int)m_space; }
2000 
2002  void SetValue (float a, float b, float c) {
2003  m_value[0] = a; m_value[1] = b; m_value[2] = c;
2004  }
2006  void SetValue (float const triple[]) { SetValue (triple[0], triple[1], triple[2]); }
2008  float const * GetValue () const { return m_value; }
2009 };
2010 
2011 
2013 
2019 class BBINFILETK_API TK_Color_By_Index : public BBaseOpcodeHandler {
2020  protected:
2021  int m_mask;
2022  int m_index;
2023 
2024  public:
2026  TK_Color_By_Index (unsigned char opcode) : BBaseOpcodeHandler (opcode), m_mask (0), m_index (-1) {}
2027 
2030  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2031 
2032  TK_Status ReadAscii (BStreamFileToolkit & tk);
2033  TK_Status WriteAscii (BStreamFileToolkit & tk);
2034 
2039  void SetGeometry (int m) {
2040  m_mask = m & TKO_Geo_All_Colors;
2041  if ((m & TKO_Geo_Extended_Mask) != 0) {
2042  m_mask |= TKO_Geo_Extended;
2043  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
2044  m_mask |= TKO_Geo_Extended_Colors;
2045  if ((m & TKO_Geo_Extended2_Mask) != 0)
2046  m_mask |= TKO_Geo_Extended2;
2047  }
2048  }
2049  }
2054  int GetGeometry () const { return m_mask; }
2055 
2057  void SetIndex (int i) { m_index = i; }
2059  int GetIndex () const { return m_index; }
2060 };
2061 
2063 
2068 class BBINFILETK_API TK_Color_By_FIndex : public BBaseOpcodeHandler {
2069  protected:
2070  int m_mask;
2071  float m_index;
2072 
2073  public:
2075  TK_Color_By_FIndex () : BBaseOpcodeHandler (TKE_Color_By_FIndex), m_mask (0), m_index (-1.0f) {}
2076 
2079  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2080 
2081  TK_Status ReadAscii (BStreamFileToolkit & tk);
2082  TK_Status WriteAscii (BStreamFileToolkit & tk);
2083 
2088  void SetGeometry (int m) {
2089  m_mask = m & TKO_Geo_All_Colors;
2090  if ((m & TKO_Geo_Extended_Mask) != 0) {
2091  m_mask |= TKO_Geo_Extended;
2092  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
2093  m_mask |= TKO_Geo_Extended_Colors;
2094  if ((m & TKO_Geo_Extended2_Mask) != 0)
2095  m_mask |= TKO_Geo_Extended2;
2096  }
2097  }
2098  }
2103  int GetGeometry () const { return m_mask; }
2104 
2106  void SetIndex (float val) { m_index = val; }
2108  float GetIndex () const { return m_index; }
2109 };
2110 
2111 
2114 
2119 class BBINFILETK_API TK_Color_Map : public BBaseOpcodeHandler {
2120  protected:
2121  int m_length;
2123  float * m_values;
2125  char * m_string;
2126  unsigned char m_format;
2127 
2129  void set_values (int length, float const values[] = 0);
2130 
2131  public:
2134  : BBaseOpcodeHandler (TKE_Color_Map), m_length (0), m_values_length (0), m_values (0), m_string_length (0), m_string (0), m_format (TKO_Map_RGB_Values) {}
2135  ~TK_Color_Map();
2136 
2139  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2140 
2141  TK_Status ReadAscii (BStreamFileToolkit & tk);
2142  TK_Status WriteAscii (BStreamFileToolkit & tk);
2143 
2144  void Reset ();
2145 
2147  void SetFormat (int f) { m_format = (unsigned char)f; }
2149  int GetFormat () const { return (int)m_format; }
2150 
2155  void SetValues (int count, float const values[] = 0) { set_values (count, values); }
2157  float const * GetValues () const { return m_values; }
2159  float * GetValues () { return m_values; }
2161  int GetLength () const { return m_length; }
2162 
2167  void SetString (char const * string);
2172  void SetString (int length);
2176  char const * GetString () const { return m_string; }
2181  char * GetString () { return m_string; }
2182 };
2183 
2185 
2188 
2194 class BBINFILETK_API TK_Callback : public BBaseOpcodeHandler {
2195  protected:
2196  int m_length;
2197  char * m_string;
2200  void set_callback (char const * callback);
2201 
2202  void set_callback (int length);
2203 
2204  public:
2206  TK_Callback () : BBaseOpcodeHandler (TKE_Callback), m_length (0), m_string (0) {}
2207  ~TK_Callback();
2208 
2211  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2212 
2213  TK_Status ReadAscii (BStreamFileToolkit & tk);
2214  TK_Status WriteAscii (BStreamFileToolkit & tk);
2215 
2216  void Reset ();
2217 
2219  void SetCallback (char const * callback) { set_callback (callback); }
2221  void SetCallback (int length) { set_callback (length); }
2223  char const * GetCallback () const { return m_string; }
2225  char * GetCallback () { return m_string; }
2226 };
2227 
2229 
2230 
2231 #if 0
2232 class BBINFILETK_API TK_Radiosity_RayTrace_Options : public BBaseOpcodeHandler {
2233  protected:
2234 
2235  public:
2236  TK_Radiosity_RayTrace_Options () : BBaseOpcodeHandler (TKE_Radiosity_RayTrace_Options) {}
2237  ~TK_Radiosity_RayTrace_Options () {}
2238 
2241 
2242  TK_Status ReadAscii (BStreamFileToolkit & tk);
2243  TK_Status WriteAscii (BStreamFileToolkit & tk);
2244 };
2245 #endif
2246 
2247 
2249 
2255 class BBINFILETK_API TK_Rendering_Options : public BBaseOpcodeHandler {
2256  protected:
2257  int m_mask[3];
2258  int m_value[3];
2259 
2260  unsigned char m_hsr;
2261  unsigned char m_tq;
2262  int m_debug;
2265 
2266  float m_fog_limits[2];
2267 
2270 
2271  unsigned char m_buffer_options_mask;
2272  unsigned char m_buffer_options_value;
2274 
2280  float m_hlr_color[3];
2282  unsigned char m_hlr_weight_units;
2284  unsigned char m_hlr_threshold_units;
2285  unsigned char m_hlr_hsr_algorithm;
2286 
2287  unsigned short m_contour_options;
2288  unsigned short m_isoline_options;
2301  unsigned char * m_isoline_weights_unit;
2302 
2303  unsigned short m_tint_options;
2304  float m_tint_color[3];
2305  float m_tint_range[2];
2307 
2312  float m_ratio[8];
2314  float m_threshold[8];
2317  unsigned char m_clamp;
2318  unsigned char m_num_levels;
2320  float m_tolerance;
2321  float m_bounding[6];
2323  float m_cutoff[8];
2324  unsigned char m_heuristic;
2325  unsigned char m_fallback;
2326 
2340 
2343 
2344  unsigned char m_tessellations;
2346  char m_cylinder[8];
2348  char m_sphere[8];
2349 
2350  float m_gooch_color_range[2];
2354  unsigned short m_transparency_options;
2355 
2356  unsigned char m_cut_geometry;
2357  unsigned char m_cut_geometry_level;
2358  unsigned char m_cut_geometry_match;
2364 
2365  unsigned short m_simple_shadow;
2366  unsigned char m_simple_shadow_blur;
2368  float m_simple_shadow_plane[4];
2369  float m_simple_shadow_light[3];
2370  float m_simple_shadow_color[3];
2371  float m_simple_shadow_opacity;
2372 
2373  unsigned short m_shadow_map;
2374  unsigned short m_shadow_map_resolution;
2375  unsigned char m_shadow_map_samples;
2376 
2377  unsigned short m_simple_reflection;
2378  float m_simple_reflection_plane[4];
2385 
2386  float m_depth_range[2];
2387  float m_screen_range[8];
2388  float m_ambient_up_vector[3];
2389  float m_image_scale[2];
2390  unsigned short m_mask_transform;
2391 
2392  unsigned char m_geometry_options;
2393  float m_dihedral;
2394 
2395  float m_image_tint_color[3];
2396  float m_texture_tint_color[3];
2397  unsigned char m_depth_peeling_layers;
2400 
2405  unsigned char m_display_list_level;
2406  unsigned char m_antialias;
2407 
2408  short m_fbe_mask;
2409  short m_fbe_value;
2410 
2411  float m_eye_dome_lighting_back_color[3];
2412 
2414 
2415  int m_extra;
2416 
2417 #if 0
2418  TK_Radiosity_RayTrace_Options *m_rrt;
2419 #endif
2420 
2421  public:
2425 
2428  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2429 
2430  TK_Status ReadAscii (BStreamFileToolkit & tk);
2431  TK_Status WriteAscii (BStreamFileToolkit & tk);
2432 
2433  void Reset ();
2434 
2436  void SetMask (int m0, int m1=0, int m2=0) {
2437  m_mask[0] = m0;
2438  m_mask[1] = m1;
2439  m_mask[2] = m2;
2440  if (m2 != 0)
2441  m_mask[1] |= TKO_Rendo_Extended;
2442  if (m1 != 0)
2443  m_mask[0] |= TKO_Rendo_Extended;
2444  }
2446  int GetMask (int index=0) const { return m_mask[index]; }
2447 
2449  void SetValue (int v0, int v1=0, int v2=0) { m_value[0] = v0; m_value[1] = v1; m_value[2] = v2; }
2451  int GetValue (int index=0) const { return m_value[index]; }
2452 
2454  void SetHSR (int h) { m_hsr &= 0xF0; m_hsr |= (unsigned char)h & 0x0F; }
2456  int GetHSR () const { return (int)(m_hsr & 0x0F); }
2457 
2459  void SetTransparentHSR (int t) { m_hsr &= 0x0F; m_hsr |= (unsigned char)t << 4; }
2461  int GetTransparentHSR () const { return (int)(m_hsr >> 4); }
2462 
2464  void SetTransparentStyle (int s) { m_transparency_options = (unsigned short)s; }
2466  int GetTransparentStyle () const { return (int)m_transparency_options; }
2467 
2469  void SetTechnology (int t) { m_tq &= 0xF0; m_tq |= (unsigned char)t & 0x0F; }
2471  int GetTechnology () const { return (int)(m_tq & 0x0F); }
2472 
2474  void SetQuantization (int q) { m_tq &= 0x0F; m_tq |= (unsigned char)q << 4; }
2476  int GetQuantization () const { return (int)(m_tq >> 4); }
2477 
2479  void SetDebug (int d) { m_debug = d; }
2481  int GetDebug () const { return m_debug; }
2482 
2484  void SetFaceDisplacement (int d) { m_face_displacement = d; }
2486  int GetFaceDisplacement () const { return m_face_displacement; }
2487 
2489  void SetVertexDisplacement (int d) { m_vertex_displacement = d; }
2491  int GetVertexDisplacement () const { return m_vertex_displacement; }
2492 
2494  void SetGeneralDisplacement (int d) { m_general_displacement = d; }
2496  int GetGeneralDisplacement () const { return m_general_displacement; }
2497 
2499  void SetJoinCutoffAngle (int d) { m_join_cutoff_angle = d; }
2501  int GetJoinCutoffAngle () const { return m_join_cutoff_angle; }
2502 
2504  void SetFogLimits (float n, float f) { m_fog_limits[0] = n; m_fog_limits[1] = f; }
2506  void SetFogLimits (float const l[]) { SetFogLimits (l[0], l[1]); }
2508  float const * GetFogLimits () const { return m_fog_limits; }
2509 
2510 
2512  void SetLockMask (int m) { m_lock.mask = m; }
2514  int GetLockMask () const { return m_lock.mask; }
2515 
2517  void SetLockValue (int v) { m_lock.value = v; }
2519  int GetLockValue () const { return m_lock.value; }
2520 
2525  void SetVisibilityLockMask (int m) { m_lock.visibility_mask = m; }
2530  int GetVisibilityLockMask () const { return m_lock.visibility_mask; }
2531 
2536  void SetVisibilityLockValue (int v) { m_lock.visibility_value = v; }
2541  int GetVisibilityLockValue () const { return m_lock.visibility_value; }
2542 
2543 
2548  void SetColorLockMask (int m) { m_lock.color_mask = m; }
2553  int GetColorLockMask () const { return m_lock.color_mask; }
2554 
2559  void SetColorLockValue (int v) { m_lock.color_value = v; }
2564  int GetColorLockValue () const { return m_lock.color_value; }
2565 
2566 
2571  void SetColorFaceLockMask (int m) { m_lock.color_face_mask = (short)m; }
2576  int GetColorFaceLockMask () const { return m_lock.color_face_mask; }
2577 
2582  void SetColorFaceLockValue (int v) { m_lock.color_face_value = (short)v; }
2587  int GetColorFaceLockValue () const { return m_lock.color_face_value; }
2588 
2589 
2594  void SetColorEdgeLockMask (int m) { m_lock.color_edge_mask = (short)m; }
2599  int GetColorEdgeLockMask () const { return m_lock.color_edge_mask; }
2600 
2605  void SetColorEdgeLockValue (int v) { m_lock.color_edge_value = (short)v; }
2610  int GetColorEdgeLockValue () const { return m_lock.color_edge_value; }
2611 
2612 
2617  void SetColorLineLockMask (int m) { m_lock.color_line_mask = (short)m; }
2622  int GetColorLineLockMask () const { return m_lock.color_line_mask; }
2623 
2628  void SetColorLineLockValue (int v) { m_lock.color_line_value = (short)v; }
2633  int GetColorLineLockValue () const { return m_lock.color_line_value; }
2634 
2635 
2640  void SetColorMarkerLockMask (int m) { m_lock.color_marker_mask = (short)m; }
2645  int GetColorMarkerLockMask () const { return m_lock.color_marker_mask; }
2646 
2651  void SetColorMarkerLockValue (int v) { m_lock.color_marker_value = (short)v; }
2656  int GetColorMarkerLockValue () const { return m_lock.color_marker_value; }
2657 
2658 
2663  void SetColorTextLockMask (int m) { m_lock.color_text_mask = (short)m; }
2668  int GetColorTextLockMask () const { return m_lock.color_text_mask; }
2669 
2674  void SetColorTextLockValue (int v) { m_lock.color_text_value = (short)v; }
2679  int GetColorTextLockValue () const { return m_lock.color_text_value; }
2680 
2681 
2686  void SetColorWindowLockMask (int m) { m_lock.color_window_mask = (short)m; }
2691  int GetColorWindowLockMask () const { return m_lock.color_window_mask; }
2692 
2697  void SetColorWindowLockValue (int v) { m_lock.color_window_value = (short)v; }
2702  int GetColorWindowLockValue () const { return m_lock.color_window_value; }
2703 
2704 
2709  void SetColorFaceContrastLockMask (int m) { m_lock.color_face_contrast_mask = (short)m; }
2714  int GetColorFaceContrastLockMask () const { return m_lock.color_face_contrast_mask; }
2715 
2720  void SetColorFaceContrastLockValue (int v) { m_lock.color_face_contrast_value = (short)v; }
2725  int GetColorFaceContrastLockValue () const { return m_lock.color_face_contrast_value; }
2726 
2727 
2732  void SetColorWindowContrastLockMask (int m) { m_lock.color_window_contrast_mask = (short)m; }
2737  int GetColorWindowContrastLockMask () const { return m_lock.color_window_contrast_mask; }
2738 
2743  void SetColorWindowContrastLockValue (int v) { m_lock.color_window_contrast_value = (short)v; }
2748  int GetColorWindowContrastLockValue () const { return m_lock.color_window_contrast_value; }
2749 
2750 
2755  void SetColorBackLockMask (int m) { m_lock.color_back_mask = (short)m; }
2760  int GetColorBackLockMask () const { return m_lock.color_back_mask; }
2761 
2766  void SetColorBackLockValue (int v) { m_lock.color_back_value = (short)v; }
2771  int GetColorBackLockValue () const { return m_lock.color_back_value; }
2772 
2773 
2778  void SetColorVertexLockMask (int m) { m_lock.color_vertex_mask = (short)m; }
2783  int GetColorVertexLockMask () const { return m_lock.color_vertex_mask; }
2784 
2789  void SetColorVertexLockValue (int v) { m_lock.color_vertex_value = (short)v; }
2794  int GetColorVertexLockValue () const { return m_lock.color_vertex_value; }
2795 
2796 
2801  void SetColorEdgeContrastLockMask (int m) { m_lock.color_edge_contrast_mask = (short)m; }
2806  int GetColorEdgeContrastLockMask () const { return m_lock.color_edge_contrast_mask; }
2807 
2812  void SetColorEdgeContrastLockValue (int v) { m_lock.color_edge_contrast_value = (short)v; }
2817  int GetColorEdgeContrastLockValue () const { return m_lock.color_edge_contrast_value; }
2818 
2819 
2824  void SetColorLineContrastLockMask (int m) { m_lock.color_line_contrast_mask = (short)m; }
2829  int GetColorLineContrastLockMask () const { return m_lock.color_line_contrast_mask; }
2830 
2835  void SetColorLineContrastLockValue (int v) { m_lock.color_line_contrast_value = (short)v; }
2840  int GetColorLineContrastLockValue () const { return m_lock.color_line_contrast_value; }
2841 
2842 
2847  void SetColorMarkerContrastLockMask (int m) { m_lock.color_marker_contrast_mask = (short)m; }
2852  int GetColorMarkerContrastLockMask () const { return m_lock.color_marker_contrast_mask; }
2853 
2858  void SetColorMarkerContrastLockValue (int v) { m_lock.color_marker_contrast_value = (short)v; }
2863  int GetColorMarkerContrastLockValue () const { return m_lock.color_marker_contrast_value; }
2864 
2865 
2870  void SetColorVertexContrastLockMask (int m) { m_lock.color_vertex_contrast_mask = (short)m; }
2875  int GetColorVertexContrastLockMask () const { return m_lock.color_vertex_contrast_mask; }
2876 
2881  void SetColorVertexContrastLockValue (int v) { m_lock.color_vertex_contrast_value = (short)v; }
2886  int GetColorVertexContrastLockValue () const { return m_lock.color_vertex_contrast_value; }
2887 
2888 
2893  void SetColorTextContrastLockMask (int m) { m_lock.color_text_contrast_mask = (short)m; }
2898  int GetColorTextContrastLockMask () const { return m_lock.color_text_contrast_mask; }
2899 
2904  void SetColorTextContrastLockValue (int v) { m_lock.color_text_contrast_value = (short)v; }
2909  int GetColorTextContrastLockValue () const { return m_lock.color_text_contrast_value; }
2910 
2911 
2912 
2913 
2915  void SetForcedLockMask (int m) { m_forced.mask = m; }
2917  int GetForcedLockMask () const { return m_forced.mask; }
2918 
2920  void SetForcedLockValue (int v) { m_forced.value = v; }
2922  int GetForcedLockValue () const { return m_forced.value; }
2923 
2928  void SetVisibilityForcedLockMask (int m) { m_forced.visibility_mask = m; }
2933  int GetVisibilityForcedLockMask () const { return m_forced.visibility_mask; }
2934 
2939  void SetVisibilityForcedLockValue (int v) { m_forced.visibility_value = v; }
2944  int GetVisibilityForcedLockValue () const { return m_forced.visibility_value; }
2945 
2946 
2951  void SetColorForcedLockMask (int m) { m_forced.color_mask = m; }
2956  int GetColorForcedLockMask () const { return m_forced.color_mask; }
2957 
2962  void SetColorForcedLockValue (int v) { m_forced.color_value = v; }
2967  int GetColorForcedLockValue () const { return m_forced.color_value; }
2968 
2969 
2974  void SetColorFaceForcedLockMask (int m) { m_forced.color_face_mask = (short)m; }
2979  int GetColorFaceForcedLockMask () const { return m_forced.color_face_mask; }
2980 
2985  void SetColorFaceForcedLockValue (int v) { m_forced.color_face_value = (short)v; }
2990  int GetColorFaceForcedLockValue () const { return m_forced.color_face_value; }
2991 
2992 
2997  void SetColorEdgeForcedLockMask (int m) { m_forced.color_edge_mask = (short)m; }
3002  int GetColorEdgeForcedLockMask () const { return m_forced.color_edge_mask; }
3003 
3008  void SetColorEdgeForcedLockValue (int v) { m_forced.color_edge_value = (short)v; }
3013  int GetColorEdgeForcedLockValue () const { return m_forced.color_edge_value; }
3014 
3015 
3020  void SetColorLineForcedLockMask (int m) { m_forced.color_line_mask = (short)m; }
3025  int GetColorLineForcedLockMask () const { return m_forced.color_line_mask; }
3026 
3031  void SetColorLineForcedLockValue (int v) { m_forced.color_line_value = (short)v; }
3036  int GetColorLineForcedLockValue () const { return m_forced.color_line_value; }
3037 
3038 
3043  void SetColorMarkerForcedLockMask (int m) { m_forced.color_marker_mask = (short)m; }
3048  int GetColorMarkerForcedLockMask () const { return m_forced.color_marker_mask; }
3049 
3054  void SetColorMarkerForcedLockValue (int v) { m_forced.color_marker_value = (short)v; }
3059  int GetColorMarkerForcedLockValue () const { return m_forced.color_marker_value; }
3060 
3061 
3066  void SetColorTextForcedLockMask (int m) { m_forced.color_text_mask = (short)m; }
3071  int GetColorTextForcedLockMask () const { return m_forced.color_text_mask; }
3072 
3077  void SetColorTextForcedLockValue (int v) { m_forced.color_text_value = (short)v; }
3082  int GetColorTextForcedLockValue () const { return m_forced.color_text_value; }
3083 
3084 
3089  void SetColorWindowForcedLockMask (int m) { m_forced.color_window_mask = (short)m; }
3094  int GetColorWindowForcedLockMask () const { return m_forced.color_window_mask; }
3095 
3100  void SetColorWindowForcedLockValue (int v) { m_forced.color_window_value = (short)v; }
3105  int GetColorWindowForcedLockValue () const { return m_forced.color_window_value; }
3106 
3107 
3112  void SetColorFaceContrastForcedLockMask (int m) { m_forced.color_face_contrast_mask = (short)m; }
3117  int GetColorFaceContrastForcedLockMask () const { return m_forced.color_face_contrast_mask; }
3118 
3123  void SetColorFaceContrastForcedLockValue (int v) { m_forced.color_face_contrast_value = (short)v; }
3128  int GetColorFaceContrastForcedLockValue () const { return m_forced.color_face_contrast_value; }
3129 
3130 
3135  void SetColorWindowContrastForcedLockMask (int m) { m_forced.color_window_contrast_mask = (short)m; }
3140  int GetColorWindowContrastForcedLockMask () const { return m_forced.color_window_contrast_mask; }
3141 
3146  void SetColorWindowContrastForcedLockValue (int v) { m_forced.color_window_contrast_value = (short)v; }
3151  int GetColorWindowContrastForcedLockValue () const { return m_forced.color_window_contrast_value; }
3152 
3153 
3158  void SetColorBackForcedLockMask (int m) { m_forced.color_back_mask = (short)m; }
3163  int GetColorBackForcedLockMask () const { return m_forced.color_back_mask; }
3164 
3169  void SetColorBackForcedLockValue (int v) { m_forced.color_back_value = (short)v; }
3174  int GetColorBackForcedLockValue () const { return m_forced.color_back_value; }
3175 
3176 
3181  void SetColorVertexForcedLockMask (int m) { m_forced.color_vertex_mask = (short)m; }
3186  int GetColorVertexForcedLockMask () const { return m_forced.color_vertex_mask; }
3187 
3192  void SetColorVertexForcedLockValue (int v) { m_forced.color_vertex_value = (short)v; }
3197  int GetColorVertexForcedLockValue () const { return m_forced.color_vertex_value; }
3198 
3199 
3204  void SetColorEdgeContrastForcedLockMask (int m) { m_forced.color_edge_contrast_mask = (short)m; }
3209  int GetColorEdgeContrastForcedLockMask () const { return m_forced.color_edge_contrast_mask; }
3210 
3215  void SetColorEdgeContrastForcedLockValue (int v) { m_forced.color_edge_contrast_value = (short)v; }
3220  int GetColorEdgeContrastForcedLockValue () const { return m_forced.color_edge_contrast_value; }
3221 
3222 
3227  void SetColorLineContrastForcedLockMask (int m) { m_forced.color_line_contrast_mask = (short)m; }
3232  int GetColorLineContrastForcedLockMask () const { return m_forced.color_line_contrast_mask; }
3233 
3238  void SetColorLineContrastForcedLockValue (int v) { m_forced.color_line_contrast_value = (short)v; }
3243  int GetColorLineContrastForcedLockValue () const { return m_forced.color_line_contrast_value; }
3244 
3245 
3250  void SetColorMarkerContrastForcedLockMask (int m) { m_forced.color_marker_contrast_mask = (short)m; }
3255  int GetColorMarkerContrastForcedLockMask () const { return m_forced.color_marker_contrast_mask; }
3256 
3261  void SetColorMarkerContrastForcedLockValue (int v) { m_forced.color_marker_contrast_value = (short)v; }
3266  int GetColorMarkerContrastForcedLockValue () const { return m_forced.color_marker_contrast_value; }
3267 
3268 
3273  void SetColorVertexContrastForcedLockMask (int m) { m_forced.color_vertex_contrast_mask = (short)m; }
3278  int GetColorVertexContrastForcedLockMask () const { return m_forced.color_vertex_contrast_mask; }
3279 
3284  void SetColorVertexContrastForcedLockValue (int v) { m_forced.color_vertex_contrast_value = (short)v; }
3289  int GetColorVertexContrastForcedLockValue () const { return m_forced.color_vertex_contrast_value; }
3290 
3291 
3296  void SetColorTextContrastForcedLockMask (int m) { m_forced.color_text_contrast_mask = (short)m; }
3301  int GetColorTextContrastForcedLockMask () const { return m_forced.color_text_contrast_mask; }
3302 
3307  void SetColorTextContrastForcedLockValue (int v) { m_forced.color_text_contrast_value = (short)v; }
3312  int GetColorTextContrastForcedLockValue () const { return m_forced.color_text_contrast_value; }
3313 
3314 
3315 
3316 
3318  void SetBufferOptionsMask (int v) { m_buffer_options_mask = (unsigned char)v; }
3320  int GetBufferOptionsMask () const { return m_buffer_options_mask; }
3322  void SetBufferOptionsValue (int v) { m_buffer_options_value = (unsigned char) v; }
3324  int GetBufferOptionsValue () const { return m_buffer_options_value; }
3326  void SetBufferSizeLimit (int l) { m_buffer_size_limit = l; }
3328  int GetBufferSizeLimit () const { return m_buffer_size_limit; }
3329 
3330 
3332  void SetStereoSeparation (float s) { m_stereo_separation = s; }
3334  float GetStereoSeparation () const { return m_stereo_separation; }
3336  void SetStereoDistance (float d) { m_stereo_distance = d; }
3338  float GetStereoDistance () const { return m_stereo_distance; }
3339 
3340 
3342  void SetHlrOptions (int o) {
3343  m_hlr_options = o;
3344  if ((o & TKO_Hidden_Line_Extended_Mask) != 0) {
3345  m_hlr_options |= TKO_Hidden_Line_Extended;
3346  if ((o & TKO_Hidden_Line_Extended2_Mask) != 0)
3347  m_hlr_options |= TKO_Hidden_Line_Extended2;
3348  }
3349  }
3351  int GetHlrOptions () const { return m_hlr_options; }
3353  void SetHlrDimFactor (float d) { m_hlr_dim_factor = d; }
3355  float GetHlrDimFactor () const { return m_hlr_dim_factor; }
3357  void SetHlrFaceDisplacement (float d) { m_hlr_face_displacement = d; }
3359  float GetHlrFaceDisplacement () const { return m_hlr_face_displacement; }
3361  void SetHlrLinePattern (int p) { m_hlr_line_pattern = p; }
3363  int GetHlrLinePattern () const { return m_hlr_line_pattern; }
3365  void SetHlrFaceSortingAlgorithm (int a) { m_hlr_hsr_algorithm = (unsigned char)a; }
3367  float GetHlrFaceSortingAlgorithm () const { return m_hlr_hsr_algorithm; }
3368 
3369 
3371  void SetNURBSOptionsMask (int m) {
3372  m_nurbs_options_mask = m;
3373  if ((m & TKO_NURBS_Extended_Mask) != 0)
3374  m_nurbs_options_mask |= TKO_NURBS_Extended;
3375  }
3377  int GetNURBSOptionsMask () const { return m_nurbs_options_mask; }
3379  void SetNURBSOptionsValue (int v) { m_nurbs_options_value = v; }
3381  int GetNURBSOptionsValue () const { return m_nurbs_options_value; }
3383  void SetNURBSCurveBudget (int b) { m_curve_budget = b; }
3385  int GetNURBSCurveBudget () const { return m_curve_budget; }
3387  void SetNURBSCurveContinuedBudget (int b) { m_curve_continued_budget = b; }
3389  int GetNURBSCurveContinuedBudget () const { return m_curve_continued_budget; }
3391  void SetNURBSSurfaceBudget (int b) { m_surface_budget = b; }
3393  int GetNURBSSurfaceBudget () const { return m_surface_budget; }
3395  void SetNURBSSurfaceTrimBudget (int b) { m_surface_trim_budget = b; }
3397  int GetNURBSSurfaceTrimBudget () const { return m_surface_trim_budget; }
3398 
3399 
3401  void SetLodOptionsMask (int v) { m_lod_options_mask = v; }
3403  int GetLodOptionsMask () const { return m_lod_options_mask; }
3405  void SetLodOptionsValue (int v) { m_lod_options_value = v; }
3407  int GetLodOptionsValue () const { return m_lod_options_value; }
3409  void SetLodAlgorithm (int v) { m_lod_algorithm = (char)v; }
3411  int GetLodAlgorithm () const { return m_lod_algorithm; }
3413  void SetLodMinimumTriangleCount (int v) { m_min_triangle_count = v; }
3415  int GetLodMinimumTriangleCount () const { return m_min_triangle_count; }
3417  void SetLodNumLevels (int v) { m_num_levels = (unsigned char)v; }
3419  int GetLodNumLevels () const { return m_num_levels; }
3421  void SetLodClamp (int v) { m_clamp = (unsigned char)v; }
3423  int GetLodClamp () const { return m_clamp; }
3425  void SetLodMaxDegree (int v) { m_max_degree = v; }
3427  int GetLodMaxDegree () const { return m_max_degree; }
3429  void SetLodTolerance (float v) { m_tolerance = v; }
3431  float GetLodTolerance () const { return m_tolerance; }
3433  void SetLodFallback (int v) { m_fallback = (char)v; }
3435  int GetLodFallback () const { return m_fallback; }
3436 
3438  void SetLodBounding (float x1, float y1, float z1, float x2, float y2, float z2) {
3439  m_bounding[0] = x1; m_bounding[1] = y1; m_bounding[2] = z1;
3440  m_bounding[3] = x2; m_bounding[4] = y2; m_bounding[5] = z2;
3441  }
3443  void SetLodBounding (float const s[], float const e[]) {
3444  SetLodBounding (s[0], s[1], s[2], e[0], e[1], e[2]);
3445  }
3447  void SetLodBounding (float const p[]) { SetLodBounding (&p[0], &p[3]); }
3449  float const * GetLodBounding () const { return m_bounding; }
3450 
3452  void SetLodRatio (float r) { m_num_ratios = 1; m_ratio[0] = r; }
3454  void SetLodRatios (int c, float const r[] = 0) {
3455  m_num_ratios = (char)c;
3456  if (r != 0) {
3457  int i;
3458  for (i=0; i<c; ++i)
3459  m_ratio[i] = r[i];
3460  }
3461  }
3463  int GetLodNumRatios () const { return m_num_ratios; }
3465  float const * GetLodRatios () const { return m_ratio; }
3467  float * GetLodRatios () { return m_ratio; }
3468 
3470  void SetLodThresholdType (int v) { m_threshold_type = (char)v; }
3472  int GetLodThresholdType () const { return m_threshold_type; }
3474  void SetLodThreshold (float r) { m_num_thresholds = 1; m_threshold[0] = r; }
3476  void SetLodThresholds (int c, float const r[] = 0) {
3477  m_num_thresholds = (char)c;
3478  if (r != 0) {
3479  int i;
3480  for (i=0; i<c; ++i)
3481  m_threshold[i] = r[i];
3482  }
3483  }
3485  int GetLodNumThresholds () const { return m_num_thresholds; }
3487  float const * GetLodThresholds () const { return m_threshold; }
3489  float * GetLodThresholds () { return m_threshold; }
3490 
3492  void SetLodCutoff (float r) { m_num_cutoffs = 1; m_cutoff[0] = r; }
3494  void SetLodCutoffs (int c, float const r[] = 0) {
3495  m_num_cutoffs = (char)c;
3496  if (r != 0) {
3497  int i;
3498  for (i=0; i<c; ++i)
3499  m_cutoff[i] = r[i];
3500  }
3501  }
3503  int GetLodNumCutoffs () const { return m_num_cutoffs; }
3505  float const * GetLodCutoffs () const { return m_cutoff; }
3507  float * GetLodCutoffs () { return m_cutoff; }
3508 
3509 
3511  void SetTessellationMask (int m) { m_tessellations = (unsigned char)m; }
3513  int GetTessellationMask () const { return m_tessellations; }
3515  void SetCylinderTessellation (int n) { m_num_cylinder = (char)1; m_cylinder[0] = (char)n; }
3517  void SetCylinderTessellations (int c, char const * n = 0) {
3518  m_num_cylinder = (char)c;
3519  if (n != 0) {
3520  int i;
3521  for (i=0; i<c; ++i)
3522  m_cylinder[i] = n[i];
3523  }
3524  }
3526  int GetNumCylinderTessellations () const { return m_num_cylinder; }
3528  char const * GetCylinderTessellations () const { return m_cylinder; }
3530  char * GetCylinderTessellations () { return m_cylinder; }
3532  void SetSphereTessellation (int n) { m_num_sphere = (char)1; m_sphere[0] = (char)n; }
3534  void SetSphereTessellations (int c, char const * n = 0) {
3535  m_num_sphere = (char)c;
3536  if (n != 0) {
3537  int i;
3538  for (i=0; i<c; ++i)
3539  m_sphere[i] = n[i];
3540  }
3541  }
3543  int GetNumSphereTessellations () const { return m_num_sphere; }
3545  char const * GetSphereTessellations () const { return m_sphere; }
3547  char * GetSphereTessellations () { return m_sphere; }
3548 
3550  void SetGeometryOptionsMask (int m) { m_geometry_options = (unsigned char)m; }
3552  int GetGeometryOptionsMask () const { return m_geometry_options; }
3553 
3555  void SetHardEdgeAngle (int m) { m_dihedral = (unsigned char)m; }
3557  float GetHardEdgeAngle () const { return m_dihedral; }
3558 
3560  void SetMaskTransform (int m) { m_mask_transform = (unsigned short)m; }
3562  int GetMaskTransform () const { return (int)m_mask_transform; }
3563 
3564 
3566  void SetCutGeometry (int m) { m_cut_geometry = (unsigned char)m; }
3568  int GetCutGeometry () const { return (int)m_cut_geometry; }
3569 
3571  void SetCutGeometryLevel (int m) { m_cut_geometry_level = (unsigned char)m; }
3573  int GetCutGeometryLevel () const { return (int)m_cut_geometry_level; }
3574 
3576  void SetCutGeometryColorMatch (int m) { m_cut_geometry_match = (unsigned char)m; }
3578  int GetCutGeometryColorMatch () const { return (int)m_cut_geometry_match; }
3579 
3581  void SetCutGeometryTolerance (float m) { m_cut_geometry_tolerance = m; }
3583  float GetCutGeometryTolerance () const { return m_cut_geometry_tolerance; }
3584 
3586  void SetCutGeometryEdgeWeight (float value, int units = TKO_Generic_Size_Unspecified) {
3587  m_cut_geometry_edge_weight = (value > 0.0f) ? value : -1.0f;
3588  m_cut_geometry_edge_weight_units = (value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
3589  }
3591  float GetCutGeometryEdgeWeight () const { return m_cut_geometry_edge_weight; }
3593  int GetCutGeometryEdgeWeightUnits () const { return m_cut_geometry_edge_weight_units; }
3594 
3596  void SetCutGeometryEdgePattern (char const * pattern);
3598  void SetCutGeometryEdgePattern (int length);
3600  char const * GetCutGeometryEdgePattern () const { return m_cut_geometry_edge_pattern; }
3602  char * GetCutGeometryEdgePattern () { return m_cut_geometry_edge_pattern; }
3603 
3604 
3606  void SetDisplayListLevel (int m) { m_display_list_level = (unsigned char)m; }
3608  int GetDisplayListLevel () const { return (int)m_display_list_level; }
3609 
3611  void SetSimpleShadow (int m) {
3612  m_simple_shadow = (unsigned short)m;
3613  if ((m & TKO_Simple_Shadow_Extended_Mask) != 0)
3614  m_simple_shadow |= TKO_Simple_Shadow_Extended;
3615  }
3617  int GetSimpleShadow () const { return (int)m_simple_shadow; }
3618 
3620  void SetSimpleShadowBlur (int m) { m_simple_shadow_blur = (unsigned char)m; }
3622  int GetSimpleShadowBlur () const { return (int)m_simple_shadow_blur; }
3623 
3625  void SetSimpleShadowResolution (int m) { m_simple_shadow_resolution = (unsigned short)m; }
3627  int GetSimpleShadowResolution () const { return (int)m_simple_shadow_resolution; }
3628 
3630  void SetSimpleShadowLight (float x, float y, float z) {
3631  m_simple_shadow_light[0] = x;
3632  m_simple_shadow_light[1] = y;
3633  m_simple_shadow_light[2] = z;
3634  }
3636  void SetSimpleShadowLight (float const l[]) { SetSimpleShadowLight (l[0], l[1], l[2]); }
3638  float const * getSimpleShadowLight () const { return m_simple_shadow_light; }
3639 
3641  void SetSimpleShadowPlane (float a, float b, float c, float d) {
3642  m_simple_shadow_plane[0] = a;
3643  m_simple_shadow_plane[1] = b;
3644  m_simple_shadow_plane[2] = c;
3645  m_simple_shadow_plane[3] = d;
3646  }
3648  void SetSimpleShadowPlane (float const p[]) { SetSimpleShadowPlane (p[0], p[1], p[2], p[3]); }
3650  float const * GetSimpleShadowPlane () const { return m_simple_shadow_plane; }
3651 
3653  void SetSimpleShadowColor (float r, float g, float b)
3654  { m_simple_shadow_color[0] = r; m_simple_shadow_color[1] = g; m_simple_shadow_color[2] = b; }
3656  void SetSimpleShadowColor (float const rgb[]) { SetSimpleShadowColor (rgb[0], rgb[1], rgb[2]); }
3658  float const * GetSimpleShadowColor () const { return m_simple_shadow_color; }
3659 
3661  void SetSimpleShadowOpacity (float o) { m_simple_shadow_opacity = o; }
3663  float GetSimpleShadowOpacity () const { return m_simple_shadow_opacity; }
3664 
3665 
3667  void SetShadowMap (int m) { m_shadow_map = (unsigned char)m; }
3669  int GetShadowMap () const { return (int)m_shadow_map; }
3670 
3672  void SetShadowMapResolution (int m) { m_shadow_map_resolution = (unsigned short)m; }
3674  int GetShadowMapResolution () const { return (int)m_shadow_map_resolution; }
3675 
3677  void SetShadowMapSamples (int m) { m_shadow_map_samples = (unsigned char)m; }
3679  int GetShadowMapSamples () const { return (int)m_shadow_map_samples; }
3680 
3681 
3683  void SetSimpleReflection (int m) { m_simple_reflection = (unsigned short)m; }
3685  int GetSimpleReflection () const { return (int)m_simple_reflection; }
3686 
3688  void SetSimpleReflectionPlane (float a, float b, float c, float d) {
3689  m_simple_reflection_plane[0] = a;
3690  m_simple_reflection_plane[1] = b;
3691  m_simple_reflection_plane[2] = c;
3692  m_simple_reflection_plane[3] = d;
3693  }
3695  void SetSimpleReflectionPlane (float const p[]) { SetSimpleReflectionPlane (p[0], p[1], p[2], p[3]); }
3697  float const * GetSimpleReflectionPlane () const { return m_simple_reflection_plane; }
3698 
3700  void SetSimpleReflectionOpacity (float o) { m_simple_reflection_opacity = o; }
3702  float GetSimpleReflectionOpacity () const { return m_simple_reflection_opacity; }
3703 
3705  void SetSimpleReflectionVisibilityMask (int m) { m_simple_reflection_visibility_mask = m; }
3707  int GetSimpleReflectionVisibilityValue () const { return m_simple_reflection_visibility_value; }
3708 
3709 
3711  void SetDepthRange (float n, float f) { m_depth_range[0] = n; m_depth_range[1] = f; }
3713  void SetDepthRange (float const l[]) { SetDepthRange (l[0], l[1]); }
3715  float const * GetDepthRange () const { return m_depth_range; }
3716 
3717 
3719  void SetScreenRange (float l, float r, float b, float t,
3720  float lo = 0, float ro = 0, float bo = 0, float to = 0)
3721  { m_screen_range[0] = l; m_screen_range[1] = r; m_screen_range[2] = b; m_screen_range[3] = t;
3722  m_screen_range[4] = lo; m_screen_range[5] = ro; m_screen_range[6] = bo; m_screen_range[7] = to; }
3724  void SetScreenRange (float const l[]) { SetScreenRange (l[0], l[1], l[2], l[3]); }
3726  void SetScreenRange (float const l[], float const o[])
3727  { SetScreenRange (l[0], l[1], l[2], l[3], o[0], o[1], o[2], o[3]); }
3729  void SetScreenRange (int n, float const l[])
3730  { if (n == 8) SetScreenRange (l[0], l[1], l[2], l[4], l[5], l[6], l[7], l[8]);
3731  else SetScreenRange (l[0], l[1], l[2], l[3]);
3732  }
3734  float const * GetScreenRange () const { return m_screen_range; }
3735 
3739  void SetAmbientUpVector (float x, float y, float z)
3740  { m_ambient_up_vector[0] = x; m_ambient_up_vector[1] = y; m_ambient_up_vector[2] = z; }
3742  void SetAmbientUpVector (float const v[]) { SetAmbientUpVector (v[0], v[1], v[2]); }
3744  float const * GetAmbientUpVector () const { return m_ambient_up_vector; }
3745 
3747  void SetImageScale (float x, float y) { m_image_scale[0] = x; m_image_scale[1] = y; }
3749  void SetImageScale (float const s[]) { SetImageScale (s[0], s[1]); }
3751  float const * GetImageScale () const { return m_image_scale; }
3752 
3753 
3755  void SetImageTintColor (float r, float g, float b)
3756  { m_image_tint_color[0] = r; m_image_tint_color[1] = g; m_image_tint_color[2] = b; }
3758  void SetImageTintColor (float const rgb[]) { SetImageTintColor (rgb[0], rgb[1], rgb[2]); }
3760  float const * GetImageTintColor () const { return m_image_tint_color; }
3761 
3763  void SetDiffuseTextureTintColor (float r, float g, float b)
3764  { m_texture_tint_color[0] = r; m_texture_tint_color[1] = g; m_texture_tint_color[2] = b; }
3766  void SetDiffuseTextureTintColor (float const rgb[]) { SetDiffuseTextureTintColor (rgb[0], rgb[1], rgb[2]); }
3768  float const * GetDiffuseTextureTintColor () const { return m_texture_tint_color; }
3769 
3771  void SetAntiAlias (int m) { m_antialias = (unsigned char)m; }
3773  int GetAntiAlias () const { return (int)m_antialias; }
3774 
3776  void SetVertexDecimation (float f) { m_vertex_decimation = f; }
3778  float GetVertexDecimation () const { return m_vertex_decimation; }
3779 };
3780 
3782 
3783 
3785 
3791 class BBINFILETK_API TK_Heuristics : public BBaseOpcodeHandler {
3792  protected:
3793  int m_mask;
3794  int m_value;
3795 
3799 
3800  unsigned char m_extras;
3803  unsigned short m_selection_bias;
3810  float m_vector[3];
3813  float m_view_volume[6];
3814 
3815  unsigned char m_ordered_weights_mask;
3816  float m_ordered_weights[TKO_Heur_Order_Count];
3817  unsigned char m_selection_level;
3818  unsigned char m_selection_sorting;
3819  unsigned char m_model_type;
3820 
3821  public:
3823  TK_Heuristics () : BBaseOpcodeHandler (TKE_Heuristics),
3824  m_mask (0), m_value (0), m_culling(0), m_selection_culling(0), m_selection_bias(0),
3825  m_pixel_threshold (0), m_maximum_extent (0), m_maximum_extent_mode(0) {}
3826  ~TK_Heuristics ();
3827 
3830  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
3831 
3832  TK_Status ReadAscii (BStreamFileToolkit & tk);
3833  TK_Status WriteAscii (BStreamFileToolkit & tk);
3834 
3836  void SetMask (int m) {
3837  m_mask = m;
3838  if ((m & TKO_Heuristic_Extended_Mask) != 0)
3839  m_mask |= TKO_Heuristic_Extended;
3840  }
3842  int GetMask () const { return m_mask; }
3843 
3845  void SetValue (int v) { m_value = v; }
3847  int GetValue () const { return m_value; }
3848 
3850  void SetRelatedSelectionLimit (int r) { m_related = r; }
3852  int GetRelatedSelectionLimit () const { return m_related; }
3853 
3855  void SetInternalSelectionLimit (int i) { m_internal_shell = m_internal_polyline = i; }
3857  int GetInternalSelectionLimit () const { return m_internal_shell; }
3858 
3860  void SetInternalShellSelectionLimit (int i) { m_internal_shell = i; }
3862  int GetInternalShellSelectionLimit () const { return m_internal_shell; }
3863 
3865  void SetInternalPolylineSelectionLimit (int i) { m_internal_polyline = i; }
3867  int GetInternalPolylineSelectionLimit () const { return m_internal_polyline; }
3868 
3870  void SetExtras (int e) { m_extras = (unsigned char)e; }
3872  int GetExtras () const { return (int)m_extras; }
3873 
3875  void SetCulling (int c) { m_culling = c; }
3877  int GetCulling () const { return (int)m_culling; }
3879  void SetSelectionCulling (int c) { m_selection_culling = (unsigned short)c; }
3881  int GetSelectionCulling () const { return (int)m_selection_culling; }
3883  void SetSelectionBias (int c) { m_selection_bias = (unsigned short)c; }
3885  int GetSelectionBias () const { return (int)m_selection_bias; }
3887  void SetPixelThreshold (int c) { m_pixel_threshold = c; }
3889  int GetPixelThreshold () const { return m_pixel_threshold; }
3891  void SetMaximumExtent (int c) { m_maximum_extent = c; }
3893  int GetMaximumExtent () const { return m_maximum_extent; }
3895  int GetMaximumExtentMode () const { return m_maximum_extent_mode; }
3897  void SetMaximumExtentMode (int c) { m_maximum_extent_mode = c; }
3899  int GetMaximumExtentLevel () const { return m_maximum_extent_level; }
3901  void SetMaximumExtentLevel (int c) { m_maximum_extent_level = (unsigned char)c; }
3903  void SetHardExtent (int c) { m_hard_extent = c; }
3905  int GetHardExtent () const { return m_hard_extent; }
3907  float const * GetVector () const { return m_vector; }
3909  void SetVector (float x, float y, float z) {
3910  m_vector[0] = x;
3911  m_vector[1] = y;
3912  m_vector[2] = z;
3913  }
3915  void SetVector (float const v[]) { SetVector(v[0], v[1], v[2]); }
3917  float GetVectorTolerance () const { return m_vector_tolerance; }
3919  void SetVectorTolerance (float tol) { m_vector_tolerance = tol; }
3920 
3921  void SetMaxDistance (float m) { m_max_distance = m; }
3923  float GetMaxDistance () const { return m_max_distance; }
3924 
3926  float const * GetViewVolume () const { return m_view_volume; }
3928  void SetViewVolume (float ax, float ay, float az, float bx, float by, float bz) {
3929  m_view_volume[0] = ax;
3930  m_view_volume[1] = ay;
3931  m_view_volume[2] = az;
3932  m_view_volume[3] = bx;
3933  m_view_volume[4] = by;
3934  m_view_volume[5] = bz;
3935  }
3937  void SetViewVolume (float const v[]) { SetViewVolume(v[0], v[1], v[2], v[3], v[4], v[5]); }
3938 
3940  void SetOrderedWeightsMask (int c) { m_ordered_weights_mask = (unsigned char)c; }
3942  int GetOrderedWeightsMask () const { return (int)m_ordered_weights_mask; }
3943 
3945  void SetOrderedWeight (int index, float weight) {
3946  m_ordered_weights[index] = weight;
3947  m_ordered_weights_mask |= 1<<index;
3948  }
3950  float GetOrderedWeight (int index) const { return m_ordered_weights[index]; }
3952  float const * GetOrderedWeights () const { return m_ordered_weights; }
3954  float * GetOrderedWeights () { return m_ordered_weights; }
3955 
3957  void SetSelectionLevel (int l) { m_selection_level = (unsigned char)l; }
3959  int GetSelectionLevel () const { return (int)m_selection_level; }
3960 
3962  void SetSelectionSorting (int s) { m_selection_sorting = (unsigned char)s; }
3964  int GetSelectionSorting () const { return (int)m_selection_sorting; }
3965 
3967  void SetForceDefer (int l) { m_force_defer = l; }
3969  int GetForceDefer () const { return m_force_defer; }
3970 
3971 };
3972 
3974 
3975 
3977 
3983 class BBINFILETK_API TK_Geometry_Options : public BBaseOpcodeHandler {
3984  protected:
3985  unsigned short m_mask;
3986  unsigned short m_value;
3987 
3989  float m_orientation[6];
3992 
3993  public:
3995  TK_Geometry_Options () : BBaseOpcodeHandler (TKE_Geometry_Options),
3996  m_mask (0), m_value (0), m_orientation_count (0),
3997  m_coordinate_system_count (0), m_coordinate_systems (0) {}
3998  ~TK_Geometry_Options ();
3999 
4000  void Reset ();
4001 
4004  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4005 
4006  TK_Status ReadAscii (BStreamFileToolkit & tk);
4007  TK_Status WriteAscii (BStreamFileToolkit & tk);
4008 
4010  void SetMask (int m) { m_mask = (unsigned short)m; }
4012  int GetMask () const { return (int)m_mask; }
4013 
4015  void SetOrientation (int count, float const o[]) {
4016  if (count != 3 && count != 6)
4017  return;
4018  m_orientation_count = (unsigned char)count;
4019  while (count-- > 0)
4020  m_orientation[count] = o[count];
4021  }
4023  int GetOrientationCount () const { return (int) m_orientation_count; }
4025  float const * GetOrientation () const { return m_orientation; }
4026 
4028  void SetCoordinateSystems (int count, char const cs[]) {
4029  m_coordinate_system_count = count;
4030  m_coordinate_systems = new char [count];
4031  while (count-- > 0)
4032  m_coordinate_systems[count] = cs[count];
4033  }
4035  int GetCoordinateSystemCount () const { return m_coordinate_system_count; }
4037  char const * GetCoordinateSystems () const { return m_coordinate_systems; }
4038 };
4039 
4042 
4047 class BBINFILETK_API TK_Visibility : public BBaseOpcodeHandler {
4048  protected:
4049  int m_mask;
4050  int m_value;
4051 
4052  public:
4055  : BBaseOpcodeHandler (TKE_Visibility), m_mask (0), m_value (0) {}
4056 
4059  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4060 
4061  TK_Status ReadAscii (BStreamFileToolkit & tk);
4062  TK_Status WriteAscii (BStreamFileToolkit & tk);
4063 
4067  void SetGeometry (int m) {
4068  m_mask = m & TKO_Geo_All_Visibles;
4069  if ((m & TKO_Geo_Extended_Mask) != 0) {
4070  m_mask |= TKO_Geo_Extended;
4071  if ((m & TKO_Geo_Extended2_Mask) != 0)
4072  m_mask |= TKO_Geo_Extended2;
4073  }
4074  }
4079  int GetGeometry () const { return m_mask; }
4080 
4085  void SetValue (int m) { m_value = m; }
4090  int GetValue () const { return m_value; }
4091 };
4092 
4095 
4102 class BBINFILETK_API TK_Selectability : public BBaseOpcodeHandler {
4103  protected:
4104  int m_mask;
4105  int m_down;
4106  int m_up;
4110 
4111  public:
4114  : BBaseOpcodeHandler (TKE_Selectability),
4115  m_mask (0), m_down (0), m_up (0), m_move_down (0), m_move_up (0), m_invisible (0) {}
4116 
4119  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4120 
4121  TK_Status ReadAscii (BStreamFileToolkit & tk);
4122  TK_Status WriteAscii (BStreamFileToolkit & tk);
4123 
4127  void SetGeometry (int m) {
4128  m_mask = m & TKO_Geo_All_Selects;
4129  if ((m & TKO_Geo_Extended_Mask) != 0)
4130  m_mask |= TKO_Geo_Extended;
4131  }
4136  int GetGeometry () const { return m_mask; }
4137 
4142  void SetDown (int m) { m_down = m; }
4147  int GetDown () const { return m_down; }
4148 
4153  void SetUp (int m) { m_up = m; }
4158  int GetUp () const { return m_up; }
4159 
4164  void SetMoveDown (int m) { m_move_down = m; }
4169  int GetMoveDown () const { return m_move_down; }
4170 
4175  void SetMoveUp (int m) { m_move_up = m; }
4180  int GetMoveUp () const { return m_move_up; }
4181 
4186  void SetWhenInvisible (int m) { m_invisible = m; }
4191  int GetWhenInvisible () const { return m_invisible; }
4192 };
4193 
4195 
4201 class BBINFILETK_API TK_Matrix : public BBaseOpcodeHandler {
4202  protected:
4203  float m_matrix[16];
4204  double m_dmatrix[16];
4205 
4206  public:
4208  TK_Matrix (unsigned char opcode)
4209  : BBaseOpcodeHandler (opcode) {}
4210 
4213  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4214 
4215  TK_Status ReadAscii (BStreamFileToolkit & tk);
4216  TK_Status WriteAscii (BStreamFileToolkit & tk);
4217 
4219  void SetMatrix (float const m[]) {
4220  int i; for (i=0; i<16; i++) m_matrix[i] = m[i];
4221  }
4223  void SetDMatrix (double const m[]) {
4224  int i; for (i=0; i<16; i++) m_dmatrix[i] = m[i];
4225  }
4227  float const * GetMatrix () const { return m_matrix; }
4229  float * GetMatrix () { return m_matrix; }
4231  double const * GetDMatrix () const { return m_dmatrix; }
4233  double * GetDMatrix () { return m_dmatrix; }
4234 };
4235 
4236 
4242 class BBINFILETK_API TK_Enumerated : public BBaseOpcodeHandler {
4243  protected:
4244  char m_index;
4245 
4246  public:
4248  TK_Enumerated (unsigned char opcode)
4249  : BBaseOpcodeHandler (opcode), m_index (0) {}
4250 
4253  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4254 
4255  TK_Status ReadAscii (BStreamFileToolkit & tk);
4256  TK_Status WriteAscii (BStreamFileToolkit & tk);
4257 
4258  void SetIndex (int i) { m_index = (char)i; }
4260  int GetIndex () const { return (int)m_index; }
4261 };
4262 
4263 
4269 class BBINFILETK_API TK_Size : public BBaseOpcodeHandler {
4270  protected:
4271  float m_value;
4272  unsigned char m_units;
4273 
4274  public:
4276  TK_Size (unsigned char opcode)
4277  : BBaseOpcodeHandler (opcode), m_value (0.0f), m_units (TKO_Generic_Size_Unspecified) {}
4278 
4281  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4282 
4283  TK_Status ReadAscii (BStreamFileToolkit & tk);
4284  TK_Status WriteAscii (BStreamFileToolkit & tk);
4285 
4287  void SetSize (float value, int units = TKO_Generic_Size_Unspecified) {
4288  m_value = (value > 0.0f) ? value : 0.0f;
4289  m_units = (m_value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
4290  }
4292  float GetSize () const { return m_value; }
4294  int GetUnits () const { return m_units; }
4295 };
4296 
4301 class BBINFILETK_API TK_Linear_Pattern : public BBaseOpcodeHandler {
4302  protected:
4303  unsigned short m_pattern;
4304 
4305  public:
4307  TK_Linear_Pattern (unsigned char opcode)
4308  : BBaseOpcodeHandler (opcode), m_pattern (0) {}
4309 
4312  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4313 
4314  TK_Status ReadAscii (BStreamFileToolkit & tk);
4315  TK_Status WriteAscii (BStreamFileToolkit & tk);
4316 
4318  void SetPattern (int p) { m_pattern = (unsigned short)p; }
4320  int GetPattern () const { return (int)m_pattern; }
4321 };
4322 
4328 class BBINFILETK_API TK_Named : public BBaseOpcodeHandler {
4329  protected:
4331  char * m_name;
4332  int m_index;
4333 
4334  public:
4336  TK_Named (unsigned char opcode)
4337  : BBaseOpcodeHandler (opcode), m_name_length (0), m_name (0), m_index (0) {}
4338  ~TK_Named();
4339 
4342  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4343 
4344  TK_Status ReadAscii (BStreamFileToolkit & tk);
4345  TK_Status WriteAscii (BStreamFileToolkit & tk);
4346 
4347  void Reset ();
4348 
4350  void SetName (char const * name);
4352  void SetName (int length);
4354  char const * GetName () const { return m_name; }
4356  char * GetName () { return m_name; }
4357 
4359  void SetIndex (int i) { Reset(); m_index = i; }
4361  int GetIndex () const { return (int)m_index; }
4362 };
4363 
4364 
4365 
4372 class BBINFILETK_API TK_Streaming : public BBaseOpcodeHandler {
4373  protected:
4374  bool m_flag;
4375 
4376  public:
4379 
4382  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4383 
4384  TK_Status ReadAscii (BStreamFileToolkit & tk);
4385  TK_Status WriteAscii (BStreamFileToolkit & tk);
4386 
4387  void SetStreaming (bool s) { m_flag = s; }
4389  bool GetStreaming () const { return m_flag; }
4390 };
4391 
4394 
4400 class BBINFILETK_API TK_Conditions : public BBaseOpcodeHandler {
4401  protected:
4402  int m_length;
4403  char * m_string;
4405  public:
4407  TK_Conditions () : BBaseOpcodeHandler (TKE_Conditions), m_length (0), m_string (0) {}
4408  ~TK_Conditions();
4409 
4412  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4413 
4414  TK_Status ReadAscii (BStreamFileToolkit & tk);
4415  TK_Status WriteAscii (BStreamFileToolkit & tk);
4416 
4417  void Reset ();
4418 
4420  void SetConditions (char const * options);
4422  void SetConditions (int length);
4424  char const * GetConditions () const { return m_string; }
4426  char * GetConditions () { return m_string; }
4428  int GetLength() { return m_length; }
4429 };
4430 
4431 
4434 
4439 class BBINFILETK_API TK_Conditional_Action : public BBaseOpcodeHandler {
4440  protected:
4441  short m_type;
4442  short m_options;
4443  int m_length;
4444  char * m_string;
4446  public:
4448  TK_Conditional_Action () : BBaseOpcodeHandler (TKE_Conditional_Action), m_length (0), m_string (0) {}
4450 
4453  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4454 
4455  TK_Status ReadAscii (BStreamFileToolkit & tk);
4456  TK_Status WriteAscii (BStreamFileToolkit & tk);
4457 
4458  void Reset ();
4459 
4461  void SetCondition (char const * options);
4463  void SetCondition (int length);
4465  char const * GetCondition () const { return m_string; }
4467  char * GetCondition () { return m_string; }
4469  int GetLength() { return m_length; }
4470 
4472  void SetAction (int at) { m_type = (short)at; }
4474  int GetAction () const { return (int)m_type; }
4476  void SetOptions (int at) { m_options = (short)at; }
4478  int GetOptions () const { return (int)m_options; }
4479 };
4480 
4483 
4489 class BBINFILETK_API TK_User_Options : public BBaseOpcodeHandler {
4490  protected:
4491  int m_length;
4492  char * m_string;
4497  void set_options (char const * options);
4498  void set_options (int length);
4499 
4500  public:
4502  TK_User_Options () : BBaseOpcodeHandler (TKE_User_Options), m_length (0), m_string (0),
4503  m_indices (0), m_unicode (0), m_index_data(0) {}
4504  ~TK_User_Options();
4505 
4508  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4509 
4510  TK_Status ReadAscii (BStreamFileToolkit & tk);
4511  TK_Status WriteAscii (BStreamFileToolkit & tk);
4512 
4513  void Reset ();
4514 
4516  void SetOptions (char const * options) { set_options (options); }
4518  void SetOptions (int length) { set_options (length); }
4520  char const * GetOptions () const { return m_string; }
4522  char * GetOptions () { return m_string; }
4524  int GetLength() { return m_length; }
4525 };
4526 
4529 
4535 class BBINFILETK_API TK_Unicode_Options : public BBaseOpcodeHandler {
4536  protected:
4537  int m_length;
4538  unsigned short * m_string;
4540  public:
4542  TK_Unicode_Options () : BBaseOpcodeHandler (TKE_Unicode_Options), m_length (0), m_string (0) {}
4543  ~TK_Unicode_Options();
4544 
4547  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4548 
4549  TK_Status ReadAscii (BStreamFileToolkit & tk);
4550  TK_Status WriteAscii (BStreamFileToolkit & tk);
4551 
4552  void Reset ();
4553 
4555  void SetOptions (unsigned short const * options);
4557  void SetOptions (int length);
4559  unsigned short const * GetOptions () const { return m_string; }
4561  unsigned short * GetOptions () { return m_string; }
4563  int GetLength() { return m_length; }
4564 };
4565 
4567 
4573 class BBINFILETK_API TK_User_Index : public BBaseOpcodeHandler {
4574  protected:
4575  int m_count;
4576  int * m_indices;
4577  HLONG * m_values;
4579  void set_indices (int count, int const indices[], POINTER_SIZED_INT const values[]);
4580  void set_indices (int count);
4581 
4582  public:
4585  : BBaseOpcodeHandler (TKE_User_Index), m_count (0), m_indices (0), m_values (0), m_current_value(0) {}
4586  ~TK_User_Index();
4587 
4590  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4591 
4592  TK_Status ReadAscii (BStreamFileToolkit & tk);
4593  TK_Status WriteAscii (BStreamFileToolkit & tk);
4594 
4595  void Reset ();
4596 
4598  void SetIndices (int count, int const indices[], POINTER_SIZED_INT const values[])
4599  { set_indices (count, indices, values); }
4601  void SetIndices (int count) { set_indices (count); }
4603  int GetCount () const { return m_count; }
4605  int const * GetIndices () const { return m_indices; }
4607  int * GetIndices () { return m_indices; }
4609  HLONG const * GetValues () const { return m_values; }
4611  HLONG * GetValues () { return m_values; }
4612 };
4613 
4615 
4621 class BBINFILETK_API TK_User_Index_Data : public BBaseOpcodeHandler {
4622 protected:
4623  int m_count;
4624  int * m_indices;
4625  void ** m_values;
4626  int * m_sizes;
4627 
4629  void set_indices (int count, int const indices[], void const * values[], int const sizes[]);
4630  void set_indices (int count);
4631  void FreeMem ();
4632 
4633 public:
4636  : BBaseOpcodeHandler (TKE_User_Index_Data), m_count (0), m_indices (0), m_values (0), m_sizes(0), m_current_value(0) {}
4637  ~TK_User_Index_Data();
4638 
4641  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4642 
4643  void Reset ();
4644 
4646  void SetIndices (int count, int const indices[], void const * values[], int const sizes[]) {
4647  set_indices (count, indices, values, sizes);
4648  }
4649 
4651  void SetIndices (int count) { set_indices (count);}
4652 
4654  int GetCount () const { return m_count;}
4655 
4657  int const * GetIndices () const { return m_indices;}
4658 
4660  int * GetIndices () { return m_indices;}
4661 
4663  void ** const GetValues () const { return m_values;}
4664 
4666  void ** const GetValues () { return m_values;}
4667 
4669  int const * GetSizes () const { return m_sizes;}
4670 
4672  int * GetSizes () { return m_sizes;}
4673 };
4674 
4675 
4677 
4682 class BBINFILETK_API TK_User_Value : public BBaseOpcodeHandler {
4683  protected:
4684  HLONG m_value;
4685 
4686  public:
4689  : BBaseOpcodeHandler (TKE_User_Value), m_value (0) {}
4690 
4693  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4694 
4695  TK_Status ReadAscii (BStreamFileToolkit & tk);
4696  TK_Status WriteAscii (BStreamFileToolkit & tk);
4697 
4699  void SetValue (HLONG v) { m_value = v; }
4701  HLONG GetValue () const { return m_value; }
4702 };
4703 
4704 
4706 
4711 class BBINFILETK_API2 TK_Camera : public BBaseOpcodeHandler {
4712  protected:
4716  float m_settings[14];
4718  double m_dsettings[14];
4720  float m_details[3];
4721  unsigned char m_projection;
4722  int m_length;
4723  char * m_name;
4726  void set_name (char const * name);
4727 
4728  void set_name (int length);
4729 
4730  public:
4732  TK_Camera (unsigned char opcode = TKE_Camera)
4733  : BBaseOpcodeHandler (opcode), m_length (0), m_name (0) {
4734  int i;
4735  int count = (int)(sizeof(m_settings) / sizeof(m_settings[0]));
4736  for (i = 0; i < count; i++) {
4737  m_settings[i] = 0;
4738  m_dsettings[i] = 0;
4739  }
4740  }
4741  ~TK_Camera();
4742 
4745  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4746 
4747  TK_Status ReadAscii (BStreamFileToolkit & tk);
4748  TK_Status WriteAscii (BStreamFileToolkit & tk);
4749 
4751  void SetPosition (float x, float y, float z)
4752  { m_settings[0] = x; m_settings[1] = y; m_settings[2] = z; }
4754  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
4756  float const * GetPosition () const { return &m_settings[0]; }
4758  void GetPosition (float p[]) const { memcpy(p, GetPosition(), 3*sizeof(float)); }
4759 
4761  void SetDPosition (double x, double y, double z)
4762  { m_dsettings[0] = x; m_dsettings[1] = y; m_dsettings[2] = z; }
4764  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
4766  double const * GetDPosition () const { return &m_dsettings[0]; }
4768  void GetDPosition (double p[]) const { memcpy(p, GetDPosition(), 3*sizeof(double)); }
4769 
4771  void SetTarget (float x, float y, float z)
4772  { m_settings[3] = x; m_settings[4] = y; m_settings[5] = z; }
4774  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
4776  float const * GetTarget () const { return &m_settings[3]; }
4778  void GetTarget (float t[]) const { memcpy(t, GetTarget(), 3*sizeof(float)); }
4779 
4781  void SetDTarget (double x, double y, double z)
4782  { m_dsettings[3] = x; m_dsettings[4] = y; m_dsettings[5] = z; }
4784  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
4786  double const * GetDTarget () const { return &m_dsettings[3]; }
4788  void GetDTarget (double t[]) const { memcpy(t, GetDTarget(), 3*sizeof(double)); }
4789 
4791  void SetUpVector (float x, float y, float z)
4792  { m_settings[6] = x; m_settings[7] = y; m_settings[8] = z; }
4794  void SetUpVector (float const u[]) { SetUpVector (u[0], u[1], u[2]); }
4796  float const * GetUpVector () const { return &m_settings[6]; }
4798  void GetUpVector (float u[]) const { memcpy(u,GetUpVector(),3*sizeof(float)); }
4799 
4801  void SetDUpVector (double x, double y, double z)
4802  { m_dsettings[6] = x; m_dsettings[7] = y; m_dsettings[8] = z; }
4804  void SetDUpVector (double const u[]) { SetDUpVector (u[0], u[1], u[2]); }
4806  double const * GetDUpVector () const { return &m_dsettings[6]; }
4808  void GetDUpVector (double u[]) const { memcpy(u, GetDUpVector(), 3*sizeof(double)); }
4809 
4811  void SetField (float w, float h) { m_settings[9] = w; m_settings[10] = h; }
4813  void SetField (float const f[]) { SetField (f[0], f[1]); }
4815  float const * GetField () const { return &m_settings[9]; }
4817  void GetField (float f[]) const { memcpy(f,GetField(),2*sizeof(float)); }
4818 
4820  void SetDField (double w, double h) { m_dsettings[9] = w; m_dsettings[10] = h; }
4822  void SetDField (double const f[]) { SetDField (f[0], f[1]); }
4824  double const * GetDField () const { return &m_dsettings[9]; }
4826  void GetDField (double f[]) const { memcpy(f, GetDField(), 2*sizeof(double)); }
4827 
4828 
4830  void SetOblique (float h, float v) { m_details[0] = h; m_details[1] = v;
4831  m_projection &= ~TKO_Camera_Oblique_Mask;
4832  if (h != 0.0f) m_projection |= TKO_Camera_Oblique_Y;
4833  if (v != 0.0f) m_projection |= TKO_Camera_Oblique_Mask;
4834  }
4836  void SetOblique (float const o[]) { SetOblique (o[0], o[1]); }
4838  float const * GetOblique () const { return m_details; }
4840  void GetOblique (float o[]) const { memcpy(o, GetOblique(), 2*sizeof(float)); }
4841 
4843  void SetNearLimit (float l) { m_details[2] = l;
4844  m_projection &= ~TKO_Camera_Near_Limit;
4845  if (l != 0.0f) m_projection |= TKO_Camera_Near_Limit;
4846  }
4848  float GetNearLimit () const { return m_details[2]; }
4849 
4850 
4852  void SetProjection (int p) { m_projection = (char)p; }
4854  int GetProjection () const { return (int)m_projection; }
4855 
4856 
4858  void SetView (char const * name) { set_name (name); }
4860  void SetView (int length) { set_name (length); }
4862  char const * GetView () const { return m_name; }
4864  char * GetView () { return m_name; }
4865 };
4866 
4868 
4873 class BBINFILETK_API TK_Window : public BBaseOpcodeHandler {
4874  protected:
4875  float m_window[8];
4876  unsigned char m_options;
4877 
4878  public:
4881  : BBaseOpcodeHandler (TKE_Window), m_options (0) {}
4882 
4885  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4886 
4887  TK_Status ReadAscii (BStreamFileToolkit & tk);
4888  TK_Status WriteAscii (BStreamFileToolkit & tk);
4889 
4891  void SetWindow (float l, float r, float b, float t,
4892  float lo = 0, float ro = 0, float bo = 0, float to = 0)
4893  { m_window[0] = l; m_window[1] = r; m_window[2] = b; m_window[3] = t;
4894  m_window[4] = lo; m_window[5] = ro; m_window[6] = bo; m_window[7] = to; }
4896  void SetWindow (float const w[]) { SetWindow (w[0], w[1], w[2], w[3]); }
4898  void SetWindow (float const w[], float const o[])
4899  { SetWindow (w[0], w[1], w[2], w[3], o[0], o[1], o[2], o[3]); }
4901  void SetWindow (int n, float const w[])
4902  { if (n == 8) SetWindow (w[0], w[1], w[2], w[4], w[5], w[6], w[7], w[8]);
4903  else SetWindow (w[0], w[1], w[2], w[3]);
4904  }
4906  float const * GetWindow () const { return m_window; }
4907 
4909  void SetOptions (int opt) { m_options = (unsigned char)opt; }
4911  int GetOptions () const { return m_options; }
4912 };
4913 
4914 
4915 
4917 
4924 class BBINFILETK_API TK_Text_Font : public BBaseOpcodeHandler {
4925  protected:
4926  int m_mask;
4927  int m_value;
4929  char * m_names;
4930  float m_size;
4931  float m_tolerance;
4932  float m_rotation;
4933  float m_slant;
4940  int m_renderers[2];
4941  int m_preferences[2];
4944  char * m_shape;
4945  char * m_style;
4947  float m_margins[4];
4948  unsigned char m_margin_units[4];
4949  unsigned char m_size_units;
4950  unsigned char m_tolerance_units;
4951  unsigned char m_space_units;
4952  unsigned char m_greeking_units;
4953  unsigned char m_greeking_mode;
4954  unsigned char m_transforms;
4955  unsigned char m_renderer_cutoff_units;
4957  unsigned char m_layout;
4958 
4959  void set_names (int length);
4960  void set_names (char const * names);
4961 
4962  public:
4965  : BBaseOpcodeHandler (TKE_Text_Font), m_names_length (0), m_names (0)
4966  , m_shape_length (0), m_style_length (0), m_shape (0), m_style (0) {}
4967  ~TK_Text_Font ();
4968 
4971  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4972 
4973  TK_Status ReadAscii (BStreamFileToolkit & tk);
4974  TK_Status WriteAscii (BStreamFileToolkit & tk);
4975 
4976  void Reset ();
4977 
4979  void SetMask (int m) {
4980  m_mask = m;
4981  if ((m & TKO_Font_Extended2_Mask) != 0)
4982  m_mask |= TKO_Font_Extended2;
4983  if ((m & TKO_Font_Extended_Mask) != 0)
4984  m_mask |= TKO_Font_Extended;
4985  }
4987  int GetMask () const { return m_mask; }
4988 
4990  void SetValue (int v) { m_value = v; }
4992  int GetValue () const { return m_value; }
4993 
4995  void SetNames (char const * names) { set_names (names); }
4997  void SetNames (int length) { set_names (length); }
4999  char const * GetNames () const { return m_names; }
5001  char * GetNames () { return m_names; }
5002 
5004  void SetShape (char const * shape);
5006  void SetShape (int length);
5008  char const * GetShape () const { return m_shape; }
5010  char * GetShape () { return m_shape; }
5011 
5013  void SetStyle (char const * shape);
5015  void SetStyle (int length);
5017  char const * GetStyle () const { return m_style; }
5019  char * GetStyle () { return m_style; }
5020 
5022  void SetSize (float s) { m_size = s; }
5024  float GetSize () const { return m_size; }
5025 
5027  void SetSizeUnits (int u) { m_size_units = (unsigned char)u; }
5029  int GetSizeUnits () const { return (int)m_size_units; }
5030 
5032  void SetTolerance (float t) { m_tolerance = t; }
5034  float GetTolerance () const { return m_tolerance; }
5035 
5037  void SetToleranceUnits (int u) { m_tolerance_units = (unsigned char)u; }
5039  int GetToleranceUnits () const { return (int)m_tolerance_units; }
5040 
5042  void SetRotation (float r) { m_rotation = r; }
5044  float GetRotation () const { return m_rotation; }
5045 
5047  void SetSlant (float s) { m_slant = s; }
5049  float GetSlant () const { return m_slant; }
5050 
5052  void SetWidthScale (float s) { m_width_scale = s; }
5054  float GetWidthScale () const { return m_width_scale; }
5055 
5057  void SetExtraSpace (float s) { m_extra_space = s; }
5059  float GetExtraSpace () const { return m_extra_space; }
5060 
5062  void SetExtraSpaceUnits (int u) { m_space_units = (unsigned char)u; }
5064  int GetExtraSpaceUnits () const { return (int)m_space_units; }
5065 
5067  void SetLineSpacing (float s) { m_line_spacing = s; }
5069  float GetLineSpacing () const { return m_line_spacing; }
5070 
5072  void SetTransforms (int t) { m_transforms = (unsigned char)t; }
5074  int GetTransforms () const { return (int)m_transforms; }
5075 
5077  void SetGreekingLimit (float s) { m_greeking_limit = s; }
5079  float GetGreekingLimit () const { return m_greeking_limit; }
5080 
5082  void SetGreekingLimitUnits (int u) { m_greeking_units = (unsigned char)u; }
5084  int GetGreekingLimitUnits () const { return (int)m_greeking_units; }
5085 
5087  void SetGreekingMode (int m) { m_greeking_mode = (unsigned char)m; }
5089  int GetGreekingMode () const { return (int)m_greeking_mode; }
5090 
5091 
5093  void SetRenderer (int r) { m_renderers[0] = m_renderers[1] = r; }
5095  int GetRenderer () const { return m_renderers[0]; }
5096 
5098  void SetRenderers (int r1, int r2) { m_renderers[0] = r1; m_renderers[1] = r2; }
5100  int const * GetRenderers () const { return m_renderers; }
5101 
5103  void SetRendererCutoff (float s) { m_renderer_cutoff = s; }
5105  float GetRendererCutoff () const { return m_renderer_cutoff; }
5106 
5108  void SetRendererCutoffUnits (int u) { m_renderer_cutoff_units = (unsigned char)u; }
5110  int GetRendererCutoffUnits () const { return (int)m_renderer_cutoff_units; }
5111 
5112 
5114  void SetPreference (int r) { m_preferences[0] = m_preferences[1] = r; }
5116  int GetPreference () const { return m_preferences[0]; }
5117 
5119  void SetPreferences (int r1, int r2) { m_preferences[0] = r1; m_preferences[1] = r2; }
5121  int const * GetPreferences () const { return m_preferences; }
5122 
5124  void SetPreferenceCutoff (float s) { m_preference_cutoff = s; }
5126  float GetPreferenceCutoff () const { return m_preference_cutoff; }
5127 
5129  void SetPreferenceCutoffUnits (int u) { m_preference_cutoff_units = (unsigned char)u; }
5131  int GetPreferenceCutoffUnits () const { return (int)m_preference_cutoff_units; }
5132 
5134  void SetLayout (int l) {m_layout = (unsigned char)l;}
5136  int GetLayout () const {return (int)m_layout;}
5137 };
5138 
5140 
5142 
5152 
5164 class BBINFILETK_API2 TK_Bounding : public BBaseOpcodeHandler {
5165  protected:
5166  double m_dvalues[6];
5167  float m_values[6];
5168  char m_type;
5169  bool m_is_valid;
5170  public:
5172  TK_Bounding (unsigned char opcode)
5173  : BBaseOpcodeHandler (opcode) {}
5175  TK_Bounding (unsigned char opcode, float min[], float max[])
5176  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5177  m_values[0] = min[0]; m_values[1] = min[1]; m_values[2] = min[2];
5178  m_values[3] = max[0]; m_values[4] = max[1]; m_values[5] = max[2];
5179  }
5181  TK_Bounding (unsigned char opcode, float center[], float radius)
5182  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5183  m_values[0] = center[0]; m_values[1] = center[1]; m_values[2] = center[2];
5184  m_values[3] = radius;
5185  }
5187  TK_Bounding (unsigned char opcode, double min[], double max[])
5188  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5189  m_dvalues[0] = min[0]; m_dvalues[1] = min[1]; m_dvalues[2] = min[2];
5190  m_dvalues[3] = max[0]; m_dvalues[4] = max[1]; m_dvalues[5] = max[2];
5192  }
5194  TK_Bounding (unsigned char opcode, double center[], double radius)
5195  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5196  m_dvalues[0] = center[0]; m_dvalues[1] = center[1]; m_dvalues[2] = center[2];
5197  m_dvalues[3] = radius;
5199  }
5200 
5203  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5204 
5205  TK_Status ReadAscii (BStreamFileToolkit & tk);
5206  TK_Status WriteAscii (BStreamFileToolkit & tk);
5207 };
5208 
5210 
5212 
5218 class BBINFILETK_API TK_Point : public BBaseOpcodeHandler {
5219  protected:
5220  float m_point[3];
5221  double m_dpoint[3];
5222  char m_options;
5223 
5224  public:
5226  TK_Point (unsigned char opcode)
5227  : BBaseOpcodeHandler (opcode) {
5228  m_point[0] = m_point[1] = m_point[2] = 0;
5229  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5230  m_options = 0;
5231  };
5232 
5235  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5236 
5237  TK_Status ReadAscii (BStreamFileToolkit & tk);
5238  TK_Status WriteAscii (BStreamFileToolkit & tk);
5239 
5240  void Reset(void) {
5241  m_point[0] = m_point[1] = m_point[2] = 0;
5242  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5243  m_options = 0;
5245  };
5246 
5247 
5248 
5250  void SetPoint (float x, float y, float z) { m_point[0] = x; m_point[1] = y; m_point[2] = z; }
5252  void SetPoint (float const p[]) { SetPoint (p[0], p[1], p[2]); }
5254  float const * GetPoint () const { return m_point; }
5255 
5257  void SetDPoint (double x, double y, double z) { m_dpoint[0] = x; m_dpoint[1] = y; m_dpoint[2] = z; }
5259  void SetDPoint (double const p[]) { SetDPoint (p[0], p[1], p[2]); }
5261  double const * GetDPoint () const { return m_dpoint; }
5262 
5264  void SetOptions (int o) { m_options = (char)o; }
5266  int GetOptions () const { return (int)m_options; }
5267 
5268 };
5269 
5270 
5271 
5273 
5278 class BBINFILETK_API TK_Line : public BBaseOpcodeHandler {
5279  protected:
5281  float m_points[6];
5283  double m_dpoints[6];
5284 
5285  public:
5287  TK_Line (unsigned char opcode = TKE_Line)
5288  : BBaseOpcodeHandler (opcode) {}
5289 
5292  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5293 
5294  TK_Status ReadAscii (BStreamFileToolkit & tk);
5295  TK_Status WriteAscii (BStreamFileToolkit & tk);
5296 
5298  void SetPoints (float x1, float y1, float z1, float x2, float y2, float z2) {
5299  m_points[0] = x1; m_points[1] = y1; m_points[2] = z1;
5300  m_points[3] = x2; m_points[4] = y2; m_points[5] = z2;
5301  }
5303  void SetPoints (float const s[], float const e[]) {
5304  SetPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5305  }
5307  void SetPoints (float const p[]) { SetPoints (&p[0], &p[3]); }
5309  float const * GetPoints () const { return m_points; }
5310 
5312  void SetDPoints (double x1, double y1, double z1, double x2, double y2, double z2) {
5313  m_dpoints[0] = x1; m_dpoints[1] = y1; m_dpoints[2] = z1;
5314  m_dpoints[3] = x2; m_dpoints[4] = y2; m_dpoints[5] = z2;
5315  }
5317  void SetDPoints (double const s[], double const e[]) {
5318  SetDPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5319  }
5321  void SetDPoints (double const p[]) { SetDPoints (&p[0], &p[3]); }
5323  double const * GetDPoints () const { return m_dpoints; }
5324 
5325 };
5326 
5327 
5328 
5330 
5337 class BBINFILETK_API TK_Polypoint : public BBaseOpcodeHandler {
5338  protected:
5339  int m_count;
5341  float * m_points;
5342  double * m_dpoints;
5345  void set_points (int count, float const points[] = 0) { SetPoints (count, points); }
5346  public:
5350  TK_Polypoint (unsigned char opcode)
5351  : BBaseOpcodeHandler (opcode), m_count (0), m_allocated (0), m_points (0), m_dpoints (0) {}
5352  ~TK_Polypoint();
5353 
5356  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5357 
5358  TK_Status ReadAscii (BStreamFileToolkit & tk);
5359  TK_Status WriteAscii (BStreamFileToolkit & tk);
5360 
5361  void Reset ();
5362 
5365  void SetPoints (int count, float const points[] = 0);
5367  float const * GetPoints () const { return m_points; }
5369  float * GetPoints () { return m_points; }
5370 
5373  void SetDPoints (int count, double const points[] = 0);
5375  double const * GetDPoints () const { return m_dpoints; }
5377  double * GetDPoints () { return m_dpoints; }
5378 
5380  int GetCount () const { return m_count; }
5381 
5382 };
5383 
5384 
5385 
5386 
5387 #define NC_HAS_WEIGHTS 0x01
5388 #define NC_HAS_KNOTS 0x02
5389 #define NC_HAS_START 0x04
5390 #define NC_HAS_END 0x08
5391 
5392 
5398 class BBINFILETK_API TK_NURBS_Curve : public BBaseOpcodeHandler {
5399  protected:
5400  unsigned char m_optionals;
5401  unsigned char m_degree;
5406  float *m_weights;
5407  float *m_knots;
5408  float m_start;
5409  float m_end;
5411  void set_curve (int degree, int control_count, float const points[] = 0,
5413  float const weights[] = 0, float const knots[] = 0,
5414  float start = 0.0f, float end = 1.0f);
5415  public:
5416  TK_NURBS_Curve();
5417  ~TK_NURBS_Curve();
5418 
5421  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5422 
5423  TK_Status ReadAscii (BStreamFileToolkit & tk);
5424  TK_Status WriteAscii (BStreamFileToolkit & tk);
5425 
5426  void Reset ();
5427 
5429  void SetCurve (int degree, int control_count, float const points[] = 0,
5430  float const weights[] = 0, float const knots[] = 0,
5431  float start = 0.0f, float end = 1.0f) {
5432  set_curve (degree, control_count, points, weights, knots, start, end);
5433  }
5434  void SetDCurve (int degree, int control_count, double const points[] = 0,
5435  float const weights[] = 0, float const knots[] = 0,
5436  float start = 0.0f, float end = 1.0f);
5437 
5438  float const * GetPoints () const { return m_control_points; }
5439  float * GetPoints () { return m_control_points; }
5440  double const * GetDPoints () const { return m_dcontrol_points; }
5441  double * GetDPoints () { return m_dcontrol_points; }
5443  int GetDegree () const { return m_degree; }
5444  int GetCount () const { return m_control_point_count; }
5445  float const * GetWeights () const { return m_weights; }
5446  float * GetWeights () { return m_weights; }
5447  float const * GetKnots () const { return m_knots; }
5448  float * GetKnots () { return m_knots; }
5450  void SetStart (float s) { m_start = s; }
5451  float GetStart () const { return m_start; }
5452  void SetEnd (float e) { m_end = e; }
5453  float GetEnd () const { return m_end; }
5455  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5456  int GetOptions () const { return m_optionals; }
5458 };
5459 
5460 
5461 
5462 
5463 
5464 #define NS_HAS_WEIGHTS 0x01
5465 #define NS_HAS_KNOTS 0x02
5466 #define NS_HAS_TRIMS 0x04
5467 
5468 #define NS_TRIM_END 0
5469 #define NS_TRIM_POLY 1
5470 #define NS_TRIM_CURVE 2
5471 #define NS_TRIM_COLLECTION 3
5472 #define NS_TRIM_LAST_KNOWN_TYPE 3
5473 
5474 #define NS_TRIM_KEEP 0x01
5475 #define NS_TRIM_HAS_WEIGHTS 0x02
5476 #define NS_TRIM_HAS_KNOTS 0x04
5477 
5478 
5485 class BBINFILETK_API HT_NURBS_Trim : public BBaseOpcodeHandler {
5486  friend class TK_NURBS_Surface;
5487  protected:
5488  //first 5 are relevant to polys and curves
5491  unsigned char m_type;
5492  int m_count;
5493  float * m_points;
5494  //next 6 are specific to curves
5495  unsigned char m_degree;
5496  unsigned char m_options;
5497  float * m_weights;
5498  float * m_knots;
5499  float m_start_u;
5500  float m_end_u;
5504  HT_NURBS_Trim();
5505  TK_Status read_collection(BStreamFileToolkit & tk);
5506  TK_Status write_collection(BStreamFileToolkit & tk);
5509  public:
5510  ~HT_NURBS_Trim();
5511  void SetPoly (int count, float const points[] = 0);
5512  void SetCurve (int degree, int control_count, float const points[] = 0,
5513  float const weights[] = 0, float const knots[] = 0, float start_u = 0, float end_u = 1);
5514  void SetCollection ();
5515  HT_NURBS_Trim * PrependCollection();
5516  void SetOptions (int o) { m_options = (unsigned char)o; }
5517  void SetList (HT_NURBS_Trim *node) { m_list = node; }
5518  void SetNext (HT_NURBS_Trim *next) { m_next = next; }
5519  void SetStart(float start) { m_start_u = start; }
5520  void SetEnd(float end) { m_end_u = end; }
5521 
5524 
5527 
5528  TK_Status read_collection_ascii(BStreamFileToolkit & tk);
5529  TK_Status write_collection_ascii(BStreamFileToolkit & tk);
5530 
5532  HT_NURBS_Trim * GetNext (void) { return m_next; }
5533  HT_NURBS_Trim const * GetNext (void) const { return m_next; }
5535  int GetType () const { return m_type; }
5537  int GetCount () const { return m_count; }
5539  float const * GetPoints () const { return m_points; }
5541  float * GetPoints () { return m_points; }
5543  int GetDegree () const { return m_degree; }
5545  float GetStart() const { return m_start_u; }
5547  float GetEnd() const { return m_end_u; }
5549  int GetOptions () const { return m_options; }
5551  float const * GetWeights () const { return m_weights; }
5553  float * GetWeights () { return m_weights; }
5555  float const * GetKnots () const { return m_knots; }
5557  float * GetKnots () { return m_knots; }
5559  HT_NURBS_Trim const *GetList () const { return m_list; }
5561  HT_NURBS_Trim * GetList () { return m_list; }
5562 
5563 };
5564 
5566 
5571 class BBINFILETK_API TK_NURBS_Surface : public BBaseOpcodeHandler {
5572  protected:
5573  unsigned char m_optionals;
5574  unsigned char m_degree[2];
5575  int m_size[2];
5578  float * m_weights;
5579  float * m_u_knots;
5580  float * m_v_knots;
5586  public:
5587  TK_NURBS_Surface();
5588  ~TK_NURBS_Surface();
5589 
5592  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5593 
5594  TK_Status ReadAscii (BStreamFileToolkit & tk);
5595  TK_Status WriteAscii (BStreamFileToolkit & tk);
5596 
5597  void Reset ();
5599  void SetSurface (int u_degree, int v_degree, int u_size, int v_size,
5600  float const points[] = 0, float const weights[] = 0,
5601  float const u_knots[] = 0, float const v_knots[] = 0);
5602  void SetDSurface (int u_degree, int v_degree, int u_size, int v_size,
5603  double const points[] = 0, float const weights[] = 0,
5604  float const u_knots[] = 0, float const v_knots[] = 0);
5607  float const * GetPoints () const { return m_control_points; }
5609  float * GetPoints () { return m_control_points; }
5611  double const * GetDPoints () const { return m_dcontrol_points; }
5613  double * GetDPoints () { return m_dcontrol_points; }
5614 
5616  int GetUDegree () const { return m_degree[0]; }
5618  int GetVDegree () const { return m_degree[1]; }
5620  int GetUSize () const { return m_size[0]; }
5622  int GetVSize () const { return m_size[1]; }
5624  float const * GetWeights () const { return m_weights; }
5626  float * GetWeights () { return m_weights; }
5628  float const * GetUKnots () const { return m_u_knots; }
5630  float * GetUKnots () { return m_u_knots; }
5632  float const * GetVKnots () const { return m_v_knots; }
5634  float * GetVKnots () { return m_v_knots; }
5635 
5637  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5639  int GetOptions () const { return m_optionals; }
5640 
5642  HT_NURBS_Trim * NewTrim (int type = NS_TRIM_END);
5644  HT_NURBS_Trim * GetTrims () { return m_trims; }
5645 
5646 
5647 };
5648 
5650 
5655 class BBINFILETK_API TK_Area_Light : public BBaseOpcodeHandler {
5656  protected:
5657  int m_count;
5658  float * m_points;
5659  double * m_dpoints;
5660  char m_options;
5661 
5663  void set_points (int count, float const points[] = 0);
5664 
5665  public:
5668  : BBaseOpcodeHandler (TKE_Area_Light), m_count (0), m_points (0), m_dpoints (0), m_options (0) {}
5669  ~TK_Area_Light();
5670 
5673  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5674 
5675  TK_Status ReadAscii (BStreamFileToolkit & tk);
5676  TK_Status WriteAscii (BStreamFileToolkit & tk);
5677 
5678  void Reset ();
5679 
5684  void SetPoints (int count, float const points[] = 0) { set_points (count, points); }
5686  float const * GetPoints () const { return m_points; }
5688  float * GetPoints () { return m_points; }
5689 
5694  void SetDPoints (int count, double const points[] = 0) ;
5696  double const * GetDPoints () const { return m_dpoints; }
5698  double * GetDPoints () { return m_dpoints; }
5699 
5701  int GetCount () const { return m_count; }
5702 
5704  void SetOptions (int o) { m_options = (char)o; }
5706  int GetOptions () const { return (int)m_options; }
5707 };
5708 
5709 
5711 
5716 class BBINFILETK_API TK_Spot_Light : public BBaseOpcodeHandler {
5717  protected:
5718  float m_position[3];
5719  float m_target[3];
5720  double m_dposition[3];
5721  double m_dtarget[3];
5722  float m_outer;
5723  float m_inner;
5725  char m_options;
5726 
5727  public:
5730  : BBaseOpcodeHandler (TKE_Spot_Light), m_options (0) {}
5731 
5734  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5735 
5736  TK_Status ReadAscii (BStreamFileToolkit & tk);
5737  TK_Status WriteAscii (BStreamFileToolkit & tk);
5738 
5740  void SetPosition (float x, float y, float z)
5741  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
5743  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
5745  float const * GetPosition () const { return m_position; }
5746 
5748  void SetDPosition (double x, double y, double z)
5749  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
5751  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
5753  double const * GetDPosition () const { return m_dposition; }
5754 
5756  void SetTarget (float x, float y, float z)
5757  { m_target[0] = x; m_target[1] = y; m_target[2] = z; }
5759  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
5761  float const * GetTarget () const { return m_target; }
5762 
5764  void SetDTarget (double x, double y, double z)
5765  { m_dtarget[0] = x; m_dtarget[1] = y; m_dtarget[2] = z; }
5767  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
5769  double const * GetDTarget () const { return m_dtarget; }
5770 
5772  void SetOuter (float o) { m_outer = o; }
5774  float GetOuter () const { return m_outer; }
5775 
5777  void SetInner (float i) { m_inner = i; }
5779  float GetInner () const { return m_inner; }
5780 
5782  void SetConcentration (float c) { m_concentration = c; }
5784  float GetConcentration () const { return m_concentration; }
5785 
5787  void SetOptions (int o) { m_options = (char)o; }
5789  int GetOptions () const { return (int)m_options; }
5790 };
5791 
5792 
5794 
5799 class BBINFILETK_API TK_Cutting_Plane : public BBaseOpcodeHandler {
5800  protected:
5801  float * m_planes;
5802  double * m_dplanes;
5803  int m_count;
5804 
5805  public:
5808  : BBaseOpcodeHandler (TKE_Cutting_Plane), m_planes (0), m_dplanes (0), m_count (0) {}
5809  ~TK_Cutting_Plane ();
5810 
5813  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5814 
5815  TK_Status ReadAscii (BStreamFileToolkit & tk);
5816  TK_Status WriteAscii (BStreamFileToolkit & tk);
5817 
5818  void Reset ();
5819 
5821  void SetPlanes (int count, float const p[]=0);
5823  void SetDPlanes (int count, double const p[]=0);
5824 
5826  void SetPlane (float a, float b, float c, float d)
5827  { SetPlanes(1);
5828  m_planes[0] = a; m_planes[1] = b; m_planes[2] = c; m_planes[3] = d; }
5830  void SetDPlane (double a, double b, double c, double d)
5831  { SetDPlanes(1);
5832  m_dplanes[0] = a; m_dplanes[1] = b; m_dplanes[2] = c; m_dplanes[3] = d; }
5833 
5835  void SetPlane (float const p[]) { SetPlanes (1, p); }
5837  void SetDPlane (double const p[]) { SetDPlanes (1, p); }
5838 
5840  float const * GetPlane () const { return m_planes; }
5842  double const * GetDPlane () const { return m_dplanes; }
5843 
5845  float const * GetPlanes () const { return m_planes; }
5847  double const * GetDPlanes () const { return m_dplanes; }
5848 
5850  int GetCount () const { return m_count; }
5851 };
5852 
5853 
5855 
5862 class BBINFILETK_API TK_Circle : public BBaseOpcodeHandler {
5863  protected:
5864  float m_points[9];
5865  float m_center[3];
5866  double m_dpoints[9];
5867  double m_dcenter[3];
5868  unsigned char m_flags;
5871  public:
5873  TK_Circle (unsigned char opcode)
5874  : BBaseOpcodeHandler (opcode), m_flags (0) {}
5875 
5878  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5879 
5880  TK_Status ReadAscii (BStreamFileToolkit & tk);
5881  TK_Status WriteAscii (BStreamFileToolkit & tk);
5882 
5883  void Reset ();
5884 
5886  void SetStart (float x, float y, float z) {
5887  m_points[0] = x; m_points[1] = y; m_points[2] = z;
5888  }
5890  void SetStart (float const s[]) {
5891  SetStart (s[0], s[1], s[2]);
5892  }
5894  void SetMiddle (float x, float y, float z) {
5895  m_points[3] = x; m_points[4] = y; m_points[5] = z;
5896  }
5898  void SetMiddle (float const m[]) {
5899  SetMiddle (m[0], m[1], m[2]);
5900  }
5902  void SetEnd (float x, float y, float z) {
5903  m_points[6] = x; m_points[7] = y; m_points[8] = z;
5904  }
5906  void SetEnd (float const e[]) {
5907  SetEnd (e[0], e[1], e[2]);
5908  }
5910  void SetCenter (float x, float y, float z) {
5911  m_center[0] = x; m_center[1] = y; m_center[2] = z;
5912  m_flags = TKO_Circular_Center;
5913  }
5915  void SetCenter (float const c[]) {
5916  if (c) SetCenter (c[0], c[1], c[2]);
5917  else m_flags = 0;
5918  }
5920  void SetPoints (float const s[], float const m[], float const e[],
5921  float const c[] = 0) {
5922  SetStart (s); SetMiddle (m); SetEnd (e); SetCenter (c);
5923  }
5924 
5926  float const * GetStart () const { return &m_points[0]; }
5928  float const * GetMiddle () const { return &m_points[3]; }
5930  float const * GetEnd () const { return &m_points[6]; }
5932  float const * GetCenter () const { return (m_flags & TKO_Circular_Center) ? m_center : 0; }
5933 
5935  void SetDStart (double x, double y, double z) {
5936  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
5937  }
5939  void SetDStart (double const s[]) {
5940  SetDStart (s[0], s[1], s[2]);
5941  }
5943  void SetDMiddle (double x, double y, double z) {
5944  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
5945  }
5947  void SetDMiddle (double const m[]) {
5948  SetDMiddle (m[0], m[1], m[2]);
5949  }
5951  void SetDEnd (double x, double y, double z) {
5952  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
5953  }
5955  void SetDEnd (double const e[]) {
5956  SetDEnd (e[0], e[1], e[2]);
5957  }
5959  void SetDCenter (double x, double y, double z) {
5960  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
5961  m_flags = TKO_Circular_Center;
5962  }
5964  void SetDCenter (double const c[]) {
5965  if (c) SetDCenter (c[0], c[1], c[2]);
5966  else m_flags = 0;
5967  }
5969  void SetDPoints (double const s[], double const m[], double const e[],
5970  double const c[] = 0) {
5971  SetDStart (s); SetDMiddle (m); SetDEnd (e); SetDCenter (c);
5972  }
5973 
5975  double const * GetDStart () const { return &m_dpoints[0]; }
5977  double const * GetDMiddle () const { return &m_dpoints[3]; }
5979  double const * GetDEnd () const { return &m_dpoints[6]; }
5981  double const * GetDCenter () const { return (m_flags & TKO_Circular_Center) ? m_dcenter : 0; }
5982 };
5983 
5984 
5986 
5993 class BBINFILETK_API TK_Ellipse : public BBaseOpcodeHandler {
5994  protected:
5995  float m_points[9];
5996  double m_dpoints[9];
5997  float m_limits[2];
5999  public:
6001  TK_Ellipse (unsigned char opcode)
6002  : BBaseOpcodeHandler (opcode) {}
6003 
6006  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6007 
6008  TK_Status ReadAscii (BStreamFileToolkit & tk);
6009  TK_Status WriteAscii (BStreamFileToolkit & tk);
6010 
6012  void SetCenter (float x, float y, float z) {
6013  m_points[0] = x; m_points[1] = y; m_points[2] = z;
6014  }
6016  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
6018  float const * GetCenter () const { return &m_points[0]; }
6019 
6021  void SetMajor (float x, float y, float z) {
6022  m_points[3] = x; m_points[4] = y; m_points[5] = z;
6023  }
6025  void SetMajor (float const m[]) { SetMajor (m[0], m[1], m[2]); }
6027  float const * GetMajor () const { return &m_points[3]; }
6028 
6030  void SetMinor (float x, float y, float z) {
6031  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6032  }
6034  void SetMinor (float const m[]) { SetMinor (m[0], m[1], m[2]); }
6036  float const * GetMinor () const { return &m_points[6]; }
6037 
6038 
6040  void SetDCenter (double x, double y, double z) {
6041  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6042  }
6044  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6046  double const * GetDCenter () const { return &m_dpoints[0]; }
6047 
6049  void SetDMajor (double x, double y, double z) {
6050  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6051  }
6053  void SetDMajor (double const m[]) { SetDMajor (m[0], m[1], m[2]); }
6055  double const * GetDMajor () const { return &m_dpoints[3]; }
6056 
6058  void SetDMinor (double x, double y, double z) {
6059  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6060  }
6062  void SetDMinor (double const m[]) { SetDMinor (m[0], m[1], m[2]); }
6064  double const * GetDMinor () const { return &m_dpoints[6]; }
6065 
6067  void SetLimits (float s, float e) {
6068  m_limits[0] = s; m_limits[1] = e;
6069  }
6071  float const * GetLimits () const { return m_limits; }
6072 };
6073 
6074 
6076 
6083 class BBINFILETK_API TK_Sphere : public BBaseOpcodeHandler {
6084  protected:
6085  unsigned char m_flags;
6086  float m_center[3];
6087  float m_radius;
6088  float m_axis[3];
6089  float m_ortho[3];
6090  double m_dcenter[3];
6091  double m_dradius;
6092  double m_daxis[3];
6093  double m_dortho[3];
6095  public:
6098  : BBaseOpcodeHandler (TKE_Sphere) { Reset(); }
6099 
6102  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6103 
6104  TK_Status ReadAscii (BStreamFileToolkit & tk);
6105  TK_Status WriteAscii (BStreamFileToolkit & tk);
6106 
6107  void Reset ();
6108 
6110  void SetCenter (float x, float y, float z) {
6111  m_center[0] = x; m_center[1] = y; m_center[2] = z;
6112  }
6114  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
6116  float const * GetCenter () const { return m_center; }
6117 
6118 
6120  void SetRadius (float r) { m_radius = r; }
6122  float GetRadius () const { return m_radius; }
6123 
6125  void SetAxis (float x, float y, float z) {
6126  m_axis[0] = x; m_axis[1] = y; m_axis[2] = z;
6127  if (x != 0.0f || y != 1.0f || z != 0.0f)
6128  m_flags &= ~TKSPH_NULL_AXIS;
6129  }
6131  void SetAxis (float const s[]) { SetAxis (s[0], s[1], s[2]); }
6133  float const * GetAxis () const { return m_axis; }
6134 
6136  void SetOrtho (float x, float y, float z) {
6137  m_ortho[0] = x; m_ortho[1] = y; m_ortho[2] = z;
6138  if (x != 1.0f || y != 0.0f || z != 0.0f)
6139  m_flags &= ~TKSPH_NULL_AXIS;
6140  }
6142  void SetOrtho (float const s[]) { SetOrtho (s[0], s[1], s[2]); }
6144  float const * GetOrtho () const { return m_ortho; }
6145 
6146 
6148  void SetDCenter (double x, double y, double z) {
6149  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
6150  }
6152  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6154  double const * GetDCenter () const { return m_dcenter; }
6155 
6156 
6158  void SetDRadius (double r) { m_dradius = r; }
6160  double GetDRadius () const { return m_dradius; }
6161 
6163  void SetDAxis (double x, double y, double z) {
6164  m_daxis[0] = x; m_daxis[1] = y; m_daxis[2] = z;
6165  if (x != 0.0f || y != 1.0f || z != 0.0f)
6166  m_flags &= ~TKSPH_NULL_AXIS;
6167  }
6169  void SetDAxis (double const s[]) { SetDAxis (s[0], s[1], s[2]); }
6171  double const * GetDAxis () const { return m_daxis; }
6172 
6174  void SetDOrtho (double x, double y, double z) {
6175  m_dortho[0] = x; m_dortho[1] = y; m_dortho[2] = z;
6176  if (x != 1.0f || y != 0.0f || z != 0.0f)
6177  m_flags &= ~TKSPH_NULL_AXIS;
6178  }
6180  void SetDOrtho (double const s[]) { SetDOrtho (s[0], s[1], s[2]); }
6182  double const * GetDOrtho () const { return m_dortho; }
6183 
6184 
6188  enum Flags {
6189  TKSPH_NONE = 0x0,
6190  TKSPH_NULL_AXIS = 0x1
6191  };
6192 
6193 };
6194 
6195 
6197 
6204 class BBINFILETK_API TK_Cylinder : public BBaseOpcodeHandler {
6205  protected:
6206  float m_axis[6];
6207  float m_radius;
6208  double m_daxis[6];
6209  double m_dradius;
6210  unsigned char m_flags;
6212  public:
6215  : BBaseOpcodeHandler (TKE_Cylinder) {}
6216 
6219  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6220 
6221  TK_Status ReadAscii (BStreamFileToolkit & tk);
6222  TK_Status WriteAscii (BStreamFileToolkit & tk);
6223 
6225  void SetAxis (float x1, float y1, float z1, float x2, float y2, float z2) {
6226  m_axis[0] = x1; m_axis[1] = y1; m_axis[2] = z1;
6227  m_axis[3] = x2; m_axis[4] = y2; m_axis[5] = z2;
6228  }
6230  void SetAxis (float const s[], float const e[]) { SetAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6232  void SetAxis (float const a[]) { SetAxis (&a[0], &a[3]); }
6234  float const * GetAxis () const { return m_axis; }
6236  float const * GetStart () const { return &m_axis[0]; }
6238  float const * GetEnd () const { return &m_axis[3]; }
6239 
6241  void SetRadius (float r) { m_radius = r; }
6243  float GetRadius () const { return m_radius; }
6244 
6245 
6247  void SetDAxis (double x1, double y1, double z1, double x2, double y2, double z2) {
6248  m_daxis[0] = x1; m_daxis[1] = y1; m_daxis[2] = z1;
6249  m_daxis[3] = x2; m_daxis[4] = y2; m_daxis[5] = z2;
6250  }
6252  void SetDAxis (double const s[], double const e[]) { SetDAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6254  void SetDAxis (double const a[]) { SetDAxis (&a[0], &a[3]); }
6256  double const * GetDAxis () const { return m_daxis; }
6258  double const * GetDStart () const { return &m_daxis[0]; }
6260  double const * GetDEnd () const { return &m_daxis[3]; }
6261 
6263  void SetDRadius (double r) { m_dradius = r; }
6265  double GetDRadius () const { return m_dradius; }
6266 
6267 
6269  void SetCaps (int f) { m_flags = (unsigned char)f; }
6271  int GetCaps () const { return m_flags; }
6272 
6277  TKCYL_NONE = 0,
6278  TKCYL_FIRST = 1,
6279  TKCYL_SECOND = 2,
6280  TKCYL_BOTH = 3
6281  };
6282 
6283 };
6284 
6285 
6287 
6294 #include "BPolyhedron.h"
6295 
6296 class BBINFILETK_API TK_PolyCylinder : public TK_Polyhedron {
6297  protected:
6298  int m_count;
6299  float * m_points;
6300  double * m_dpoints;
6302  float * m_radii;
6303  double * m_dradii;
6304  unsigned char m_flags;
6305  float m_normals[6];
6307  public:
6310  : TK_Polyhedron (TKE_PolyCylinder), m_count (0), m_points (0), m_dpoints (0),
6311  m_radius_count (0), m_radii (0), m_dradii (0) {}
6312  ~TK_PolyCylinder();
6313 
6316  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6317 
6318  TK_Status ReadAscii (BStreamFileToolkit & tk);
6319  TK_Status WriteAscii (BStreamFileToolkit & tk);
6320 
6321  virtual void Reset ();
6322 
6327  TKCYL_NORMAL_FIRST = 0x04,
6328  TKCYL_NORMAL_SECOND = 0x08,
6329  TKCYL_OPTIONALS = 0x10
6330  };
6331 
6336  void SetPoints (int count, float const points[] = 0);
6338  float const * GetPoints () const { return m_points; }
6340  float * GetPoints () { return m_points; }
6341 
6346  void SetRadii (int count, float const radii[] = 0);
6348  void SetRadius (float radius) { SetRadii (1, &radius); }
6350  float const * GetRadii () const { return m_radii; }
6352  float * GetRadii () { return m_radii; }
6353 
6354 
6359  void SetDPoints (int count, double const points[] = 0);
6361  double const * GetDPoints () const { return m_dpoints; }
6363  double * GetDPoints () { return m_dpoints; }
6364 
6369  void SetDRadii (int count, double const radii[] = 0);
6371  void SetDRadius (double radius) { SetDRadii (1, &radius); }
6373  double const * GetDRadii () const { return m_dradii; }
6375  double * GetDRadii () { return m_dradii; }
6376 
6377 
6379  int GetCount () const { return m_count; }
6381  int GetRadiusCount () const { return m_radius_count; }
6382 
6383 
6384 
6385 
6387  void SetCaps (int f) { m_flags &= ~0x03; m_flags |= f; }
6389  int GetCaps () const { return m_flags & 0x03; }
6390 
6392  void SetEndNormal (int index, float const normal[] = 0) {
6393  int mask = 0x40 << index;
6394  if (normal == 0)
6395  m_flags &= ~mask;
6396  else {
6397  m_flags |= mask;
6398  m_normals[3*index+0] = normal[0];
6399  m_normals[3*index+1] = normal[1];
6400  m_normals[3*index+2] = normal[2];
6401  }
6402  }
6404  float const * GetEndNormal (int index) const {
6405  int mask = 0x40 << index;
6406  if (m_flags & mask)
6407  return &m_normals[3*index];
6408  else
6409  return 0;
6410  }
6411 };
6412 
6413 
6415 
6421 class BBINFILETK_API TK_Grid : public BBaseOpcodeHandler {
6422  protected:
6423  char m_type;
6424  float m_points[9];
6425  double m_dpoints[9];
6426  int m_counts[2];
6428  public:
6431  : BBaseOpcodeHandler (TKE_Grid) {}
6432 
6435  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6436 
6437  TK_Status ReadAscii (BStreamFileToolkit & tk);
6438  TK_Status WriteAscii (BStreamFileToolkit & tk);
6439 
6441  void SetOrigin (float x, float y, float z) {
6442  m_points[0] = x; m_points[1] = y; m_points[2] = z;
6443  }
6445  void SetOrigin (float const o[]) { SetOrigin (o[0], o[1], o[2]); }
6447  float const * GetOrigin () const { return &m_points[0]; }
6449  float * GetOrigin () { return &m_points[0]; }
6450 
6452  void SetRef1 (float x, float y, float z) {
6453  m_points[3] = x; m_points[4] = y; m_points[5] = z;
6454  }
6456  void SetRef1 (float const r[]) { SetRef1 (r[0], r[1], r[2]); }
6458  float const * GetRef1 () const { return &m_points[3]; }
6460  float * GetRef1 () { return &m_points[3]; }
6461 
6463  void SetRef2 (float x, float y, float z) {
6464  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6465  }
6467  void SetRef2 (float const r[]) { SetRef2 (r[0], r[1], r[2]); }
6469  float const * GetRef2 () const { return &m_points[6]; }
6471  float * GetRef2 () { return &m_points[6]; }
6472 
6473 
6475  void SetDOrigin (double x, double y, double z) {
6476  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6477  }
6479  void SetDOrigin (double const o[]) { SetDOrigin (o[0], o[1], o[2]);}
6481  double const * GetDOrigin () const { return &m_dpoints[0]; }
6483  double * GetDOrigin () { return &m_dpoints[0]; }
6484 
6486  void SetDRef1 (double x, double y, double z) {
6487  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6488  }
6490  void SetDRef1 (double const r[]) { SetDRef1 (r[0], r[1], r[2]); }
6492  double const * GetDRef1 () const { return &m_dpoints[3]; }
6494  double * GetDRef1 () { return &m_dpoints[3]; }
6495 
6497  void SetDRef2 (double x, double y, double z) {
6498  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6499  }
6501  void SetDRef2 (double const r[]) { SetDRef2 (r[0], r[1], r[2]); }
6503  double const * GetDRef2 () const { return &m_dpoints[6]; }
6505  double * GetDRef2 () { return &m_dpoints[6]; }
6506 
6507 
6509  void SetCounts (int c1, int c2) {
6510  m_counts[0] = c1; m_counts[1] = c2;
6511  }
6513  int const * GetCounts () const { return m_counts; }
6515  int * GetCounts () { return m_counts; }
6516 
6518  void SetType (int t) { m_type = (char)t; }
6520  int GetType () const { return (int)m_type; }
6521 };
6522 
6524 
6527  char * name;
6528 
6529  float color[3];
6530  float size;
6533  float slant;
6534  float rotation;
6535  float width_scale;
6536 
6537  unsigned short mask;
6538  unsigned short value;
6539 
6540  unsigned char size_units;
6541  unsigned char vertical_offset_units;
6542  unsigned char horizontal_offset_units;
6543 };
6544 
6545 
6547 
6553 class BBINFILETK_API TK_Text : public BBaseOpcodeHandler {
6554  protected:
6555  float m_position[3];
6556  double m_dposition[3];
6557  int m_length;
6559  char * m_string;
6560  unsigned char m_encoding;
6561  unsigned char m_options;
6562  unsigned char m_region_options;
6563  unsigned char m_region_fit;
6564  unsigned char m_region_count;
6565  float m_region[4*3];
6566  double m_dregion[4*3];
6568  int * m_cursors;
6570  float * m_leaders;
6571  unsigned char * m_leader_flags;
6573  double * m_dleaders;
6574  unsigned char * m_dleader_flags;
6575  int m_count;
6578  int m_tmp;
6580  void set_string (char const * string);
6581  void set_string (int length);
6582 
6583  public:
6585  TK_Text (unsigned char opcode);
6586  ~TK_Text();
6587 
6590  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6591 
6592  TK_Status ReadAscii (BStreamFileToolkit & tk);
6593  TK_Status WriteAscii (BStreamFileToolkit & tk);
6594 
6595  void Reset ();
6596 
6598  void SetString (char const * string) { set_string (string); }
6600  void SetString (unsigned short const * string);
6602  void SetString (unsigned int const * string);
6604  void SetString (int length) { set_string (length); }
6606  char const * GetString () const { return m_string; }
6608  char * GetString () { return m_string; }
6609 
6611  void SetPosition (float x, float y, float z)
6612  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6614  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6616  float const * GetPosition () const { return &m_position[0]; }
6617 
6619  void SetDPosition (double x, double y, double z)
6620  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6622  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6624  double const * GetDPosition () const { return &m_dposition[0]; }
6625 
6627  void SetEncoding (int e) { m_encoding = (unsigned char)e; }
6629  int GetEncoding () const { return (int)m_encoding; }
6630 
6632  void SetTextRegion (int c, float const p[], int o=0, int f=0);
6634  void SetTextDRegion (int c, double const p[], int o=0, int f=0);
6636  int GetTextRegionCount () const { return (int)m_region_count; }
6638  float const * GetTextRegionPoints () const { return m_region; }
6640  double const * GetTextRegionDPoints () const { return m_dregion; }
6642  int GetTextRegionOptions () const { return (int)m_region_options; }
6644  int GetTextRegionFitting () const { return (int)m_region_fit; }
6645 
6646 
6648  void SetStringCursors (int length, int * locations = 0);
6650  int GetStringCursorCount () const { return m_cursor_count; }
6652  int const * GetStringCursors () const { return m_cursors; }
6654  int * GetStringCursors () { return m_cursors; }
6655 
6657  void SetTextLeaders (int length, float * locations = 0, unsigned char * flags = 0);
6659  int GetTextLeaderCount () const { return m_leader_count; }
6661  float const * GetTextLeaders () const { return m_leaders; }
6663  float * GetTextLeaders () { return m_leaders; }
6665  unsigned char const * GetTextLeaderFlags () const { return m_leader_flags; }
6667  unsigned char * GetTextLeaderFlags () { return m_leader_flags; }
6668 
6670  void SetDTextLeaders (int length, double * locations = 0, unsigned char * flags = 0);
6672  int GetDTextLeaderCount () const { return m_dleader_count; }
6674  double const * GetDTextLeaders () const { return m_dleaders; }
6676  double * GetDTextLeaders () { return m_dleaders; }
6678  unsigned char const * GetDTextLeaderFlags () const { return m_dleader_flags; }
6680  unsigned char * GetDTextLeaderFlags () { return m_dleader_flags; }
6681 };
6682 
6684 
6686 
6692 class BBINFILETK_API TK_Font : public BBaseOpcodeHandler {
6693  protected:
6694  char * m_name;
6695  char * m_lookup;
6696  char * m_bytes;
6699  int m_length;
6700  unsigned char m_type;
6701  unsigned char m_encoding;
6703  void set_bytes (int size, char const * bytes = 0);
6706  void set_name (char const * string);
6708  void set_name (int length);
6710  void set_lookup (char const * string);
6712  void set_lookup (int length);
6713 
6714  public:
6716  TK_Font () : BBaseOpcodeHandler (TKE_Font),
6717  m_name (0), m_lookup (0), m_bytes (0), m_name_length (0), m_lookup_length (0), m_length (0),
6718  m_type (0), m_encoding (0) {}
6719  ~TK_Font();
6720 
6723  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6724 
6725  TK_Status ReadAscii (BStreamFileToolkit & tk);
6726  TK_Status WriteAscii (BStreamFileToolkit & tk);
6727 
6728  void Reset ();
6729 
6730 
6732  void SetType (int t) { m_type = (unsigned char)t;}
6734  int GetType () const { return (int)m_type; }
6735 
6740  void SetBytes (int size, char const * bytes = 0) { set_bytes (size, bytes); }
6742  int GetBytesCount () const { return m_length; }
6744  char const * GetBytes () const { return m_bytes; }
6746  char * GetBytes () { return m_bytes; }
6747 
6749  void SetName (char const * string) { set_name (string); }
6751  void SetName (int length) { set_name (length); }
6753  char const * GetName () const { return m_name; }
6755  char * GetName () { return m_name; }
6756 
6758  void SetLookup (char const * string) { set_lookup (string); }
6760  void SetLookup (int length) { set_lookup (length); }
6762  char const * GetLookup () const { return m_lookup; }
6764  char * GetLookup () { return m_lookup; }
6765 
6767  void SetEncoding (int e) { m_encoding = (unsigned char)e;}
6769  int GetEncoding () const { return (int)m_encoding; }
6770 };
6771 
6773 
6774 
6776 extern const int TK_Image_Bytes_Per_Pixel[];
6777 
6778 #ifndef DOXYGEN_SHOULD_SKIP_THIS
6779 
6780 class BBINFILETK_API2 TK_Image_Data_Buffer {
6781  protected:
6782  unsigned char * m_buffer;
6783  unsigned int m_allocated;
6784  unsigned int m_used;
6785 
6786  public:
6788  TK_Image_Data_Buffer() : m_buffer (0), m_allocated (0), m_used (0) {}
6789  ~TK_Image_Data_Buffer();
6790 
6791  void Resize (unsigned int size);
6792  void Expand (unsigned int size) { Resize (Size() + size); }
6793  void Reset ();
6794 
6795  unsigned int const & Size () const { return m_allocated; }
6796  unsigned int const & Used () const { return m_used; }
6797  unsigned int & Used () { return m_used; }
6798  unsigned char const * Buffer () const { return m_buffer; }
6799  unsigned char * Buffer () { return m_buffer; }
6800 };
6801 
6802 
6803 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
6804 
6805 
6807 
6813 class BBINFILETK_API2 TK_Image : public BBaseOpcodeHandler {
6814  protected:
6815  char * m_bytes;
6816  char * m_name;
6817  char * m_reference;
6818  float m_position[3];
6819  double m_dposition[3];
6820  int m_size[2];
6824  unsigned char m_format;
6825  unsigned int m_options;
6826  unsigned char m_compression;
6827  unsigned char m_bytes_format;
6828  float m_explicit_size[2];
6829  unsigned char m_explicit_units[2];
6830  TK_Image_Data_Buffer m_work_area[2];
6835  void set_data (int size, char const * bytes = 0, unsigned char data_format = TKO_Compression_None);
6838  void set_name (char const * string);
6840  void set_name (int length);
6841 
6843  TK_Status compress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6845  TK_Status decompress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6847  TK_Status read_jpeg_header ();
6848 
6849  public:
6851  TK_Image ();
6852  ~TK_Image();
6853 
6856  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6857 
6858  TK_Status ReadAscii (BStreamFileToolkit & tk);
6859  TK_Status WriteAscii (BStreamFileToolkit & tk);
6860  TK_Status compress_image_ascii (BStreamFileToolkit & tk);
6861 
6862 
6863  void Reset ();
6864 
6869  void SetBytes (int size, char const * bytes = 0,
6870  unsigned char data_format = TKO_Compression_None)
6871  { set_data (size, bytes, data_format); }
6873  char const * GetBytes () const { return m_bytes; }
6875  char * GetBytes () { return m_bytes; }
6876 
6878  void SetName (char const * string) { set_name (string); }
6880  void SetName (int length) { set_name (length); }
6882  char const * GetName () const { return m_name; }
6884  char * GetName () { return m_name; }
6885 
6887  void SetReference (char const * string);
6889  void SetReference (int length);
6891  char const * GetReference () const { return m_reference; }
6893  char * GetReference () { return m_reference; }
6894 
6896  void SetPosition (float x, float y, float z)
6897  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6899  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6901  float const * GetPosition () const { return &m_position[0]; }
6902 
6904  void SetDPosition (double x, double y, double z)
6905  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6907  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6909  double const * GetDPosition () const { return &m_dposition[0]; }
6910 
6912  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
6914  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
6916  int const * GetSize () const { return m_size; }
6917 
6919  void SetFormat (int f) { m_format = (unsigned char)(f & TKO_Image_Format_Mask); }
6921  int GetFormat () const { return (int)m_format; }
6922 
6924  void SetOptions (int f) { m_options = (unsigned char)(f & TKO_Image_Options_Mask); }
6926  int GetOptions () const { return (int)m_options; }
6927 
6929  void SetCompression (int c) { m_compression = (unsigned char)c; }
6931  int GetCompression () const { return (int)m_compression; }
6932 };
6933 
6934 
6936 
6938 
6944 class BBINFILETK_API2 TK_Texture : public BBaseOpcodeHandler {
6945  protected:
6946  char * m_name;
6948  char * m_image;
6949  char * m_camera;
6954  int m_flags;
6965  char m_layout;
6966  char m_tiling;
6967  float m_value_scale[2];
6968  int m_source_dimensions[3];
6969  char * m_transform;
6973  void set_name (int length);
6974  void set_name (char const * name);
6975  void set_image (int length);
6976  void set_image (char const * image);
6977  void set_transform (int length);
6978  void set_transform (char const * transform);
6979 
6980  public:
6982  TK_Texture () : BBaseOpcodeHandler (TKE_Texture),
6983  m_name (0), m_shader_source(0), m_image (0), m_camera (0),
6984  m_name_length (0), m_shader_source_length(0), m_image_length (0), m_camera_length (0),
6985  m_transform (0) {
6986  Reset();
6987  }
6988  ~TK_Texture();
6989 
6992  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6993 
6994  TK_Status ReadAscii (BStreamFileToolkit & tk);
6995  TK_Status WriteAscii (BStreamFileToolkit & tk);
6996 
6997  void Reset ();
6998 
7000  void SetName (char const * name) { set_name (name); }
7002  void SetName (int length) { set_name (length); }
7004  char const * GetName () const { return m_name; }
7006  char * GetName () { return m_name; }
7007 
7009  void SetShaderSource (char const * shader_source);
7011  void SetShaderSource (int length);
7013  char const * GetShaderSource () const { return m_shader_source; }
7015  char * GetShaderSource () { return m_shader_source; }
7016 
7018  void SetImage (char const * image) { set_image (image); }
7020  void SetImage (int length) { set_image (length); }
7022  char const * GetImage () const { return m_image; }
7024  char * GetImage () { return m_image; }
7025 
7027  void SetCamera (char const * camera);
7029  void SetCamera (int length);
7031  char const * GetCamera () const { return m_camera; }
7033  char * GetCamera () { return m_camera; }
7034 
7036  void SetFlags (int f) {
7037  m_flags = f;
7038  if ((f & TKO_Texture_Extended_Mask) != 0)
7039  m_flags |= TKO_Texture_Extended;
7040  }
7042  int GetFlags () const { return m_flags; }
7043 
7045  void SetParameterSource (int p) { m_param_source = (char)p; }
7047  int GetParameterSource () const { return (int)m_param_source; }
7048 
7050  void SetInterpolation (int p) { m_interpolation = (char)p; }
7052  int GetInterpolation () const { return (int)m_interpolation; }
7053 
7055  void SetDecimation (int p) { m_decimation = (char)p; }
7057  int GetDecimation () const { return (int)m_decimation; }
7058 
7060  void SetRedMapping (int p) { m_red_mapping = (char)p; }
7062  int GetRedMapping () const { return (int)m_red_mapping; }
7063 
7065  void SetGreenMapping (int p) { m_green_mapping = (char)p; }
7067  int GetGreenMapping () const { return (int)m_green_mapping; }
7068 
7070  void SetBlueMapping (int p) { m_blue_mapping = (char)p; }
7072  int GetBlueMapping () const { return (int)m_blue_mapping; }
7073 
7075  void SetAlphaMapping (int p) { m_alpha_mapping = (char)p; }
7077  int GetAlphaMapping () const { return (int)m_alpha_mapping; }
7078 
7080  void SetParameterFunction (int p) { m_param_function = (char)p; }
7082  int GetParameterFunction () const { return (int)m_param_function; }
7083 
7085  void SetLayout (int p) { m_layout = (char)p; }
7087  int GetLayout () const { return (int)m_layout; }
7088 
7090  void SetTiling (int p) { m_tiling = (char)p; }
7092  int GetTiling () const { return (int)m_tiling; }
7093 
7095  void SetValueScale (float v1, float v2) { m_value_scale[0] = v1; m_value_scale[1] = v2; }
7097  float const * GetValueScale () const { return m_value_scale; }
7098 
7100  void SetApplicationMode (int p) { m_apply_mode = (char)p; }
7102  int GetApplicationMode () const { return (int)m_apply_mode; }
7103 
7105  void SetParameterOffset (int p) { m_param_offset = (char)p; }
7107  int GetParameterOffset () const { return (int)m_param_offset; }
7108 
7113  void SetTransform (char const * transform) { set_transform (transform); }
7118  void SetTransform (int length) { set_transform (length); }
7120  char const * GetTransform () const { return m_transform; }
7122  char * GetTransform () { return m_transform; }
7123 };
7124 
7126 
7128 
7134 class BBINFILETK_API2 TK_Thumbnail : public BBaseOpcodeHandler {
7135  protected:
7136  unsigned char * m_bytes;
7138  int m_size[2];
7139  unsigned char m_format;
7141  public:
7143  TK_Thumbnail() : BBaseOpcodeHandler (TKE_Thumbnail), m_bytes (0), m_allocated (0), m_format (TKO_Thumbnail_Invalid) {}
7144  ~TK_Thumbnail();
7145 
7148  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7149 
7150  TK_Status ReadAscii (BStreamFileToolkit & tk);
7151  TK_Status WriteAscii (BStreamFileToolkit & tk);
7152 
7154  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
7155  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
7156  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
7157  void Reset ();
7158 
7163  void SetBytes (int size, unsigned char const * bytes = 0);
7165  unsigned char const * GetBytes () const { return m_bytes; }
7167  unsigned char * GetBytes () { return m_bytes; }
7168 
7170  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
7172  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
7174  int const * GetSize () const { return m_size; }
7175 
7177  void SetFormat (int f) { m_format = (unsigned char)f; }
7179  int GetFormat () const { return (int)m_format; }
7180 };
7181 
7182 
7184 
7186 
7191 class BBINFILETK_API2 TK_Glyph_Definition : public BBaseOpcodeHandler {
7192  protected:
7194  int m_size;
7195  char * m_name;
7196  char * m_data;
7198  public:
7200  TK_Glyph_Definition () : BBaseOpcodeHandler (TKE_Glyph_Definition),
7201  m_name_length (0), m_size (0),
7202  m_name (0), m_data (0) {}
7204 
7207  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7208 
7209  TK_Status ReadAscii (BStreamFileToolkit & tk);
7210  TK_Status WriteAscii (BStreamFileToolkit & tk);
7211 
7212  void Reset ();
7213 
7215  void SetName (char const * name);
7217  void SetName (int length);
7219  char const * GetName () const { return m_name; }
7221  char * GetName () { return m_name; }
7222 
7224  void SetDefinition (int size, char const * data = 0);
7226  int GetDefinitionSize () const { return m_size; }
7228  char const * GetDefinition () const { return m_data; }
7230  char * GetDefinition () { return m_data; }
7231 };
7232 
7233 
7235 
7240 class BBINFILETK_API2 TK_Shape_Definition : public BBaseOpcodeHandler {
7241  protected:
7243  int m_size;
7244  char * m_name;
7245  float * m_data;
7247  public:
7249  TK_Shape_Definition () : BBaseOpcodeHandler (TKE_Shape_Definition),
7250  m_name_length (0), m_size (0),
7251  m_name (0), m_data (0) {}
7253 
7256  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7257 
7258  TK_Status ReadAscii (BStreamFileToolkit & tk);
7259  TK_Status WriteAscii (BStreamFileToolkit & tk);
7260 
7261  void Reset ();
7262 
7264  void SetName (char const * name);
7266  void SetName (int length);
7268  char const * GetName () const { return m_name; }
7270  char * GetName () { return m_name; }
7271 
7273  void SetDefinition (int size, float const * data = 0);
7275  int GetDefinitionSize () const { return m_size; }
7277  float const * GetDefinition () const { return m_data; }
7279  float * GetDefinition () { return m_data; }
7280 };
7281 
7282 
7284 
7289 class BBINFILETK_API2 TK_Named_Style_Def : public BBaseOpcodeHandler {
7290  protected:
7292  char * m_name;
7295  char * m_segment;
7299  char * m_condition;
7303  bool m_follow;
7304 
7305  public:
7308  m_name_length (0), m_name (0),
7309  m_segment_length (0), m_segment (0) ,
7310  m_cond_length (0), m_cond_allocated (0), m_condition (0),
7311  m_key(-1), m_referee(0), m_follow(true) {}
7312  ~TK_Named_Style_Def();
7313 
7316  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7317 
7318  TK_Status ReadAscii (BStreamFileToolkit & tk);
7319  TK_Status WriteAscii (BStreamFileToolkit & tk);
7320 
7321  void Reset ();
7322 
7324  void SetName (char const * name);
7326  void SetName (int length);
7328  char const * GetName () const { return m_name; }
7330  char * GetName () { return m_name; }
7331 
7336  void SetSegment (char const * segment);
7341  void SetSegment (int length);
7345  char const * GetSegment () const { return m_segment; }
7350  char * GetSegment () { return m_segment; }
7351 };
7352 
7354 
7359 class BBINFILETK_API2 TK_Line_Style : public BBaseOpcodeHandler {
7360  protected:
7363  char * m_name;
7364  char * m_definition;
7366  public:
7368  TK_Line_Style () : BBaseOpcodeHandler (TKE_Line_Style),
7369  m_name_length (0), m_definition_length (0),
7370  m_name (0), m_definition (0) {}
7371  ~TK_Line_Style();
7372 
7375  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7376 
7377  TK_Status ReadAscii (BStreamFileToolkit & tk);
7378  TK_Status WriteAscii (BStreamFileToolkit & tk);
7379 
7380  void Reset ();
7381 
7383  void SetName (char const * name);
7385  void SetName (int length);
7387  char const * GetName () const { return m_name; }
7389  char * GetName () { return m_name; }
7390 
7392  void SetDefinition (char const * def);
7394  void SetDefinition (int length);
7396  char const * GetDefinition () const { return m_definition; }
7398  char * GetDefinition () { return m_definition; }
7399 };
7400 
7402 
7404 
7409 class BBINFILETK_API TK_Clip_Rectangle : public BBaseOpcodeHandler {
7410  protected:
7411  char m_options;
7412  float m_rect[4];
7414  public:
7417  : BBaseOpcodeHandler (TKE_Clip_Rectangle), m_options (0) {}
7418 
7421  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7422 
7423  TK_Status ReadAscii (BStreamFileToolkit & tk);
7424  TK_Status WriteAscii (BStreamFileToolkit & tk);
7425 
7426  void Reset ();
7427 
7429  void SetRectangle (float left, float right, float bottom, float top)
7430  { m_rect[0] = left; m_rect[1] = right; m_rect[2] = bottom; m_rect[3] = top; }
7432  void SetRectangle (float const * rect)
7433  { SetRectangle (rect[0], rect[1], rect[2], rect[3]); }
7435  float const * GetRectangle () const { return m_rect; }
7436 
7438  void SetOptions (int o) { m_options = (char)o; }
7440  int GetOptions () const { return (int)m_options; }
7441 };
7442 
7444 
7446 
7451 class BBINFILETK_API TK_Clip_Region : public BBaseOpcodeHandler {
7452  protected:
7453  char m_options;
7454  int m_count;
7455  float * m_points;
7456  double * m_dpoints;
7460  public:
7463  : BBaseOpcodeHandler (TKE_Clip_Region), m_options (0), m_count (0), m_points (0), m_dpoints (0), m_complex (0) {}
7464  ~TK_Clip_Region();
7465 
7468  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7469 
7470  TK_Status ReadAscii (BStreamFileToolkit & tk);
7471  TK_Status WriteAscii (BStreamFileToolkit & tk);
7472 
7473  void Reset ();
7474 
7479  void SetPoints (int count, float const points[] = 0);
7481  float const * GetPoints () const { return m_points; }
7483  float * GetPoints () { return m_points; }
7484 
7489  void SetDPoints (int count, double const points[] = 0);
7491  double const * GetDPoints () const { return m_dpoints; }
7493  double * GetDPoints () { return m_dpoints; }
7494 
7495 
7497  int GetCount () const { return m_count; }
7498 
7499 
7501  void SetOptions (int o) { m_options = (char)o; }
7503  int GetOptions () const { return (int)m_options; }
7504 };
7505 
7506 
7508 
7510 
7515 class BBINFILETK_API TK_Complex_Clip_Region : public BBaseOpcodeHandler {
7516  protected:
7517  char m_options;
7518  int m_loops;
7519  int m_total;
7520  int * m_lengths;
7521  float * m_points;
7522  double * m_dpoints;
7524  public:
7527  : BBaseOpcodeHandler (TKE_Complex_Clip_Region), m_options (0), m_loops (0), m_total (0),
7528  m_lengths (0), m_points (0), m_dpoints (0) {}
7530 
7533  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7534 
7535  TK_Status ReadAscii (BStreamFileToolkit & tk);
7536  TK_Status WriteAscii (BStreamFileToolkit & tk);
7537 
7538  void Reset ();
7539 
7544  void SetPoints (int count, float const points[] = 0);
7546  float const * GetPoints () const { return m_points; }
7548  float * GetPoints () { return m_points; }
7549 
7554  void SetDPoints (int count, double const points[] = 0);
7556  double const * GetDPoints () const { return m_dpoints; }
7558  double * GetDPoints () { return m_dpoints; }
7559 
7560 
7565  void SetLengths (int count, int const lengths[] = 0);
7567  int const * GetLengths () const { return m_lengths; }
7569  int * GetLengths () { return m_lengths; }
7570 
7571 
7573  int GetTotal () const { return m_total; }
7575  int GetLoops () const { return m_loops; }
7576 
7577 
7579  void SetOptions (int o) { m_options = (char)o; }
7581  int GetOptions () const { return (int)m_options; }
7582 };
7583 
7584 
7586 
7588 
7604 class BBINFILETK_API2 TK_User_Data : public BBaseOpcodeHandler {
7605  protected:
7606  int m_size;
7607  unsigned char * m_data;
7610  void set_data (int size, unsigned char const * bytes = 0);
7612 
7613  public:
7616  : BBaseOpcodeHandler (TKE_Start_User_Data), m_size (0), m_data (0), m_buffer_size(0) {}
7617  ~TK_User_Data();
7618 
7621  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7622 
7623  TK_Status ReadAscii (BStreamFileToolkit & tk);
7624  TK_Status WriteAscii (BStreamFileToolkit & tk);
7625 
7627  void Reset ();
7628 
7633  void SetUserData (int size, unsigned char const * bytes = 0) { set_data (size, bytes); }
7635  unsigned char const * GetUserData () const { return m_data; }
7637  unsigned char * GetUserData () { return m_data; }
7639  int GetSize () const { return m_size; }
7640 
7642  void Resize (int size);
7643 
7645  void SetSize (int size);
7646 };
7647 
7648 
7650 
7652 
7664 class BBINFILETK_API2 TK_Material : public BBaseOpcodeHandler {
7665  protected:
7667 
7670  struct vlist_s *m_data;
7671 
7672  public:
7674  TK_Material () : BBaseOpcodeHandler (TKE_Material), m_total_size(0), m_data(0) {}
7675  ~TK_Material();
7676 
7679  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7680  void Reset ();
7681 
7682  TK_Status PushUserData (char const *buffer, int buffer_size, bool tally_total_size = true);
7683  TK_Status GetBlock (char const **ptr, int *buffer_size);
7684 };
7685 
7687 
7692 class BBINFILETK_API TK_XML : public BBaseOpcodeHandler {
7693  protected:
7694  int m_size;
7695  char * m_data;
7697  public:
7699  TK_XML (): BBaseOpcodeHandler (TKE_XML), m_size (0), m_data (0) {}
7700  ~TK_XML();
7701 
7704  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7705 
7706  TK_Status ReadAscii (BStreamFileToolkit & tk);
7707  TK_Status WriteAscii (BStreamFileToolkit & tk);
7708 
7710  void Reset ();
7711 
7716  void SetXML (int size, char const * data = 0);
7720  void AppendXML (int size, char const * data = 0);
7722  char const * GetXML () const { return m_data; }
7724  char * GetXML () { return m_data; }
7726  int GetSize () const { return m_size; }
7727 };
7728 
7729 
7730 
7732 
7738 class BBINFILETK_API TK_URL : public BBaseOpcodeHandler {
7739  protected:
7740  int m_length;
7742  char * m_string;
7744  public:
7747  m_length (0), m_allocated (0), m_string (0) {}
7748  ~TK_URL();
7749 
7752  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7753 
7754  TK_Status ReadAscii (BStreamFileToolkit & tk);
7755  TK_Status WriteAscii (BStreamFileToolkit & tk);
7756 
7757  void Reset ();
7758 
7760  void SetString (char const * string);
7762  void SetString (int length);
7764  char const * GetString () const { return m_string; }
7766  char * GetString () { return m_string; }
7767 };
7768 
7769 
7771 
7777 class BBINFILETK_API TK_External_Reference : public BBaseOpcodeHandler {
7778  protected:
7779  int m_length;
7781  char * m_string;
7783  public:
7784  TK_External_Reference () : BBaseOpcodeHandler (TKE_External_Reference),
7785  m_length (0), m_allocated (0), m_string (0) {}
7787 
7790  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7791 
7792  TK_Status ReadAscii (BStreamFileToolkit & tk);
7793  TK_Status WriteAscii (BStreamFileToolkit & tk);
7794 
7796  void Reset ();
7797 
7799  void SetString (char const * string);
7801  void SetString (int length);
7803  char const * GetString () const { return m_string; }
7805  char * GetString () { return m_string; }
7806 };
7807 
7808 
7810 
7816 class BBINFILETK_API TK_External_Reference_Unicode : public BBaseOpcodeHandler {
7817  protected:
7818  int m_length;
7820  wchar_t * m_string;
7822  public:
7823  TK_External_Reference_Unicode () : BBaseOpcodeHandler (TKE_External_Reference_Unicode),
7824  m_length (0), m_allocated (0), m_string (0) {}
7826 
7829  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7830 
7832  void Reset ();
7833 
7835  void SetString (__wchar_t const * string);
7836 #ifdef _MSC_VER
7837  void SetString (unsigned short const * string);
7838 #endif
7839 
7840  void SetString (int length);
7842  wchar_t const * GetString () const { return m_string; }
7844  wchar_t * GetString () { return m_string; }
7845 };
7846 
7847 
7848 
7849 
7851 
7857 class BBINFILETK_API TK_Image_XRef : public BBaseOpcodeHandler {
7858  protected:
7859  char * m_name;
7861  int m_size[2];
7862  char m_bpp;
7863 
7865  void set_name (char const * string);
7867  void set_name (int length);
7868 
7869  public:
7870  TK_Image_XRef () : BBaseOpcodeHandler (TKE_Image_XRef), m_name (0), m_name_length (0), m_bpp(0)
7871  { m_size[0] = m_size[1] = 0; }
7872  ~TK_Image_XRef();
7873 
7876  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7878  void Reset (void);
7879 
7881  void SetName (char const * string) { set_name (string);}
7883  void SetName (int length) { set_name (length);}
7885  char const * GetName (void) const { return m_name;}
7887  char * GetName (void) { return m_name;}
7888 
7889  void SetSize (int x, int y ) { m_size[0] = x; m_size[1] = y;}
7890  int const* GetSize (void) const { return m_size;}
7891  int * GetSize (void) { return m_size;}
7892 
7893  void SetBitDepth( char bpp ) { m_bpp = bpp;}
7894  char const GetBitDepth (void) const { return m_bpp;}
7895  char GetBitDepth (void) { return m_bpp;}
7896 };
7897 
7898 
7899 #endif //BOPCODE_HANDLER
7900 
void SetOptions(int o)
Definition: BOpcodeHandler.h:5516
void SetAxis(float const s[], float const e[])
Definition: BOpcodeHandler.h:6230
char ** m_isoline_patterns
for internal use only.
Definition: BOpcodeHandler.h:2298
float GetPreferenceCutoff() const
Definition: BOpcodeHandler.h:5126
char * GetString()
Definition: BOpcodeHandler.h:2181
void SetColorMarkerContrastLockMask(int m)
Definition: BOpcodeHandler.h:2847
float * m_control_points
Definition: BOpcodeHandler.h:5404
float const * GetRGB() const
Definition: BOpcodeHandler.h:1948
int m_nurbs_options_value
For internal use only.
Definition: BOpcodeHandler.h:2328
static TK_Status PutData(BStreamFileToolkit &tk, short const *s, int n)
Definition: BOpcodeHandler.h:353
shift corresponding to extended bit
Definition: BOpcodeEnums.h:279
int GetMask(int index=0) const
Definition: BOpcodeHandler.h:2446
int GetTechnology() const
Definition: BOpcodeHandler.h:2471
char m_isoline_position_type
for internal use only.
Definition: BOpcodeHandler.h:2292
BBaseOpcodeHandler * m_indices
Definition: BOpcodeHandler.h:4493
int GetOptions() const
Definition: BOpcodeHandler.h:5266
for further expansion
Definition: BOpcodeEnums.h:1138
void SetPoints(float const s[], float const e[])
Definition: BOpcodeHandler.h:5303
ID_Key last_key(BStreamFileToolkit &tk) const
obsolete
Definition: BOpcodeHandler.h:650
int value
For internal use only.
Definition: BOpcodeHandler.h:1059
char * m_coordinate_systems
internal use
Definition: BOpcodeHandler.h:3991
int GetSelectionLevel() const
Definition: BOpcodeHandler.h:3959
int GetFlags() const
Definition: BOpcodeHandler.h:7042
void SetType(int t)
Definition: BOpcodeHandler.h:6518
virtual bool NeedsContext(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:227
unsigned char const * GetUserData() const
Definition: BOpcodeHandler.h:7635
int GetMaximumExtentMode() const
Definition: BOpcodeHandler.h:3895
TK_Clip_Rectangle()
Definition: BOpcodeHandler.h:7416
int m_name_length
Definition: BOpcodeHandler.h:7193
TK_Grid()
Definition: BOpcodeHandler.h:6430
int m_name_length
Definition: BOpcodeHandler.h:6822
char m_maximum_extent_level
internal use; maximum extent level
Definition: BOpcodeHandler.h:3807
char * GetName()
Definition: BOpcodeHandler.h:6755
void SetJoinCutoffAngle(int d)
Definition: BOpcodeHandler.h:2499
int GetLodMinimumTriangleCount() const
Definition: BOpcodeHandler.h:3415
int GetFormat() const
Definition: BOpcodeHandler.h:6921
void SetPixelThreshold(int c)
Definition: BOpcodeHandler.h:3887
float GetCutGeometryTolerance() const
Definition: BOpcodeHandler.h:3583
void SetDUpVector(double const u[])
Definition: BOpcodeHandler.h:4804
void SetVisibilityLockValue(int v)
Definition: BOpcodeHandler.h:2536
int const * GetSize() const
Definition: BOpcodeHandler.h:7174
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:648
int GetToleranceUnits() const
Definition: BOpcodeHandler.h:5039
float const * GetDefinition() const
Definition: BOpcodeHandler.h:7277
bool GetLogging() const
Definition: BStreamFileToolkit.h:1005
float * m_v_knots
Definition: BOpcodeHandler.h:5580
void SetPattern(int p)
Definition: BOpcodeHandler.h:4318
int color_value
For internal use only.
Definition: BOpcodeHandler.h:1061
channel m_bump
internal use
Definition: BOpcodeHandler.h:1741
short color_text_mask
For internal use only.
Definition: BOpcodeHandler.h:1070
unsigned short m_unsigned_short
temporary
Definition: BOpcodeHandler.h:82
char m_space
internal use
Definition: BOpcodeHandler.h:1962
int GetOffset() const
Definition: BOpcodeHandler.h:1700
int m_allocated
Definition: BOpcodeHandler.h:7137
void SetTransmissionName(int length)
Definition: BOpcodeHandler.h:1848
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5405
void SetCoordinateSystems(int count, char const cs[])
Definition: BOpcodeHandler.h:4028
ID_Key GetIndex()
Definition: BOpcodeHandler.h:1410
void SetDUpVector(double x, double y, double z)
Definition: BOpcodeHandler.h:4801
void SetTransmission(float const rgb[])
Definition: BOpcodeHandler.h:1844
float const * GetField() const
Definition: BOpcodeHandler.h:4815
void SetLodFallback(int v)
Definition: BOpcodeHandler.h:3433
double * m_dpoints
Definition: BOpcodeHandler.h:6300
int GetCount() const
Definition: BOpcodeHandler.h:5701
char * GetCondition()
Definition: BOpcodeHandler.h:1430
static TK_Status GetData(BStreamFileToolkit &tk, short &s)
Definition: BOpcodeHandler.h:308
void SetComment(int length)
Definition: BOpcodeHandler.h:984
char const * GetCamera() const
Definition: BOpcodeHandler.h:7031
void SetColorMarkerContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3250
float * m_leaders
Definition: BOpcodeHandler.h:6570
void SetOptions(int o)
Definition: BOpcodeHandler.h:7438
char * m_name
Definition: BOpcodeHandler.h:7859
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char *b, int n)
Definition: BOpcodeHandler.h:296
int GetRadiusCount() const
Definition: BOpcodeHandler.h:6381
int const * GetIndices() const
Definition: BOpcodeHandler.h:4657
void SetColorLockValue(int v)
Definition: BOpcodeHandler.h:2559
static TK_Status PutData(BStreamFileToolkit &tk, char const *b, int n)
Definition: BOpcodeHandler.h:350
char const * GetTransmissionName() const
Definition: BOpcodeHandler.h:1852
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:6899
int GetForcedLockValue() const
Definition: BOpcodeHandler.h:2922
void SetInternalSelectionLimit(int i)
Definition: BOpcodeHandler.h:3855
int m_count
internal use
Definition: BOpcodeHandler.h:5657
int m_lookup_length
Definition: BOpcodeHandler.h:6698
int m_shader_source_length
Definition: BOpcodeHandler.h:6951
void SetDRef1(double const r[])
Definition: BOpcodeHandler.h:6490
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:5748
void SetGeneralDisplacement(int d)
Definition: BOpcodeHandler.h:2494
unsigned short mask
specifies which settings are active (i.e. the attributes for which we have an opinion at this point) ...
Definition: BOpcodeHandler.h:6537
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4578
bool NeedsTag() const
Definition: BOpcodeHandler.h:199
unsigned int NextOpcodeSequence()
Definition: BStreamFileToolkit.h:1036
int GetColorVertexLockMask() const
Definition: BOpcodeHandler.h:2783
TK_Header()
Definition: BOpcodeHandler.h:879
int m_values_length
internal use
Definition: BOpcodeHandler.h:2122
float const * GetWeights() const
Definition: BOpcodeHandler.h:5551
unsigned char m_degree
Definition: BOpcodeHandler.h:5495
int GetColorWindowForcedLockMask() const
Definition: BOpcodeHandler.h:3094
void SetAmbientUpVector(float const v[])
Definition: BOpcodeHandler.h:3742
Capping_Options
Definition: BOpcodeHandler.h:6326
int m_simple_reflection_blur
For internal use only.
Definition: BOpcodeHandler.h:2380
char const * GetView() const
Definition: BOpcodeHandler.h:4862
int m_shape_length
for internal use only
Definition: BOpcodeHandler.h:4942
unsigned char m_tolerance_units
for internal use only
Definition: BOpcodeHandler.h:4950
int GetColorLineContrastLockValue() const
Definition: BOpcodeHandler.h:2840
unsigned char m_opcode
The opcode being handled by this particular object.
Definition: BOpcodeHandler.h:65
float const * GetPlane() const
Definition: BOpcodeHandler.h:5840
int GetTextRegionFitting() const
Definition: BOpcodeHandler.h:6644
int GetStringCursorCount() const
Definition: BOpcodeHandler.h:6650
float GetHlrFaceDisplacement() const
Definition: BOpcodeHandler.h:3359
float * GetDefinition()
Definition: BOpcodeHandler.h:7279
int GetDebug() const
Definition: BOpcodeHandler.h:2481
int GetNURBSCurveBudget() const
Definition: BOpcodeHandler.h:3385
float const * GetAmbientUpVector() const
Definition: BOpcodeHandler.h:3744
char m_char
temporary
Definition: BOpcodeHandler.h:84
TK_Status PutGeneral(BStreamFileToolkit &tk)
Definition: BOpcodeHandler.h:491
int GetColorTextContrastLockMask() const
Definition: BOpcodeHandler.h:2898
static TK_Status GetData(BStreamFileToolkit &tk, short *s, int n)
Definition: BOpcodeHandler.h:264
float const * GetTextLeaders() const
Definition: BOpcodeHandler.h:6661
int GetGeometry() const
Definition: BOpcodeHandler.h:2103
void SetVertexDisplacement(int d)
Definition: BOpcodeHandler.h:2489
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5323
int m_size
Definition: BOpcodeHandler.h:7606
self-explanatory; (internal note: keep this listed last)
Definition: BOpcodeEnums.h:1075
void SetFormat(int f)
Definition: BOpcodeHandler.h:6919
int GetLodAlgorithm() const
Definition: BOpcodeHandler.h:3411
void SetOblique(float h, float v)
Definition: BOpcodeHandler.h:4830
void SetColorTextLockValue(int v)
Definition: BOpcodeHandler.h:2674
unsigned short m_pattern
internal use
Definition: BOpcodeHandler.h:4303
double * m_dpoints
Definition: BOpcodeHandler.h:7456
channel m_specular
internal use
Definition: BOpcodeHandler.h:1736
unsigned char const * GetBytes() const
Definition: BOpcodeHandler.h:7165
float vertical_offset
offset, positive or negative, from the standard position. units are specified separately in vertical_...
Definition: BOpcodeHandler.h:6531
self-explanatory
Definition: BOpcodeEnums.h:266
char * m_shader_source
Definition: BOpcodeHandler.h:6947
int m_length
internal use
Definition: BOpcodeHandler.h:942
////
Definition: BOpcodeEnums.h:133
short color_face_value
For internal use only.
Definition: BOpcodeHandler.h:1063
void SetColorWindowForcedLockMask(int m)
Definition: BOpcodeHandler.h:3089
TK_Status ReadAscii(BStreamFileToolkit &tk)
Deprecated.
void SetBufferSizeLimit(int l)
Definition: BOpcodeHandler.h:3326
float * GetPoints()
Definition: BOpcodeHandler.h:5609
short m_type
Definition: BOpcodeHandler.h:4441
unsigned char Opcode() const
Definition: BOpcodeHandler.h:164
void SetTechnology(int t)
Definition: BOpcodeHandler.h:2469
int m_surface_trim_budget
For internal use only.
Definition: BOpcodeHandler.h:2332
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:4784
Handles the TKE_Reopen_Segment opcode.
Definition: BOpcodeHandler.h:1257
int m_current_level
the index of the level currently in progress.
Definition: BOpcodeHandler.h:1515
void SetScreenRange(float const l[], float const o[])
Definition: BOpcodeHandler.h:3726
char m_options
for internal use only
Definition: BOpcodeHandler.h:5725
void SetPreferenceCutoffUnits(int u)
Definition: BOpcodeHandler.h:5129
void increase_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:659
HT_NURBS_Trim * m_list
Definition: BOpcodeHandler.h:5501
void SetDPoints(double const p[])
Definition: BOpcodeHandler.h:5321
void SetTolerance(float t)
Definition: BOpcodeHandler.h:5032
int m_highest_level
keeps track of highest level lod that has been seen so far
Definition: BOpcodeHandler.h:1511
char * GetTransform()
Definition: BOpcodeHandler.h:7122
void SetSimpleShadowBlur(int m)
Definition: BOpcodeHandler.h:3620
float m_surface_max_facet_angle
For internal use only.
Definition: BOpcodeHandler.h:2334
unsigned short m_mask
internal use
Definition: BOpcodeHandler.h:3985
float m_radius
Definition: BOpcodeHandler.h:6207
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:4774
int GetColorForcedLockValue() const
Definition: BOpcodeHandler.h:2967
int GetColorLineContrastLockMask() const
Definition: BOpcodeHandler.h:2829
char const * GetName() const
Definition: BOpcodeHandler.h:7328
void SetLodBounding(float const s[], float const e[])
Definition: BOpcodeHandler.h:3443
float m_hlr_weight
for internal use only.
Definition: BOpcodeHandler.h:2281
double * GetDTextLeaders()
Definition: BOpcodeHandler.h:6676
char * m_name
Definition: BOpcodeHandler.h:7292
void SetBufferOptionsMask(int v)
Definition: BOpcodeHandler.h:3318
int m_nurbs_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2327
float * m_control_points
Definition: BOpcodeHandler.h:5576
int m_loops
Definition: BOpcodeHandler.h:7518
void SetImage(int length)
Definition: BOpcodeHandler.h:7020
short color_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1065
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6767
Handles the TKE_Close_Segment opcode.
Definition: BOpcodeHandler.h:1229
int GetPattern() const
Definition: BOpcodeHandler.h:4320
Handles the TKE_Geometry_Options opcode.
Definition: BOpcodeHandler.h:3983
float const * GetCenter() const
Definition: BOpcodeHandler.h:6116
int m_up
internal use; specifies what geometry is selectable on mouse button up. For internal use only...
Definition: BOpcodeHandler.h:4106
int m_debug_allocated
Definition: BOpcodeHandler.h:71
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5696
int GetOrientationCount() const
Definition: BOpcodeHandler.h:4023
float const * GetPoints() const
Definition: BOpcodeHandler.h:7546
void SetDEnd(double const e[])
Definition: BOpcodeHandler.h:5955
int GetColorVertexLockValue() const
Definition: BOpcodeHandler.h:2794
TK_Unavailable(char opcode)
Definition: BOpcodeHandler.h:858
void SetOptions(char const *options)
Definition: BOpcodeHandler.h:4516
static TK_Status GetData(BStreamFileToolkit &tk, float *f, int n)
Definition: BOpcodeHandler.h:280
void SetColorFaceLockMask(int m)
Definition: BOpcodeHandler.h:2571
int GetUSize() const
Definition: BOpcodeHandler.h:5620
short color_window_mask
For internal use only.
Definition: BOpcodeHandler.h:1072
int m_allocated
Definition: BOpcodeHandler.h:7819
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1623
void SetSelectionCulling(int c)
Definition: BOpcodeHandler.h:3879
void SetAxis(float x, float y, float z)
Definition: BOpcodeHandler.h:6125
float m_max_distance
internal use; max distance
Definition: BOpcodeHandler.h:3812
void SetDPoints(double const s[], double const m[], double const e[], double const c[]=0)
Definition: BOpcodeHandler.h:5969
channel m_transmission
internal use
Definition: BOpcodeHandler.h:1738
Handles the TKE_Cylinder opcode.
Definition: BOpcodeHandler.h:6204
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:6016
float m_radius
Definition: BOpcodeHandler.h:6087
void Reset(void)
Definition: BOpcodeHandler.h:5240
char const * GetBytes() const
Definition: BOpcodeHandler.h:6873
Handles the TKE_Color_By_Value opcode.
Definition: BOpcodeHandler.h:1958
unsigned char m_flags
Definition: BOpcodeHandler.h:6085
char * m_string
internal use
Definition: BOpcodeHandler.h:2125
TK_Sphere()
Definition: BOpcodeHandler.h:6097
int GetTotal() const
Definition: BOpcodeHandler.h:7573
HLONG const * GetValues() const
Definition: BOpcodeHandler.h:4609
double * GetDRadii()
Definition: BOpcodeHandler.h:6375
////
Definition: BOpcodeEnums.h:49
double * m_dpoints
Definition: BOpcodeHandler.h:7522
float GetGreekingLimit() const
Definition: BOpcodeHandler.h:5079
void SetShadowMapResolution(int m)
Definition: BOpcodeHandler.h:3672
double * GetDOrigin()
Definition: BOpcodeHandler.h:6483
void SetInner(float i)
Definition: BOpcodeHandler.h:5777
unsigned char m_region_count
Definition: BOpcodeHandler.h:6564
TK_Conditional_Action()
Definition: BOpcodeHandler.h:4448
char const * GetImage() const
Definition: BOpcodeHandler.h:7022
void SetDPlane(double a, double b, double c, double d)
Definition: BOpcodeHandler.h:5830
options mask (unsigned char if file version is < 1805)
Definition: BOpcodeEnums.h:1383
void SetColorBackForcedLockMask(int m)
Definition: BOpcodeHandler.h:3158
int GetCount() const
Definition: BOpcodeHandler.h:5850
Handles the TKE_Termination and TKE_Pause opcodes.
Definition: BOpcodeHandler.h:1006
unsigned short m_contour_options
for internal use only.
Definition: BOpcodeHandler.h:2287
char * m_condition
Definition: BOpcodeHandler.h:7299
double * m_dpoints
internal use
Definition: BOpcodeHandler.h:5659
int GetMaximumExtentLevel() const
Definition: BOpcodeHandler.h:3899
TK_Thumbnail()
Definition: BOpcodeHandler.h:7143
void GetDTarget(double t[]) const
Definition: BOpcodeHandler.h:4788
void decrease_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:661
int GetLodNumCutoffs() const
Definition: BOpcodeHandler.h:3503
char m_options
relevant to TKE_Distant_Light and TKE_Local_Light only. See TKO_Light_Options.
Definition: BOpcodeHandler.h:5222
short color_vertex_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1088
int GetLodClamp() const
Definition: BOpcodeHandler.h:3423
int GetTransparentHSR() const
Definition: BOpcodeHandler.h:2461
int GetHSR() const
Definition: BOpcodeHandler.h:2456
void SetLookup(int length)
Definition: BOpcodeHandler.h:6760
void SetChannels(int c)
Definition: BOpcodeHandler.h:1788
near limit setting
Definition: BOpcodeEnums.h:1108
float m_end_u
Definition: BOpcodeHandler.h:5500
void SetName(int length)
Definition: BOpcodeHandler.h:6751
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:5743
short color_window_value
For internal use only.
Definition: BOpcodeHandler.h:1073
float m_cut_geometry_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2359
float * m_points
Definition: BOpcodeHandler.h:5493
type for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:647
bool validate_count(int count, int limit=1<< 24) const
Definition: BOpcodeHandler.h:690
void SetShadowMap(int m)
Definition: BOpcodeHandler.h:3667
void SetEnd(float x, float y, float z)
Definition: BOpcodeHandler.h:5902
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6622
double * GetDPoints()
Definition: BOpcodeHandler.h:5613
int m_cond_allocated
Definition: BOpcodeHandler.h:1386
void Revisit(BStreamFileToolkit &tk, float priority=0.0f, int variant=0) const
Definition: BOpcodeHandler.h:666
char * m_name
Definition: BOpcodeHandler.h:6946
char m_green_mapping
Definition: BOpcodeHandler.h:6961
char * GetSegment()
Definition: BOpcodeHandler.h:1341
int GetLockValue() const
Definition: BOpcodeHandler.h:2519
char * GetString()
Definition: BOpcodeHandler.h:7805
unsigned char m_encoding
Definition: BOpcodeHandler.h:6701
Handles the TKE_Comment opcode.
Definition: BOpcodeHandler.h:939
void SetSegment(char const *segment)
Definition: BOpcodeHandler.h:1198
TK_Bounding(unsigned char opcode, double min[], double max[])
Definition: BOpcodeHandler.h:5187
Definition: BOpcodeHandler.h:4328
void SetBumpName(char const *name)
Definition: BOpcodeHandler.h:1881
void SetImageScale(float const s[])
Definition: BOpcodeHandler.h:3749
char * m_style
for internal use only
Definition: BOpcodeHandler.h:4945
void SetOrtho(float const s[])
Definition: BOpcodeHandler.h:6142
int GetColorTextLockValue() const
Definition: BOpcodeHandler.h:2679
int m_from_variant
internal use
Definition: BOpcodeHandler.h:1453
float const * GetDepthRange() const
Definition: BOpcodeHandler.h:3715
int m_mask
specifies which rendering options are active (and hence, which are valid). For internal use only...
Definition: BOpcodeHandler.h:4926
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:5759
virtual void Reset()
int m_mask
internal use; specifies which selectability settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4104
void SetGloss(float g)
Definition: BOpcodeHandler.h:1890
char const * GetTransform() const
Definition: BOpcodeHandler.h:7120
TK_Delete_Object()
Definition: BOpcodeHandler.h:1484
TK_Cutting_Plane()
Definition: BOpcodeHandler.h:5807
void SetCallback(int length)
Definition: BOpcodeHandler.h:2221
void SetMaximumExtentMode(int c)
Definition: BOpcodeHandler.h:3897
int m_hard_extent
internal use; hard extent
Definition: BOpcodeHandler.h:3808
static TK_Status PutData(BStreamFileToolkit &tk, char const &c)
Definition: BOpcodeHandler.h:450
void SetMoveDown(int m)
Definition: BOpcodeHandler.h:4164
void SetAxis(float const a[])
Definition: BOpcodeHandler.h:6232
void SetValue(float const triple[])
Definition: BOpcodeHandler.h:2006
int m_style_length
for internal use only
Definition: BOpcodeHandler.h:4943
wchar_t * m_string
Definition: BOpcodeHandler.h:7820
int m_internal_polyline
internal use
Definition: BOpcodeHandler.h:3798
int GetColorFaceForcedLockMask() const
Definition: BOpcodeHandler.h:2979
int m_min_triangle_count
For internal use only.
Definition: BOpcodeHandler.h:2316
short color_line_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1085
Handles the TKE_Reference opcodes.
Definition: BOpcodeHandler.h:1382
short color_cut_face_value
For internal use only.
Definition: BOpcodeHandler.h:1095
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition: BStreamFileToolkit.h:367
void SetDAxis(double const s[])
Definition: BOpcodeHandler.h:6169
TK_Circle(unsigned char opcode)
Definition: BOpcodeHandler.h:5873
void SetOrderedWeight(int index, float weight)
Definition: BOpcodeHandler.h:3945
int m_flags
Definition: BOpcodeHandler.h:6954
char m_orientation_count
internal use
Definition: BOpcodeHandler.h:3988
int GetType() const
Definition: BOpcodeHandler.h:6734
static TK_Status GetData(BStreamFileToolkit &tk, float &f)
Definition: BOpcodeHandler.h:323
char m_layout
Definition: BOpcodeHandler.h:6965
static int flip(int i)
for internal use only
Definition: BOpcodeHandler.h:510
int GetColorLineLockMask() const
Definition: BOpcodeHandler.h:2622
int GetForceDefer() const
Definition: BOpcodeHandler.h:3969
char * GetXML()
Definition: BOpcodeHandler.h:7724
int m_leader_count
Definition: BOpcodeHandler.h:6569
int GetColorLineContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3232
double const * GetDPosition() const
Definition: BOpcodeHandler.h:4766
Handles the TKE_Selectability opcode.
Definition: BOpcodeHandler.h:4102
float * m_points
Definition: BOpcodeHandler.h:5341
int GetOptions() const
Definition: BOpcodeHandler.h:7440
void SetTransparentHSR(int t)
Definition: BOpcodeHandler.h:2459
int GetMoveDown() const
Definition: BOpcodeHandler.h:4169
Definition: BOpcodeEnums.h:363
double const * GetDField() const
Definition: BOpcodeHandler.h:4824
void SetSimpleReflectionVisibilityMask(int m)
Definition: BOpcodeHandler.h:3705
unsigned char m_format
Definition: BOpcodeHandler.h:7139
static TK_Status PutData(BStreamFileToolkit &tk, int const *i, int n)
Definition: BOpcodeHandler.h:374
unsigned char General_Flags() const
Definition: BOpcodeHandler.h:167
void SetRadius(float radius)
Definition: BOpcodeHandler.h:6348
int m_count
Definition: BOpcodeHandler.h:6575
int m_count
Definition: BOpcodeHandler.h:5492
void SetInternalShellSelectionLimit(int i)
Definition: BOpcodeHandler.h:3860
int GetDegree() const
Definition: BOpcodeHandler.h:5543
Handles the TKE_Glyph_Definition opcode.
Definition: BOpcodeHandler.h:7191
static void fix(int *i, int n)
for internal use only
Definition: BOpcodeHandler.h:535
int m_size
Definition: BOpcodeHandler.h:7694
void SetColorVertexContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3284
void SetView(char const *name)
Definition: BOpcodeHandler.h:4858
int m_edge_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2403
int m_knot_count_implicit
Definition: BOpcodeHandler.h:5403
int m_progress
Tracks the amount of data that has been read/written so far.
Definition: BOpcodeHandler.h:64
self-explanatory
Definition: BOpcodeEnums.h:1225
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:4754
short color_marker_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1087
int GetCaps() const
Definition: BOpcodeHandler.h:6389
int m_allocated
Definition: BOpcodeHandler.h:6558
void SetIndex(float val)
Definition: BOpcodeHandler.h:2106
int GetRelatedSelectionLimit() const
Definition: BOpcodeHandler.h:3852
unsigned char m_bytes_format
Definition: BOpcodeHandler.h:6827
void SetCylinderTessellation(int n)
Definition: BOpcodeHandler.h:3515
void SetRef2(float x, float y, float z)
Definition: BOpcodeHandler.h:6463
Handles the TKE_Dictionary_Locater opcode.
Definition: BOpcodeHandler.h:1672
void SetEnd(float const e[])
Definition: BOpcodeHandler.h:5906
char m_num_sphere
For internal use only.
Definition: BOpcodeHandler.h:2347
char m_options
Definition: BOpcodeHandler.h:7517
Handles the TKE_Tag opcode.
Definition: BOpcodeHandler.h:1608
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int *i, int n)
Definition: BOpcodeHandler.h:302
Definition: BStreamFileToolkit.h:34
float m_dihedral
For internal use only.
Definition: BOpcodeHandler.h:2393
int GetVisibilityLockValue() const
Definition: BOpcodeHandler.h:2541
float * m_u_knots
Definition: BOpcodeHandler.h:5579
int GetUnits() const
Definition: BOpcodeHandler.h:4294
extra item for selectability; refer to ::HC_Set_Selectability for a description
Definition: BOpcodeEnums.h:223
unsigned char * m_bytes
Definition: BOpcodeHandler.h:7136
int m_count
Definition: BOpcodeHandler.h:6298
void SetIndex(int i)
Definition: BOpcodeHandler.h:1273
void SetOrderedWeightsMask(int c)
Definition: BOpcodeHandler.h:3940
unsigned int m_options
Definition: BOpcodeHandler.h:6825
unsigned char m_hlr_hsr_algorithm
for internal use only.
Definition: BOpcodeHandler.h:2285
void SetAntiAlias(int m)
Definition: BOpcodeHandler.h:3771
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6907
float const * GetWeights() const
Definition: BOpcodeHandler.h:5445
float m_depth_peeling_min_area
For internal use only.
Definition: BOpcodeHandler.h:2398
int GetColorFaceForcedLockValue() const
Definition: BOpcodeHandler.h:2990
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1658
void SetLockMask(int m)
Definition: BOpcodeHandler.h:2512
void SetParameterSource(int p)
Definition: BOpcodeHandler.h:7045
extended bit
Definition: BOpcodeEnums.h:1423
char const * GetName() const
Definition: BOpcodeHandler.h:6753
void SetValue(int v)
Definition: BOpcodeHandler.h:3845
char * m_image
Definition: BOpcodeHandler.h:6948
unsigned char m_transforms
for internal use only
Definition: BOpcodeHandler.h:4954
Handles the TKE_Line_Style opcode.
Definition: BOpcodeHandler.h:7359
char m_options
Definition: BOpcodeHandler.h:7411
int GetApplicationMode() const
Definition: BOpcodeHandler.h:7102
int m_curve_budget
For internal use only.
Definition: BOpcodeHandler.h:2329
float * GetRef2()
Definition: BOpcodeHandler.h:6471
int GetColorWindowLockMask() const
Definition: BOpcodeHandler.h:2691
bool m_is_valid
internal use
Definition: BOpcodeHandler.h:5169
int m_name_length
Definition: BOpcodeHandler.h:7291
int GetLength()
Definition: BOpcodeHandler.h:4563
float m_value
for internal use only.
Definition: BOpcodeHandler.h:4271
char * m_name
internal use: name
Definition: BOpcodeHandler.h:4331
void SetCaps(int f)
Definition: BOpcodeHandler.h:6387
void SetLodOptionsMask(int v)
Definition: BOpcodeHandler.h:3401
void SetPreferenceCutoff(float s)
Definition: BOpcodeHandler.h:5124
void SetNames(int length)
Definition: BOpcodeHandler.h:4997
void SetNURBSSurfaceBudget(int b)
Definition: BOpcodeHandler.h:3391
TK_Tag(unsigned char opcode=TKE_Tag)
Definition: BOpcodeHandler.h:1613
int GetOptions() const
Definition: BOpcodeHandler.h:5639
int m_count
for internal use only
Definition: BOpcodeHandler.h:4575
char * m_transform
Definition: BOpcodeHandler.h:6969
char * m_name
Definition: BOpcodeHandler.h:4723
char const * GetEmissionName() const
Definition: BOpcodeHandler.h:1867
char const * GetSegment() const
Definition: BOpcodeHandler.h:7345
void SetOblique(float const o[])
Definition: BOpcodeHandler.h:4836
void SetSize(int const s[])
Definition: BOpcodeHandler.h:6914
short color_marker_value
For internal use only.
Definition: BOpcodeHandler.h:1069
int GetDTextLeaderCount() const
Definition: BOpcodeHandler.h:6672
int GetVisibilityForcedLockValue() const
Definition: BOpcodeHandler.h:2944
void SetColorFaceLockValue(int v)
Definition: BOpcodeHandler.h:2582
unsigned char m_renumbered_scope
for internal use only
Definition: BOpcodeHandler.h:1299
int m_int
temporary
Definition: BOpcodeHandler.h:83
short color_line_value
For internal use only.
Definition: BOpcodeHandler.h:1067
TK_Status Tag(BStreamFileToolkit &tk, int variant=-1) const
Definition: BOpcodeHandler.h:182
int GetSize() const
Definition: BOpcodeHandler.h:7726
int visibility_value
For internal use only.
Definition: BOpcodeHandler.h:1099
float * m_isoline_positions
for internal use only.
Definition: BOpcodeHandler.h:2294
int m_to_index
internal use
Definition: BOpcodeHandler.h:1454
void SetDPoints(double const s[], double const e[])
Definition: BOpcodeHandler.h:5317
int GetEncoding() const
Definition: BOpcodeHandler.h:6769
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int &i)
Definition: BOpcodeHandler.h:320
int GetAntiAlias() const
Definition: BOpcodeHandler.h:3773
char const * GetReference() const
Definition: BOpcodeHandler.h:6891
int GetSimpleShadowResolution() const
Definition: BOpcodeHandler.h:3627
char m_red_mapping
Definition: BOpcodeHandler.h:6960
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6896
int m_segment_length
Definition: BOpcodeHandler.h:7294
static TK_Status PutData(BStreamFileToolkit &tk, float const &f)
Definition: BOpcodeHandler.h:468
int GetLodNumRatios() const
Definition: BOpcodeHandler.h:3463
Handles the TKE_Texture opcode.
Definition: BOpcodeHandler.h:6944
int m_allocated
Definition: BOpcodeHandler.h:1173
TK_Status WriteAscii(BStreamFileToolkit &tk)
Deprecated.
unsigned char m_options
Definition: BOpcodeHandler.h:5496
Handles the TKE_Inlude_Segment TKE_Named_Style and TKE_Style_Segment opcodes.
Definition: BOpcodeHandler.h:1288
TK_Clip_Region()
Definition: BOpcodeHandler.h:7462
int GetColorFaceLockMask() const
Definition: BOpcodeHandler.h:2576
void SetNURBSOptionsValue(int v)
Definition: BOpcodeHandler.h:3379
void SetColorWindowContrastLockMask(int m)
Definition: BOpcodeHandler.h:2732
void SetMirror(float r, float g, float b)
Definition: BOpcodeHandler.h:1827
int m_length
Definition: BOpcodeHandler.h:4722
int GetVisibilityForcedLockMask() const
Definition: BOpcodeHandler.h:2933
void SetFogLimits(float const l[])
Definition: BOpcodeHandler.h:2506
float const * GetTarget() const
Definition: BOpcodeHandler.h:4776
void SetValue(int v0, int v1=0, int v2=0)
Definition: BOpcodeHandler.h:2449
int m_cut_geometry_edge_pattern_length
for internal use only.
Definition: BOpcodeHandler.h:2363
void SetRef1(float x, float y, float z)
Definition: BOpcodeHandler.h:6452
TK_Close_Segment()
Definition: BOpcodeHandler.h:1232
int GetColorTextForcedLockMask() const
Definition: BOpcodeHandler.h:3071
int GetColorWindowContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3151
char * GetCutGeometryEdgePattern()
Definition: BOpcodeHandler.h:3602
TK_Unicode_Options()
Definition: BOpcodeHandler.h:4542
self-explanatory
Definition: BOpcodeEnums.h:1392
float const * GetValue() const
Definition: BOpcodeHandler.h:2008
void SetSelectionBias(int c)
Definition: BOpcodeHandler.h:3883
float const * GetViewVolume() const
Definition: BOpcodeHandler.h:3926
char const * GetLoggingString() const
Definition: BOpcodeHandler.h:244
short color_edge_mask
For internal use only.
Definition: BOpcodeHandler.h:1064
void SetGeometry(int m)
Definition: BOpcodeHandler.h:4127
HT_NURBS_Trim * GetNext(void)
Definition: BOpcodeHandler.h:5532
float * GetLodThresholds()
Definition: BOpcodeHandler.h:3489
void SetColorLineContrastLockValue(int v)
Definition: BOpcodeHandler.h:2835
int m_index
internal use: simple value for recognised old forms
Definition: BOpcodeHandler.h:4332
char const * GetCoordinateSystems() const
Definition: BOpcodeHandler.h:4037
void Set_General_Flags(int f)
Definition: BOpcodeHandler.h:170
float const * GetOblique() const
Definition: BOpcodeHandler.h:4838
color by index
Definition: BOpcodeEnums.h:271
int m_mask
internal use
Definition: BOpcodeHandler.h:1908
void SetDAxis(double x1, double y1, double z1, double x2, double y2, double z2)
Definition: BOpcodeHandler.h:6247
int GetColorVertexForcedLockMask() const
Definition: BOpcodeHandler.h:3186
float m_gloss
internal use
Definition: BOpcodeHandler.h:1742
Handles the TKE_LOD opcode.
Definition: BOpcodeHandler.h:1507
double const * GetDPosition() const
Definition: BOpcodeHandler.h:5753
void SetColorFaceContrastLockMask(int m)
Definition: BOpcodeHandler.h:2709
char const * GetBumpName() const
Definition: BOpcodeHandler.h:1885
int GetGeneralDisplacement() const
Definition: BOpcodeHandler.h:2496
int GetGreekingMode() const
Definition: BOpcodeHandler.h:5089
unsigned char m_layout
for internal use only
Definition: BOpcodeHandler.h:4957
short color_edge_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1083
float * GetPoints()
Definition: BOpcodeHandler.h:7483
void SetString(char const *string)
Definition: BOpcodeHandler.h:6598
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6619
TK_Bounding(unsigned char opcode, float min[], float max[])
Definition: BOpcodeHandler.h:5175
void SetOptions(int o)
Definition: BOpcodeHandler.h:5787
void SetWindow(int n, float const w[])
Definition: BOpcodeHandler.h:4901
int m_max_degree
For internal use only.
Definition: BOpcodeHandler.h:2319
int GetSelectionSorting() const
Definition: BOpcodeHandler.h:3964
void SetLodRatios(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3454
float GetNearLimit() const
Definition: BOpcodeHandler.h:4848
TK_Font()
Definition: BOpcodeHandler.h:6716
float m_simple_reflection_yon
For internal use only.
Definition: BOpcodeHandler.h:2382
char * GetEnvironmentName()
Definition: BOpcodeHandler.h:1878
float const * GetStart() const
Definition: BOpcodeHandler.h:5926
float * GetPoints()
Definition: BOpcodeHandler.h:5369
int GetValue() const
Definition: BOpcodeHandler.h:4992
float const * GetPoints() const
Definition: BOpcodeHandler.h:6338
Does not handle any top level opcodes, but rather only the trim types allowable on nurbs surfaces...
Definition: BOpcodeHandler.h:5485
int GetColorLineContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3243
void SetColorLineLockMask(int m)
Definition: BOpcodeHandler.h:2617
void SetValue(float a, float b, float c)
Definition: BOpcodeHandler.h:2002
void SetLayout(int l)
Definition: BOpcodeHandler.h:5134
float * GetPoints()
Definition: BOpcodeHandler.h:5688
TK_Conditions()
Definition: BOpcodeHandler.h:4407
double GetDRadius() const
Definition: BOpcodeHandler.h:6160
unsigned char m_tessellations
For internal use only.
Definition: BOpcodeHandler.h:2344
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:4781
void SetNURBSOptionsMask(int m)
Definition: BOpcodeHandler.h:3371
channel m_mirror
internal use
Definition: BOpcodeHandler.h:1737
int GetOptions() const
Definition: BOpcodeHandler.h:5549
void SetColorLineContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3238
double const * GetDPoints() const
Definition: BOpcodeHandler.h:6361
char const * GetMirrorName() const
Definition: BOpcodeHandler.h:1837
int GetLodNumLevels() const
Definition: BOpcodeHandler.h:3419
float m_curve_max_angle
For internal use only.
Definition: BOpcodeHandler.h:2337
float GetWidthScale() const
Definition: BOpcodeHandler.h:5054
void SetMajor(float const m[])
Definition: BOpcodeHandler.h:6025
void GetUpVector(float u[]) const
Definition: BOpcodeHandler.h:4798
float * m_knots
Definition: BOpcodeHandler.h:5498
unsigned short m_mask_transform
For internal use only.
Definition: BOpcodeHandler.h:2390
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5577
void SetOrtho(float x, float y, float z)
Definition: BOpcodeHandler.h:6136
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:5767
TK_Color_By_Value()
Definition: BOpcodeHandler.h:1966
void SetEnd(float e)
Definition: BOpcodeHandler.h:5452
float const * GetSimpleShadowColor() const
Definition: BOpcodeHandler.h:3658
ID_Key m_this_key
for internal use only
Definition: BOpcodeHandler.h:1389
Handles the TKE_Callback opcode.
Definition: BOpcodeHandler.h:2194
char const * GetString() const
Definition: BOpcodeHandler.h:7764
int GetPreferenceCutoffUnits() const
Definition: BOpcodeHandler.h:5131
void SetDRadius(double radius)
Definition: BOpcodeHandler.h:6371
void SetMiddle(float const m[])
Definition: BOpcodeHandler.h:5898
char * GetName()
Definition: BOpcodeHandler.h:7389
void SetCulling(int c)
Definition: BOpcodeHandler.h:3875
float * m_data
Definition: BOpcodeHandler.h:7245
TK_File_Info()
Definition: BOpcodeHandler.h:908
unsigned char m_space_units
for internal use only
Definition: BOpcodeHandler.h:4951
void GetDField(double f[]) const
Definition: BOpcodeHandler.h:4826
float GetRotation() const
Definition: BOpcodeHandler.h:5044
char * m_name
Definition: BOpcodeHandler.h:7195
void SetTransmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1842
HT_NURBS_Trim * m_trims
Definition: BOpcodeHandler.h:5582
unsigned char m_region_options
Definition: BOpcodeHandler.h:6562
self-explanatory
Definition: BOpcodeEnums.h:270
void SetVisibilityLockMask(int m)
Definition: BOpcodeHandler.h:2525
double const * GetDUpVector() const
Definition: BOpcodeHandler.h:4806
Handles the TKE_Open_Segment opcode.
Definition: BOpcodeHandler.h:1170
unsigned char m_antialias
For internal use only.
Definition: BOpcodeHandler.h:2406
void SetWindow(float l, float r, float b, float t, float lo=0, float ro=0, float bo=0, float to=0)
Definition: BOpcodeHandler.h:4891
int GetColorEdgeLockValue() const
Definition: BOpcodeHandler.h:2610
float m_stereo_separation
For internal use only.
Definition: BOpcodeHandler.h:2341
int m_name_length
internal use: length of name
Definition: BOpcodeHandler.h:4330
double m_dradius
Definition: BOpcodeHandler.h:6091
int GetType() const
Definition: BOpcodeHandler.h:6520
int m_debug
For internal use only.
Definition: BOpcodeHandler.h:2262
float m_extra_space
for internal use only
Definition: BOpcodeHandler.h:4935
void SetLookup(char const *string)
Definition: BOpcodeHandler.h:6758
double * GetDPoints()
Definition: BOpcodeHandler.h:5377
void SetIndices(int count)
Definition: BOpcodeHandler.h:4651
void SetOptions(int o)
Definition: BOpcodeHandler.h:7579
void SetMinor(float x, float y, float z)
Definition: BOpcodeHandler.h:6030
float GetExtraSpace() const
Definition: BOpcodeHandler.h:5059
int GetTextLeaderCount() const
Definition: BOpcodeHandler.h:6659
void SetMaskTransform(int m)
Definition: BOpcodeHandler.h:3560
void SetOptions(int o)
Definition: BOpcodeHandler.h:5455
float * GetWeights()
Definition: BOpcodeHandler.h:5446
static TK_Status PutData(BStreamFileToolkit &tk, unsigned char const &b)
Definition: BOpcodeHandler.h:459
int GetFlags()
Definition: BOpcodeHandler.h:926
char * GetDiffuseName()
Definition: BOpcodeHandler.h:1809
float GetOrderedWeight(int index) const
Definition: BOpcodeHandler.h:3950
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7275
void SetStart(float s)
Definition: BOpcodeHandler.h:5450
TK_Character_Attribute * m_character_attributes
Definition: BOpcodeHandler.h:6576
bump map
Definition: BOpcodeEnums.h:274
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7226
TK_Reopen_Segment()
Definition: BOpcodeHandler.h:1263
void SetAlphaMapping(int p)
Definition: BOpcodeHandler.h:7075
short color_marker_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1086
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:915
TK_Area_Light()
Definition: BOpcodeHandler.h:5667
int m_simple_reflection_visibility_mask
For internal use only.
Definition: BOpcodeHandler.h:2383
TK_Cylinder()
Definition: BOpcodeHandler.h:6214
int GetColorMarkerContrastLockValue() const
Definition: BOpcodeHandler.h:2863
float const * GetMirror() const
Definition: BOpcodeHandler.h:1835
Handles the TKE_Geometry_Attributes opcode.
Definition: BOpcodeHandler.h:1553
int m_length
Definition: BOpcodeHandler.h:7818
unsigned char m_optionals
Definition: BOpcodeHandler.h:5400
int m_gooch_color_map_segment_length
Definition: BOpcodeHandler.h:2353
format mask
Definition: BOpcodeEnums.h:1375
Handles the TKE_Sphere opcode.
Definition: BOpcodeHandler.h:6083
channel m_emission
internal use
Definition: BOpcodeHandler.h:1739
static TK_Status GetData(BStreamFileToolkit &tk, double &d)
Definition: BOpcodeHandler.h:326
float m_curve_max_deviation
For internal use only.
Definition: BOpcodeHandler.h:2338
int m_name_length
Definition: BOpcodeHandler.h:6950
void SetRef2(float const r[])
Definition: BOpcodeHandler.h:6467
float const * GetSpecular() const
Definition: BOpcodeHandler.h:1820
void SetOptions(int o)
Definition: BOpcodeHandler.h:7501
TK_User_Index()
Definition: BOpcodeHandler.h:4584
unsigned char m_renderer_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4955
float const * GetMajor() const
Definition: BOpcodeHandler.h:6027
short m_options
Definition: BOpcodeHandler.h:4442
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4573
short color_simple_reflection_value
For internal use only.
Definition: BOpcodeHandler.h:1093
void SetCutGeometryEdgeWeight(float value, int units=TKO_Generic_Size_Unspecified)
Definition: BOpcodeHandler.h:3586
int GetOptions() const
Definition: BOpcodeHandler.h:5456
short color_window_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1076
unsigned char m_num_levels
For internal use only.
Definition: BOpcodeHandler.h:2318
TK_Renumber(unsigned char opcode, ID_Key key=0)
Definition: BOpcodeHandler.h:1587
double * GetDPoints()
Definition: BOpcodeHandler.h:5441
void SetExtraSpaceUnits(int u)
Definition: BOpcodeHandler.h:5062
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6904
int m_mask
internal use
Definition: BOpcodeHandler.h:2070
double const * GetDStart() const
Definition: BOpcodeHandler.h:6258
float m_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2320
Definition: BStream.h:300
void SetGreekingMode(int m)
Definition: BOpcodeHandler.h:5087
mask of bits requiring extended
Definition: BOpcodeEnums.h:813
//// Default reader provided for "W3D Image XRef"
Definition: BOpcodeEnums.h:155
double const * GetDEnd() const
Definition: BOpcodeHandler.h:6260
int m_data_size
Definition: BOpcodeHandler.h:6821
int GetCutGeometry() const
Definition: BOpcodeHandler.h:3568
unsigned char vertical_offset_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6541
int m_name_length
Definition: BOpcodeHandler.h:7860
void SetColorMarkerContrastLockValue(int v)
Definition: BOpcodeHandler.h:2858
int GetOptions() const
Definition: BOpcodeHandler.h:4478
static TK_Status GetData(BStreamFileToolkit &tk, unsigned short *s, int n)
Definition: BOpcodeHandler.h:299
void SetDMatrix(double const m[])
Definition: BOpcodeHandler.h:4223
unsigned char m_options
Definition: BOpcodeHandler.h:6561
Definition: BOpcodeHandler.h:830
char * m_condition
Definition: BOpcodeHandler.h:1295
Handles the TKE_Image opcode.
Definition: BOpcodeHandler.h:6813
void SetPlane(float const p[])
Definition: BOpcodeHandler.h:5835
int GetSimpleShadowBlur() const
Definition: BOpcodeHandler.h:3622
void SetInternalPolylineSelectionLimit(int i)
Definition: BOpcodeHandler.h:3865
float * GetPoints()
Definition: BOpcodeHandler.h:7548
Handles the TKE_Font opcode.
Definition: BOpcodeHandler.h:6692
virtual TK_Status Read(BStreamFileToolkit &tk)=0
void SetName(char const *string)
Definition: BOpcodeHandler.h:7881
Handles the TKE_Unicode_Options opcode.
Definition: BOpcodeHandler.h:4535
int * GetIndices()
Definition: BOpcodeHandler.h:4607
void SetView(int length)
Definition: BOpcodeHandler.h:4860
int GetShadowMap() const
Definition: BOpcodeHandler.h:3669
Internal_Translator::Index_Key_Pair * m_item
internal use; cache lookup in Pending cases
Definition: BOpcodeHandler.h:1644
unsigned char * GetTextLeaderFlags()
Definition: BOpcodeHandler.h:6667
float m_inner
for internal use only
Definition: BOpcodeHandler.h:5723
TK_Status Read(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1103
float * m_weights
Definition: BOpcodeHandler.h:5406
void SetCenter(float const c[])
Definition: BOpcodeHandler.h:5915
int GetCutGeometryEdgeWeightUnits() const
Definition: BOpcodeHandler.h:3593
void SetCutGeometryColorMatch(int m)
Definition: BOpcodeHandler.h:3576
void SetPoints(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5684
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6152
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:5764
int const * GetIndices() const
Definition: BOpcodeHandler.h:4605
int GetInternalShellSelectionLimit() const
Definition: BOpcodeHandler.h:3862
void SetProjection(int p)
Definition: BOpcodeHandler.h:4852
int GetAlphaMapping() const
Definition: BOpcodeHandler.h:7077
Handles the TKE_File_Info opcode.
Definition: BOpcodeHandler.h:901
TK_Status PutOpcode(BStreamFileToolkit &tk, int adjust=1)
Definition: BOpcodeHandler.h:474
BBaseOpcodeHandler * m_current_object
internal use
Definition: BOpcodeHandler.h:875
float m_end
Definition: BOpcodeHandler.h:5409
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6624
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1713
double * GetDPoints()
Definition: BOpcodeHandler.h:5698
void SetColorWindowLockValue(int v)
Definition: BOpcodeHandler.h:2697
Handles the TKE_Heuristics opcode.
Definition: BOpcodeHandler.h:3791
int m_value
specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4927
Definition: BOpcodeHandler.h:1056
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6154
void SetSimpleShadowLight(float x, float y, float z)
Definition: BOpcodeHandler.h:3630
unsigned char m_simple_shadow_blur
For internal use only.
Definition: BOpcodeHandler.h:2366
char m_decimation
Definition: BOpcodeHandler.h:6959
void SetTessellationMask(int m)
Definition: BOpcodeHandler.h:3511
void SetFormat(int f)
Definition: BOpcodeHandler.h:7177
int GetSimpleReflectionVisibilityValue() const
Definition: BOpcodeHandler.h:3707
char m_threshold_type
For internal use only.
Definition: BOpcodeHandler.h:2315
Handles the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE_Circular_Wedge opcodes...
Definition: BOpcodeHandler.h:5862
int GetForcedLockMask() const
Definition: BOpcodeHandler.h:2917
int GetColorWindowContrastLockMask() const
Definition: BOpcodeHandler.h:2737
int GetBlueMapping() const
Definition: BOpcodeHandler.h:7072
int const * GetSize() const
Definition: BOpcodeHandler.h:6916
int * GetIndices()
Definition: BOpcodeHandler.h:4660
void SetHlrLinePattern(int p)
Definition: BOpcodeHandler.h:3361
short color_window_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1077
int GetColorEdgeForcedLockMask() const
Definition: BOpcodeHandler.h:3002
void SetSlant(float s)
Definition: BOpcodeHandler.h:5047
void SetViewVolume(float const v[])
Definition: BOpcodeHandler.h:3937
void SetVectorTolerance(float tol)
Definition: BOpcodeHandler.h:3919
void SetVisibilityForcedLockMask(int m)
Definition: BOpcodeHandler.h:2928
int GetCount() const
Definition: BOpcodeHandler.h:7497
char * GetName()
Definition: BOpcodeHandler.h:6884
float GetSlant() const
Definition: BOpcodeHandler.h:5049
void SetSimpleShadowLight(float const l[])
Definition: BOpcodeHandler.h:3636
void set_points(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5345
double * m_dleaders
Definition: BOpcodeHandler.h:6573
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:5751
int GetColorBackForcedLockMask() const
Definition: BOpcodeHandler.h:3163
short color_face_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1074
Definition: BStream.h:274
TK_Bounding(unsigned char opcode)
Definition: BOpcodeHandler.h:5172
int GetWhenInvisible() const
Definition: BOpcodeHandler.h:4191
TK_Compression(char opcode)
Definition: BOpcodeHandler.h:1038
void SetColorFaceContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3112
Definition: BOpcodeHandler.h:4301
float * GetPoints()
Definition: BOpcodeHandler.h:5541
float m_rotation
for internal use only
Definition: BOpcodeHandler.h:4932
char * GetNames()
Definition: BOpcodeHandler.h:5001
unsigned char m_greeking_units
for internal use only
Definition: BOpcodeHandler.h:4952
TK_Size(unsigned char opcode)
Definition: BOpcodeHandler.h:4276
int GetWriteFlags(int mask=~0) const
Definition: BStreamFileToolkit.h:933
void SetIndices(int count, int const indices[], void const *values[], int const sizes[])
Definition: BOpcodeHandler.h:4646
TK_XML()
Definition: BOpcodeHandler.h:7699
void SetLodClamp(int v)
Definition: BOpcodeHandler.h:3421
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const &i)
Definition: BOpcodeHandler.h:465
void SetFogLimits(float n, float f)
Definition: BOpcodeHandler.h:2504
void SetQuantization(int q)
Definition: BOpcodeHandler.h:2474
double const * GetDMiddle() const
Definition: BOpcodeHandler.h:5977
char m_lod_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2310
void SetMirrorName(char const *name)
Definition: BOpcodeHandler.h:1831
char * m_cut_geometry_edge_pattern
for internal use only.
Definition: BOpcodeHandler.h:2362
Handles the TKE_URL opcodes.
Definition: BOpcodeHandler.h:7738
Handles the TKE_Area_Light opcode.
Definition: BOpcodeHandler.h:5655
int GetMask() const
Definition: BOpcodeHandler.h:4987
float const * GetImageScale() const
Definition: BOpcodeHandler.h:3751
void SetOrigin(float const o[])
Definition: BOpcodeHandler.h:6445
void SetSimpleReflectionOpacity(float o)
Definition: BOpcodeHandler.h:3700
int GetIndex()
Definition: BOpcodeHandler.h:1496
char * GetShaderSource()
Definition: BOpcodeHandler.h:7015
double const * GetDRef2() const
Definition: BOpcodeHandler.h:6503
void SetNURBSSurfaceTrimBudget(int b)
Definition: BOpcodeHandler.h:3395
int GetVertexDisplacement() const
Definition: BOpcodeHandler.h:2491
unsigned char * GetDTextLeaderFlags()
Definition: BOpcodeHandler.h:6680
Handles the TKE_Cutting_Plane opcode.
Definition: BOpcodeHandler.h:5799
float const * GetPosition() const
Definition: BOpcodeHandler.h:4756
int GetColorLineLockValue() const
Definition: BOpcodeHandler.h:2633
float * GetUKnots()
Definition: BOpcodeHandler.h:5630
void SetSelectionLevel(int l)
Definition: BOpcodeHandler.h:3957
int GetRedMapping() const
Definition: BOpcodeHandler.h:7062
int GetDisplayListLevel() const
Definition: BOpcodeHandler.h:3608
virtual TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
int GetColorVertexContrastLockMask() const
Definition: BOpcodeHandler.h:2875
bool IsCollectionPart() const
Definition: BOpcodeHandler.h:209
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:4764
int GetOptions() const
Definition: BOpcodeHandler.h:7581
void SetLodThresholdType(int v)
Definition: BOpcodeHandler.h:3470
self-explanatory
Definition: BOpcodeEnums.h:269
void SetName(int length)
Definition: BOpcodeHandler.h:7002
TK_Callback()
Definition: BOpcodeHandler.h:2206
int const * GetPreferences() const
Definition: BOpcodeHandler.h:5121
float const * GetKnots() const
Definition: BOpcodeHandler.h:5447
TK_Complex_Clip_Region()
Definition: BOpcodeHandler.h:7526
void SetBlueMapping(int p)
Definition: BOpcodeHandler.h:7070
int GetParameterOffset() const
Definition: BOpcodeHandler.h:7107
Handles the TKE_Named_Style_Def opcode.
Definition: BOpcodeHandler.h:7289
int GetCoordinateSystemCount() const
Definition: BOpcodeHandler.h:4035
double * GetDRef1()
Definition: BOpcodeHandler.h:6494
void **const GetValues() const
Definition: BOpcodeHandler.h:4663
int GetLodOptionsValue() const
Definition: BOpcodeHandler.h:3407
int GetColorVertexContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3289
float m_surface_max_facet_deviation
For internal use only.
Definition: BOpcodeHandler.h:2335
int GetTargetVersion() const
Definition: BStreamFileToolkit.h:986
int m_allocated
internal use
Definition: BOpcodeHandler.h:944
float const * GetRef1() const
Definition: BOpcodeHandler.h:6458
float GetRendererCutoff() const
Definition: BOpcodeHandler.h:5105
float GetLodTolerance() const
Definition: BOpcodeHandler.h:3431
float m_greeking_limit
for internal use only
Definition: BOpcodeHandler.h:4937
//– would like this to be obsolete, but...
Definition: BOpcodeEnums.h:151
int GetColorBackLockMask() const
Definition: BOpcodeHandler.h:2760
int GetColorFaceContrastLockMask() const
Definition: BOpcodeHandler.h:2714
float GetVectorTolerance() const
Definition: BOpcodeHandler.h:3917
float const * GetEndNormal(int index) const
Definition: BOpcodeHandler.h:6404
void SetField(float const f[])
Definition: BOpcodeHandler.h:4813
int GetIndex() const
Definition: BOpcodeHandler.h:1275
void SetBytes(int size, char const *bytes=0, unsigned char data_format=TKO_Compression_None)
Definition: BOpcodeHandler.h:6869
char const * GetConditions() const
Definition: BOpcodeHandler.h:4424
unsigned short const * GetOptions() const
Definition: BOpcodeHandler.h:4559
void SetIndex(float i)
Definition: BOpcodeHandler.h:1894
char * GetConditions()
Definition: BOpcodeHandler.h:4426
void SetMatrix(float const m[])
Definition: BOpcodeHandler.h:4219
self-explanatory
Definition: BOpcodeEnums.h:1106
Handles the TKE_Renumber_Key_Global, TKE_Renumber_Key_Local, and TKE_Priority opcodes.
Definition: BOpcodeHandler.h:1579
float slant
the angle (in degrees) that text is slanted (e.g. for italic). Positive numbers correspond to clockwi...
Definition: BOpcodeHandler.h:6533
Handles the TKE_Complex_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7515
void SetShadowMapSamples(int m)
Definition: BOpcodeHandler.h:3677
void SetOptions(int o)
Definition: BOpcodeHandler.h:5264
char * m_string
Definition: BOpcodeHandler.h:7781
short color_back_value
For internal use only.
Definition: BOpcodeHandler.h:1079
unsigned char m_present
internal use
Definition: BOpcodeHandler.h:1641
void SetDecimation(int p)
Definition: BOpcodeHandler.h:7055
void SetName(int length)
Definition: BOpcodeHandler.h:6880
void SetName(char const *string)
Definition: BOpcodeHandler.h:6749
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7396
int GetInterpolation() const
Definition: BOpcodeHandler.h:7052
unsigned char m_preference_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4956
char const * GetCallback() const
Definition: BOpcodeHandler.h:2223
TK_User_Options()
Definition: BOpcodeHandler.h:4502
unsigned char m_region_fit
Definition: BOpcodeHandler.h:6563
double * m_dpoints
Definition: BOpcodeHandler.h:5342
int m_selection_culling
internal use; selection culling options
Definition: BOpcodeHandler.h:3802
float m_line_spacing
for internal use only
Definition: BOpcodeHandler.h:4936
TK_Color_By_FIndex()
Definition: BOpcodeHandler.h:2075
char * GetName()
Definition: BOpcodeHandler.h:7330
int m_coordinate_system_count
internal use
Definition: BOpcodeHandler.h:3990
float rotation
the angle (in degrees) that text is rotated
Definition: BOpcodeHandler.h:6534
void SetField(float w, float h)
Definition: BOpcodeHandler.h:4811
int GetCount() const
Definition: BOpcodeHandler.h:4654
int m_down
internal use; specifies what geometry is selectable on mouse button down. For internal use only...
Definition: BOpcodeHandler.h:4105
unsigned short * GetOptions()
Definition: BOpcodeHandler.h:4561
char * GetCallback()
Definition: BOpcodeHandler.h:2225
float const * GetVector() const
Definition: BOpcodeHandler.h:3907
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6611
int GetSize() const
Definition: BOpcodeHandler.h:1696
int GetDown() const
Definition: BOpcodeHandler.h:4147
bool Find_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:687
void SetHardExtent(int c)
Definition: BOpcodeHandler.h:3903
char const * GetSphereTessellations() const
Definition: BOpcodeHandler.h:3545
static void fix_in(float *f, int n)
for internal use only
Definition: BOpcodeHandler.h:560
float m_rgb[3]
The RGB value of the color for this channel.
Definition: BOpcodeHandler.h:1723
int GetGeometry() const
Definition: BOpcodeHandler.h:4079
TK_Spot_Light()
Definition: BOpcodeHandler.h:5729
void SetImageTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3758
void SetOuter(float o)
Definition: BOpcodeHandler.h:5772
void SetSize(int size)
Definition: BOpcodeHandler.h:1694
void SetVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3909
float GetHlrDimFactor() const
Definition: BOpcodeHandler.h:3355
float m_compression_quality
Definition: BOpcodeHandler.h:6831
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:6614
short color_face_mask
For internal use only.
Definition: BOpcodeHandler.h:1062
void SetParameterFunction(int p)
Definition: BOpcodeHandler.h:7080
BBaseOpcodeHandler *** m_primitives
for each level, an array of opcode handler pointers that store the primitives
Definition: BOpcodeHandler.h:1510
void SetUpVector(float x, float y, float z)
Definition: BOpcodeHandler.h:4791
int m_camera_length
Definition: BOpcodeHandler.h:6953
int m_to_variant
internal use
Definition: BOpcodeHandler.h:1455
Handles the TKE_XML opcode.
Definition: BOpcodeHandler.h:7692
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6909
ID_Key remove_segment(BStreamFileToolkit &tk)
for internal use only
Definition: BOpcodeHandler.h:646
TK_Terminator(char opcode, bool is_file_terminator=true)
Definition: BOpcodeHandler.h:1009
extended bit
Definition: BOpcodeEnums.h:272
short color_line_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1084
char * m_bytes
Definition: BOpcodeHandler.h:6815
Handles the TKE_External_Reference opcodes.
Definition: BOpcodeHandler.h:7777
Definition: BOpcodeHandler.h:4242
TK_Material()
Definition: BOpcodeHandler.h:7674
int GetSimpleReflection() const
Definition: BOpcodeHandler.h:3685
virtual TK_Status Error(char const *msg=0) const
int m_allocated
Definition: BOpcodeHandler.h:5340
TK_Bounding(unsigned char opcode, float center[], float radius)
Definition: BOpcodeHandler.h:5181
unsigned short m_simple_shadow
For internal use only.
Definition: BOpcodeHandler.h:2365
void SetFlags(int f)
Definition: BOpcodeHandler.h:7036
int const * GetStringCursors() const
Definition: BOpcodeHandler.h:6652
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1926
char * GetName()
Definition: BOpcodeHandler.h:7006
void SetColorForcedLockValue(int v)
Definition: BOpcodeHandler.h:2962
Handles the TKE_Repeat_Object opcode.
Definition: BOpcodeHandler.h:1450
void SetCutGeometryTolerance(float m)
Definition: BOpcodeHandler.h:3581
void SetHSR(int h)
Definition: BOpcodeHandler.h:2454
int GetLength()
Definition: BOpcodeHandler.h:4428
void SetName(char const *string)
Definition: BOpcodeHandler.h:6878
unsigned char m_cut_geometry_edge_weight_units
for internal use only.
Definition: BOpcodeHandler.h:2361
char * m_string
Definition: BOpcodeHandler.h:2197
int GetSimpleShadow() const
Definition: BOpcodeHandler.h:3617
void SetLodCutoffs(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3494
int m_count
Definition: BOpcodeHandler.h:5339
int const * GetSizes() const
Definition: BOpcodeHandler.h:4669
char * GetSphereTessellations()
Definition: BOpcodeHandler.h:3547
int GetColorMarkerForcedLockMask() const
Definition: BOpcodeHandler.h:3048
void SetNext(HT_NURBS_Trim *next)
Definition: BOpcodeHandler.h:5518
for further expansion
Definition: BOpcodeEnums.h:1137
char m_num_cutoffs
For internal use only.
Definition: BOpcodeHandler.h:2322
void Remember_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:685
int m_debug_length
Definition: BOpcodeHandler.h:70
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1979
Handles the TKE_NURBS_Curve opcode.
Definition: BOpcodeHandler.h:5398
void SetDiffuseTextureTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3763
char const * GetName(void) const
Definition: BOpcodeHandler.h:7885
int GetEncoding() const
Definition: BOpcodeHandler.h:6629
void SetScreenRange(float l, float r, float b, float t, float lo=0, float ro=0, float bo=0, float to=0)
Definition: BOpcodeHandler.h:3719
Handles the TKE_Conditions opcode.
Definition: BOpcodeHandler.h:4400
int GetInternalSelectionLimit() const
Definition: BOpcodeHandler.h:3857
float m_surface_max_facet_width
For internal use only.
Definition: BOpcodeHandler.h:2336
char m_blue_mapping
Definition: BOpcodeHandler.h:6962
float * m_points
Definition: BOpcodeHandler.h:6299
void SetLodCutoff(float r)
Definition: BOpcodeHandler.h:3492
unsigned char m_optionals
Definition: BOpcodeHandler.h:5573
int GetColorTextContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3301
unsigned char m_shadow_map_samples
For internal use only.
Definition: BOpcodeHandler.h:2375
int GetTextRegionOptions() const
Definition: BOpcodeHandler.h:6642
double const * GetDMajor() const
Definition: BOpcodeHandler.h:6055
int m_value
internal use; specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4050
void SetUserData(int size, unsigned char const *bytes=0)
Definition: BOpcodeHandler.h:7633
void SetNames(char const *names)
Definition: BOpcodeHandler.h:4995
void SetDPoints(double x1, double y1, double z1, double x2, double y2, double z2)
Definition: BOpcodeHandler.h:5312
char * m_names
for internal use only
Definition: BOpcodeHandler.h:4929
void SetList(HT_NURBS_Trim *node)
Definition: BOpcodeHandler.h:5517
void SetLodNumLevels(int v)
Definition: BOpcodeHandler.h:3417
int GetGeometry() const
Definition: BOpcodeHandler.h:2054
TK_Dictionary_Locater()
Definition: BOpcodeHandler.h:1679
env map
Definition: BOpcodeEnums.h:273
int GetInternalPolylineSelectionLimit() const
Definition: BOpcodeHandler.h:3867
static TK_Status GetData(BStreamFileToolkit &tk, int &i)
Definition: BOpcodeHandler.h:311
float const * GetMatrix() const
Definition: BOpcodeHandler.h:4227
////
Definition: BOpcodeEnums.h:148
int m_index
Definition: BOpcodeHandler.h:1384
int m_dleader_count
Definition: BOpcodeHandler.h:6572
float size
the size. Units are specified separately in size_units
Definition: BOpcodeHandler.h:6530
bool Tagging(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:187
void SetHlrDimFactor(float d)
Definition: BOpcodeHandler.h:3353
TK_Enumerated(unsigned char opcode)
Definition: BOpcodeHandler.h:4248
unsigned char m_buffer_options_value
For internal use only.
Definition: BOpcodeHandler.h:2272
int * GetCounts()
Definition: BOpcodeHandler.h:6515
float m_hlr_threshold
for internal use only.
Definition: BOpcodeHandler.h:2283
float * GetRadii()
Definition: BOpcodeHandler.h:6352
char const * GetXML() const
Definition: BOpcodeHandler.h:7722
int m_offset
internal use
Definition: BOpcodeHandler.h:1675
void SetStart(float const s[])
Definition: BOpcodeHandler.h:5890
char m_alpha_mapping
Definition: BOpcodeHandler.h:6963
unsigned char m_buffer_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2271
void SetBufferOptionsValue(int v)
Definition: BOpcodeHandler.h:3322
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const *s, int n)
Definition: BOpcodeHandler.h:444
float GetInner() const
Definition: BOpcodeHandler.h:5779
float m_renderer_cutoff
for internal use only
Definition: BOpcodeHandler.h:4938
char * GetStyle()
Definition: BOpcodeHandler.h:5019
int m_mask
internal use; specifies which visibility settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4049
void SetColorLineForcedLockValue(int v)
Definition: BOpcodeHandler.h:3031
char * m_comment
internal use
Definition: BOpcodeHandler.h:946
int GetSelectionCulling() const
Definition: BOpcodeHandler.h:3881
float * m_points
Definition: BOpcodeHandler.h:7455
double * m_dplanes
internal use
Definition: BOpcodeHandler.h:5802
char const * GetCylinderTessellations() const
Definition: BOpcodeHandler.h:3528
int GetExtras() const
Definition: BOpcodeHandler.h:3872
unsigned char m_greeking_mode
for internal use only
Definition: BOpcodeHandler.h:4953
static short flip(short s)
for internal use only
Definition: BOpcodeHandler.h:506
int GetFaceDisplacement() const
Definition: BOpcodeHandler.h:2486
float GetEnd() const
Definition: BOpcodeHandler.h:5453
TK_Polypoint(unsigned char opcode)
Definition: BOpcodeHandler.h:5350
void SetDepthRange(float const l[])
Definition: BOpcodeHandler.h:3713
void SetSpecularName(int length)
Definition: BOpcodeHandler.h:1818
int GetLoops() const
Definition: BOpcodeHandler.h:7575
float m_simple_reflection_opacity
For internal use only.
Definition: BOpcodeHandler.h:2379
channel m_environment
internal use; note: environment & bump are never a simple RGB type color
Definition: BOpcodeHandler.h:1740
void SetRadius(float r)
Definition: BOpcodeHandler.h:6241
short color_text_value
For internal use only.
Definition: BOpcodeHandler.h:1071
void SetOffset(int offset)
Definition: BOpcodeHandler.h:1698
void SetPreference(int r)
Definition: BOpcodeHandler.h:5114
int m_maximum_extent
internal use; maximum extent
Definition: BOpcodeHandler.h:3805
int GetSelectionBias() const
Definition: BOpcodeHandler.h:3885
unsigned char m_clamp
For internal use only.
Definition: BOpcodeHandler.h:2317
int GetValue() const
Definition: BOpcodeHandler.h:4090
bool GetFollow()
Definition: BOpcodeHandler.h:1436
void SetColorWindowContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3146
float * GetKnots()
Definition: BOpcodeHandler.h:5448
char const * GetName() const
Definition: BOpcodeHandler.h:7268
void SetVisibilityForcedLockValue(int v)
Definition: BOpcodeHandler.h:2939
float const * GetOrientation() const
Definition: BOpcodeHandler.h:4025
int GetQuantization() const
Definition: BOpcodeHandler.h:2476
char * GetTransmissionName()
Definition: BOpcodeHandler.h:1854
void SetColorTextContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3307
TK_User_Value()
Definition: BOpcodeHandler.h:4688
int m_cond_length
Definition: BOpcodeHandler.h:7297
void SetColorVertexLockMask(int m)
Definition: BOpcodeHandler.h:2778
char * GetCondition()
Definition: BOpcodeHandler.h:4467
int GetColorVertexContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3278
int * GetSizes()
Definition: BOpcodeHandler.h:4672
void SetLodBounding(float const p[])
Definition: BOpcodeHandler.h:3447
//// pseudo-handler (non-zero value)
Definition: BOpcodeEnums.h:157
void SetValue(HLONG v)
Definition: BOpcodeHandler.h:4699
int const * GetLengths() const
Definition: BOpcodeHandler.h:7567
char * GetLookup()
Definition: BOpcodeHandler.h:6764
float const * GetPoints() const
Definition: BOpcodeHandler.h:5309
void SetColorEdgeForcedLockMask(int m)
Definition: BOpcodeHandler.h:2997
int m_count
Definition: BOpcodeHandler.h:7454
void SetLimits(float s, float e)
Definition: BOpcodeHandler.h:6067
void SetIndices(int count, int const indices[], POINTER_SIZED_INT const values[])
Definition: BOpcodeHandler.h:4598
unsigned char m_flags
Definition: BOpcodeHandler.h:6304
int GetAction() const
Definition: BOpcodeHandler.h:4474
float GetSimpleShadowOpacity() const
Definition: BOpcodeHandler.h:3663
void SetDMiddle(double x, double y, double z)
Definition: BOpcodeHandler.h:5943
void GetField(float f[]) const
Definition: BOpcodeHandler.h:4817
void SetRelatedSelectionLimit(int r)
Definition: BOpcodeHandler.h:3850
TK_Geometry_Attributes()
Definition: BOpcodeHandler.h:1558
int GetMaximumExtent() const
Definition: BOpcodeHandler.h:3893
Handles the TKE_Clip_Rectangle opcode.
Definition: BOpcodeHandler.h:7409
void SetLockValue(int v)
Definition: BOpcodeHandler.h:2517
void SetMaximumExtent(int c)
Definition: BOpcodeHandler.h:3891
unsigned char m_fallback
For internal use only.
Definition: BOpcodeHandler.h:2325
unsigned char m_compression
Definition: BOpcodeHandler.h:6826
char const * GetCondition() const
Definition: BOpcodeHandler.h:1357
Handles the TKE_Text_Font opcode.
Definition: BOpcodeHandler.h:4924
int GetLodOptionsMask() const
Definition: BOpcodeHandler.h:3403
struct vlist_s * m_current_working
holds the geometry list in progress. struct vlist_s the incomplete type for vlist_t (used until vlist...
Definition: BOpcodeHandler.h:1514
int m_flags
internal use
Definition: BOpcodeHandler.h:904
void SetDiffuse(float r, float g, float b)
Definition: BOpcodeHandler.h:1797
bool m_needs_tag
Indicate if this object explicitly needs tagging.
Definition: BOpcodeHandler.h:67
int GetColorFaceLockValue() const
Definition: BOpcodeHandler.h:2587
char const * GetDiffuseName() const
Definition: BOpcodeHandler.h:1807
void SetMajor(float x, float y, float z)
Definition: BOpcodeHandler.h:6021
static TK_Status GetData(BStreamFileToolkit &tk, double *d, int n)
Definition: BOpcodeHandler.h:288
float const * GetOrderedWeights() const
Definition: BOpcodeHandler.h:3952
HLONG * m_values
for internal use only
Definition: BOpcodeHandler.h:4577
int GetOptions() const
Definition: BOpcodeHandler.h:6926
static TK_Status PutData(BStreamFileToolkit &tk, double const &d)
Definition: BOpcodeHandler.h:471
float const * GetValueScale() const
Definition: BOpcodeHandler.h:7097
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4621
int m_size
Definition: BOpcodeHandler.h:7194
unsigned char * m_isoline_weights_unit
for internal use only.
Definition: BOpcodeHandler.h:2301
float const * GetValues() const
Definition: BOpcodeHandler.h:2157
void SetCollectionPart(bool n)
Definition: BOpcodeHandler.h:204
int GetParameterSource() const
Definition: BOpcodeHandler.h:7047
void floats_to_bytes(float const *in, unsigned char *out, int count) const
for internal use only
Definition: BOpcodeHandler.h:632
double GetDRadius() const
Definition: BOpcodeHandler.h:6265
void SetBytes(int size, char const *bytes=0)
Definition: BOpcodeHandler.h:6740
float * GetVKnots()
Definition: BOpcodeHandler.h:5634
BBaseOpcodeHandler(int op)
Definition: BOpcodeHandler.h:92
char const * GetOptions() const
Definition: BOpcodeHandler.h:4520
Definition: BOpcodeHandler.h:4269
float const * GetImageTintColor() const
Definition: BOpcodeHandler.h:3760
int m_name_length
Definition: BOpcodeHandler.h:7242
char const * GetCutGeometryEdgePattern() const
Definition: BOpcodeHandler.h:3600
double const * GetDPlanes() const
Definition: BOpcodeHandler.h:5847
unsigned char * m_leader_flags
Definition: BOpcodeHandler.h:6571
Handles the TKE_Dictionary opcode.
Definition: BOpcodeHandler.h:1637
float * GetLodRatios()
Definition: BOpcodeHandler.h:3467
void SetValue(int v)
Definition: BOpcodeHandler.h:4990
float const * GetPosition() const
Definition: BOpcodeHandler.h:6616
float const * GetTransmission() const
Definition: BOpcodeHandler.h:1850
int GetCaps() const
Definition: BOpcodeHandler.h:6271
int GetColorEdgeLockMask() const
Definition: BOpcodeHandler.h:2599
void SetOrientation(int count, float const o[])
Definition: BOpcodeHandler.h:4015
bool GetStreaming() const
Definition: BOpcodeHandler.h:4389
void SetLayout(int p)
Definition: BOpcodeHandler.h:7085
char m_param_function
Definition: BOpcodeHandler.h:6964
char * m_definition
Definition: BOpcodeHandler.h:7364
int m_string_length
internal use
Definition: BOpcodeHandler.h:2124
char m_num_cylinder
For internal use only.
Definition: BOpcodeHandler.h:2345
int m_surface_budget
For internal use only.
Definition: BOpcodeHandler.h:2331
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1581
float GetGloss() const
Definition: BOpcodeHandler.h:1892
HT_NURBS_Trim * GetTrims()
Definition: BOpcodeHandler.h:5644
internal use, indicates bits which require TKO_Geo_Extended
Definition: BOpcodeEnums.h:177
float * m_isoline_weights_value
for internal use only.
Definition: BOpcodeHandler.h:2300
short color_cut_edge_mask
For internal use only.
Definition: BOpcodeHandler.h:1096
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7228
int GetVisibilityLockMask() const
Definition: BOpcodeHandler.h:2530
Definition: BStream.h:273
void SetRotation(float r)
Definition: BOpcodeHandler.h:5042
int GetValue(int index=0) const
Definition: BOpcodeHandler.h:2451
int GetBufferOptionsMask() const
Definition: BOpcodeHandler.h:3320
//
Definition: BOpcodeEnums.h:142
float * m_weights
Definition: BOpcodeHandler.h:5578
void SetColorBackLockMask(int m)
Definition: BOpcodeHandler.h:2755
Handles the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes.
Definition: BOpcodeHandler.h:5218
TK_PolyCylinder()
Definition: BOpcodeHandler.h:6309
void SetRectangle(float left, float right, float bottom, float top)
Definition: BOpcodeHandler.h:7429
void SetUpVector(float const u[])
Definition: BOpcodeHandler.h:4794
unsigned char m_tq
internal use; low half technology, high half quantization. For internal use only. ...
Definition: BOpcodeHandler.h:2261
unsigned char m_general_flags
Basic flags common to many handlers.
Definition: BOpcodeHandler.h:66
char * m_name
Definition: BOpcodeHandler.h:7363
HLONG m_value
for internal use only
Definition: BOpcodeHandler.h:4684
char * GetCondition()
Definition: BOpcodeHandler.h:1362
float const * GetWindow() const
Definition: BOpcodeHandler.h:4906
unsigned char m_type
Definition: BOpcodeHandler.h:6700
void SetDMajor(double const m[])
Definition: BOpcodeHandler.h:6053
void SetScreenRange(float const l[])
Definition: BOpcodeHandler.h:3724
int GetCutGeometryLevel() const
Definition: BOpcodeHandler.h:3573
char * GetName()
Definition: BOpcodeHandler.h:4356
char * GetShape()
Definition: BOpcodeHandler.h:5010
void SetImageScale(float x, float y)
Definition: BOpcodeHandler.h:3747
float const * GetVKnots() const
Definition: BOpcodeHandler.h:5632
void SetStreaming(bool s)
Definition: BOpcodeHandler.h:4387
void SetSpace(int s)
Definition: BOpcodeHandler.h:1997
void SetEnvironmentName(int length)
Definition: BOpcodeHandler.h:1874
int GetCompression() const
Definition: BOpcodeHandler.h:6931
int const * GetRenderers() const
Definition: BOpcodeHandler.h:5100
int m_index
internal use
Definition: BOpcodeHandler.h:2022
void SetRadius(float r)
Definition: BOpcodeHandler.h:6120
HT_NURBS_Trim * m_next
Definition: BOpcodeHandler.h:5490
TK_Open_Segment()
Definition: BOpcodeHandler.h:1183
void SetLodOptionsValue(int v)
Definition: BOpcodeHandler.h:3405
void SetVector(float const v[])
Definition: BOpcodeHandler.h:3915
int GetColorTextLockMask() const
Definition: BOpcodeHandler.h:2668
extended bits for common/shared items
Definition: BOpcodeEnums.h:176
BBaseOpcodeHandler * m_complex
Definition: BOpcodeHandler.h:7457
Definition: BOpcodeHandler.h:1721
double const * GetDStart() const
Definition: BOpcodeHandler.h:5975
void SetMiddle(float x, float y, float z)
Definition: BOpcodeHandler.h:5894
int GetGeometry() const
Definition: BOpcodeHandler.h:1941
int GetRendererCutoffUnits() const
Definition: BOpcodeHandler.h:5110
short m_channels
internal use
Definition: BOpcodeHandler.h:1716
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:6912
self-explanatory
Definition: BOpcodeEnums.h:1226
float m_hlr_transparency_cutoff
For internal use only.
Definition: BOpcodeHandler.h:2278
float m_preference_cutoff
for internal use only
Definition: BOpcodeHandler.h:4939
void SetLodMinimumTriangleCount(int v)
Definition: BOpcodeHandler.h:3413
char * m_condition
Definition: BOpcodeHandler.h:1387
float m_start
Definition: BOpcodeHandler.h:5408
void SetDOrigin(double const o[])
Definition: BOpcodeHandler.h:6479
TK_Ellipse(unsigned char opcode)
Definition: BOpcodeHandler.h:6001
int GetCount() const
Definition: BOpcodeHandler.h:6379
TK_Heuristics()
Definition: BOpcodeHandler.h:3823
void SetHlrFaceDisplacement(float d)
Definition: BOpcodeHandler.h:3357
void SetPoints(float const s[], float const m[], float const e[], float const c[]=0)
Definition: BOpcodeHandler.h:5920
int GetMaskTransform() const
Definition: BOpcodeHandler.h:3562
int GetColorTextContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3312
char * GetString()
Definition: BOpcodeHandler.h:7766
void SetDStart(double x, double y, double z)
Definition: BOpcodeHandler.h:5935
void SetDiffuseTextureTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3766
void SetEmission(float const rgb[])
Definition: BOpcodeHandler.h:1859
void SetOptions(int f)
Definition: BOpcodeHandler.h:6924
unsigned char * GetBytes()
Definition: BOpcodeHandler.h:7167
void SetMask(int m)
Definition: BOpcodeHandler.h:3836
void SetConcentration(float c)
Definition: BOpcodeHandler.h:5782
char m_param_source
Definition: BOpcodeHandler.h:6957
float * GetWeights()
Definition: BOpcodeHandler.h:5553
int m_buffer_size
Definition: BOpcodeHandler.h:7608
ID_Key GetKey() const
Definition: BOpcodeHandler.h:1598
static void fix_out(double *d, int n)
for internal use only
Definition: BOpcodeHandler.h:609
void SetColorBackForcedLockValue(int v)
Definition: BOpcodeHandler.h:3169
unsigned short m_simple_shadow_resolution
For internal use only.
Definition: BOpcodeHandler.h:2367
int const * GetCounts() const
Definition: BOpcodeHandler.h:6513
float const * GetEnd() const
Definition: BOpcodeHandler.h:6238
void SetPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:5826
int GetOrderedWeightsMask() const
Definition: BOpcodeHandler.h:3942
void add_segment(BStreamFileToolkit &tk, ID_Key key)
for internal use only
Definition: BOpcodeHandler.h:644
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:7302
Lock_Masks m_filter
for internal use only
Definition: BOpcodeHandler.h:1302
void SetColorTextForcedLockMask(int m)
Definition: BOpcodeHandler.h:3066
char * GetName(void)
Definition: BOpcodeHandler.h:7887
void SetForceDefer(int l)
Definition: BOpcodeHandler.h:3967
void SetColorLockMask(int m)
Definition: BOpcodeHandler.h:2548
ID_Key m_renumbered_key
for internal use only
Definition: BOpcodeHandler.h:1298
Handles the TKE_Modelling_Matrix and TKE_Texture_Matrix opcodes.
Definition: BOpcodeHandler.h:4201
void SetWindow(float const w[], float const o[])
Definition: BOpcodeHandler.h:4898
void SetIndex(int i)
Definition: BOpcodeHandler.h:4258
void SetVertexDecimation(float f)
Definition: BOpcodeHandler.h:3776
int GetColorWindowContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3140
void SetDiffuseName(int length)
Definition: BOpcodeHandler.h:1803
void Reset()
internal use
Definition: BOpcodeHandler.h:1728
int m_number_of_items
internal use
Definition: BOpcodeHandler.h:1642
int GetGreenMapping() const
Definition: BOpcodeHandler.h:7067
////
Definition: BOpcodeEnums.h:36
char * GetCylinderTessellations()
Definition: BOpcodeHandler.h:3530
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:5756
void SetSphereTessellation(int n)
Definition: BOpcodeHandler.h:3532
void SetColorBackLockValue(int v)
Definition: BOpcodeHandler.h:2766
void SetAction(int at)
Definition: BOpcodeHandler.h:4472
float m_index
internal use
Definition: BOpcodeHandler.h:2071
void SetDAxis(double const s[], double const e[])
Definition: BOpcodeHandler.h:6252
char * GetSegment()
Definition: BOpcodeHandler.h:1214
void SetSize(int const s[])
Definition: BOpcodeHandler.h:7172
void SetColorVertexContrastLockValue(int v)
Definition: BOpcodeHandler.h:2881
int m_general_displacement
For internal use only.
Definition: BOpcodeHandler.h:2401
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1906
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:1300
char const * GetSegment() const
Definition: BOpcodeHandler.h:1336
int m_definition_length
Definition: BOpcodeHandler.h:7362
static TK_Status GetData(BStreamFileToolkit &tk, int *i, int n)
Definition: BOpcodeHandler.h:272
TK_Line(unsigned char opcode=TKE_Line)
Definition: BOpcodeHandler.h:5287
int m_stage
The writing stage.
Definition: BOpcodeHandler.h:63
void SetColorLineContrastLockMask(int m)
Definition: BOpcodeHandler.h:2824
void SetColorVertexForcedLockValue(int v)
Definition: BOpcodeHandler.h:3192
int GetNURBSOptionsValue() const
Definition: BOpcodeHandler.h:3381
float * m_planes
internal use
Definition: BOpcodeHandler.h:5801
Handles the TKE_Image_XRef opcodes.
Definition: BOpcodeHandler.h:7857
void SetTiling(int p)
Definition: BOpcodeHandler.h:7090
int GetLodFallback() const
Definition: BOpcodeHandler.h:3435
float GetCutGeometryEdgeWeight() const
Definition: BOpcodeHandler.h:3591
short color_edge_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1082
void SetDMinor(double const m[])
Definition: BOpcodeHandler.h:6062
Handles the TKE_PolyCylinder opcode.
Definition: BOpcodeHandler.h:6296
int * GetLengths()
Definition: BOpcodeHandler.h:7569
char m_type
internal use
Definition: BOpcodeHandler.h:5168
all
Definition: BOpcodeEnums.h:345
mask of bits in second byte
Definition: BOpcodeEnums.h:765
unsigned short m_shadow_map
For internal use only.
Definition: BOpcodeHandler.h:2373
void GetDPosition(double p[]) const
Definition: BOpcodeHandler.h:4768
float m_stereo_distance
For internal use only.
Definition: BOpcodeHandler.h:2342
int m_length
Definition: BOpcodeHandler.h:4491
float GetLineSpacing() const
Definition: BOpcodeHandler.h:5069
static TK_Status LookatData(BStreamFileToolkit &tk, unsigned char &b)
Definition: BOpcodeHandler.h:344
int m_length
Definition: BOpcodeHandler.h:2196
int visibility_mask
For internal use only.
Definition: BOpcodeHandler.h:1098
int GetCount() const
Definition: BOpcodeHandler.h:5537
void SetColorTextContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3296
int GetColorBackLockValue() const
Definition: BOpcodeHandler.h:2771
void SetWhenInvisible(int m)
Definition: BOpcodeHandler.h:4186
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:653
void SetKey(ID_Key k)
Definition: BOpcodeHandler.h:1596
char const * GetNames() const
Definition: BOpcodeHandler.h:4999
int GetLength() const
Definition: BOpcodeHandler.h:2161
int m_placeholder
internal use
Definition: BOpcodeHandler.h:1640
unsigned char * m_dleader_flags
Definition: BOpcodeHandler.h:6574
float m_vertex_decimation
For internal use only.
Definition: BOpcodeHandler.h:2404
double const * GetDRadii() const
Definition: BOpcodeHandler.h:6373
char * GetName()
Definition: BOpcodeHandler.h:7270
void SetColorMarkerForcedLockMask(int m)
Definition: BOpcodeHandler.h:3043
wchar_t const * GetString() const
Definition: BOpcodeHandler.h:7842
void SetInterpolation(int p)
Definition: BOpcodeHandler.h:7050
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6148
void SetDMinor(double x, double y, double z)
Definition: BOpcodeHandler.h:6058
float * GetMatrix()
Definition: BOpcodeHandler.h:4229
void SetOrigin(float x, float y, float z)
Definition: BOpcodeHandler.h:6441
int m_length
Definition: BOpcodeHandler.h:4402
int GetGeometryOptionsMask() const
Definition: BOpcodeHandler.h:3552
char m_marker_drawing_preference
For internal use only.
Definition: BOpcodeHandler.h:2413
int m_allocated
Definition: BOpcodeHandler.h:1291
int GetCutGeometryColorMatch() const
Definition: BOpcodeHandler.h:3578
unsigned char size_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6540
Handles the TKE_External_Reference_Unicode opcodes.
Definition: BOpcodeHandler.h:7816
float m_outer
for internal use only
Definition: BOpcodeHandler.h:5722
Handles the TKE_Polyline and TKE_Polygon opcodes.
Definition: BOpcodeHandler.h:5337
char m_apply_mode
Definition: BOpcodeHandler.h:6970
int * m_cursors
Definition: BOpcodeHandler.h:6568
HLONG * GetValues()
Definition: BOpcodeHandler.h:4611
int GetHlrOptions() const
Definition: BOpcodeHandler.h:3351
int m_pixel_threshold
internal use; pixel threshold
Definition: BOpcodeHandler.h:3804
int m_count
internal use
Definition: BOpcodeHandler.h:5803
int mask
For internal use only.
Definition: BOpcodeHandler.h:1058
int m_internal_shell
internal use
Definition: BOpcodeHandler.h:3797
void SetRef1(float const r[])
Definition: BOpcodeHandler.h:6456
float const * GetLimits() const
Definition: BOpcodeHandler.h:6071
unsigned char m_type
Definition: BOpcodeHandler.h:5491
float GetConcentration() const
Definition: BOpcodeHandler.h:5784
void SetColorFaceContrastLockValue(int v)
Definition: BOpcodeHandler.h:2720
int GetColorMarkerLockMask() const
Definition: BOpcodeHandler.h:2645
Handles the TKE_Bounding and TKE_Bounding_Info opcodes.
Definition: BOpcodeHandler.h:5164
unsigned char m_projection
internal use
Definition: BOpcodeHandler.h:4721
char m_tint_effect
For internal use only.
Definition: BOpcodeHandler.h:2306
void SetColorFaceForcedLockValue(int v)
Definition: BOpcodeHandler.h:2985
TK_User_Data()
Definition: BOpcodeHandler.h:7615
int GetCount() const
Definition: BOpcodeHandler.h:5444
void SetRGB(float const rgb[])
Definition: BOpcodeHandler.h:1946
unsigned char m_degree[2]
Definition: BOpcodeHandler.h:5574
int m_force_defer
internal use; hard extent
Definition: BOpcodeHandler.h:3809
float GetOuter() const
Definition: BOpcodeHandler.h:5774
float const * GetPosition() const
Definition: BOpcodeHandler.h:5745
int m_index
Definition: BOpcodeHandler.h:1259
void SetPoint(float x, float y, float z)
Definition: BOpcodeHandler.h:5250
void SetSelectionSorting(int s)
Definition: BOpcodeHandler.h:3962
////
Definition: BOpcodeEnums.h:95
const int TK_Image_Bytes_Per_Pixel[]
Specifies the number of bytes per pixel for each format.
TK_Glyph_Definition()
Definition: BOpcodeHandler.h:7200
Handles the TKE_Shape_Definition opcode.
Definition: BOpcodeHandler.h:7240
int GetColorForcedLockMask() const
Definition: BOpcodeHandler.h:2956
float * GetTextLeaders()
Definition: BOpcodeHandler.h:6663
double m_dradius
Definition: BOpcodeHandler.h:6209
void SetColorVertexContrastLockMask(int m)
Definition: BOpcodeHandler.h:2870
int GetColorLockMask() const
Definition: BOpcodeHandler.h:2553
void SetGreekingLimit(float s)
Definition: BOpcodeHandler.h:5077
float const * GetStart() const
Definition: BOpcodeHandler.h:6236
void SetLodAlgorithm(int v)
Definition: BOpcodeHandler.h:3409
char * GetEmissionName()
Definition: BOpcodeHandler.h:1869
int GetNURBSSurfaceBudget() const
Definition: BOpcodeHandler.h:3393
unsigned short m_tint_options
For internal use only.
Definition: BOpcodeHandler.h:2303
int m_maximum_extent_mode
internal use; maximum extent mode – int! argh...
Definition: BOpcodeHandler.h:3806
TK_Status Write(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1104
void SetWindow(float const w[])
Definition: BOpcodeHandler.h:4896
channel m_diffuse
internal use
Definition: BOpcodeHandler.h:1735
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2088
void SetRendererCutoff(float s)
Definition: BOpcodeHandler.h:5103
int GetNumSphereTessellations() const
Definition: BOpcodeHandler.h:3543
float * GetValues()
Definition: BOpcodeHandler.h:2159
float * m_radii
Definition: BOpcodeHandler.h:6302
Handles the TKE_Camera opcode.
Definition: BOpcodeHandler.h:4711
int GetTransparentStyle() const
Definition: BOpcodeHandler.h:2466
int m_mask
internal use
Definition: BOpcodeHandler.h:2021
int GetSpace() const
Definition: BOpcodeHandler.h:1999
float m_index
internal use
Definition: BOpcodeHandler.h:1743
int GetColorMarkerContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3255
int GetSizeUnits() const
Definition: BOpcodeHandler.h:5029
void SetLodThreshold(float r)
Definition: BOpcodeHandler.h:3474
float m_start_u
Definition: BOpcodeHandler.h:5499
int GetJoinCutoffAngle() const
Definition: BOpcodeHandler.h:2501
void SetName(int length)
Definition: BOpcodeHandler.h:7883
int GetColorWindowLockValue() const
Definition: BOpcodeHandler.h:2702
unsigned short m_transparency_options
internal use; low nibble style, next peeling flags, then zsort
Definition: BOpcodeHandler.h:2354
int m_total_size
the total size of the blind material data
Definition: BOpcodeHandler.h:7666
int m_mask
internal use
Definition: BOpcodeHandler.h:1715
char m_interpolation
Definition: BOpcodeHandler.h:6958
void SetNURBSCurveContinuedBudget(int b)
Definition: BOpcodeHandler.h:3387
char const * GetComment() const
Definition: BOpcodeHandler.h:988
void SetHlrOptions(int o)
Definition: BOpcodeHandler.h:3342
void SetStereoDistance(float d)
Definition: BOpcodeHandler.h:3336
Handles the TKE_Text and TKE_Text_With_Encoding opcodes.
Definition: BOpcodeHandler.h:6553
int GetColorBackForcedLockValue() const
Definition: BOpcodeHandler.h:3174
unsigned char m_size_units
for internal use only
Definition: BOpcodeHandler.h:4949
float const * GetWeights() const
Definition: BOpcodeHandler.h:5624
short color_back_mask
For internal use only.
Definition: BOpcodeHandler.h:1078
void set_last_key(BStreamFileToolkit &tk, ID_Key key)
sets the given key as "most recent" on the toolkit for the purposes of associating keys with indices ...
Definition: BOpcodeHandler.h:648
int m_length
Definition: BOpcodeHandler.h:7779
float width_scale
adjustment to character width
Definition: BOpcodeHandler.h:6535
char m_param_offset
Definition: BOpcodeHandler.h:6971
int m_substage
Definition: BOpcodeHandler.h:5489
double * GetDRef2()
Definition: BOpcodeHandler.h:6505
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6046
float * m_weights
Definition: BOpcodeHandler.h:5497
void SetFlags(int f)
Definition: BOpcodeHandler.h:924
char * GetLoggingString()
Definition: BOpcodeHandler.h:249
void SetDebug(int d)
Definition: BOpcodeHandler.h:2479
int m_lod_options_value
For internal use only.
Definition: BOpcodeHandler.h:2309
char * GetDefinition()
Definition: BOpcodeHandler.h:7398
float * m_points
Definition: BOpcodeHandler.h:7521
unsigned char m_format
Definition: BOpcodeHandler.h:6824
int GetColorMarkerContrastLockMask() const
Definition: BOpcodeHandler.h:2852
bool m_collection_part
Indicates if this object is part of a LOD collection.
Definition: BOpcodeHandler.h:68
int color_mask
For internal use only.
Definition: BOpcodeHandler.h:1060
float const * GetPoints() const
Definition: BOpcodeHandler.h:5686
int m_length
Definition: BOpcodeHandler.h:6699
oblique y setting
Definition: BOpcodeEnums.h:1104
Handles the TKE_Rendering_Options opcode.
Definition: BOpcodeHandler.h:2255
void SetScreenRange(int n, float const l[])
Definition: BOpcodeHandler.h:3729
void SetMaximumExtentLevel(int c)
Definition: BOpcodeHandler.h:3901
float const * GetPoints() const
Definition: BOpcodeHandler.h:5539
int Pass(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:176
secondary extended bits
Definition: BOpcodeEnums.h:205
int GetUDegree() const
Definition: BOpcodeHandler.h:5616
BBaseOpcodeHandler * Opcode_Handler(BStreamFileToolkit &tk, unsigned char op) const
Definition: BOpcodeHandler.h:671
void SetViewVolume(float ax, float ay, float az, float bx, float by, float bz)
Definition: BOpcodeHandler.h:3928
unsigned char m_units
for internal use only.
Definition: BOpcodeHandler.h:4272
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:6012
int GetMask() const
Definition: BOpcodeHandler.h:3842
void SetComment(char const *comment)
Definition: BOpcodeHandler.h:979
unsigned char m_flags
Definition: BOpcodeHandler.h:5868
bool m_terminate_file
internal use for hsx read-write only. This indicates if the TKE_Terminate is
Definition: BOpcodeHandler.h:1023
int GetColorVertexForcedLockValue() const
Definition: BOpcodeHandler.h:3197
void SetColorMarkerForcedLockValue(int v)
Definition: BOpcodeHandler.h:3054
self-explanatory
Definition: BOpcodeEnums.h:1541
HT_NURBS_Trim const * GetList() const
Definition: BOpcodeHandler.h:5559
void SetDAxis(double const a[])
Definition: BOpcodeHandler.h:6254
Definition: BOpcodeHandler.h:855
short color_marker_mask
For internal use only.
Definition: BOpcodeHandler.h:1068
char * GetSegment()
Definition: BOpcodeHandler.h:7350
int m_isoline_weight_count
for internal use only.
Definition: BOpcodeHandler.h:2299
void SetParameterOffset(int p)
Definition: BOpcodeHandler.h:7105
float const * GetPoints() const
Definition: BOpcodeHandler.h:5438
float const * GetKnots() const
Definition: BOpcodeHandler.h:5555
Contains enum types which are used by BBaseOpcodeHandler.
char * m_string
Definition: BOpcodeHandler.h:7742
float const * GetEmission() const
Definition: BOpcodeHandler.h:1865
int m_buffer_size_limit
For internal use only.
Definition: BOpcodeHandler.h:2273
The BBaseOpcodeHandler abstract class is used as a base for derived classes which manage logical piec...
Definition: BOpcodeHandler.h:55
double const * GetDMatrix() const
Definition: BOpcodeHandler.h:4231
float const * GetDiffuseTextureTintColor() const
Definition: BOpcodeHandler.h:3768
char * GetString()
Definition: BOpcodeHandler.h:6608
double const * GetDPoints() const
Definition: BOpcodeHandler.h:7491
int GetCount() const
Definition: BOpcodeHandler.h:5380
unsigned char m_hsr
internal use; low half hsr, high half thsr. For internal use only.
Definition: BOpcodeHandler.h:2260
void SetDiffuseName(char const *name)
Definition: BOpcodeHandler.h:1801
char const * GetCondition() const
Definition: BOpcodeHandler.h:1425
float GetSimpleReflectionOpacity() const
Definition: BOpcodeHandler.h:3702
int m_hlr_line_pattern
For internal use only.
Definition: BOpcodeHandler.h:2279
Handles the TKE_Material opcode.
Definition: BOpcodeHandler.h:7664
void SetStereoSeparation(float s)
Definition: BOpcodeHandler.h:3332
void SetCallback(char const *callback)
Definition: BOpcodeHandler.h:2219
static TK_Status GetData(BStreamFileToolkit &tk, unsigned short &s)
Definition: BOpcodeHandler.h:317
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition: BStream.h:272
char const * GetCondition() const
Definition: BOpcodeHandler.h:4465
void SetCaps(int f)
Definition: BOpcodeHandler.h:6269
int GetBytesCount() const
Definition: BOpcodeHandler.h:6742
Handles the TKE_Window opcode.
Definition: BOpcodeHandler.h:4873
BBaseOpcodeHandler * m_index_data
Definition: BOpcodeHandler.h:4495
TK_Point(unsigned char opcode)
Definition: BOpcodeHandler.h:5226
int m_length
Definition: BOpcodeHandler.h:6557
BBaseOpcodeHandler * m_unicode
Definition: BOpcodeHandler.h:4494
unsigned char m_encoding
Definition: BOpcodeHandler.h:6560
TK_LOD()
Definition: BOpcodeHandler.h:1521
int GetColorEdgeContrastLockValue() const
Definition: BOpcodeHandler.h:2817
void SetColorVertexContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3273
void SetSize(float value, int units=TKO_Generic_Size_Unspecified)
Definition: BOpcodeHandler.h:4287
void SetAxis(float const s[])
Definition: BOpcodeHandler.h:6131
void SetValue(int m)
Definition: BOpcodeHandler.h:4085
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6256
Handles the TKE_Visibility opcode.
Definition: BOpcodeHandler.h:4047
unsigned short m_selection_bias
internal use; selection bias options
Definition: BOpcodeHandler.h:3803
float GetIndex() const
Definition: BOpcodeHandler.h:1896
void SetPoint(float const p[])
Definition: BOpcodeHandler.h:5252
void SetExtras(int e)
Definition: BOpcodeHandler.h:3870
void SetFollow(bool f)
Definition: BOpcodeHandler.h:1434
unsigned char m_hlr_weight_units
for internal use only.
Definition: BOpcodeHandler.h:2282
TK_Named_Style_Def()
Definition: BOpcodeHandler.h:7307
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:7155
unsigned char m_cut_geometry_match
For internal use only.
Definition: BOpcodeHandler.h:2358
char * m_string
Definition: BOpcodeHandler.h:1292
void SetPoints(float const p[])
Definition: BOpcodeHandler.h:5307
double * GetDPoints()
Definition: BOpcodeHandler.h:7558
void SetTransparentStyle(int s)
Definition: BOpcodeHandler.h:2464
float const * GetRectangle() const
Definition: BOpcodeHandler.h:7435
int m_length
Definition: BOpcodeHandler.h:1290
internal use, indicates bits which require TKO_Geo_Extended2
Definition: BOpcodeEnums.h:206
float m_contour_value_scale
for internal use only.
Definition: BOpcodeHandler.h:2290
short color_text_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1090
unsigned short value
for active settings, on or off
Definition: BOpcodeHandler.h:6538
TK_Color_RGB()
Definition: BOpcodeHandler.h:1913
unsigned char m_cut_geometry
For internal use only.
Definition: BOpcodeHandler.h:2356
char m_type
Definition: BOpcodeHandler.h:6423
void SetNeedsTag(bool n)
Definition: BOpcodeHandler.h:194
char * m_shape
for internal use only
Definition: BOpcodeHandler.h:4944
float const * GetRef2() const
Definition: BOpcodeHandler.h:6469
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4628
int m_ascii_progress
Tracks the amount of data that has been read/written so far by GetAscii functions.
Definition: BOpcodeHandler.h:79
void SetColorLineForcedLockMask(int m)
Definition: BOpcodeHandler.h:3020
char * GetView()
Definition: BOpcodeHandler.h:4864
void SetWidthScale(float s)
Definition: BOpcodeHandler.h:5052
void SetColorEdgeLockMask(int m)
Definition: BOpcodeHandler.h:2594
void SetColorFaceContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3123
unsigned char m_degree
Definition: BOpcodeHandler.h:5401
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5611
int GetDegree() const
Definition: BOpcodeHandler.h:5443
void SetFollow(bool f)
Definition: BOpcodeHandler.h:1366
char * GetSpecularName()
Definition: BOpcodeHandler.h:1824
int m_name_length
Definition: BOpcodeHandler.h:7361
Handles the TKE_NURBS_Surface opcode.
Definition: BOpcodeHandler.h:5571
int m_reference_length
Definition: BOpcodeHandler.h:6823
float const * GetUKnots() const
Definition: BOpcodeHandler.h:5628
int GetColorWindowForcedLockValue() const
Definition: BOpcodeHandler.h:3105
char * m_data
Definition: BOpcodeHandler.h:7695
float * m_points
internal use
Definition: BOpcodeHandler.h:5658
int GetShadowMapResolution() const
Definition: BOpcodeHandler.h:3674
void SetOptions(int o)
Definition: BOpcodeHandler.h:5704
int m_names_length
for internal use only
Definition: BOpcodeHandler.h:4928
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1390
void SetDField(double const f[])
Definition: BOpcodeHandler.h:4822
int GetShadowMapSamples() const
Definition: BOpcodeHandler.h:3679
double const * GetDTarget() const
Definition: BOpcodeHandler.h:4786
struct vlist_s * m_data
Definition: BOpcodeHandler.h:7670
unsigned char m_geometry_options
For internal use only.
Definition: BOpcodeHandler.h:2392
Handles the TKE_Color_By_Index and TKE_Color_By_Index_16 opcode.
Definition: BOpcodeHandler.h:2019
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2039
TK_Shape_Definition()
Definition: BOpcodeHandler.h:7249
void SetColorLineLockValue(int v)
Definition: BOpcodeHandler.h:2628
void SetIndices(int count)
Definition: BOpcodeHandler.h:4601
float const * GetSimpleReflectionPlane() const
Definition: BOpcodeHandler.h:3697
float m_vector_tolerance
internal use; culling vector tolerance
Definition: BOpcodeHandler.h:3811
int m_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2402
int GetHlrLinePattern() const
Definition: BOpcodeHandler.h:3363
float GetStereoDistance() const
Definition: BOpcodeHandler.h:3338
int m_levels_allocated
the number of entries allocated in m_num_primitives and m_primitives
Definition: BOpcodeHandler.h:1512
unsigned char horizontal_offset_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6542
int GetRenderer() const
Definition: BOpcodeHandler.h:5095
void SetCylinderTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3517
void SetNearLimit(float l)
Definition: BOpcodeHandler.h:4843
char m_contour_value_adjustment
for internal use only.
Definition: BOpcodeHandler.h:2289
void SetExtraSpace(float s)
Definition: BOpcodeHandler.h:5057
#define ID_Key
Definition: BStream.h:248
unsigned short m_value
internal use
Definition: BOpcodeHandler.h:3986
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:4771
int GetIndex() const
Definition: BOpcodeHandler.h:2059
void SetMask(int m0, int m1=0, int m2=0)
Definition: BOpcodeHandler.h:2436
int m_cond_allocated
Definition: BOpcodeHandler.h:7298
int GetColorVertexContrastLockValue() const
Definition: BOpcodeHandler.h:2886
unsigned char m_flags
Definition: BOpcodeHandler.h:6210
char * name
the font name
Definition: BOpcodeHandler.h:6527
int GetLayout() const
Definition: BOpcodeHandler.h:5136
double * GetDPoints()
Definition: BOpcodeHandler.h:7493
wchar_t * GetString()
Definition: BOpcodeHandler.h:7844
int GetColorFaceContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3117
void SetTransmissionName(char const *name)
Definition: BOpcodeHandler.h:1846
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant)
Definition: BOpcodeHandler.h:967
#define TKO_Rendo_Extended
Definition: BOpcodeEnums.h:436
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:5959
double * m_dradii
Definition: BOpcodeHandler.h:6303
int GetMask() const
Definition: BOpcodeHandler.h:4012
Utility class for managing HSF header information.
Definition: BOpcodeHandler.h:872
float const * GetUpVector() const
Definition: BOpcodeHandler.h:4796
unsigned short m_isoline_options
for internal use only.
Definition: BOpcodeHandler.h:2288
float GetVertexDecimation() const
Definition: BOpcodeHandler.h:3778
internal use, indicates bits which require TKO_Geo_Extended_Colors
Definition: BOpcodeEnums.h:192
void SetPoints(float x1, float y1, float z1, float x2, float y2, float z2)
Definition: BOpcodeHandler.h:5298
int m_index
internal use
Definition: BOpcodeHandler.h:1480
float * GetPoints()
Definition: BOpcodeHandler.h:6340
int m_simple_reflection_visibility_value
For internal use only.
Definition: BOpcodeHandler.h:2384
void SetSimpleReflectionPlane(float const p[])
Definition: BOpcodeHandler.h:3695
float m_concentration
for internal use only
Definition: BOpcodeHandler.h:5724
void SetString(int length)
Definition: BOpcodeHandler.h:6604
int GetNumCylinderTessellations() const
Definition: BOpcodeHandler.h:3526
int GetChannels() const
Definition: BOpcodeHandler.h:1794
float * GetWeights()
Definition: BOpcodeHandler.h:5626
void SetTransform(int length)
Definition: BOpcodeHandler.h:7118
void SetToleranceUnits(int u)
Definition: BOpcodeHandler.h:5037
float const * GetDiffuse() const
Definition: BOpcodeHandler.h:1805
int GetOptions() const
Definition: BOpcodeHandler.h:7503
void SetColorWindowForcedLockValue(int v)
Definition: BOpcodeHandler.h:3100
void SetTransform(char const *transform)
Definition: BOpcodeHandler.h:7113
Handles the TKE_Thumbnail opcode.
Definition: BOpcodeHandler.h:7134
Handles the TKE_User_Options opcode.
Definition: BOpcodeHandler.h:4489
int m_margin_count
for internal use only
Definition: BOpcodeHandler.h:4946
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5583
int GetTransforms() const
Definition: BOpcodeHandler.h:5074
void SetForcedLockValue(int v)
Definition: BOpcodeHandler.h:2920
int m_face_displacement
For internal use only.
Definition: BOpcodeHandler.h:2263
TK_Dictionary()
Definition: BOpcodeHandler.h:1648
unsigned char m_byte
temporary
Definition: BOpcodeHandler.h:81
int GetGeometry() const
Definition: BOpcodeHandler.h:4136
Handles the TKE_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7451
void SetSegment(int length)
Definition: BOpcodeHandler.h:1332
char const * GetString() const
Definition: BOpcodeHandler.h:7803
unsigned char m_display_list_level
For internal use only.
Definition: BOpcodeHandler.h:2405
int GetVDegree() const
Definition: BOpcodeHandler.h:5618
int GetValue() const
Definition: BOpcodeHandler.h:3847
char const * GetName() const
Definition: BOpcodeHandler.h:7219
#define NS_TRIM_END
terminates an NS_TRIM_COLLECTION if one is active, otherwise terminates the list of trims ...
Definition: BOpcodeHandler.h:5468
char * GetImage()
Definition: BOpcodeHandler.h:7024
float * GetOrderedWeights()
Definition: BOpcodeHandler.h:3954
float const * GetMiddle() const
Definition: BOpcodeHandler.h:5928
TK_Color_Map()
Definition: BOpcodeHandler.h:2133
int m_size
Definition: BOpcodeHandler.h:7243
char * m_string
Definition: BOpcodeHandler.h:4403
double const * GetDPoint() const
Definition: BOpcodeHandler.h:5261
void SetDiffuse(float const rgb[])
Definition: BOpcodeHandler.h:1799
double const * GetTextRegionDPoints() const
Definition: BOpcodeHandler.h:6640
double const * GetDOrtho() const
Definition: BOpcodeHandler.h:6182
static void fix_in(double *d, int n)
for internal use only
Definition: BOpcodeHandler.h:577
int GetIndex() const
Definition: BOpcodeHandler.h:4361
void SetDepthRange(float n, float f)
Definition: BOpcodeHandler.h:3711
short color_vertex_mask
For internal use only.
Definition: BOpcodeHandler.h:1080
int GetMoveUp() const
Definition: BOpcodeHandler.h:4180
short color_face_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1075
int GetColorFaceContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3128
TK_Streaming()
Definition: BOpcodeHandler.h:4378
static void fix(short *s, int n)
for internal use only
Definition: BOpcodeHandler.h:547
float GetMaxDistance() const
Definition: BOpcodeHandler.h:3923
void GetOblique(float o[]) const
Definition: BOpcodeHandler.h:4840
void SetMoveUp(int m)
Definition: BOpcodeHandler.h:4175
int GetDecimation() const
Definition: BOpcodeHandler.h:7057
void SetRendererCutoffUnits(int u)
Definition: BOpcodeHandler.h:5108
void SetCutGeometry(int m)
Definition: BOpcodeHandler.h:3566
void SetEndNormal(int index, float const normal[]=0)
Definition: BOpcodeHandler.h:6392
TK_Bounding(unsigned char opcode, double center[], double radius)
Definition: BOpcodeHandler.h:5194
char * m_debug_string
Definition: BOpcodeHandler.h:72
char m_tiling
Definition: BOpcodeHandler.h:6966
void SetColorVertexForcedLockMask(int m)
Definition: BOpcodeHandler.h:3181
char const * GetSegment() const
Definition: BOpcodeHandler.h:1209
int m_cursor_count
Definition: BOpcodeHandler.h:6567
void SetSimpleReflection(int m)
Definition: BOpcodeHandler.h:3683
int GetGreekingLimitUnits() const
Definition: BOpcodeHandler.h:5084
Handles the TKE_Color_Map opcode.
Definition: BOpcodeHandler.h:2119
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char &b)
Definition: BOpcodeHandler.h:314
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const *i, int n)
Definition: BOpcodeHandler.h:447
char * GetBumpName()
Definition: BOpcodeHandler.h:1887
char m_num_thresholds
For internal use only.
Definition: BOpcodeHandler.h:2313
int GetNURBSSurfaceTrimBudget() const
Definition: BOpcodeHandler.h:3397
float m_contour_value_translate
for internal use only.
Definition: BOpcodeHandler.h:2291
unsigned char const * GetTextLeaderFlags() const
Definition: BOpcodeHandler.h:6665
int m_mask
internal use
Definition: BOpcodeHandler.h:1960
float const * GetLodCutoffs() const
Definition: BOpcodeHandler.h:3505
TK_Named(unsigned char opcode)
Definition: BOpcodeHandler.h:4336
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:1301
void SetAxis(float x1, float y1, float z1, float x2, float y2, float z2)
Definition: BOpcodeHandler.h:6225
void SetEmissionName(int length)
Definition: BOpcodeHandler.h:1863
char * m_name
Definition: BOpcodeHandler.h:6694
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4576
char const * GetString() const
Definition: BOpcodeHandler.h:6606
void SetDStart(double const s[])
Definition: BOpcodeHandler.h:5939
void SetColorEdgeContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3215
float m_width_scale
for internal use only
Definition: BOpcodeHandler.h:4934
int GetColorEdgeForcedLockValue() const
Definition: BOpcodeHandler.h:3013
void SetCurve(int degree, int control_count, float const points[]=0, float const weights[]=0, float const knots[]=0, float start=0.0f, float end=1.0f)
sets the curve properties
Definition: BOpcodeHandler.h:5429
char const * GetStyle() const
Definition: BOpcodeHandler.h:5017
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:7301
char * m_name
Definition: BOpcodeHandler.h:6816
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:1392
float GetSize() const
Definition: BOpcodeHandler.h:5024
int m_move_up
internal use; specifies what geometry is selectable on mouse move without buttons down...
Definition: BOpcodeHandler.h:4108
TK_Matrix(unsigned char opcode)
Definition: BOpcodeHandler.h:4208
void SetDMiddle(double const m[])
Definition: BOpcodeHandler.h:5947
unsigned short m_simple_reflection
For internal use only.
Definition: BOpcodeHandler.h:2377
float GetRadius() const
Definition: BOpcodeHandler.h:6122
float const * GetTarget() const
Definition: BOpcodeHandler.h:5761
int GetNURBSCurveContinuedBudget() const
Definition: BOpcodeHandler.h:3389
static float read_float(char const *cp, char **newcpp)
for internal use only
Definition: BOpcodeHandler.h:697
static TK_Status GetData(BStreamFileToolkit &tk, char *b, int n)
Definition: BOpcodeHandler.h:261
int * m_num_primitives
an array of ints to indicate the length of each row in m_primitives
Definition: BOpcodeHandler.h:1509
bool m_flag
for internal use only
Definition: BOpcodeHandler.h:4374
Lock_Masks m_lock
For internal use only.
Definition: BOpcodeHandler.h:2268
unsigned char * m_data
Definition: BOpcodeHandler.h:7607
float GetSize() const
Definition: BOpcodeHandler.h:4292
void SetGreenMapping(int p)
Definition: BOpcodeHandler.h:7065
void SetLodThresholds(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3476
void SetRectangle(float const *rect)
Definition: BOpcodeHandler.h:7432
TK_Status SetDPoints(int count, double const points[]=0)
void SetOptions(int at)
Definition: BOpcodeHandler.h:4476
Base class for shell and mesh.
Definition: BPolyhedron.h:22
char const * GetName() const
Definition: BOpcodeHandler.h:7004
char m_options
Definition: BOpcodeHandler.h:7453
void ** m_values
for internal use only
Definition: BOpcodeHandler.h:4625
char * m_string
Definition: BOpcodeHandler.h:1174
int m_hlr_options
For internal use only.
Definition: BOpcodeHandler.h:2275
double const * GetDPoints() const
Definition: BOpcodeHandler.h:7556
TK_User_Index_Data()
Definition: BOpcodeHandler.h:4635
void SetDCenter(double const c[])
Definition: BOpcodeHandler.h:5964
void SetCompression(int c)
Definition: BOpcodeHandler.h:6929
int GetHardExtent() const
Definition: BOpcodeHandler.h:3905
TK_Color_By_Index(unsigned char opcode)
Definition: BOpcodeHandler.h:2026
char * m_reference
Definition: BOpcodeHandler.h:6817
void SetSimpleReflectionPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3688
extends font options to a second byte
Definition: BOpcodeEnums.h:1127
void SetRenderer(int r)
Definition: BOpcodeHandler.h:5093
int m_name_length
Definition: BOpcodeHandler.h:6697
Handles the TKE_Conditional_Action opcode.
Definition: BOpcodeHandler.h:4439
char const * GetName() const
Definition: BOpcodeHandler.h:4354
TK_Geometry_Options()
Definition: BOpcodeHandler.h:3995
int GetUp() const
Definition: BOpcodeHandler.h:4158
void SetEmissionName(char const *name)
Definition: BOpcodeHandler.h:1861
char * m_bytes
Definition: BOpcodeHandler.h:6696
int m_vertex_displacement
For internal use only.
Definition: BOpcodeHandler.h:2264
float GetIndex() const
Definition: BOpcodeHandler.h:2108
void SetHardEdgeAngle(int m)
Definition: BOpcodeHandler.h:3555
float m_surface_max_trim_curve_deviation
For internal use only.
Definition: BOpcodeHandler.h:2333
void SetColorEdgeContrastLockValue(int v)
Definition: BOpcodeHandler.h:2812
double const * GetDPlane() const
Definition: BOpcodeHandler.h:5842
Handles the TKE_Start_User_Data opcode.
Definition: BOpcodeHandler.h:7604
float m_size
for internal use only
Definition: BOpcodeHandler.h:4930
float * GetKnots()
Definition: BOpcodeHandler.h:5557
int m_length
internal use
Definition: BOpcodeHandler.h:2121
float const * GetPoints() const
Definition: BOpcodeHandler.h:5607
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:2126
void SetName(char const *name)
Definition: BOpcodeHandler.h:7000
TK_Status SetPoints(int count, float const points[]=0)
unsigned char const * GetDTextLeaderFlags() const
Definition: BOpcodeHandler.h:6678
virtual TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Definition: BOpcodeHandler.h:217
void bytes_to_floats(unsigned char const *in, float *out, int count) const
for internal use only
Definition: BOpcodeHandler.h:637
int GetVSize() const
Definition: BOpcodeHandler.h:5622
void set_channel_rgb(channel &c, float r, float g, float b, int which_channel=-1)
internal use
Definition: BOpcodeHandler.h:1747
char * m_lookup
Definition: BOpcodeHandler.h:6695
char const * GetLookup() const
Definition: BOpcodeHandler.h:6762
TK_Window()
Definition: BOpcodeHandler.h:4880
void SetColorTextContrastLockValue(int v)
Definition: BOpcodeHandler.h:2904
int GetColorLineForcedLockValue() const
Definition: BOpcodeHandler.h:3036
TK_Linear_Pattern(unsigned char opcode)
Definition: BOpcodeHandler.h:4307
int m_radius_count
Definition: BOpcodeHandler.h:6301
void SetSimpleShadowResolution(int m)
Definition: BOpcodeHandler.h:3625
void SetIndex(int index)
Definition: BOpcodeHandler.h:1408
float GetTolerance() const
Definition: BOpcodeHandler.h:5034
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6044
void SetDRef2(double const r[])
Definition: BOpcodeHandler.h:6501
TK_Line_Style()
Definition: BOpcodeHandler.h:7368
Definition: BOpcodeHandler.h:4372
void SetDOrtho(double x, double y, double z)
Definition: BOpcodeHandler.h:6174
float * GetRef1()
Definition: BOpcodeHandler.h:6460
char m_num_ratios
For internal use only.
Definition: BOpcodeHandler.h:2311
float GetHardEdgeAngle() const
Definition: BOpcodeHandler.h:3557
void SetGreekingLimitUnits(int u)
Definition: BOpcodeHandler.h:5082
int GetParameterFunction() const
Definition: BOpcodeHandler.h:7082
unsigned char m_extras
internal use; low bit set == left handed, second bit set == spriting
Definition: BOpcodeHandler.h:3800
void SetLineSpacing(float s)
Definition: BOpcodeHandler.h:5067
float const * GetMinor() const
Definition: BOpcodeHandler.h:6036
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6627
Handles the TKE_Start_Compression and TKE_Stop_Compression opcodes.
Definition: BOpcodeHandler.h:1035
char const * GetShape() const
Definition: BOpcodeHandler.h:5008
unsigned short * m_string
Definition: BOpcodeHandler.h:4538
static void fix_out(float *f, int n)
for internal use only
Definition: BOpcodeHandler.h:592
char const * GetName() const
Definition: BOpcodeHandler.h:6882
void SetColorWindowContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3135
void SetPreferences(int r1, int r2)
Definition: BOpcodeHandler.h:5119
TK_Texture()
Definition: BOpcodeHandler.h:6982
char * m_gooch_color_map_segment
For internal use only.
Definition: BOpcodeHandler.h:2352
void SetColorEdgeContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3204
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1048
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6263
int m_allocated
Definition: BOpcodeHandler.h:7780
int GetLodThresholdType() const
Definition: BOpcodeHandler.h:3472
static TK_Status PutData(BStreamFileToolkit &tk, double const *d, int n)
Definition: BOpcodeHandler.h:418
int GetPreference() const
Definition: BOpcodeHandler.h:5116
float m_gooch_diffuse_weight
For internal use only.
Definition: BOpcodeHandler.h:2351
void SetColorEdgeContrastLockMask(int m)
Definition: BOpcodeHandler.h:2801
char const * GetName() const
Definition: BOpcodeHandler.h:7387
int GetLodNumThresholds() const
Definition: BOpcodeHandler.h:3485
void SetAmbientUpVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3739
int GetFormat() const
Definition: BOpcodeHandler.h:2149
static TK_Status PutData(BStreamFileToolkit &tk, int const &i)
Definition: BOpcodeHandler.h:456
unsigned char * GetUserData()
Definition: BOpcodeHandler.h:7637
double const * GetDTextLeaders() const
Definition: BOpcodeHandler.h:6674
float const * GetLodRatios() const
Definition: BOpcodeHandler.h:3465
int GetColorTextContrastLockValue() const
Definition: BOpcodeHandler.h:2909
extended bits for color
Definition: BOpcodeEnums.h:191
void SetColorWindowLockMask(int m)
Definition: BOpcodeHandler.h:2686
int m_total
Definition: BOpcodeHandler.h:7519
int GetColorMarkerContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3266
HT_NURBS_Trim * GetList()
Definition: BOpcodeHandler.h:5561
void SetIndex(int i)
Definition: BOpcodeHandler.h:1494
float const * getSimpleShadowLight() const
Definition: BOpcodeHandler.h:3638
static TK_Status PutData(BStreamFileToolkit &tk, float const *f, int n)
Definition: BOpcodeHandler.h:395
float GetStereoSeparation() const
Definition: BOpcodeHandler.h:3334
char const * GetEnvironmentName() const
Definition: BOpcodeHandler.h:1876
void SetSimpleShadowOpacity(float o)
Definition: BOpcodeHandler.h:3661
void SetColorWindowContrastLockValue(int v)
Definition: BOpcodeHandler.h:2743
double const * GetDOrigin() const
Definition: BOpcodeHandler.h:6481
char * GetName()
Definition: BOpcodeHandler.h:7221
void SetStart(float x, float y, float z)
Definition: BOpcodeHandler.h:5886
void GetTarget(float t[]) const
Definition: BOpcodeHandler.h:4778
char const * GetSpecularName() const
Definition: BOpcodeHandler.h:1822
void SetIndex(int i)
Definition: BOpcodeHandler.h:2057
int m_substage
Definition: BOpcodeHandler.h:6577
float const * GetPoint() const
Definition: BOpcodeHandler.h:5254
int GetFormat() const
Definition: BOpcodeHandler.h:7179
int m_options
internal use
Definition: BOpcodeHandler.h:1456
char * GetComment()
Definition: BOpcodeHandler.h:993
short color_line_mask
For internal use only.
Definition: BOpcodeHandler.h:1066
float const * GetEnd() const
Definition: BOpcodeHandler.h:5930
extra item for color; refer to ::HC_Set_Color for a description
Definition: BOpcodeEnums.h:214
void SetSimpleShadowPlane(float const p[])
Definition: BOpcodeHandler.h:3648
float const * GetFogLimits() const
Definition: BOpcodeHandler.h:2508
int GetCount() const
Definition: BOpcodeHandler.h:4603
void SetDEnd(double x, double y, double z)
Definition: BOpcodeHandler.h:5951
void SetColorForcedLockMask(int m)
Definition: BOpcodeHandler.h:2951
self-explanatory
Definition: BOpcodeEnums.h:1265
int m_lod_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2308
int GetTiling() const
Definition: BOpcodeHandler.h:7092
float * m_isoline_colors
for internal use only.
Definition: BOpcodeHandler.h:2296
void SetColorEdgeLockValue(int v)
Definition: BOpcodeHandler.h:2605
void SetDisplayListLevel(int m)
Definition: BOpcodeHandler.h:3606
TK_URL()
Definition: BOpcodeHandler.h:7746
int GetProjection() const
Definition: BOpcodeHandler.h:4854
int m_allocated
Definition: BOpcodeHandler.h:7741
void SetSphereTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3534
void SetImage(char const *image)
Definition: BOpcodeHandler.h:7018
int GetLength()
Definition: BOpcodeHandler.h:4469
float const * GetTextRegionPoints() const
Definition: BOpcodeHandler.h:6638
void SetRedMapping(int p)
Definition: BOpcodeHandler.h:7060
Handles the TKE_Delete_Object opcode.
Definition: BOpcodeHandler.h:1478
void SetMinor(float const m[])
Definition: BOpcodeHandler.h:6034
double * GetDPoints()
Definition: BOpcodeHandler.h:6363
float * GetOrigin()
Definition: BOpcodeHandler.h:6449
void SetColorMarkerContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3261
double const * GetDMinor() const
Definition: BOpcodeHandler.h:6064
TK_Default()
Definition: BOpcodeHandler.h:838
short m_fbe_mask
For internal use only.
Definition: BOpcodeHandler.h:2408
void SetColorFaceForcedLockMask(int m)
Definition: BOpcodeHandler.h:2974
void SetSegment(char const *segment)
Definition: BOpcodeHandler.h:1327
short color_cut_face_mask
For internal use only.
Definition: BOpcodeHandler.h:1094
void GetDUpVector(double u[]) const
Definition: BOpcodeHandler.h:4808
HLONG GetValue() const
Definition: BOpcodeHandler.h:4701
unsigned char m_heuristic
For internal use only.
Definition: BOpcodeHandler.h:2324
int * GetStringCursors()
Definition: BOpcodeHandler.h:6654
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1297
char * GetDefinition()
Definition: BOpcodeHandler.h:7230
int m_count
for internal use only
Definition: BOpcodeHandler.h:4623
void SetApplicationMode(int p)
Definition: BOpcodeHandler.h:7100
void SetEnvironmentName(char const *name)
Definition: BOpcodeHandler.h:1872
Handles the TKE_Spot_Light opcode.
Definition: BOpcodeHandler.h:5716
TK_Camera(unsigned char opcode=TKE_Camera)
Definition: BOpcodeHandler.h:4732
void SetRenderers(int r1, int r2)
Definition: BOpcodeHandler.h:5098
void SetMirror(float const rgb[])
Definition: BOpcodeHandler.h:1829
int GetType() const
Definition: BOpcodeHandler.h:5535
void SetSpecularName(char const *name)
Definition: BOpcodeHandler.h:1816
float const * GetPosition() const
Definition: BOpcodeHandler.h:6901
double const * GetDTarget() const
Definition: BOpcodeHandler.h:5769
float const * GetOrigin() const
Definition: BOpcodeHandler.h:6447
int m_length
Definition: BOpcodeHandler.h:1172
void Record_Instance(BStreamFileToolkit &tk, ID_Key key, int variant, int val1, int val2, int val3) const
Definition: BOpcodeHandler.h:675
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:971
short color_text_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1091
int GetBufferSizeLimit() const
Definition: BOpcodeHandler.h:3328
void SetMirrorName(int length)
Definition: BOpcodeHandler.h:1833
char const * GetBytes() const
Definition: BOpcodeHandler.h:6744
bool GetFollow()
Definition: BOpcodeHandler.h:1368
char * m_string
Definition: BOpcodeHandler.h:6559
TK_Text_Font()
Definition: BOpcodeHandler.h:4964
int GetGeometry() const
Definition: BOpcodeHandler.h:1786
int m_length
Definition: BOpcodeHandler.h:4537
float * m_values
internal use
Definition: BOpcodeHandler.h:2123
int GetColorEdgeContrastLockMask() const
Definition: BOpcodeHandler.h:2806
void SetSize(float s)
Definition: BOpcodeHandler.h:5022
float const * GetAxis() const
Definition: BOpcodeHandler.h:6133
int m_move_down
internal use; specifies what geometry is selectable on mouse button down and move. For internal use only.
Definition: BOpcodeHandler.h:4107
void SetOptions(int length)
Definition: BOpcodeHandler.h:4518
int m_cond_length
Definition: BOpcodeHandler.h:1385
char * m_name
Definition: BOpcodeHandler.h:7244
void SetDRef1(double x, double y, double z)
Definition: BOpcodeHandler.h:6486
int GetColorWindowContrastLockValue() const
Definition: BOpcodeHandler.h:2748
int GetColorTextForcedLockValue() const
Definition: BOpcodeHandler.h:3082
void SetLodMaxDegree(int v)
Definition: BOpcodeHandler.h:3425
void SetSegment(int length)
Definition: BOpcodeHandler.h:1204
float m_simple_reflection_hither
For internal use only.
Definition: BOpcodeHandler.h:2381
void SetSimpleShadow(int m)
Definition: BOpcodeHandler.h:3611
void SetNURBSCurveBudget(int b)
Definition: BOpcodeHandler.h:3383
int GetNURBSOptionsMask() const
Definition: BOpcodeHandler.h:3377
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1774
extra item for visibility; refer to ::HC_Set_Visibility for a description
Definition: BOpcodeEnums.h:256
void SetCutGeometryLevel(int m)
Definition: BOpcodeHandler.h:3571
unsigned char m_depth_peeling_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2399
void SetIndex(int i)
Definition: BOpcodeHandler.h:4359
int m_value
internal use
Definition: BOpcodeHandler.h:3794
void SetColorMarkerLockMask(int m)
Definition: BOpcodeHandler.h:2640
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:4761
Handles the TKE_Line opcode.
Definition: BOpcodeHandler.h:5278
float m_slant
for internal use only
Definition: BOpcodeHandler.h:4933
float const * GetAxis() const
Definition: BOpcodeHandler.h:6234
int GetColorEdgeContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3220
virtual TK_Status Execute(BStreamFileToolkit &tk)
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5502
void SetDown(int m)
Definition: BOpcodeHandler.h:4142
int GetCulling() const
Definition: BOpcodeHandler.h:3877
float GetHlrFaceSortingAlgorithm() const
Definition: BOpcodeHandler.h:3367
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:7170
int GetExtraSpaceUnits() const
Definition: BOpcodeHandler.h:5064
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5440
float const * GetOrtho() const
Definition: BOpcodeHandler.h:6144
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6158
int GetLayout() const
Definition: BOpcodeHandler.h:7087
float const * GetCenter() const
Definition: BOpcodeHandler.h:6018
char * m_string
Definition: BOpcodeHandler.h:4444
int m_substage
Definition: BOpcodeHandler.h:6955
void SetColorTextForcedLockValue(int v)
Definition: BOpcodeHandler.h:3077
int m_substage
internal use; To track the subcases
Definition: BOpcodeHandler.h:1744
void SetSpecular(float const rgb[])
Definition: BOpcodeHandler.h:1814
self-explanatory
Definition: BOpcodeEnums.h:265
void SetSizeUnits(int u)
Definition: BOpcodeHandler.h:5027
void SetEmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1857
void SetLodRatio(float r)
Definition: BOpcodeHandler.h:3452
void SetDPoint(double const p[])
Definition: BOpcodeHandler.h:5259
TK_Visibility(void)
Definition: BOpcodeHandler.h:4054
int GetColorMarkerForcedLockValue() const
Definition: BOpcodeHandler.h:3059
int m_control_point_count
Definition: BOpcodeHandler.h:5402
char m_index
internal use
Definition: BOpcodeHandler.h:4244
char * GetReference()
Definition: BOpcodeHandler.h:6893
self-explanatory
Definition: BOpcodeEnums.h:268
void SetSimpleShadowColor(float const rgb[])
Definition: BOpcodeHandler.h:3656
void SetColorLineContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3227
float GetStart() const
Definition: BOpcodeHandler.h:5451
int m_related
internal use
Definition: BOpcodeHandler.h:3796
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4624
void SetUp(int m)
Definition: BOpcodeHandler.h:4153
void SetMask(int m)
Definition: BOpcodeHandler.h:4979
void SetGeometryOptionsMask(int m)
Definition: BOpcodeHandler.h:3550
float const * GetPoints() const
Definition: BOpcodeHandler.h:5367
Lock_Masks m_forced
For internal use only.
Definition: BOpcodeHandler.h:2269
int GetOptions() const
Definition: BOpcodeHandler.h:5789
int GetLength()
Definition: BOpcodeHandler.h:4524
void SetValueScale(float v1, float v2)
Definition: BOpcodeHandler.h:7095
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:5910
float const * GetLodBounding() const
Definition: BOpcodeHandler.h:3449
int GetLockMask() const
Definition: BOpcodeHandler.h:2514
char * m_camera
Definition: BOpcodeHandler.h:6949
float const * GetRadii() const
Definition: BOpcodeHandler.h:6350
int m_image_length
Definition: BOpcodeHandler.h:6952
int GetIndex() const
Definition: BOpcodeHandler.h:4260
TK_Selectability(void)
Definition: BOpcodeHandler.h:4113
void SetColorEdgeForcedLockValue(int v)
Definition: BOpcodeHandler.h:3008
float const * GetScreenRange() const
Definition: BOpcodeHandler.h:3734
char const * GetString() const
Definition: BOpcodeHandler.h:2176
int m_length
Definition: BOpcodeHandler.h:7740
float const * GetLodThresholds() const
Definition: BOpcodeHandler.h:3487
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:1639
unsigned short m_shadow_map_resolution
For internal use only.
Definition: BOpcodeHandler.h:2374
float m_hlr_face_displacement
For internal use only.
Definition: BOpcodeHandler.h:2277
int m_tmp
Definition: BOpcodeHandler.h:6578
Handles the TKE_Ellipse and TKE_Elliptical_Arc opcodes.
Definition: BOpcodeHandler.h:5993
float const * GetCenter() const
Definition: BOpcodeHandler.h:5932
short m_fbe_value
For internal use only.
Definition: BOpcodeHandler.h:2409
void SetDRef2(double x, double y, double z)
Definition: BOpcodeHandler.h:6497
int GetBufferOptionsValue() const
Definition: BOpcodeHandler.h:3324
float horizontal_offset
offset, positive or negative, from the standard position. units are specified separately in horizonta...
Definition: BOpcodeHandler.h:6532
int GetSize() const
Definition: BOpcodeHandler.h:7639
char * m_name
The name of the color channel.
Definition: BOpcodeHandler.h:1724
self-explanatory
Definition: BOpcodeEnums.h:267
Definition: BOpcodeHandler.h:6526
void SetDAxis(double x, double y, double z)
Definition: BOpcodeHandler.h:6163
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1689
void SetDMajor(double x, double y, double z)
Definition: BOpcodeHandler.h:6049
void SetForcedLockMask(int m)
Definition: BOpcodeHandler.h:2915
void SetSpecular(float r, float g, float b)
Definition: BOpcodeHandler.h:1812
void SetColorMarkerLockValue(int v)
Definition: BOpcodeHandler.h:2651
int * m_lengths
Definition: BOpcodeHandler.h:7520
void **const GetValues()
Definition: BOpcodeHandler.h:4666
int m_cond_allocated
Definition: BOpcodeHandler.h:1294
void SetTransforms(int t)
Definition: BOpcodeHandler.h:5072
Handles the TKE_Grid opcode.
Definition: BOpcodeHandler.h:6421
char * GetCamera()
Definition: BOpcodeHandler.h:7033
void SetBumpName(int length)
Definition: BOpcodeHandler.h:1883
static TK_Status PutData(BStreamFileToolkit &tk, short const &s)
Definition: BOpcodeHandler.h:453
static TK_Status PutData(BStreamFileToolkit &tk, unsigned char const *b, int n)
Definition: BOpcodeHandler.h:441
refer to ::HC_Set_Heuristics
Definition: BOpcodeEnums.h:892
float color[3]
the color. RGB triplet
Definition: BOpcodeHandler.h:6529
void adjust_written(BStreamFileToolkit &tk, int count)
for internal use only
Definition: BOpcodeHandler.h:657
float const * GetPoints() const
Definition: BOpcodeHandler.h:7481
int m_size
internal use
Definition: BOpcodeHandler.h:1674
int GetColorLineForcedLockMask() const
Definition: BOpcodeHandler.h:3025
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:1391
int m_from_index
internal use
Definition: BOpcodeHandler.h:1452
float m_hlr_dim_factor
For internal use only.
Definition: BOpcodeHandler.h:2276
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:7303
float const * GetSimpleShadowPlane() const
Definition: BOpcodeHandler.h:3650
int m_curve_continued_budget
For internal use only.
Definition: BOpcodeHandler.h:2330
void SetCounts(int c1, int c2)
Definition: BOpcodeHandler.h:6509
int m_length
Definition: BOpcodeHandler.h:4443
indicates that the 2nd byte should be written
Definition: BOpcodeEnums.h:764
char * m_segment
Definition: BOpcodeHandler.h:7295
float GetRadius() const
Definition: BOpcodeHandler.h:6243
float const * GetPlanes() const
Definition: BOpcodeHandler.h:5845
unsigned char m_depth_peeling_layers
For internal use only.
Definition: BOpcodeHandler.h:2397
float m_cut_geometry_edge_weight
for internal use only.
Definition: BOpcodeHandler.h:2360
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:6114
int GetColorLockValue() const
Definition: BOpcodeHandler.h:2564
int GetGeometry() const
Definition: BOpcodeHandler.h:1994
virtual TK_Status Write(BStreamFileToolkit &tk)=0
void SetOptions(int opt)
Definition: BOpcodeHandler.h:4909
TK_Status GetGeneral(BStreamFileToolkit &tk)
Definition: BOpcodeHandler.h:330
void SetLodBounding(float x1, float y1, float z1, float x2, float y2, float z2)
Definition: BOpcodeHandler.h:3438
int m_isoline_position_count
for internal use only.
Definition: BOpcodeHandler.h:2293
void SetDField(double w, double h)
Definition: BOpcodeHandler.h:4820
float * GetPoints()
Definition: BOpcodeHandler.h:5439
double const * GetDRef1() const
Definition: BOpcodeHandler.h:6492
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6171
Flags
Definition: BOpcodeHandler.h:6188
short color_simple_reflection_mask
For internal use only.
Definition: BOpcodeHandler.h:1092
void SetColorTextLockMask(int m)
Definition: BOpcodeHandler.h:2663
extended bit
Definition: BOpcodeEnums.h:812
void SetLodTolerance(float v)
Definition: BOpcodeHandler.h:3429
int GetTessellationMask() const
Definition: BOpcodeHandler.h:3513
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:5740
void SetOptions(int o)
Definition: BOpcodeHandler.h:5637
int m_cond_length
Definition: BOpcodeHandler.h:1293
float m_curve_max_length
For internal use only.
Definition: BOpcodeHandler.h:2339
int m_isoline_pattern_count
for internal use only.
Definition: BOpcodeHandler.h:2297
char * GetBytes()
Definition: BOpcodeHandler.h:6875
double const * GetDEnd() const
Definition: BOpcodeHandler.h:5979
bool Find_Instance(BStreamFileToolkit &tk, int val1, int val2, int val3)
Definition: BOpcodeHandler.h:680
int m_substage
tracks progress of reading individual opcode handler arrays.
Definition: BOpcodeHandler.h:1513
int GetLodMaxDegree() const
Definition: BOpcodeHandler.h:3427
void SetDPlane(double const p[])
Definition: BOpcodeHandler.h:5837
int m_culling
internal use; culling options
Definition: BOpcodeHandler.h:3801
float * m_knots
Definition: BOpcodeHandler.h:5407
char m_options
internal use
Definition: BOpcodeHandler.h:5660
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:4751
static TK_Status GetData(BStreamFileToolkit &tk, char &c)
Definition: BOpcodeHandler.h:305
void SetFaceDisplacement(int d)
Definition: BOpcodeHandler.h:2484
char * GetBytes()
Definition: BOpcodeHandler.h:6746
Handles the TKE_User_Value opcode.
Definition: BOpcodeHandler.h:4682
void SetHlrFaceSortingAlgorithm(int a)
Definition: BOpcodeHandler.h:3365
short color_cut_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1097
int GetPixelThreshold() const
Definition: BOpcodeHandler.h:3889
void SetValues(int count, float const values[]=0)
Definition: BOpcodeHandler.h:2155
float GetStart() const
Definition: BOpcodeHandler.h:5545
extended bit for HLR suboptions; refer to ::HC_Set_Rendering_Options for description ...
Definition: BOpcodeEnums.h:652
char * m_string
Definition: BOpcodeHandler.h:4492
void SetColorTextContrastLockMask(int m)
Definition: BOpcodeHandler.h:2893
Handles the TKE_Color_By_FIndex opcode.
Definition: BOpcodeHandler.h:2068
double const * GetDCenter() const
Definition: BOpcodeHandler.h:5981
int m_mask
internal use
Definition: BOpcodeHandler.h:3793
void SetImageTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3755
unsigned char m_cut_geometry_level
For internal use only.
Definition: BOpcodeHandler.h:2357
short color_vertex_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1089
char * m_data
Definition: BOpcodeHandler.h:7196
short color_vertex_value
For internal use only.
Definition: BOpcodeHandler.h:1081
int GetColorMarkerLockValue() const
Definition: BOpcodeHandler.h:2656
unsigned char m_hlr_threshold_units
for internal use only.
Definition: BOpcodeHandler.h:2284
int GetTextRegionCount() const
Definition: BOpcodeHandler.h:6636
void SetType(int t)
Definition: BOpcodeHandler.h:6732
int GetOptions() const
Definition: BOpcodeHandler.h:4911
float m_tolerance
for internal use only
Definition: BOpcodeHandler.h:4931
void SetDOrigin(double x, double y, double z)
Definition: BOpcodeHandler.h:6475
void SetSimpleShadowPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3641
void SetFormat(int f)
Definition: BOpcodeHandler.h:2147
int GetOptions() const
Definition: BOpcodeHandler.h:5706
int GetVersion() const
Definition: BStreamFileToolkit.h:972
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:6110
int m_isoline_color_count
for internal use only.
Definition: BOpcodeHandler.h:2295
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const &s)
Definition: BOpcodeHandler.h:462
void SetDPoint(double x, double y, double z)
Definition: BOpcodeHandler.h:5257
Capping_Options
Definition: BOpcodeHandler.h:6276
char * GetOptions()
Definition: BOpcodeHandler.h:4522
char const * GetShaderSource() const
Definition: BOpcodeHandler.h:7013
char * GetMirrorName()
Definition: BOpcodeHandler.h:1839
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5375
void GetPosition(float p[]) const
Definition: BOpcodeHandler.h:4758
entity is double precision
Definition: BStream.h:351
double * GetDMatrix()
Definition: BOpcodeHandler.h:4233
float * GetLodCutoffs()
Definition: BOpcodeHandler.h:3507
bool m_jpeg_native
Definition: BOpcodeHandler.h:6833
void SetGeometry(int m)
Definition: BOpcodeHandler.h:4067
void SetColorVertexLockValue(int v)
Definition: BOpcodeHandler.h:2789
int GetColorEdgeContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3209
int m_invisible
internal use; specifies what geometry is selectable even when invisible. For internal use only...
Definition: BOpcodeHandler.h:4109
int GetColorFaceContrastLockValue() const
Definition: BOpcodeHandler.h:2725
void SetSimpleShadowColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3653
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6040
void SetMask(int m)
Definition: BOpcodeHandler.h:4010
void SetRGB(float r, float g, float b)
Definition: BOpcodeHandler.h:1944
void SetDOrtho(double const s[])
Definition: BOpcodeHandler.h:6180