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 != null) \
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 != null) \
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;
2283  unsigned char m_hlr_hsr_algorithm;
2284 
2285  unsigned short m_contour_options;
2286  unsigned short m_isoline_options;
2299  unsigned char * m_isoline_weights_unit;
2300 
2301  unsigned short m_tint_options;
2302  float m_tint_color[3];
2303  float m_tint_range[2];
2305 
2310  float m_ratio[8];
2312  float m_threshold[8];
2315  unsigned char m_clamp;
2316  unsigned char m_num_levels;
2318  float m_tolerance;
2319  float m_bounding[6];
2321  float m_cutoff[8];
2322  unsigned char m_heuristic;
2323  unsigned char m_fallback;
2324 
2338 
2341 
2342  unsigned char m_tessellations;
2344  char m_cylinder[8];
2346  char m_sphere[8];
2347 
2348  float m_gooch_color_range[2];
2352  unsigned short m_transparency_options;
2353 
2354  unsigned char m_cut_geometry;
2355  unsigned char m_cut_geometry_level;
2356  unsigned char m_cut_geometry_match;
2362 
2363  unsigned short m_simple_shadow;
2364  unsigned char m_simple_shadow_blur;
2366  float m_simple_shadow_plane[4];
2367  float m_simple_shadow_light[3];
2368  float m_simple_shadow_color[3];
2369  float m_simple_shadow_opacity;
2370 
2371  unsigned short m_shadow_map;
2372  unsigned short m_shadow_map_resolution;
2373  unsigned char m_shadow_map_samples;
2374 
2375  unsigned short m_simple_reflection;
2376  float m_simple_reflection_plane[4];
2383 
2384  float m_depth_range[2];
2385  float m_screen_range[8];
2386  float m_ambient_up_vector[3];
2387  float m_image_scale[2];
2388  unsigned short m_mask_transform;
2389 
2390  unsigned char m_geometry_options;
2391  float m_dihedral;
2392 
2393  float m_image_tint_color[3];
2394  float m_texture_tint_color[3];
2395  unsigned char m_depth_peeling_layers;
2398 
2403  unsigned char m_display_list_level;
2404  unsigned char m_antialias;
2405 
2406  short m_fbe_mask;
2407  short m_fbe_value;
2408 
2409  int m_extra;
2410 
2411 #if 0
2412  TK_Radiosity_RayTrace_Options *m_rrt;
2413 #endif
2414 
2415  public:
2419 
2422  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2423 
2424  TK_Status ReadAscii (BStreamFileToolkit & tk);
2425  TK_Status WriteAscii (BStreamFileToolkit & tk);
2426 
2427  void Reset ();
2428 
2430  void SetMask (int m0, int m1=0, int m2=0) {
2431  m_mask[0] = m0;
2432  m_mask[1] = m1;
2433  m_mask[2] = m2;
2434  if (m2 != 0)
2435  m_mask[1] |= TKO_Rendo_Extended;
2436  if (m1 != 0)
2437  m_mask[0] |= TKO_Rendo_Extended;
2438  }
2440  int GetMask (int index=0) const { return m_mask[index]; }
2441 
2443  void SetValue (int v0, int v1=0, int v2=0) { m_value[0] = v0; m_value[1] = v1; m_value[2] = v2; }
2445  int GetValue (int index=0) const { return m_value[index]; }
2446 
2448  void SetHSR (int h) { m_hsr &= 0xF0; m_hsr |= (unsigned char)h & 0x0F; }
2450  int GetHSR () const { return (int)(m_hsr & 0x0F); }
2451 
2453  void SetTransparentHSR (int t) { m_hsr &= 0x0F; m_hsr |= (unsigned char)t << 4; }
2455  int GetTransparentHSR () const { return (int)(m_hsr >> 4); }
2456 
2458  void SetTransparentStyle (int s) { m_transparency_options = (unsigned short)s; }
2460  int GetTransparentStyle () const { return (int)m_transparency_options; }
2461 
2463  void SetTechnology (int t) { m_tq &= 0xF0; m_tq |= (unsigned char)t & 0x0F; }
2465  int GetTechnology () const { return (int)(m_tq & 0x0F); }
2466 
2468  void SetQuantization (int q) { m_tq &= 0x0F; m_tq |= (unsigned char)q << 4; }
2470  int GetQuantization () const { return (int)(m_tq >> 4); }
2471 
2473  void SetDebug (int d) { m_debug = d; }
2475  int GetDebug () const { return m_debug; }
2476 
2478  void SetFaceDisplacement (int d) { m_face_displacement = d; }
2480  int GetFaceDisplacement () const { return m_face_displacement; }
2481 
2483  void SetVertexDisplacement (int d) { m_vertex_displacement = d; }
2485  int GetVertexDisplacement () const { return m_vertex_displacement; }
2486 
2488  void SetGeneralDisplacement (int d) { m_general_displacement = d; }
2490  int GetGeneralDisplacement () const { return m_general_displacement; }
2491 
2493  void SetJoinCutoffAngle (int d) { m_join_cutoff_angle = d; }
2495  int GetJoinCutoffAngle () const { return m_join_cutoff_angle; }
2496 
2498  void SetFogLimits (float n, float f) { m_fog_limits[0] = n; m_fog_limits[1] = f; }
2500  void SetFogLimits (float const l[]) { SetFogLimits (l[0], l[1]); }
2502  float const * GetFogLimits () const { return m_fog_limits; }
2503 
2504 
2506  void SetLockMask (int m) { m_lock.mask = m; }
2508  int GetLockMask () const { return m_lock.mask; }
2509 
2511  void SetLockValue (int v) { m_lock.value = v; }
2513  int GetLockValue () const { return m_lock.value; }
2514 
2519  void SetVisibilityLockMask (int m) { m_lock.visibility_mask = m; }
2524  int GetVisibilityLockMask () const { return m_lock.visibility_mask; }
2525 
2530  void SetVisibilityLockValue (int v) { m_lock.visibility_value = v; }
2535  int GetVisibilityLockValue () const { return m_lock.visibility_value; }
2536 
2537 
2542  void SetColorLockMask (int m) { m_lock.color_mask = m; }
2547  int GetColorLockMask () const { return m_lock.color_mask; }
2548 
2553  void SetColorLockValue (int v) { m_lock.color_value = v; }
2558  int GetColorLockValue () const { return m_lock.color_value; }
2559 
2560 
2565  void SetColorFaceLockMask (int m) { m_lock.color_face_mask = (short)m; }
2570  int GetColorFaceLockMask () const { return m_lock.color_face_mask; }
2571 
2576  void SetColorFaceLockValue (int v) { m_lock.color_face_value = (short)v; }
2581  int GetColorFaceLockValue () const { return m_lock.color_face_value; }
2582 
2583 
2588  void SetColorEdgeLockMask (int m) { m_lock.color_edge_mask = (short)m; }
2593  int GetColorEdgeLockMask () const { return m_lock.color_edge_mask; }
2594 
2599  void SetColorEdgeLockValue (int v) { m_lock.color_edge_value = (short)v; }
2604  int GetColorEdgeLockValue () const { return m_lock.color_edge_value; }
2605 
2606 
2611  void SetColorLineLockMask (int m) { m_lock.color_line_mask = (short)m; }
2616  int GetColorLineLockMask () const { return m_lock.color_line_mask; }
2617 
2622  void SetColorLineLockValue (int v) { m_lock.color_line_value = (short)v; }
2627  int GetColorLineLockValue () const { return m_lock.color_line_value; }
2628 
2629 
2634  void SetColorMarkerLockMask (int m) { m_lock.color_marker_mask = (short)m; }
2639  int GetColorMarkerLockMask () const { return m_lock.color_marker_mask; }
2640 
2645  void SetColorMarkerLockValue (int v) { m_lock.color_marker_value = (short)v; }
2650  int GetColorMarkerLockValue () const { return m_lock.color_marker_value; }
2651 
2652 
2657  void SetColorTextLockMask (int m) { m_lock.color_text_mask = (short)m; }
2662  int GetColorTextLockMask () const { return m_lock.color_text_mask; }
2663 
2668  void SetColorTextLockValue (int v) { m_lock.color_text_value = (short)v; }
2673  int GetColorTextLockValue () const { return m_lock.color_text_value; }
2674 
2675 
2680  void SetColorWindowLockMask (int m) { m_lock.color_window_mask = (short)m; }
2685  int GetColorWindowLockMask () const { return m_lock.color_window_mask; }
2686 
2691  void SetColorWindowLockValue (int v) { m_lock.color_window_value = (short)v; }
2696  int GetColorWindowLockValue () const { return m_lock.color_window_value; }
2697 
2698 
2703  void SetColorFaceContrastLockMask (int m) { m_lock.color_face_contrast_mask = (short)m; }
2708  int GetColorFaceContrastLockMask () const { return m_lock.color_face_contrast_mask; }
2709 
2714  void SetColorFaceContrastLockValue (int v) { m_lock.color_face_contrast_value = (short)v; }
2719  int GetColorFaceContrastLockValue () const { return m_lock.color_face_contrast_value; }
2720 
2721 
2726  void SetColorWindowContrastLockMask (int m) { m_lock.color_window_contrast_mask = (short)m; }
2731  int GetColorWindowContrastLockMask () const { return m_lock.color_window_contrast_mask; }
2732 
2737  void SetColorWindowContrastLockValue (int v) { m_lock.color_window_contrast_value = (short)v; }
2742  int GetColorWindowContrastLockValue () const { return m_lock.color_window_contrast_value; }
2743 
2744 
2749  void SetColorBackLockMask (int m) { m_lock.color_back_mask = (short)m; }
2754  int GetColorBackLockMask () const { return m_lock.color_back_mask; }
2755 
2760  void SetColorBackLockValue (int v) { m_lock.color_back_value = (short)v; }
2765  int GetColorBackLockValue () const { return m_lock.color_back_value; }
2766 
2767 
2772  void SetColorVertexLockMask (int m) { m_lock.color_vertex_mask = (short)m; }
2777  int GetColorVertexLockMask () const { return m_lock.color_vertex_mask; }
2778 
2783  void SetColorVertexLockValue (int v) { m_lock.color_vertex_value = (short)v; }
2788  int GetColorVertexLockValue () const { return m_lock.color_vertex_value; }
2789 
2790 
2795  void SetColorEdgeContrastLockMask (int m) { m_lock.color_edge_contrast_mask = (short)m; }
2800  int GetColorEdgeContrastLockMask () const { return m_lock.color_edge_contrast_mask; }
2801 
2806  void SetColorEdgeContrastLockValue (int v) { m_lock.color_edge_contrast_value = (short)v; }
2811  int GetColorEdgeContrastLockValue () const { return m_lock.color_edge_contrast_value; }
2812 
2813 
2818  void SetColorLineContrastLockMask (int m) { m_lock.color_line_contrast_mask = (short)m; }
2823  int GetColorLineContrastLockMask () const { return m_lock.color_line_contrast_mask; }
2824 
2829  void SetColorLineContrastLockValue (int v) { m_lock.color_line_contrast_value = (short)v; }
2834  int GetColorLineContrastLockValue () const { return m_lock.color_line_contrast_value; }
2835 
2836 
2841  void SetColorMarkerContrastLockMask (int m) { m_lock.color_marker_contrast_mask = (short)m; }
2846  int GetColorMarkerContrastLockMask () const { return m_lock.color_marker_contrast_mask; }
2847 
2852  void SetColorMarkerContrastLockValue (int v) { m_lock.color_marker_contrast_value = (short)v; }
2857  int GetColorMarkerContrastLockValue () const { return m_lock.color_marker_contrast_value; }
2858 
2859 
2864  void SetColorVertexContrastLockMask (int m) { m_lock.color_vertex_contrast_mask = (short)m; }
2869  int GetColorVertexContrastLockMask () const { return m_lock.color_vertex_contrast_mask; }
2870 
2875  void SetColorVertexContrastLockValue (int v) { m_lock.color_vertex_contrast_value = (short)v; }
2880  int GetColorVertexContrastLockValue () const { return m_lock.color_vertex_contrast_value; }
2881 
2882 
2887  void SetColorTextContrastLockMask (int m) { m_lock.color_text_contrast_mask = (short)m; }
2892  int GetColorTextContrastLockMask () const { return m_lock.color_text_contrast_mask; }
2893 
2898  void SetColorTextContrastLockValue (int v) { m_lock.color_text_contrast_value = (short)v; }
2903  int GetColorTextContrastLockValue () const { return m_lock.color_text_contrast_value; }
2904 
2905 
2906 
2907 
2909  void SetForcedLockMask (int m) { m_forced.mask = m; }
2911  int GetForcedLockMask () const { return m_forced.mask; }
2912 
2914  void SetForcedLockValue (int v) { m_forced.value = v; }
2916  int GetForcedLockValue () const { return m_forced.value; }
2917 
2922  void SetVisibilityForcedLockMask (int m) { m_forced.visibility_mask = m; }
2927  int GetVisibilityForcedLockMask () const { return m_forced.visibility_mask; }
2928 
2933  void SetVisibilityForcedLockValue (int v) { m_forced.visibility_value = v; }
2938  int GetVisibilityForcedLockValue () const { return m_forced.visibility_value; }
2939 
2940 
2945  void SetColorForcedLockMask (int m) { m_forced.color_mask = m; }
2950  int GetColorForcedLockMask () const { return m_forced.color_mask; }
2951 
2956  void SetColorForcedLockValue (int v) { m_forced.color_value = v; }
2961  int GetColorForcedLockValue () const { return m_forced.color_value; }
2962 
2963 
2968  void SetColorFaceForcedLockMask (int m) { m_forced.color_face_mask = (short)m; }
2973  int GetColorFaceForcedLockMask () const { return m_forced.color_face_mask; }
2974 
2979  void SetColorFaceForcedLockValue (int v) { m_forced.color_face_value = (short)v; }
2984  int GetColorFaceForcedLockValue () const { return m_forced.color_face_value; }
2985 
2986 
2991  void SetColorEdgeForcedLockMask (int m) { m_forced.color_edge_mask = (short)m; }
2996  int GetColorEdgeForcedLockMask () const { return m_forced.color_edge_mask; }
2997 
3002  void SetColorEdgeForcedLockValue (int v) { m_forced.color_edge_value = (short)v; }
3007  int GetColorEdgeForcedLockValue () const { return m_forced.color_edge_value; }
3008 
3009 
3014  void SetColorLineForcedLockMask (int m) { m_forced.color_line_mask = (short)m; }
3019  int GetColorLineForcedLockMask () const { return m_forced.color_line_mask; }
3020 
3025  void SetColorLineForcedLockValue (int v) { m_forced.color_line_value = (short)v; }
3030  int GetColorLineForcedLockValue () const { return m_forced.color_line_value; }
3031 
3032 
3037  void SetColorMarkerForcedLockMask (int m) { m_forced.color_marker_mask = (short)m; }
3042  int GetColorMarkerForcedLockMask () const { return m_forced.color_marker_mask; }
3043 
3048  void SetColorMarkerForcedLockValue (int v) { m_forced.color_marker_value = (short)v; }
3053  int GetColorMarkerForcedLockValue () const { return m_forced.color_marker_value; }
3054 
3055 
3060  void SetColorTextForcedLockMask (int m) { m_forced.color_text_mask = (short)m; }
3065  int GetColorTextForcedLockMask () const { return m_forced.color_text_mask; }
3066 
3071  void SetColorTextForcedLockValue (int v) { m_forced.color_text_value = (short)v; }
3076  int GetColorTextForcedLockValue () const { return m_forced.color_text_value; }
3077 
3078 
3083  void SetColorWindowForcedLockMask (int m) { m_forced.color_window_mask = (short)m; }
3088  int GetColorWindowForcedLockMask () const { return m_forced.color_window_mask; }
3089 
3094  void SetColorWindowForcedLockValue (int v) { m_forced.color_window_value = (short)v; }
3099  int GetColorWindowForcedLockValue () const { return m_forced.color_window_value; }
3100 
3101 
3106  void SetColorFaceContrastForcedLockMask (int m) { m_forced.color_face_contrast_mask = (short)m; }
3111  int GetColorFaceContrastForcedLockMask () const { return m_forced.color_face_contrast_mask; }
3112 
3117  void SetColorFaceContrastForcedLockValue (int v) { m_forced.color_face_contrast_value = (short)v; }
3122  int GetColorFaceContrastForcedLockValue () const { return m_forced.color_face_contrast_value; }
3123 
3124 
3129  void SetColorWindowContrastForcedLockMask (int m) { m_forced.color_window_contrast_mask = (short)m; }
3134  int GetColorWindowContrastForcedLockMask () const { return m_forced.color_window_contrast_mask; }
3135 
3140  void SetColorWindowContrastForcedLockValue (int v) { m_forced.color_window_contrast_value = (short)v; }
3145  int GetColorWindowContrastForcedLockValue () const { return m_forced.color_window_contrast_value; }
3146 
3147 
3152  void SetColorBackForcedLockMask (int m) { m_forced.color_back_mask = (short)m; }
3157  int GetColorBackForcedLockMask () const { return m_forced.color_back_mask; }
3158 
3163  void SetColorBackForcedLockValue (int v) { m_forced.color_back_value = (short)v; }
3168  int GetColorBackForcedLockValue () const { return m_forced.color_back_value; }
3169 
3170 
3175  void SetColorVertexForcedLockMask (int m) { m_forced.color_vertex_mask = (short)m; }
3180  int GetColorVertexForcedLockMask () const { return m_forced.color_vertex_mask; }
3181 
3186  void SetColorVertexForcedLockValue (int v) { m_forced.color_vertex_value = (short)v; }
3191  int GetColorVertexForcedLockValue () const { return m_forced.color_vertex_value; }
3192 
3193 
3198  void SetColorEdgeContrastForcedLockMask (int m) { m_forced.color_edge_contrast_mask = (short)m; }
3203  int GetColorEdgeContrastForcedLockMask () const { return m_forced.color_edge_contrast_mask; }
3204 
3209  void SetColorEdgeContrastForcedLockValue (int v) { m_forced.color_edge_contrast_value = (short)v; }
3214  int GetColorEdgeContrastForcedLockValue () const { return m_forced.color_edge_contrast_value; }
3215 
3216 
3221  void SetColorLineContrastForcedLockMask (int m) { m_forced.color_line_contrast_mask = (short)m; }
3226  int GetColorLineContrastForcedLockMask () const { return m_forced.color_line_contrast_mask; }
3227 
3232  void SetColorLineContrastForcedLockValue (int v) { m_forced.color_line_contrast_value = (short)v; }
3237  int GetColorLineContrastForcedLockValue () const { return m_forced.color_line_contrast_value; }
3238 
3239 
3244  void SetColorMarkerContrastForcedLockMask (int m) { m_forced.color_marker_contrast_mask = (short)m; }
3249  int GetColorMarkerContrastForcedLockMask () const { return m_forced.color_marker_contrast_mask; }
3250 
3255  void SetColorMarkerContrastForcedLockValue (int v) { m_forced.color_marker_contrast_value = (short)v; }
3260  int GetColorMarkerContrastForcedLockValue () const { return m_forced.color_marker_contrast_value; }
3261 
3262 
3267  void SetColorVertexContrastForcedLockMask (int m) { m_forced.color_vertex_contrast_mask = (short)m; }
3272  int GetColorVertexContrastForcedLockMask () const { return m_forced.color_vertex_contrast_mask; }
3273 
3278  void SetColorVertexContrastForcedLockValue (int v) { m_forced.color_vertex_contrast_value = (short)v; }
3283  int GetColorVertexContrastForcedLockValue () const { return m_forced.color_vertex_contrast_value; }
3284 
3285 
3290  void SetColorTextContrastForcedLockMask (int m) { m_forced.color_text_contrast_mask = (short)m; }
3295  int GetColorTextContrastForcedLockMask () const { return m_forced.color_text_contrast_mask; }
3296 
3301  void SetColorTextContrastForcedLockValue (int v) { m_forced.color_text_contrast_value = (short)v; }
3306  int GetColorTextContrastForcedLockValue () const { return m_forced.color_text_contrast_value; }
3307 
3308 
3309 
3310 
3312  void SetBufferOptionsMask (int v) { m_buffer_options_mask = (unsigned char)v; }
3314  int GetBufferOptionsMask () const { return m_buffer_options_mask; }
3316  void SetBufferOptionsValue (int v) { m_buffer_options_value = (unsigned char) v; }
3318  int GetBufferOptionsValue () const { return m_buffer_options_value; }
3320  void SetBufferSizeLimit (int l) { m_buffer_size_limit = l; }
3322  int GetBufferSizeLimit () const { return m_buffer_size_limit; }
3323 
3324 
3326  void SetStereoSeparation (float s) { m_stereo_separation = s; }
3328  float GetStereoSeparation () const { return m_stereo_separation; }
3330  void SetStereoDistance (float d) { m_stereo_distance = d; }
3332  float GetStereoDistance () const { return m_stereo_distance; }
3333 
3334 
3336  void SetHlrOptions (int o) {
3337  m_hlr_options = o;
3338  if ((o & TKO_Hidden_Line_Extended_Mask) != 0) {
3339  m_hlr_options |= TKO_Hidden_Line_Extended;
3340  if ((o & TKO_Hidden_Line_Extended2_Mask) != 0)
3341  m_hlr_options |= TKO_Hidden_Line_Extended2;
3342  }
3343  }
3345  int GetHlrOptions () const { return m_hlr_options; }
3347  void SetHlrDimFactor (float d) { m_hlr_dim_factor = d; }
3349  float GetHlrDimFactor () const { return m_hlr_dim_factor; }
3351  void SetHlrFaceDisplacement (float d) { m_hlr_face_displacement = d; }
3353  float GetHlrFaceDisplacement () const { return m_hlr_face_displacement; }
3355  void SetHlrLinePattern (int p) { m_hlr_line_pattern = p; }
3357  int GetHlrLinePattern () const { return m_hlr_line_pattern; }
3359  void SetHlrFaceSortingAlgorithm (int a) { m_hlr_hsr_algorithm = (unsigned char)a; }
3361  float GetHlrFaceSortingAlgorithm () const { return m_hlr_hsr_algorithm; }
3362 
3363 
3365  void SetNURBSOptionsMask (int m) {
3366  m_nurbs_options_mask = m;
3367  if ((m & TKO_NURBS_Extended_Mask) != 0)
3368  m_nurbs_options_mask |= TKO_NURBS_Extended;
3369  }
3371  int GetNURBSOptionsMask () const { return m_nurbs_options_mask; }
3373  void SetNURBSOptionsValue (int v) { m_nurbs_options_value = v; }
3375  int GetNURBSOptionsValue () const { return m_nurbs_options_value; }
3377  void SetNURBSCurveBudget (int b) { m_curve_budget = b; }
3379  int GetNURBSCurveBudget () const { return m_curve_budget; }
3381  void SetNURBSCurveContinuedBudget (int b) { m_curve_continued_budget = b; }
3383  int GetNURBSCurveContinuedBudget () const { return m_curve_continued_budget; }
3385  void SetNURBSSurfaceBudget (int b) { m_surface_budget = b; }
3387  int GetNURBSSurfaceBudget () const { return m_surface_budget; }
3389  void SetNURBSSurfaceTrimBudget (int b) { m_surface_trim_budget = b; }
3391  int GetNURBSSurfaceTrimBudget () const { return m_surface_trim_budget; }
3392 
3393 
3395  void SetLodOptionsMask (int v) { m_lod_options_mask = v; }
3397  int GetLodOptionsMask () const { return m_lod_options_mask; }
3399  void SetLodOptionsValue (int v) { m_lod_options_value = v; }
3401  int GetLodOptionsValue () const { return m_lod_options_value; }
3403  void SetLodAlgorithm (int v) { m_lod_algorithm = (char)v; }
3405  int GetLodAlgorithm () const { return m_lod_algorithm; }
3407  void SetLodMinimumTriangleCount (int v) { m_min_triangle_count = v; }
3409  int GetLodMinimumTriangleCount () const { return m_min_triangle_count; }
3411  void SetLodNumLevels (int v) { m_num_levels = (unsigned char)v; }
3413  int GetLodNumLevels () const { return m_num_levels; }
3415  void SetLodClamp (int v) { m_clamp = (unsigned char)v; }
3417  int GetLodClamp () const { return m_clamp; }
3419  void SetLodMaxDegree (int v) { m_max_degree = v; }
3421  int GetLodMaxDegree () const { return m_max_degree; }
3423  void SetLodTolerance (float v) { m_tolerance = v; }
3425  float GetLodTolerance () const { return m_tolerance; }
3427  void SetLodFallback (int v) { m_fallback = (char)v; }
3429  int GetLodFallback () const { return m_fallback; }
3430 
3432  void SetLodBounding (float x1, float y1, float z1, float x2, float y2, float z2) {
3433  m_bounding[0] = x1; m_bounding[1] = y1; m_bounding[2] = z1;
3434  m_bounding[3] = x2; m_bounding[4] = y2; m_bounding[5] = z2;
3435  }
3437  void SetLodBounding (float const s[], float const e[]) {
3438  SetLodBounding (s[0], s[1], s[2], e[0], e[1], e[2]);
3439  }
3441  void SetLodBounding (float const p[]) { SetLodBounding (&p[0], &p[3]); }
3443  float const * GetLodBounding () const { return m_bounding; }
3444 
3446  void SetLodRatio (float r) { m_num_ratios = 1; m_ratio[0] = r; }
3448  void SetLodRatios (int c, float const r[] = 0) {
3449  m_num_ratios = (char)c;
3450  if (r != 0) {
3451  int i;
3452  for (i=0; i<c; ++i)
3453  m_ratio[i] = r[i];
3454  }
3455  }
3457  int GetLodNumRatios () const { return m_num_ratios; }
3459  float const * GetLodRatios () const { return m_ratio; }
3461  float * GetLodRatios () { return m_ratio; }
3462 
3464  void SetLodThresholdType (int v) { m_threshold_type = (char)v; }
3466  int GetLodThresholdType () const { return m_threshold_type; }
3468  void SetLodThreshold (float r) { m_num_thresholds = 1; m_threshold[0] = r; }
3470  void SetLodThresholds (int c, float const r[] = 0) {
3471  m_num_thresholds = (char)c;
3472  if (r != 0) {
3473  int i;
3474  for (i=0; i<c; ++i)
3475  m_threshold[i] = r[i];
3476  }
3477  }
3479  int GetLodNumThresholds () const { return m_num_thresholds; }
3481  float const * GetLodThresholds () const { return m_threshold; }
3483  float * GetLodThresholds () { return m_threshold; }
3484 
3486  void SetLodCutoff (float r) { m_num_cutoffs = 1; m_cutoff[0] = r; }
3488  void SetLodCutoffs (int c, float const r[] = 0) {
3489  m_num_cutoffs = (char)c;
3490  if (r != 0) {
3491  int i;
3492  for (i=0; i<c; ++i)
3493  m_cutoff[i] = r[i];
3494  }
3495  }
3497  int GetLodNumCutoffs () const { return m_num_cutoffs; }
3499  float const * GetLodCutoffs () const { return m_cutoff; }
3501  float * GetLodCutoffs () { return m_cutoff; }
3502 
3503 
3505  void SetTessellationMask (int m) { m_tessellations = (unsigned char)m; }
3507  int GetTessellationMask () const { return m_tessellations; }
3509  void SetCylinderTessellation (int n) { m_num_cylinder = (char)1; m_cylinder[0] = (char)n; }
3511  void SetCylinderTessellations (int c, char const * n = 0) {
3512  m_num_cylinder = (char)c;
3513  if (n != 0) {
3514  int i;
3515  for (i=0; i<c; ++i)
3516  m_cylinder[i] = n[i];
3517  }
3518  }
3520  int GetNumCylinderTessellations () const { return m_num_cylinder; }
3522  char const * GetCylinderTessellations () const { return m_cylinder; }
3524  char * GetCylinderTessellations () { return m_cylinder; }
3526  void SetSphereTessellation (int n) { m_num_sphere = (char)1; m_sphere[0] = (char)n; }
3528  void SetSphereTessellations (int c, char const * n = 0) {
3529  m_num_sphere = (char)c;
3530  if (n != 0) {
3531  int i;
3532  for (i=0; i<c; ++i)
3533  m_sphere[i] = n[i];
3534  }
3535  }
3537  int GetNumSphereTessellations () const { return m_num_sphere; }
3539  char const * GetSphereTessellations () const { return m_sphere; }
3541  char * GetSphereTessellations () { return m_sphere; }
3542 
3544  void SetGeometryOptionsMask (int m) { m_geometry_options = (unsigned char)m; }
3546  int GetGeometryOptionsMask () const { return m_geometry_options; }
3547 
3549  void SetHardEdgeAngle (int m) { m_dihedral = (unsigned char)m; }
3551  float GetHardEdgeAngle () const { return m_dihedral; }
3552 
3554  void SetMaskTransform (int m) { m_mask_transform = (unsigned short)m; }
3556  int GetMaskTransform () const { return (int)m_mask_transform; }
3557 
3558 
3560  void SetCutGeometry (int m) { m_cut_geometry = (unsigned char)m; }
3562  int GetCutGeometry () const { return (int)m_cut_geometry; }
3563 
3565  void SetCutGeometryLevel (int m) { m_cut_geometry_level = (unsigned char)m; }
3567  int GetCutGeometryLevel () const { return (int)m_cut_geometry_level; }
3568 
3570  void SetCutGeometryColorMatch (int m) { m_cut_geometry_match = (unsigned char)m; }
3572  int GetCutGeometryColorMatch () const { return (int)m_cut_geometry_match; }
3573 
3575  void SetCutGeometryTolerance (float m) { m_cut_geometry_tolerance = m; }
3577  float GetCutGeometryTolerance () const { return m_cut_geometry_tolerance; }
3578 
3580  void SetCutGeometryEdgeWeight (float value, int units = TKO_Generic_Size_Unspecified) {
3581  m_cut_geometry_edge_weight = (value > 0.0f) ? value : -1.0f;
3582  m_cut_geometry_edge_weight_units = (value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
3583  }
3585  float GetCutGeometryEdgeWeight () const { return m_cut_geometry_edge_weight; }
3587  int GetCutGeometryEdgeWeightUnits () const { return m_cut_geometry_edge_weight_units; }
3588 
3590  void SetCutGeometryEdgePattern (char const * pattern);
3592  void SetCutGeometryEdgePattern (int length);
3594  char const * GetCutGeometryEdgePattern () const { return m_cut_geometry_edge_pattern; }
3596  char * GetCutGeometryEdgePattern () { return m_cut_geometry_edge_pattern; }
3597 
3598 
3600  void SetDisplayListLevel (int m) { m_display_list_level = (unsigned char)m; }
3602  int GetDisplayListLevel () const { return (int)m_display_list_level; }
3603 
3605  void SetSimpleShadow (int m) {
3606  m_simple_shadow = (unsigned short)m;
3607  if ((m & TKO_Simple_Shadow_Extended_Mask) != 0)
3608  m_simple_shadow |= TKO_Simple_Shadow_Extended;
3609  }
3611  int GetSimpleShadow () const { return (int)m_simple_shadow; }
3612 
3614  void SetSimpleShadowBlur (int m) { m_simple_shadow_blur = (unsigned char)m; }
3616  int GetSimpleShadowBlur () const { return (int)m_simple_shadow_blur; }
3617 
3619  void SetSimpleShadowResolution (int m) { m_simple_shadow_resolution = (unsigned short)m; }
3621  int GetSimpleShadowResolution () const { return (int)m_simple_shadow_resolution; }
3622 
3624  void SetSimpleShadowLight (float x, float y, float z) {
3625  m_simple_shadow_light[0] = x;
3626  m_simple_shadow_light[1] = y;
3627  m_simple_shadow_light[2] = z;
3628  }
3630  void SetSimpleShadowLight (float const l[]) { SetSimpleShadowLight (l[0], l[1], l[2]); }
3632  float const * getSimpleShadowLight () const { return m_simple_shadow_light; }
3633 
3635  void SetSimpleShadowPlane (float a, float b, float c, float d) {
3636  m_simple_shadow_plane[0] = a;
3637  m_simple_shadow_plane[1] = b;
3638  m_simple_shadow_plane[2] = c;
3639  m_simple_shadow_plane[3] = d;
3640  }
3642  void SetSimpleShadowPlane (float const p[]) { SetSimpleShadowPlane (p[0], p[1], p[2], p[3]); }
3644  float const * GetSimpleShadowPlane () const { return m_simple_shadow_plane; }
3645 
3647  void SetSimpleShadowColor (float r, float g, float b)
3648  { m_simple_shadow_color[0] = r; m_simple_shadow_color[1] = g; m_simple_shadow_color[2] = b; }
3650  void SetSimpleShadowColor (float const rgb[]) { SetSimpleShadowColor (rgb[0], rgb[1], rgb[2]); }
3652  float const * GetSimpleShadowColor () const { return m_simple_shadow_color; }
3653 
3655  void SetSimpleShadowOpacity (float o) { m_simple_shadow_opacity = o; }
3657  float GetSimpleShadowOpacity () const { return m_simple_shadow_opacity; }
3658 
3659 
3661  void SetShadowMap (int m) { m_shadow_map = (unsigned char)m; }
3663  int GetShadowMap () const { return (int)m_shadow_map; }
3664 
3666  void SetShadowMapResolution (int m) { m_shadow_map_resolution = (unsigned short)m; }
3668  int GetShadowMapResolution () const { return (int)m_shadow_map_resolution; }
3669 
3671  void SetShadowMapSamples (int m) { m_shadow_map_samples = (unsigned char)m; }
3673  int GetShadowMapSamples () const { return (int)m_shadow_map_samples; }
3674 
3675 
3677  void SetSimpleReflection (int m) { m_simple_reflection = (unsigned short)m; }
3679  int GetSimpleReflection () const { return (int)m_simple_reflection; }
3680 
3682  void SetSimpleReflectionPlane (float a, float b, float c, float d) {
3683  m_simple_reflection_plane[0] = a;
3684  m_simple_reflection_plane[1] = b;
3685  m_simple_reflection_plane[2] = c;
3686  m_simple_reflection_plane[3] = d;
3687  }
3689  void SetSimpleReflectionPlane (float const p[]) { SetSimpleReflectionPlane (p[0], p[1], p[2], p[3]); }
3691  float const * GetSimpleReflectionPlane () const { return m_simple_reflection_plane; }
3692 
3694  void SetSimpleReflectionOpacity (float o) { m_simple_reflection_opacity = o; }
3696  float GetSimpleReflectionOpacity () const { return m_simple_reflection_opacity; }
3697 
3699  void SetSimpleReflectionVisibilityMask (int m) { m_simple_reflection_visibility_mask = m; }
3701  int GetSimpleReflectionVisibilityValue () const { return m_simple_reflection_visibility_value; }
3702 
3703 
3705  void SetDepthRange (float n, float f) { m_depth_range[0] = n; m_depth_range[1] = f; }
3707  void SetDepthRange (float const l[]) { SetDepthRange (l[0], l[1]); }
3709  float const * GetDepthRange () const { return m_depth_range; }
3710 
3711 
3713  void SetScreenRange (float l, float r, float b, float t,
3714  float lo = 0, float ro = 0, float bo = 0, float to = 0)
3715  { m_screen_range[0] = l; m_screen_range[1] = r; m_screen_range[2] = b; m_screen_range[3] = t;
3716  m_screen_range[4] = lo; m_screen_range[5] = ro; m_screen_range[6] = bo; m_screen_range[7] = to; }
3718  void SetScreenRange (float const l[]) { SetScreenRange (l[0], l[1], l[2], l[3]); }
3720  void SetScreenRange (float const l[], float const o[])
3721  { SetScreenRange (l[0], l[1], l[2], l[3], o[0], o[1], o[2], o[3]); }
3723  void SetScreenRange (int n, float const l[])
3724  { if (n == 8) SetScreenRange (l[0], l[1], l[2], l[4], l[5], l[6], l[7], l[8]);
3725  else SetScreenRange (l[0], l[1], l[2], l[3]);
3726  }
3728  float const * GetScreenRange () const { return m_screen_range; }
3729 
3733  void SetAmbientUpVector (float x, float y, float z)
3734  { m_ambient_up_vector[0] = x; m_ambient_up_vector[1] = y; m_ambient_up_vector[2] = z; }
3736  void SetAmbientUpVector (float const v[]) { SetAmbientUpVector (v[0], v[1], v[2]); }
3738  float const * GetAmbientUpVector () const { return m_ambient_up_vector; }
3739 
3741  void SetImageScale (float x, float y) { m_image_scale[0] = x; m_image_scale[1] = y; }
3743  void SetImageScale (float const s[]) { SetImageScale (s[0], s[1]); }
3745  float const * GetImageScale () const { return m_image_scale; }
3746 
3747 
3749  void SetImageTintColor (float r, float g, float b)
3750  { m_image_tint_color[0] = r; m_image_tint_color[1] = g; m_image_tint_color[2] = b; }
3752  void SetImageTintColor (float const rgb[]) { SetImageTintColor (rgb[0], rgb[1], rgb[2]); }
3754  float const * GetImageTintColor () const { return m_image_tint_color; }
3755 
3757  void SetDiffuseTextureTintColor (float r, float g, float b)
3758  { m_texture_tint_color[0] = r; m_texture_tint_color[1] = g; m_texture_tint_color[2] = b; }
3760  void SetDiffuseTextureTintColor (float const rgb[]) { SetDiffuseTextureTintColor (rgb[0], rgb[1], rgb[2]); }
3762  float const * GetDiffuseTextureTintColor () const { return m_texture_tint_color; }
3763 
3765  void SetAntiAlias (int m) { m_antialias = (unsigned char)m; }
3767  int GetAntiAlias () const { return (int)m_antialias; }
3768 
3770  void SetVertexDecimation (float f) { m_vertex_decimation = f; }
3772  float GetVertexDecimation () const { return m_vertex_decimation; }
3773 };
3774 
3776 
3777 
3779 
3785 class BBINFILETK_API TK_Heuristics : public BBaseOpcodeHandler {
3786  protected:
3787  int m_mask;
3788  int m_value;
3789 
3793 
3794  unsigned char m_extras;
3797  unsigned short m_selection_bias;
3804  float m_vector[3];
3807  float m_view_volume[6];
3808 
3809  unsigned char m_ordered_weights_mask;
3810  float m_ordered_weights[TKO_Heur_Order_Count];
3811  unsigned char m_selection_level;
3812  unsigned char m_model_type;
3813 
3814  public:
3816  TK_Heuristics () : BBaseOpcodeHandler (TKE_Heuristics),
3817  m_mask (0), m_value (0), m_culling(0), m_selection_culling(0), m_selection_bias(0),
3818  m_pixel_threshold (0), m_maximum_extent (0), m_maximum_extent_mode(0) {}
3819  ~TK_Heuristics ();
3820 
3823  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
3824 
3825  TK_Status ReadAscii (BStreamFileToolkit & tk);
3826  TK_Status WriteAscii (BStreamFileToolkit & tk);
3827 
3829  void SetMask (int m) {
3830  m_mask = m;
3831  if ((m & TKO_Heuristic_Extended_Mask) != 0)
3832  m_mask |= TKO_Heuristic_Extended;
3833  }
3835  int GetMask () const { return m_mask; }
3836 
3838  void SetValue (int v) { m_value = v; }
3840  int GetValue () const { return m_value; }
3841 
3843  void SetRelatedSelectionLimit (int r) { m_related = r; }
3845  int GetRelatedSelectionLimit () const { return m_related; }
3846 
3848  void SetInternalSelectionLimit (int i) { m_internal_shell = m_internal_polyline = i; }
3850  int GetInternalSelectionLimit () const { return m_internal_shell; }
3851 
3853  void SetInternalShellSelectionLimit (int i) { m_internal_shell = i; }
3855  int GetInternalShellSelectionLimit () const { return m_internal_shell; }
3856 
3858  void SetInternalPolylineSelectionLimit (int i) { m_internal_polyline = i; }
3860  int GetInternalPolylineSelectionLimit () const { return m_internal_polyline; }
3861 
3863  void SetExtras (int e) { m_extras = (unsigned char)e; }
3865  int GetExtras () const { return (int)m_extras; }
3866 
3868  void SetCulling (int c) { m_culling = (unsigned short)c; }
3870  int GetCulling () const { return (int)m_culling; }
3872  void SetSelectionCulling (int c) { m_selection_culling = (unsigned short)c; }
3874  int GetSelectionCulling () const { return (int)m_selection_culling; }
3876  void SetSelectionBias (int c) { m_selection_bias = (unsigned short)c; }
3878  int GetSelectionBias () const { return (int)m_selection_bias; }
3880  void SetPixelThreshold (int c) { m_pixel_threshold = c; }
3882  int GetPixelThreshold () const { return m_pixel_threshold; }
3884  void SetMaximumExtent (int c) { m_maximum_extent = c; }
3886  int GetMaximumExtent () const { return m_maximum_extent; }
3888  int GetMaximumExtentMode () const { return m_maximum_extent_mode; }
3890  void SetMaximumExtentMode (int c) { m_maximum_extent_mode = c; }
3892  int GetMaximumExtentLevel () const { return m_maximum_extent_level; }
3894  void SetMaximumExtentLevel (int c) { m_maximum_extent_level = (unsigned char)c; }
3896  void SetHardExtent (int c) { m_hard_extent = c; }
3898  int GetHardExtent () const { return m_hard_extent; }
3900  float const * GetVector () const { return m_vector; }
3902  void SetVector (float x, float y, float z) {
3903  m_vector[0] = x;
3904  m_vector[1] = y;
3905  m_vector[2] = z;
3906  }
3908  void SetVector (float const v[]) { SetVector(v[0], v[1], v[2]); }
3910  float GetVectorTolerance () const { return m_vector_tolerance; }
3912  void SetVectorTolerance (float tol) { m_vector_tolerance = tol; }
3913 
3914  void SetMaxDistance (float m) { m_max_distance = m; }
3916  float GetMaxDistance () const { return m_max_distance; }
3917 
3919  float const * GetViewVolume () const { return m_view_volume; }
3921  void SetViewVolume (float ax, float ay, float az, float bx, float by, float bz) {
3922  m_view_volume[0] = ax;
3923  m_view_volume[1] = ay;
3924  m_view_volume[2] = az;
3925  m_view_volume[3] = bx;
3926  m_view_volume[4] = by;
3927  m_view_volume[5] = bz;
3928  }
3930  void SetViewVolume (float const v[]) { SetViewVolume(v[0], v[1], v[2], v[3], v[4], v[5]); }
3931 
3933  void SetOrderedWeightsMask (int c) { m_ordered_weights_mask = (unsigned char)c; }
3935  int GetOrderedWeightsMask () const { return (int)m_ordered_weights_mask; }
3936 
3938  void SetOrderedWeight (int index, float weight) {
3939  m_ordered_weights[index] = weight;
3940  m_ordered_weights_mask |= 1<<index;
3941  }
3943  float GetOrderedWeight (int index) const { return m_ordered_weights[index]; }
3945  float const * GetOrderedWeights () const { return m_ordered_weights; }
3947  float * GetOrderedWeights () { return m_ordered_weights; }
3948 
3950  void SetSelectionLevel (int l) { m_selection_level = (unsigned char)l; }
3952  int GetSelectionLevel () const { return (int)m_selection_level; }
3953 
3955  void SetForceDefer (int l) { m_force_defer = l; }
3957  int GetForceDefer () const { return m_force_defer; }
3958 
3959 };
3960 
3962 
3963 
3965 
3971 class BBINFILETK_API TK_Geometry_Options : public BBaseOpcodeHandler {
3972  protected:
3973  unsigned short m_mask;
3974  unsigned short m_value;
3975 
3977  float m_orientation[6];
3978 
3979  public:
3981  TK_Geometry_Options () : BBaseOpcodeHandler (TKE_Geometry_Options),
3982  m_mask (0), m_value (0), m_orientation_count (0) {}
3983  ~TK_Geometry_Options ();
3984 
3987  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
3988 
3989  TK_Status ReadAscii (BStreamFileToolkit & tk);
3990  TK_Status WriteAscii (BStreamFileToolkit & tk);
3991 
3993  void SetMask (int m) { m_mask = (unsigned short)m; }
3995  int GetMask () const { return (int)m_mask; }
3996 
3998  void SetOrientation (int count, float const o[]) {
3999  if (count != 3 && count != 6)
4000  return;
4001  m_orientation_count = (unsigned char)count;
4002  while (count-- > 0)
4003  m_orientation[count] = o[count];
4004  }
4006  int GetOrientationCount () const { return (int) m_orientation_count; }
4008  float const * GetOrientation () const { return m_orientation; }
4009 };
4010 
4013 
4018 class BBINFILETK_API TK_Visibility : public BBaseOpcodeHandler {
4019  protected:
4020  int m_mask;
4021  int m_value;
4022 
4023  public:
4026  : BBaseOpcodeHandler (TKE_Visibility), m_mask (0), m_value (0) {}
4027 
4030  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4031 
4032  TK_Status ReadAscii (BStreamFileToolkit & tk);
4033  TK_Status WriteAscii (BStreamFileToolkit & tk);
4034 
4038  void SetGeometry (int m) {
4039  m_mask = m & TKO_Geo_All_Visibles;
4040  if ((m & TKO_Geo_Extended_Mask) != 0) {
4041  m_mask |= TKO_Geo_Extended;
4042  if ((m & TKO_Geo_Extended2_Mask) != 0)
4043  m_mask |= TKO_Geo_Extended2;
4044  }
4045  }
4050  int GetGeometry () const { return m_mask; }
4051 
4056  void SetValue (int m) { m_value = m; }
4061  int GetValue () const { return m_value; }
4062 };
4063 
4066 
4073 class BBINFILETK_API TK_Selectability : public BBaseOpcodeHandler {
4074  protected:
4075  int m_mask;
4076  int m_down;
4077  int m_up;
4081 
4082  public:
4085  : BBaseOpcodeHandler (TKE_Selectability),
4086  m_mask (0), m_down (0), m_up (0), m_move_down (0), m_move_up (0), m_invisible (0) {}
4087 
4090  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4091 
4092  TK_Status ReadAscii (BStreamFileToolkit & tk);
4093  TK_Status WriteAscii (BStreamFileToolkit & tk);
4094 
4098  void SetGeometry (int m) {
4099  m_mask = m & TKO_Geo_All_Selects;
4100  if ((m & TKO_Geo_Extended_Mask) != 0)
4101  m_mask |= TKO_Geo_Extended;
4102  }
4107  int GetGeometry () const { return m_mask; }
4108 
4113  void SetDown (int m) { m_down = m; }
4118  int GetDown () const { return m_down; }
4119 
4124  void SetUp (int m) { m_up = m; }
4129  int GetUp () const { return m_up; }
4130 
4135  void SetMoveDown (int m) { m_move_down = m; }
4140  int GetMoveDown () const { return m_move_down; }
4141 
4146  void SetMoveUp (int m) { m_move_up = m; }
4151  int GetMoveUp () const { return m_move_up; }
4152 
4157  void SetWhenInvisible (int m) { m_invisible = m; }
4162  int GetWhenInvisible () const { return m_invisible; }
4163 };
4164 
4166 
4172 class BBINFILETK_API TK_Matrix : public BBaseOpcodeHandler {
4173  protected:
4174  float m_matrix[16];
4175  double m_dmatrix[16];
4176 
4177  public:
4179  TK_Matrix (unsigned char opcode)
4180  : BBaseOpcodeHandler (opcode) {}
4181 
4184  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4185 
4186  TK_Status ReadAscii (BStreamFileToolkit & tk);
4187  TK_Status WriteAscii (BStreamFileToolkit & tk);
4188 
4190  void SetMatrix (float const m[]) {
4191  int i; for (i=0; i<16; i++) m_matrix[i] = m[i];
4192  }
4194  void SetDMatrix (double const m[]) {
4195  int i; for (i=0; i<16; i++) m_dmatrix[i] = m[i];
4196  }
4198  float const * GetMatrix () const { return m_matrix; }
4200  float * GetMatrix () { return m_matrix; }
4202  double const * GetDMatrix () const { return m_dmatrix; }
4204  double * GetDMatrix () { return m_dmatrix; }
4205 };
4206 
4207 
4213 class BBINFILETK_API TK_Enumerated : public BBaseOpcodeHandler {
4214  protected:
4215  char m_index;
4216 
4217  public:
4219  TK_Enumerated (unsigned char opcode)
4220  : BBaseOpcodeHandler (opcode), m_index (0) {}
4221 
4224  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4225 
4226  TK_Status ReadAscii (BStreamFileToolkit & tk);
4227  TK_Status WriteAscii (BStreamFileToolkit & tk);
4228 
4229  void SetIndex (int i) { m_index = (char)i; }
4231  int GetIndex () const { return (int)m_index; }
4232 };
4233 
4234 
4240 class BBINFILETK_API TK_Size : public BBaseOpcodeHandler {
4241  protected:
4242  float m_value;
4243  unsigned char m_units;
4244 
4245  public:
4247  TK_Size (unsigned char opcode)
4248  : BBaseOpcodeHandler (opcode), m_value (0.0f), m_units (TKO_Generic_Size_Unspecified) {}
4249 
4252  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4253 
4254  TK_Status ReadAscii (BStreamFileToolkit & tk);
4255  TK_Status WriteAscii (BStreamFileToolkit & tk);
4256 
4258  void SetSize (float value, int units = TKO_Generic_Size_Unspecified) {
4259  m_value = (value > 0.0f) ? value : 0.0f;
4260  m_units = (m_value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
4261  }
4263  float GetSize () const { return m_value; }
4265  int GetUnits () const { return m_units; }
4266 };
4267 
4272 class BBINFILETK_API TK_Linear_Pattern : public BBaseOpcodeHandler {
4273  protected:
4274  unsigned short m_pattern;
4275 
4276  public:
4278  TK_Linear_Pattern (unsigned char opcode)
4279  : BBaseOpcodeHandler (opcode), m_pattern (0) {}
4280 
4283  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4284 
4285  TK_Status ReadAscii (BStreamFileToolkit & tk);
4286  TK_Status WriteAscii (BStreamFileToolkit & tk);
4287 
4289  void SetPattern (int p) { m_pattern = (unsigned short)p; }
4291  int GetPattern () const { return (int)m_pattern; }
4292 };
4293 
4299 class BBINFILETK_API TK_Named : public BBaseOpcodeHandler {
4300  protected:
4302  char * m_name;
4303  int m_index;
4304 
4305  public:
4307  TK_Named (unsigned char opcode)
4308  : BBaseOpcodeHandler (opcode), m_name_length (0), m_name (0), m_index (0) {}
4309  ~TK_Named();
4310 
4313  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4314 
4315  TK_Status ReadAscii (BStreamFileToolkit & tk);
4316  TK_Status WriteAscii (BStreamFileToolkit & tk);
4317 
4318  void Reset ();
4319 
4321  void SetName (char const * name);
4323  void SetName (int length);
4325  char const * GetName () const { return m_name; }
4327  char * GetName () { return m_name; }
4328 
4330  void SetIndex (int i) { Reset(); m_index = i; }
4332  int GetIndex () const { return (int)m_index; }
4333 };
4334 
4335 
4336 
4343 class BBINFILETK_API TK_Streaming : public BBaseOpcodeHandler {
4344  protected:
4345  bool m_flag;
4346 
4347  public:
4350 
4353  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4354 
4355  TK_Status ReadAscii (BStreamFileToolkit & tk);
4356  TK_Status WriteAscii (BStreamFileToolkit & tk);
4357 
4358  void SetStreaming (bool s) { m_flag = s; }
4360  bool GetStreaming () const { return m_flag; }
4361 };
4362 
4365 
4371 class BBINFILETK_API TK_Conditions : public BBaseOpcodeHandler {
4372  protected:
4373  int m_length;
4374  char * m_string;
4376  public:
4378  TK_Conditions () : BBaseOpcodeHandler (TKE_Conditions), m_length (0), m_string (0) {}
4379  ~TK_Conditions();
4380 
4383  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4384 
4385  TK_Status ReadAscii (BStreamFileToolkit & tk);
4386  TK_Status WriteAscii (BStreamFileToolkit & tk);
4387 
4388  void Reset ();
4389 
4391  void SetConditions (char const * options);
4393  void SetConditions (int length);
4395  char const * GetConditions () const { return m_string; }
4397  char * GetConditions () { return m_string; }
4399  int GetLength() { return m_length; }
4400 };
4401 
4402 
4405 
4410 class BBINFILETK_API TK_Conditional_Action : public BBaseOpcodeHandler {
4411  protected:
4412  short m_type;
4413  short m_options;
4414  int m_length;
4415  char * m_string;
4417  public:
4419  TK_Conditional_Action () : BBaseOpcodeHandler (TKE_Conditional_Action), m_length (0), m_string (0) {}
4421 
4424  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4425 
4426  TK_Status ReadAscii (BStreamFileToolkit & tk);
4427  TK_Status WriteAscii (BStreamFileToolkit & tk);
4428 
4429  void Reset ();
4430 
4432  void SetCondition (char const * options);
4434  void SetCondition (int length);
4436  char const * GetCondition () const { return m_string; }
4438  char * GetCondition () { return m_string; }
4440  int GetLength() { return m_length; }
4441 
4443  void SetAction (int at) { m_type = (short)at; }
4445  int GetAction () const { return (int)m_type; }
4447  void SetOptions (int at) { m_options = (short)at; }
4449  int GetOptions () const { return (int)m_options; }
4450 };
4451 
4454 
4460 class BBINFILETK_API TK_User_Options : public BBaseOpcodeHandler {
4461  protected:
4462  int m_length;
4463  char * m_string;
4468  void set_options (char const * options);
4469  void set_options (int length);
4470 
4471  public:
4473  TK_User_Options () : BBaseOpcodeHandler (TKE_User_Options), m_length (0), m_string (0),
4474  m_indices (0), m_unicode (0), m_index_data(0) {}
4475  ~TK_User_Options();
4476 
4479  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4480 
4481  TK_Status ReadAscii (BStreamFileToolkit & tk);
4482  TK_Status WriteAscii (BStreamFileToolkit & tk);
4483 
4484  void Reset ();
4485 
4487  void SetOptions (char const * options) { set_options (options); }
4489  void SetOptions (int length) { set_options (length); }
4491  char const * GetOptions () const { return m_string; }
4493  char * GetOptions () { return m_string; }
4495  int GetLength() { return m_length; }
4496 };
4497 
4500 
4506 class BBINFILETK_API TK_Unicode_Options : public BBaseOpcodeHandler {
4507  protected:
4508  int m_length;
4509  unsigned short * m_string;
4511  public:
4513  TK_Unicode_Options () : BBaseOpcodeHandler (TKE_Unicode_Options), m_length (0), m_string (0) {}
4514  ~TK_Unicode_Options();
4515 
4518  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4519 
4520  TK_Status ReadAscii (BStreamFileToolkit & tk);
4521  TK_Status WriteAscii (BStreamFileToolkit & tk);
4522 
4523  void Reset ();
4524 
4526  void SetOptions (unsigned short const * options);
4528  void SetOptions (int length);
4530  unsigned short const * GetOptions () const { return m_string; }
4532  unsigned short * GetOptions () { return m_string; }
4534  int GetLength() { return m_length; }
4535 };
4536 
4538 
4544 class BBINFILETK_API TK_User_Index : public BBaseOpcodeHandler {
4545  protected:
4546  int m_count;
4547  int * m_indices;
4548  HLONG * m_values;
4550  void set_indices (int count, int const indices[], POINTER_SIZED_INT const values[]);
4551  void set_indices (int count);
4552 
4553  public:
4556  : BBaseOpcodeHandler (TKE_User_Index), m_count (0), m_indices (0), m_values (0), m_current_value(0) {}
4557  ~TK_User_Index();
4558 
4561  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4562 
4563  TK_Status ReadAscii (BStreamFileToolkit & tk);
4564  TK_Status WriteAscii (BStreamFileToolkit & tk);
4565 
4566  void Reset ();
4567 
4569  void SetIndices (int count, int const indices[], POINTER_SIZED_INT const values[])
4570  { set_indices (count, indices, values); }
4572  void SetIndices (int count) { set_indices (count); }
4574  int GetCount () const { return m_count; }
4576  int const * GetIndices () const { return m_indices; }
4578  int * GetIndices () { return m_indices; }
4580  HLONG const * GetValues () const { return m_values; }
4582  HLONG * GetValues () { return m_values; }
4583 };
4584 
4586 
4592 class BBINFILETK_API TK_User_Index_Data : public BBaseOpcodeHandler {
4593 protected:
4594  int m_count;
4595  int * m_indices;
4596  void ** m_values;
4597  int * m_sizes;
4598 
4600  void set_indices (int count, int const indices[], void const * values[], int const sizes[]);
4601  void set_indices (int count);
4602  void FreeMem ();
4603 
4604 public:
4607  : BBaseOpcodeHandler (TKE_User_Index_Data), m_count (0), m_indices (0), m_values (0), m_sizes(0), m_current_value(0) {}
4608  ~TK_User_Index_Data();
4609 
4612  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4613 
4614  void Reset ();
4615 
4617  void SetIndices (int count, int const indices[], void const * values[], int const sizes[]) {
4618  set_indices (count, indices, values, sizes);
4619  }
4620 
4622  void SetIndices (int count) { set_indices (count);}
4623 
4625  int GetCount () const { return m_count;}
4626 
4628  int const * GetIndices () const { return m_indices;}
4629 
4631  int * GetIndices () { return m_indices;}
4632 
4634  void ** const GetValues () const { return m_values;}
4635 
4637  void ** const GetValues () { return m_values;}
4638 
4640  int const * GetSizes () const { return m_sizes;}
4641 
4643  int * GetSizes () { return m_sizes;}
4644 };
4645 
4646 
4648 
4653 class BBINFILETK_API TK_User_Value : public BBaseOpcodeHandler {
4654  protected:
4655  HLONG m_value;
4656 
4657  public:
4660  : BBaseOpcodeHandler (TKE_User_Value), m_value (0) {}
4661 
4664  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4665 
4666  TK_Status ReadAscii (BStreamFileToolkit & tk);
4667  TK_Status WriteAscii (BStreamFileToolkit & tk);
4668 
4670  void SetValue (HLONG v) { m_value = v; }
4672  HLONG GetValue () const { return m_value; }
4673 };
4674 
4675 
4677 
4682 class BBINFILETK_API2 TK_Camera : public BBaseOpcodeHandler {
4683  protected:
4687  float m_settings[14];
4689  double m_dsettings[14];
4691  float m_details[3];
4692  unsigned char m_projection;
4693  int m_length;
4694  char * m_name;
4697  void set_name (char const * name);
4698 
4699  void set_name (int length);
4700 
4701  public:
4703  TK_Camera (unsigned char opcode = TKE_Camera)
4704  : BBaseOpcodeHandler (opcode), m_length (0), m_name (0) {
4705  int i;
4706  int count = (int)(sizeof(m_settings) / sizeof(m_settings[0]));
4707  for (i = 0; i < count; i++) {
4708  m_settings[i] = 0;
4709  m_dsettings[i] = 0;
4710  }
4711  }
4712  ~TK_Camera();
4713 
4716  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4717 
4718  TK_Status ReadAscii (BStreamFileToolkit & tk);
4719  TK_Status WriteAscii (BStreamFileToolkit & tk);
4720 
4722  void SetPosition (float x, float y, float z)
4723  { m_settings[0] = x; m_settings[1] = y; m_settings[2] = z; }
4725  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
4727  float const * GetPosition () const { return &m_settings[0]; }
4729  void GetPosition (float p[]) const { memcpy(p, GetPosition(), 3*sizeof(float)); }
4730 
4732  void SetDPosition (double x, double y, double z)
4733  { m_dsettings[0] = x; m_dsettings[1] = y; m_dsettings[2] = z; }
4735  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
4737  double const * GetDPosition () const { return &m_dsettings[0]; }
4739  void GetDPosition (double p[]) const { memcpy(p, GetDPosition(), 3*sizeof(double)); }
4740 
4742  void SetTarget (float x, float y, float z)
4743  { m_settings[3] = x; m_settings[4] = y; m_settings[5] = z; }
4745  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
4747  float const * GetTarget () const { return &m_settings[3]; }
4749  void GetTarget (float t[]) const { memcpy(t, GetTarget(), 3*sizeof(float)); }
4750 
4752  void SetDTarget (double x, double y, double z)
4753  { m_dsettings[3] = x; m_dsettings[4] = y; m_dsettings[5] = z; }
4755  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
4757  double const * GetDTarget () const { return &m_dsettings[3]; }
4759  void GetDTarget (double t[]) const { memcpy(t, GetDTarget(), 3*sizeof(double)); }
4760 
4762  void SetUpVector (float x, float y, float z)
4763  { m_settings[6] = x; m_settings[7] = y; m_settings[8] = z; }
4765  void SetUpVector (float const u[]) { SetUpVector (u[0], u[1], u[2]); }
4767  float const * GetUpVector () const { return &m_settings[6]; }
4769  void GetUpVector (float u[]) const { memcpy(u,GetUpVector(),3*sizeof(float)); }
4770 
4772  void SetDUpVector (double x, double y, double z)
4773  { m_dsettings[6] = x; m_dsettings[7] = y; m_dsettings[8] = z; }
4775  void SetDUpVector (double const u[]) { SetDUpVector (u[0], u[1], u[2]); }
4777  double const * GetDUpVector () const { return &m_dsettings[6]; }
4779  void GetDUpVector (double u[]) const { memcpy(u, GetDUpVector(), 3*sizeof(double)); }
4780 
4782  void SetField (float w, float h) { m_settings[9] = w; m_settings[10] = h; }
4784  void SetField (float const f[]) { SetField (f[0], f[1]); }
4786  float const * GetField () const { return &m_settings[9]; }
4788  void GetField (float f[]) const { memcpy(f,GetField(),2*sizeof(float)); }
4789 
4791  void SetDField (double w, double h) { m_dsettings[9] = w; m_dsettings[10] = h; }
4793  void SetDField (double const f[]) { SetDField (f[0], f[1]); }
4795  double const * GetDField () const { return &m_dsettings[9]; }
4797  void GetDField (double f[]) const { memcpy(f, GetDField(), 2*sizeof(double)); }
4798 
4799 
4801  void SetOblique (float h, float v) { m_details[0] = h; m_details[1] = v;
4802  m_projection &= ~TKO_Camera_Oblique_Mask;
4803  if (h != 0.0f) m_projection |= TKO_Camera_Oblique_Y;
4804  if (v != 0.0f) m_projection |= TKO_Camera_Oblique_Mask;
4805  }
4807  void SetOblique (float const o[]) { SetOblique (o[0], o[1]); }
4809  float const * GetOblique () const { return m_details; }
4811  void GetOblique (float o[]) const { memcpy(o, GetOblique(), 2*sizeof(float)); }
4812 
4814  void SetNearLimit (float l) { m_details[2] = l;
4815  m_projection &= ~TKO_Camera_Near_Limit;
4816  if (l != 0.0f) m_projection |= TKO_Camera_Near_Limit;
4817  }
4819  float GetNearLimit () const { return m_details[2]; }
4820 
4821 
4823  void SetProjection (int p) { m_projection = (char)p; }
4825  int GetProjection () const { return (int)m_projection; }
4826 
4827 
4829  void SetView (char const * name) { set_name (name); }
4831  void SetView (int length) { set_name (length); }
4833  char const * GetView () const { return m_name; }
4835  char * GetView () { return m_name; }
4836 };
4837 
4839 
4844 class BBINFILETK_API TK_Window : public BBaseOpcodeHandler {
4845  protected:
4846  float m_window[8];
4847  unsigned char m_options;
4848 
4849  public:
4852  : BBaseOpcodeHandler (TKE_Window), m_options (0) {}
4853 
4856  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4857 
4858  TK_Status ReadAscii (BStreamFileToolkit & tk);
4859  TK_Status WriteAscii (BStreamFileToolkit & tk);
4860 
4862  void SetWindow (float l, float r, float b, float t,
4863  float lo = 0, float ro = 0, float bo = 0, float to = 0)
4864  { m_window[0] = l; m_window[1] = r; m_window[2] = b; m_window[3] = t;
4865  m_window[4] = lo; m_window[5] = ro; m_window[6] = bo; m_window[7] = to; }
4867  void SetWindow (float const w[]) { SetWindow (w[0], w[1], w[2], w[3]); }
4869  void SetWindow (float const w[], float const o[])
4870  { SetWindow (w[0], w[1], w[2], w[3], o[0], o[1], o[2], o[3]); }
4872  void SetWindow (int n, float const w[])
4873  { if (n == 8) SetWindow (w[0], w[1], w[2], w[4], w[5], w[6], w[7], w[8]);
4874  else SetWindow (w[0], w[1], w[2], w[3]);
4875  }
4877  float const * GetWindow () const { return m_window; }
4878 
4880  void SetOptions (int opt) { m_options = (unsigned char)opt; }
4882  int GetOptions () const { return m_options; }
4883 };
4884 
4885 
4886 
4888 
4895 class BBINFILETK_API TK_Text_Font : public BBaseOpcodeHandler {
4896  protected:
4897  int m_mask;
4898  int m_value;
4900  char * m_names;
4901  float m_size;
4902  float m_tolerance;
4903  float m_rotation;
4904  float m_slant;
4911  int m_renderers[2];
4912  int m_preferences[2];
4915  char * m_shape;
4916  char * m_style;
4918  float m_margins[4];
4919  unsigned char m_margin_units[4];
4920  unsigned char m_size_units;
4921  unsigned char m_tolerance_units;
4922  unsigned char m_space_units;
4923  unsigned char m_greeking_units;
4924  unsigned char m_greeking_mode;
4925  unsigned char m_transforms;
4926  unsigned char m_renderer_cutoff_units;
4928  unsigned char m_layout;
4929 
4930  void set_names (int length);
4931  void set_names (char const * names);
4932 
4933  public:
4936  : BBaseOpcodeHandler (TKE_Text_Font), m_names_length (0), m_names (0)
4937  , m_shape_length (0), m_style_length (0), m_shape (0), m_style (0) {}
4938  ~TK_Text_Font ();
4939 
4942  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4943 
4944  TK_Status ReadAscii (BStreamFileToolkit & tk);
4945  TK_Status WriteAscii (BStreamFileToolkit & tk);
4946 
4947  void Reset ();
4948 
4950  void SetMask (int m) {
4951  m_mask = m;
4952  if ((m & TKO_Font_Extended2_Mask) != 0)
4953  m_mask |= TKO_Font_Extended2;
4954  if ((m & TKO_Font_Extended_Mask) != 0)
4955  m_mask |= TKO_Font_Extended;
4956  }
4958  int GetMask () const { return m_mask; }
4959 
4961  void SetValue (int v) { m_value = v; }
4963  int GetValue () const { return m_value; }
4964 
4966  void SetNames (char const * names) { set_names (names); }
4968  void SetNames (int length) { set_names (length); }
4970  char const * GetNames () const { return m_names; }
4972  char * GetNames () { return m_names; }
4973 
4975  void SetShape (char const * shape);
4977  void SetShape (int length);
4979  char const * GetShape () const { return m_shape; }
4981  char * GetShape () { return m_shape; }
4982 
4984  void SetStyle (char const * shape);
4986  void SetStyle (int length);
4988  char const * GetStyle () const { return m_style; }
4990  char * GetStyle () { return m_style; }
4991 
4993  void SetSize (float s) { m_size = s; }
4995  float GetSize () const { return m_size; }
4996 
4998  void SetSizeUnits (int u) { m_size_units = (unsigned char)u; }
5000  int GetSizeUnits () const { return (int)m_size_units; }
5001 
5003  void SetTolerance (float t) { m_tolerance = t; }
5005  float GetTolerance () const { return m_tolerance; }
5006 
5008  void SetToleranceUnits (int u) { m_tolerance_units = (unsigned char)u; }
5010  int GetToleranceUnits () const { return (int)m_tolerance_units; }
5011 
5013  void SetRotation (float r) { m_rotation = r; }
5015  float GetRotation () const { return m_rotation; }
5016 
5018  void SetSlant (float s) { m_slant = s; }
5020  float GetSlant () const { return m_slant; }
5021 
5023  void SetWidthScale (float s) { m_width_scale = s; }
5025  float GetWidthScale () const { return m_width_scale; }
5026 
5028  void SetExtraSpace (float s) { m_extra_space = s; }
5030  float GetExtraSpace () const { return m_extra_space; }
5031 
5033  void SetExtraSpaceUnits (int u) { m_space_units = (unsigned char)u; }
5035  int GetExtraSpaceUnits () const { return (int)m_space_units; }
5036 
5038  void SetLineSpacing (float s) { m_line_spacing = s; }
5040  float GetLineSpacing () const { return m_line_spacing; }
5041 
5043  void SetTransforms (int t) { m_transforms = (unsigned char)t; }
5045  int GetTransforms () const { return (int)m_transforms; }
5046 
5048  void SetGreekingLimit (float s) { m_greeking_limit = s; }
5050  float GetGreekingLimit () const { return m_greeking_limit; }
5051 
5053  void SetGreekingLimitUnits (int u) { m_greeking_units = (unsigned char)u; }
5055  int GetGreekingLimitUnits () const { return (int)m_greeking_units; }
5056 
5058  void SetGreekingMode (int m) { m_greeking_mode = (unsigned char)m; }
5060  int GetGreekingMode () const { return (int)m_greeking_mode; }
5061 
5062 
5064  void SetRenderer (int r) { m_renderers[0] = m_renderers[1] = r; }
5066  int GetRenderer () const { return m_renderers[0]; }
5067 
5069  void SetRenderers (int r1, int r2) { m_renderers[0] = r1; m_renderers[1] = r2; }
5071  int const * GetRenderers () const { return m_renderers; }
5072 
5074  void SetRendererCutoff (float s) { m_renderer_cutoff = s; }
5076  float GetRendererCutoff () const { return m_renderer_cutoff; }
5077 
5079  void SetRendererCutoffUnits (int u) { m_renderer_cutoff_units = (unsigned char)u; }
5081  int GetRendererCutoffUnits () const { return (int)m_renderer_cutoff_units; }
5082 
5083 
5085  void SetPreference (int r) { m_preferences[0] = m_preferences[1] = r; }
5087  int GetPreference () const { return m_preferences[0]; }
5088 
5090  void SetPreferences (int r1, int r2) { m_preferences[0] = r1; m_preferences[1] = r2; }
5092  int const * GetPreferences () const { return m_preferences; }
5093 
5095  void SetPreferenceCutoff (float s) { m_preference_cutoff = s; }
5097  float GetPreferenceCutoff () const { return m_preference_cutoff; }
5098 
5100  void SetPreferenceCutoffUnits (int u) { m_preference_cutoff_units = (unsigned char)u; }
5102  int GetPreferenceCutoffUnits () const { return (int)m_preference_cutoff_units; }
5103 
5105  void SetLayout (int l) {m_layout = (unsigned char)l;}
5107  int GetLayout () const {return (int)m_layout;}
5108 };
5109 
5111 
5113 
5123 
5135 class BBINFILETK_API2 TK_Bounding : public BBaseOpcodeHandler {
5136  protected:
5137  double m_dvalues[6];
5138  float m_values[6];
5139  char m_type;
5140  bool m_is_valid;
5141  public:
5143  TK_Bounding (unsigned char opcode)
5144  : BBaseOpcodeHandler (opcode) {}
5146  TK_Bounding (unsigned char opcode, float min[], float max[])
5147  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5148  m_values[0] = min[0]; m_values[1] = min[1]; m_values[2] = min[2];
5149  m_values[3] = max[0]; m_values[4] = max[1]; m_values[5] = max[2];
5150  }
5152  TK_Bounding (unsigned char opcode, float center[], float radius)
5153  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5154  m_values[0] = center[0]; m_values[1] = center[1]; m_values[2] = center[2];
5155  m_values[3] = radius;
5156  }
5158  TK_Bounding (unsigned char opcode, double min[], double max[])
5159  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5160  m_dvalues[0] = min[0]; m_dvalues[1] = min[1]; m_dvalues[2] = min[2];
5161  m_dvalues[3] = max[0]; m_dvalues[4] = max[1]; m_dvalues[5] = max[2];
5163  }
5165  TK_Bounding (unsigned char opcode, double center[], double radius)
5166  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5167  m_dvalues[0] = center[0]; m_dvalues[1] = center[1]; m_dvalues[2] = center[2];
5168  m_dvalues[3] = radius;
5170  }
5171 
5174  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5175 
5176  TK_Status ReadAscii (BStreamFileToolkit & tk);
5177  TK_Status WriteAscii (BStreamFileToolkit & tk);
5178 };
5179 
5181 
5183 
5189 class BBINFILETK_API TK_Point : public BBaseOpcodeHandler {
5190  protected:
5191  float m_point[3];
5192  double m_dpoint[3];
5193  char m_options;
5194 
5195  public:
5197  TK_Point (unsigned char opcode)
5198  : BBaseOpcodeHandler (opcode) {
5199  m_point[0] = m_point[1] = m_point[2] = 0;
5200  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5201  m_options = 0;
5202  };
5203 
5206  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5207 
5208  TK_Status ReadAscii (BStreamFileToolkit & tk);
5209  TK_Status WriteAscii (BStreamFileToolkit & tk);
5210 
5211  void Reset(void) {
5212  m_point[0] = m_point[1] = m_point[2] = 0;
5213  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5214  m_options = 0;
5216  };
5217 
5218 
5219 
5221  void SetPoint (float x, float y, float z) { m_point[0] = x; m_point[1] = y; m_point[2] = z; }
5223  void SetPoint (float const p[]) { SetPoint (p[0], p[1], p[2]); }
5225  float const * GetPoint () const { return m_point; }
5226 
5228  void SetDPoint (double x, double y, double z) { m_dpoint[0] = x; m_dpoint[1] = y; m_dpoint[2] = z; }
5230  void SetDPoint (double const p[]) { SetDPoint (p[0], p[1], p[2]); }
5232  double const * GetDPoint () const { return m_dpoint; }
5233 
5235  void SetOptions (int o) { m_options = (char)o; }
5237  int GetOptions () const { return (int)m_options; }
5238 
5239 };
5240 
5241 
5242 
5244 
5249 class BBINFILETK_API TK_Line : public BBaseOpcodeHandler {
5250  protected:
5252  float m_points[6];
5254  double m_dpoints[6];
5255 
5256  public:
5258  TK_Line (unsigned char opcode = TKE_Line)
5259  : BBaseOpcodeHandler (opcode) {}
5260 
5263  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5264 
5265  TK_Status ReadAscii (BStreamFileToolkit & tk);
5266  TK_Status WriteAscii (BStreamFileToolkit & tk);
5267 
5269  void SetPoints (float x1, float y1, float z1, float x2, float y2, float z2) {
5270  m_points[0] = x1; m_points[1] = y1; m_points[2] = z1;
5271  m_points[3] = x2; m_points[4] = y2; m_points[5] = z2;
5272  }
5274  void SetPoints (float const s[], float const e[]) {
5275  SetPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5276  }
5278  void SetPoints (float const p[]) { SetPoints (&p[0], &p[3]); }
5280  float const * GetPoints () const { return m_points; }
5281 
5283  void SetDPoints (double x1, double y1, double z1, double x2, double y2, double z2) {
5284  m_dpoints[0] = x1; m_dpoints[1] = y1; m_dpoints[2] = z1;
5285  m_dpoints[3] = x2; m_dpoints[4] = y2; m_dpoints[5] = z2;
5286  }
5288  void SetDPoints (double const s[], double const e[]) {
5289  SetDPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5290  }
5292  void SetDPoints (double const p[]) { SetDPoints (&p[0], &p[3]); }
5294  double const * GetDPoints () const { return m_dpoints; }
5295 
5296 };
5297 
5298 
5299 
5301 
5308 class BBINFILETK_API TK_Polypoint : public BBaseOpcodeHandler {
5309  protected:
5310  int m_count;
5312  float * m_points;
5313  double * m_dpoints;
5316  void set_points (int count, float const points[] = 0) { SetPoints (count, points); }
5317  public:
5321  TK_Polypoint (unsigned char opcode)
5322  : BBaseOpcodeHandler (opcode), m_count (0), m_allocated (0), m_points (0), m_dpoints (0) {}
5323  ~TK_Polypoint();
5324 
5327  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5328 
5329  TK_Status ReadAscii (BStreamFileToolkit & tk);
5330  TK_Status WriteAscii (BStreamFileToolkit & tk);
5331 
5332  void Reset ();
5333 
5336  void SetPoints (int count, float const points[] = 0);
5338  float const * GetPoints () const { return m_points; }
5340  float * GetPoints () { return m_points; }
5341 
5344  void SetDPoints (int count, double const points[] = 0);
5346  double const * GetDPoints () const { return m_dpoints; }
5348  double * GetDPoints () { return m_dpoints; }
5349 
5351  int GetCount () const { return m_count; }
5352 
5353 };
5354 
5355 
5356 
5357 
5358 #define NC_HAS_WEIGHTS 0x01
5359 #define NC_HAS_KNOTS 0x02
5360 #define NC_HAS_START 0x04
5361 #define NC_HAS_END 0x08
5362 
5363 
5369 class BBINFILETK_API TK_NURBS_Curve : public BBaseOpcodeHandler {
5370  protected:
5371  unsigned char m_optionals;
5372  unsigned char m_degree;
5377  float *m_weights;
5378  float *m_knots;
5379  float m_start;
5380  float m_end;
5382  void set_curve (int degree, int control_count, float const points[] = 0,
5384  float const weights[] = 0, float const knots[] = 0,
5385  float start = 0.0f, float end = 1.0f);
5386  public:
5387  TK_NURBS_Curve();
5388  ~TK_NURBS_Curve();
5389 
5392  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5393 
5394  TK_Status ReadAscii (BStreamFileToolkit & tk);
5395  TK_Status WriteAscii (BStreamFileToolkit & tk);
5396 
5397  void Reset ();
5398 
5400  void SetCurve (int degree, int control_count, float const points[] = 0,
5401  float const weights[] = 0, float const knots[] = 0,
5402  float start = 0.0f, float end = 1.0f) {
5403  set_curve (degree, control_count, points, weights, knots, start, end);
5404  }
5405  void SetDCurve (int degree, int control_count, double const points[] = 0,
5406  float const weights[] = 0, float const knots[] = 0,
5407  float start = 0.0f, float end = 1.0f);
5408 
5409  float const * GetPoints () const { return m_control_points; }
5410  float * GetPoints () { return m_control_points; }
5411  double const * GetDPoints () const { return m_dcontrol_points; }
5412  double * GetDPoints () { return m_dcontrol_points; }
5414  int GetDegree () const { return m_degree; }
5415  int GetCount () const { return m_control_point_count; }
5416  float const * GetWeights () const { return m_weights; }
5417  float * GetWeights () { return m_weights; }
5418  float const * GetKnots () const { return m_knots; }
5419  float * GetKnots () { return m_knots; }
5421  void SetStart (float s) { m_start = s; }
5422  float GetStart () const { return m_start; }
5423  void SetEnd (float e) { m_end = e; }
5424  float GetEnd () const { return m_end; }
5426  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5427  int GetOptions () const { return m_optionals; }
5429 };
5430 
5431 
5432 
5433 
5434 
5435 #define NS_HAS_WEIGHTS 0x01
5436 #define NS_HAS_KNOTS 0x02
5437 #define NS_HAS_TRIMS 0x04
5438 
5439 #define NS_TRIM_END 0
5440 #define NS_TRIM_POLY 1
5441 #define NS_TRIM_CURVE 2
5442 #define NS_TRIM_COLLECTION 3
5443 #define NS_TRIM_LAST_KNOWN_TYPE 3
5444 
5445 #define NS_TRIM_KEEP 0x01
5446 #define NS_TRIM_HAS_WEIGHTS 0x02
5447 #define NS_TRIM_HAS_KNOTS 0x04
5448 
5449 
5456 class BBINFILETK_API HT_NURBS_Trim : public BBaseOpcodeHandler {
5457  friend class TK_NURBS_Surface;
5458  protected:
5459  //first 5 are relevant to polys and curves
5462  unsigned char m_type;
5463  int m_count;
5464  float * m_points;
5465  //next 6 are specific to curves
5466  unsigned char m_degree;
5467  unsigned char m_options;
5468  float * m_weights;
5469  float * m_knots;
5470  float m_start_u;
5471  float m_end_u;
5475  HT_NURBS_Trim();
5476  TK_Status read_collection(BStreamFileToolkit & tk);
5477  TK_Status write_collection(BStreamFileToolkit & tk);
5480  public:
5481  ~HT_NURBS_Trim();
5482  void SetPoly (int count, float const points[] = 0);
5483  void SetCurve (int degree, int control_count, float const points[] = 0,
5484  float const weights[] = 0, float const knots[] = 0, float start_u = 0, float end_u = 1);
5485  void SetCollection ();
5486  HT_NURBS_Trim * PrependCollection();
5487  void SetOptions (int o) { m_options = (unsigned char)o; }
5488  void SetList (HT_NURBS_Trim *node) { m_list = node; }
5489  void SetNext (HT_NURBS_Trim *next) { m_next = next; }
5490  void SetStart(float start) { m_start_u = start; }
5491  void SetEnd(float end) { m_end_u = end; }
5492 
5495 
5498 
5499  TK_Status read_collection_ascii(BStreamFileToolkit & tk);
5500  TK_Status write_collection_ascii(BStreamFileToolkit & tk);
5501 
5503  HT_NURBS_Trim * GetNext (void) { return m_next; }
5504  HT_NURBS_Trim const * GetNext (void) const { return m_next; }
5506  int GetType () const { return m_type; }
5508  int GetCount () const { return m_count; }
5510  float const * GetPoints () const { return m_points; }
5512  float * GetPoints () { return m_points; }
5514  int GetDegree () const { return m_degree; }
5516  float GetStart() const { return m_start_u; }
5518  float GetEnd() const { return m_end_u; }
5520  int GetOptions () const { return m_options; }
5522  float const * GetWeights () const { return m_weights; }
5524  float * GetWeights () { return m_weights; }
5526  float const * GetKnots () const { return m_knots; }
5528  float * GetKnots () { return m_knots; }
5530  HT_NURBS_Trim const *GetList () const { return m_list; }
5532  HT_NURBS_Trim * GetList () { return m_list; }
5533 
5534 };
5535 
5537 
5542 class BBINFILETK_API TK_NURBS_Surface : public BBaseOpcodeHandler {
5543  protected:
5544  unsigned char m_optionals;
5545  unsigned char m_degree[2];
5546  int m_size[2];
5549  float * m_weights;
5550  float * m_u_knots;
5551  float * m_v_knots;
5557  public:
5558  TK_NURBS_Surface();
5559  ~TK_NURBS_Surface();
5560 
5563  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5564 
5565  TK_Status ReadAscii (BStreamFileToolkit & tk);
5566  TK_Status WriteAscii (BStreamFileToolkit & tk);
5567 
5568  void Reset ();
5570  void SetSurface (int u_degree, int v_degree, int u_size, int v_size,
5571  float const points[] = 0, float const weights[] = 0,
5572  float const u_knots[] = 0, float const v_knots[] = 0);
5573  void SetDSurface (int u_degree, int v_degree, int u_size, int v_size,
5574  double const points[] = 0, float const weights[] = 0,
5575  float const u_knots[] = 0, float const v_knots[] = 0);
5578  float const * GetPoints () const { return m_control_points; }
5580  float * GetPoints () { return m_control_points; }
5582  double const * GetDPoints () const { return m_dcontrol_points; }
5584  double * GetDPoints () { return m_dcontrol_points; }
5585 
5587  int GetUDegree () const { return m_degree[0]; }
5589  int GetVDegree () const { return m_degree[1]; }
5591  int GetUSize () const { return m_size[0]; }
5593  int GetVSize () const { return m_size[1]; }
5595  float const * GetWeights () const { return m_weights; }
5597  float * GetWeights () { return m_weights; }
5599  float const * GetUKnots () const { return m_u_knots; }
5601  float * GetUKnots () { return m_u_knots; }
5603  float const * GetVKnots () const { return m_v_knots; }
5605  float * GetVKnots () { return m_v_knots; }
5606 
5608  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5610  int GetOptions () const { return m_optionals; }
5611 
5613  HT_NURBS_Trim * NewTrim (int type = NS_TRIM_END);
5615  HT_NURBS_Trim * GetTrims () { return m_trims; }
5616 
5617 
5618 };
5619 
5621 
5626 class BBINFILETK_API TK_Area_Light : public BBaseOpcodeHandler {
5627  protected:
5628  int m_count;
5629  float * m_points;
5630  double * m_dpoints;
5631  char m_options;
5632 
5634  void set_points (int count, float const points[] = 0);
5635 
5636  public:
5639  : BBaseOpcodeHandler (TKE_Area_Light), m_count (0), m_points (0), m_dpoints (0), m_options (0) {}
5640  ~TK_Area_Light();
5641 
5644  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5645 
5646  TK_Status ReadAscii (BStreamFileToolkit & tk);
5647  TK_Status WriteAscii (BStreamFileToolkit & tk);
5648 
5649  void Reset ();
5650 
5655  void SetPoints (int count, float const points[] = 0) { set_points (count, points); }
5657  float const * GetPoints () const { return m_points; }
5659  float * GetPoints () { return m_points; }
5660 
5665  void SetDPoints (int count, double const points[] = 0) ;
5667  double const * GetDPoints () const { return m_dpoints; }
5669  double * GetDPoints () { return m_dpoints; }
5670 
5672  int GetCount () const { return m_count; }
5673 
5675  void SetOptions (int o) { m_options = (char)o; }
5677  int GetOptions () const { return (int)m_options; }
5678 };
5679 
5680 
5682 
5687 class BBINFILETK_API TK_Spot_Light : public BBaseOpcodeHandler {
5688  protected:
5689  float m_position[3];
5690  float m_target[3];
5691  double m_dposition[3];
5692  double m_dtarget[3];
5693  float m_outer;
5694  float m_inner;
5696  char m_options;
5697 
5698  public:
5701  : BBaseOpcodeHandler (TKE_Spot_Light), m_options (0) {}
5702 
5705  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5706 
5707  TK_Status ReadAscii (BStreamFileToolkit & tk);
5708  TK_Status WriteAscii (BStreamFileToolkit & tk);
5709 
5711  void SetPosition (float x, float y, float z)
5712  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
5714  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
5716  float const * GetPosition () const { return m_position; }
5717 
5719  void SetDPosition (double x, double y, double z)
5720  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
5722  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
5724  double const * GetDPosition () const { return m_dposition; }
5725 
5727  void SetTarget (float x, float y, float z)
5728  { m_target[0] = x; m_target[1] = y; m_target[2] = z; }
5730  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
5732  float const * GetTarget () const { return m_target; }
5733 
5735  void SetDTarget (double x, double y, double z)
5736  { m_dtarget[0] = x; m_dtarget[1] = y; m_dtarget[2] = z; }
5738  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
5740  double const * GetDTarget () const { return m_dtarget; }
5741 
5743  void SetOuter (float o) { m_outer = o; }
5745  float GetOuter () const { return m_outer; }
5746 
5748  void SetInner (float i) { m_inner = i; }
5750  float GetInner () const { return m_inner; }
5751 
5753  void SetConcentration (float c) { m_concentration = c; }
5755  float GetConcentration () const { return m_concentration; }
5756 
5758  void SetOptions (int o) { m_options = (char)o; }
5760  int GetOptions () const { return (int)m_options; }
5761 };
5762 
5763 
5765 
5770 class BBINFILETK_API TK_Cutting_Plane : public BBaseOpcodeHandler {
5771  protected:
5772  float * m_planes;
5773  double * m_dplanes;
5774  int m_count;
5775 
5776  public:
5779  : BBaseOpcodeHandler (TKE_Cutting_Plane), m_planes (0), m_dplanes (0), m_count (0) {}
5780  ~TK_Cutting_Plane ();
5781 
5784  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5785 
5786  TK_Status ReadAscii (BStreamFileToolkit & tk);
5787  TK_Status WriteAscii (BStreamFileToolkit & tk);
5788 
5789  void Reset ();
5790 
5792  void SetPlanes (int count, float const p[]=0);
5794  void SetDPlanes (int count, double const p[]=0);
5795 
5797  void SetPlane (float a, float b, float c, float d)
5798  { SetPlanes(1);
5799  m_planes[0] = a; m_planes[1] = b; m_planes[2] = c; m_planes[3] = d; }
5801  void SetDPlane (double a, double b, double c, double d)
5802  { SetDPlanes(1);
5803  m_dplanes[0] = a; m_dplanes[1] = b; m_dplanes[2] = c; m_dplanes[3] = d; }
5804 
5806  void SetPlane (float const p[]) { SetPlanes (1, p); }
5808  void SetDPlane (double const p[]) { SetDPlanes (1, p); }
5809 
5811  float const * GetPlane () const { return m_planes; }
5813  double const * GetDPlane () const { return m_dplanes; }
5814 
5816  float const * GetPlanes () const { return m_planes; }
5818  double const * GetDPlanes () const { return m_dplanes; }
5819 
5821  int GetCount () const { return m_count; }
5822 };
5823 
5824 
5826 
5833 class BBINFILETK_API TK_Circle : public BBaseOpcodeHandler {
5834  protected:
5835  float m_points[9];
5836  float m_center[3];
5837  double m_dpoints[9];
5838  double m_dcenter[3];
5839  unsigned char m_flags;
5842  public:
5844  TK_Circle (unsigned char opcode)
5845  : BBaseOpcodeHandler (opcode), m_flags (0) {}
5846 
5849  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5850 
5851  TK_Status ReadAscii (BStreamFileToolkit & tk);
5852  TK_Status WriteAscii (BStreamFileToolkit & tk);
5853 
5854  void Reset ();
5855 
5857  void SetStart (float x, float y, float z) {
5858  m_points[0] = x; m_points[1] = y; m_points[2] = z;
5859  }
5861  void SetStart (float const s[]) {
5862  SetStart (s[0], s[1], s[2]);
5863  }
5865  void SetMiddle (float x, float y, float z) {
5866  m_points[3] = x; m_points[4] = y; m_points[5] = z;
5867  }
5869  void SetMiddle (float const m[]) {
5870  SetMiddle (m[0], m[1], m[2]);
5871  }
5873  void SetEnd (float x, float y, float z) {
5874  m_points[6] = x; m_points[7] = y; m_points[8] = z;
5875  }
5877  void SetEnd (float const e[]) {
5878  SetEnd (e[0], e[1], e[2]);
5879  }
5881  void SetCenter (float x, float y, float z) {
5882  m_center[0] = x; m_center[1] = y; m_center[2] = z;
5883  m_flags = TKO_Circular_Center;
5884  }
5886  void SetCenter (float const c[]) {
5887  if (c) SetCenter (c[0], c[1], c[2]);
5888  else m_flags = 0;
5889  }
5891  void SetPoints (float const s[], float const m[], float const e[],
5892  float const c[] = 0) {
5893  SetStart (s); SetMiddle (m); SetEnd (e); SetCenter (c);
5894  }
5895 
5897  float const * GetStart () const { return &m_points[0]; }
5899  float const * GetMiddle () const { return &m_points[3]; }
5901  float const * GetEnd () const { return &m_points[6]; }
5903  float const * GetCenter () const { return (m_flags & TKO_Circular_Center) ? m_center : 0; }
5904 
5906  void SetDStart (double x, double y, double z) {
5907  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
5908  }
5910  void SetDStart (double const s[]) {
5911  SetDStart (s[0], s[1], s[2]);
5912  }
5914  void SetDMiddle (double x, double y, double z) {
5915  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
5916  }
5918  void SetDMiddle (double const m[]) {
5919  SetDMiddle (m[0], m[1], m[2]);
5920  }
5922  void SetDEnd (double x, double y, double z) {
5923  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
5924  }
5926  void SetDEnd (double const e[]) {
5927  SetDEnd (e[0], e[1], e[2]);
5928  }
5930  void SetDCenter (double x, double y, double z) {
5931  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
5932  m_flags = TKO_Circular_Center;
5933  }
5935  void SetDCenter (double const c[]) {
5936  if (c) SetDCenter (c[0], c[1], c[2]);
5937  else m_flags = 0;
5938  }
5940  void SetDPoints (double const s[], double const m[], double const e[],
5941  double const c[] = 0) {
5942  SetDStart (s); SetDMiddle (m); SetDEnd (e); SetDCenter (c);
5943  }
5944 
5946  double const * GetDStart () const { return &m_dpoints[0]; }
5948  double const * GetDMiddle () const { return &m_dpoints[3]; }
5950  double const * GetDEnd () const { return &m_dpoints[6]; }
5952  double const * GetDCenter () const { return (m_flags & TKO_Circular_Center) ? m_dcenter : 0; }
5953 };
5954 
5955 
5957 
5964 class BBINFILETK_API TK_Ellipse : public BBaseOpcodeHandler {
5965  protected:
5966  float m_points[9];
5967  double m_dpoints[9];
5968  float m_limits[2];
5970  public:
5972  TK_Ellipse (unsigned char opcode)
5973  : BBaseOpcodeHandler (opcode) {}
5974 
5977  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5978 
5979  TK_Status ReadAscii (BStreamFileToolkit & tk);
5980  TK_Status WriteAscii (BStreamFileToolkit & tk);
5981 
5983  void SetCenter (float x, float y, float z) {
5984  m_points[0] = x; m_points[1] = y; m_points[2] = z;
5985  }
5987  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
5989  float const * GetCenter () const { return &m_points[0]; }
5990 
5992  void SetMajor (float x, float y, float z) {
5993  m_points[3] = x; m_points[4] = y; m_points[5] = z;
5994  }
5996  void SetMajor (float const m[]) { SetMajor (m[0], m[1], m[2]); }
5998  float const * GetMajor () const { return &m_points[3]; }
5999 
6001  void SetMinor (float x, float y, float z) {
6002  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6003  }
6005  void SetMinor (float const m[]) { SetMinor (m[0], m[1], m[2]); }
6007  float const * GetMinor () const { return &m_points[6]; }
6008 
6009 
6011  void SetDCenter (double x, double y, double z) {
6012  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6013  }
6015  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6017  double const * GetDCenter () const { return &m_dpoints[0]; }
6018 
6020  void SetDMajor (double x, double y, double z) {
6021  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6022  }
6024  void SetDMajor (double const m[]) { SetDMajor (m[0], m[1], m[2]); }
6026  double const * GetDMajor () const { return &m_dpoints[3]; }
6027 
6029  void SetDMinor (double x, double y, double z) {
6030  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6031  }
6033  void SetDMinor (double const m[]) { SetDMinor (m[0], m[1], m[2]); }
6035  double const * GetDMinor () const { return &m_dpoints[6]; }
6036 
6038  void SetLimits (float s, float e) {
6039  m_limits[0] = s; m_limits[1] = e;
6040  }
6042  float const * GetLimits () const { return m_limits; }
6043 };
6044 
6045 
6047 
6054 class BBINFILETK_API TK_Sphere : public BBaseOpcodeHandler {
6055  protected:
6056  unsigned char m_flags;
6057  float m_center[3];
6058  float m_radius;
6059  float m_axis[3];
6060  float m_ortho[3];
6061  double m_dcenter[3];
6062  double m_dradius;
6063  double m_daxis[3];
6064  double m_dortho[3];
6066  public:
6069  : BBaseOpcodeHandler (TKE_Sphere) { Reset(); }
6070 
6073  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6074 
6075  TK_Status ReadAscii (BStreamFileToolkit & tk);
6076  TK_Status WriteAscii (BStreamFileToolkit & tk);
6077 
6078  void Reset ();
6079 
6081  void SetCenter (float x, float y, float z) {
6082  m_center[0] = x; m_center[1] = y; m_center[2] = z;
6083  }
6085  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
6087  float const * GetCenter () const { return m_center; }
6088 
6089 
6091  void SetRadius (float r) { m_radius = r; }
6093  float GetRadius () const { return m_radius; }
6094 
6096  void SetAxis (float x, float y, float z) {
6097  m_axis[0] = x; m_axis[1] = y; m_axis[2] = z;
6098  if (x != 0.0f || y != 1.0f || z != 0.0f)
6099  m_flags &= ~TKSPH_NULL_AXIS;
6100  }
6102  void SetAxis (float const s[]) { SetAxis (s[0], s[1], s[2]); }
6104  float const * GetAxis () const { return m_axis; }
6105 
6107  void SetOrtho (float x, float y, float z) {
6108  m_ortho[0] = x; m_ortho[1] = y; m_ortho[2] = z;
6109  if (x != 1.0f || y != 0.0f || z != 0.0f)
6110  m_flags &= ~TKSPH_NULL_AXIS;
6111  }
6113  void SetOrtho (float const s[]) { SetOrtho (s[0], s[1], s[2]); }
6115  float const * GetOrtho () const { return m_ortho; }
6116 
6117 
6119  void SetDCenter (double x, double y, double z) {
6120  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
6121  }
6123  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6125  double const * GetDCenter () const { return m_dcenter; }
6126 
6127 
6129  void SetDRadius (double r) { m_dradius = r; }
6131  double GetDRadius () const { return m_dradius; }
6132 
6134  void SetDAxis (double x, double y, double z) {
6135  m_daxis[0] = x; m_daxis[1] = y; m_daxis[2] = z;
6136  if (x != 0.0f || y != 1.0f || z != 0.0f)
6137  m_flags &= ~TKSPH_NULL_AXIS;
6138  }
6140  void SetDAxis (double const s[]) { SetDAxis (s[0], s[1], s[2]); }
6142  double const * GetDAxis () const { return m_daxis; }
6143 
6145  void SetDOrtho (double x, double y, double z) {
6146  m_dortho[0] = x; m_dortho[1] = y; m_dortho[2] = z;
6147  if (x != 1.0f || y != 0.0f || z != 0.0f)
6148  m_flags &= ~TKSPH_NULL_AXIS;
6149  }
6151  void SetDOrtho (double const s[]) { SetDOrtho (s[0], s[1], s[2]); }
6153  double const * GetDOrtho () const { return m_dortho; }
6154 
6155 
6159  enum Flags {
6160  TKSPH_NONE = 0x0,
6161  TKSPH_NULL_AXIS = 0x1
6162  };
6163 
6164 };
6165 
6166 
6168 
6175 class BBINFILETK_API TK_Cylinder : public BBaseOpcodeHandler {
6176  protected:
6177  float m_axis[6];
6178  float m_radius;
6179  double m_daxis[6];
6180  double m_dradius;
6181  unsigned char m_flags;
6183  public:
6186  : BBaseOpcodeHandler (TKE_Cylinder) {}
6187 
6190  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6191 
6192  TK_Status ReadAscii (BStreamFileToolkit & tk);
6193  TK_Status WriteAscii (BStreamFileToolkit & tk);
6194 
6196  void SetAxis (float x1, float y1, float z1, float x2, float y2, float z2) {
6197  m_axis[0] = x1; m_axis[1] = y1; m_axis[2] = z1;
6198  m_axis[3] = x2; m_axis[4] = y2; m_axis[5] = z2;
6199  }
6201  void SetAxis (float const s[], float const e[]) { SetAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6203  void SetAxis (float const a[]) { SetAxis (&a[0], &a[3]); }
6205  float const * GetAxis () const { return m_axis; }
6207  float const * GetStart () const { return &m_axis[0]; }
6209  float const * GetEnd () const { return &m_axis[3]; }
6210 
6212  void SetRadius (float r) { m_radius = r; }
6214  float GetRadius () const { return m_radius; }
6215 
6216 
6218  void SetDAxis (double x1, double y1, double z1, double x2, double y2, double z2) {
6219  m_daxis[0] = x1; m_daxis[1] = y1; m_daxis[2] = z1;
6220  m_daxis[3] = x2; m_daxis[4] = y2; m_daxis[5] = z2;
6221  }
6223  void SetDAxis (double const s[], double const e[]) { SetDAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6225  void SetDAxis (double const a[]) { SetDAxis (&a[0], &a[3]); }
6227  double const * GetDAxis () const { return m_daxis; }
6229  double const * GetDStart () const { return &m_daxis[0]; }
6231  double const * GetDEnd () const { return &m_daxis[3]; }
6232 
6234  void SetDRadius (double r) { m_dradius = r; }
6236  double GetDRadius () const { return m_dradius; }
6237 
6238 
6240  void SetCaps (int f) { m_flags = (unsigned char)f; }
6242  int GetCaps () const { return m_flags; }
6243 
6248  TKCYL_NONE = 0,
6249  TKCYL_FIRST = 1,
6250  TKCYL_SECOND = 2,
6251  TKCYL_BOTH = 3
6252  };
6253 
6254 };
6255 
6256 
6258 
6265 #include "BPolyhedron.h"
6266 
6267 class BBINFILETK_API TK_PolyCylinder : public TK_Polyhedron {
6268  protected:
6269  int m_count;
6270  float * m_points;
6271  double * m_dpoints;
6273  float * m_radii;
6274  double * m_dradii;
6275  unsigned char m_flags;
6276  float m_normals[6];
6278  public:
6281  : TK_Polyhedron (TKE_PolyCylinder), m_count (0), m_points (0), m_dpoints (0),
6282  m_radius_count (0), m_radii (0), m_dradii (0) {}
6283  ~TK_PolyCylinder();
6284 
6287  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6288 
6289  TK_Status ReadAscii (BStreamFileToolkit & tk);
6290  TK_Status WriteAscii (BStreamFileToolkit & tk);
6291 
6292  virtual void Reset ();
6293 
6298  TKCYL_NORMAL_FIRST = 0x04,
6299  TKCYL_NORMAL_SECOND = 0x08,
6300  TKCYL_OPTIONALS = 0x10
6301  };
6302 
6307  void SetPoints (int count, float const points[] = 0);
6309  float const * GetPoints () const { return m_points; }
6311  float * GetPoints () { return m_points; }
6312 
6317  void SetRadii (int count, float const radii[] = 0);
6319  void SetRadius (float radius) { SetRadii (1, &radius); }
6321  float const * GetRadii () const { return m_radii; }
6323  float * GetRadii () { return m_radii; }
6324 
6325 
6330  void SetDPoints (int count, double const points[] = 0);
6332  double const * GetDPoints () const { return m_dpoints; }
6334  double * GetDPoints () { return m_dpoints; }
6335 
6340  void SetDRadii (int count, double const radii[] = 0);
6342  void SetDRadius (double radius) { SetDRadii (1, &radius); }
6344  double const * GetDRadii () const { return m_dradii; }
6346  double * GetDRadii () { return m_dradii; }
6347 
6348 
6350  int GetCount () const { return m_count; }
6352  int GetRadiusCount () const { return m_radius_count; }
6353 
6354 
6355 
6356 
6358  void SetCaps (int f) { m_flags &= ~0x03; m_flags |= f; }
6360  int GetCaps () const { return m_flags & 0x03; }
6361 
6363  void SetEndNormal (int index, float const normal[] = 0) {
6364  int mask = 0x40 << index;
6365  if (normal == 0)
6366  m_flags &= ~mask;
6367  else {
6368  m_flags |= mask;
6369  m_normals[3*index+0] = normal[0];
6370  m_normals[3*index+1] = normal[1];
6371  m_normals[3*index+2] = normal[2];
6372  }
6373  }
6375  float const * GetEndNormal (int index) const {
6376  int mask = 0x40 << index;
6377  if (m_flags & mask)
6378  return &m_normals[3*index];
6379  else
6380  return 0;
6381  }
6382 };
6383 
6384 
6386 
6392 class BBINFILETK_API TK_Grid : public BBaseOpcodeHandler {
6393  protected:
6394  char m_type;
6395  float m_points[9];
6396  double m_dpoints[9];
6397  int m_counts[2];
6399  public:
6402  : BBaseOpcodeHandler (TKE_Grid) {}
6403 
6406  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6407 
6408  TK_Status ReadAscii (BStreamFileToolkit & tk);
6409  TK_Status WriteAscii (BStreamFileToolkit & tk);
6410 
6412  void SetOrigin (float x, float y, float z) {
6413  m_points[0] = x; m_points[1] = y; m_points[2] = z;
6414  }
6416  void SetOrigin (float const o[]) { SetOrigin (o[0], o[1], o[2]); }
6418  float const * GetOrigin () const { return &m_points[0]; }
6420  float * GetOrigin () { return &m_points[0]; }
6421 
6423  void SetRef1 (float x, float y, float z) {
6424  m_points[3] = x; m_points[4] = y; m_points[5] = z;
6425  }
6427  void SetRef1 (float const r[]) { SetRef1 (r[0], r[1], r[2]); }
6429  float const * GetRef1 () const { return &m_points[3]; }
6431  float * GetRef1 () { return &m_points[3]; }
6432 
6434  void SetRef2 (float x, float y, float z) {
6435  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6436  }
6438  void SetRef2 (float const r[]) { SetRef2 (r[0], r[1], r[2]); }
6440  float const * GetRef2 () const { return &m_points[6]; }
6442  float * GetRef2 () { return &m_points[6]; }
6443 
6444 
6446  void SetDOrigin (double x, double y, double z) {
6447  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6448  }
6450  void SetDOrigin (double const o[]) { SetDOrigin (o[0], o[1], o[2]);}
6452  double const * GetDOrigin () const { return &m_dpoints[0]; }
6454  double * GetDOrigin () { return &m_dpoints[0]; }
6455 
6457  void SetDRef1 (double x, double y, double z) {
6458  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6459  }
6461  void SetDRef1 (double const r[]) { SetDRef1 (r[0], r[1], r[2]); }
6463  double const * GetDRef1 () const { return &m_dpoints[3]; }
6465  double * GetDRef1 () { return &m_dpoints[3]; }
6466 
6468  void SetDRef2 (double x, double y, double z) {
6469  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6470  }
6472  void SetDRef2 (double const r[]) { SetDRef2 (r[0], r[1], r[2]); }
6474  double const * GetDRef2 () const { return &m_dpoints[6]; }
6476  double * GetDRef2 () { return &m_dpoints[6]; }
6477 
6478 
6480  void SetCounts (int c1, int c2) {
6481  m_counts[0] = c1; m_counts[1] = c2;
6482  }
6484  int const * GetCounts () const { return m_counts; }
6486  int * GetCounts () { return m_counts; }
6487 
6489  void SetType (int t) { m_type = (char)t; }
6491  int GetType () const { return (int)m_type; }
6492 };
6493 
6495 
6498  char * name;
6499 
6500  float color[3];
6501  float size;
6504  float slant;
6505  float rotation;
6506  float width_scale;
6507 
6508  unsigned short mask;
6509  unsigned short value;
6510 
6511  unsigned char size_units;
6512  unsigned char vertical_offset_units;
6513  unsigned char horizontal_offset_units;
6514 };
6515 
6516 
6518 
6524 class BBINFILETK_API TK_Text : public BBaseOpcodeHandler {
6525  protected:
6526  float m_position[3];
6527  double m_dposition[3];
6528  int m_length;
6530  char * m_string;
6531  unsigned char m_encoding;
6532  unsigned char m_options;
6533  unsigned char m_region_options;
6534  unsigned char m_region_fit;
6535  unsigned char m_region_count;
6536  float m_region[4*3];
6538  int * m_cursors;
6540  float * m_leaders;
6541  unsigned char * m_leader_flags;
6543  double * m_dleaders;
6544  unsigned char * m_dleader_flags;
6545  int m_count;
6548  int m_tmp;
6550  void set_string (char const * string);
6551  void set_string (int length);
6552 
6553  public:
6555  TK_Text (unsigned char opcode);
6556  ~TK_Text();
6557 
6560  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6561 
6562  TK_Status ReadAscii (BStreamFileToolkit & tk);
6563  TK_Status WriteAscii (BStreamFileToolkit & tk);
6564 
6565  void Reset ();
6566 
6568  void SetString (char const * string) { set_string (string); }
6570  void SetString (unsigned short const * string);
6572  void SetString (unsigned int const * string);
6574  void SetString (int length) { set_string (length); }
6576  char const * GetString () const { return m_string; }
6578  char * GetString () { return m_string; }
6579 
6581  void SetPosition (float x, float y, float z)
6582  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6584  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6586  float const * GetPosition () const { return &m_position[0]; }
6587 
6589  void SetDPosition (double x, double y, double z)
6590  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6592  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6594  double const * GetDPosition () const { return &m_dposition[0]; }
6595 
6597  void SetEncoding (int e) { m_encoding = (unsigned char)e; }
6599  int GetEncoding () const { return (int)m_encoding; }
6600 
6602  void SetTextRegion (int c, float const p[], int o=0, int f=0);
6604  int GetTextRegionCount () const { return (int)m_region_count; }
6606  float const * GetTextRegionPoints () const { return m_region; }
6608  int GetTextRegionOptions () const { return (int)m_region_options; }
6610  int GetTextRegionFitting () const { return (int)m_region_fit; }
6611 
6612 
6614  void SetStringCursors (int length, int * locations = 0);
6616  int GetStringCursorCount () const { return m_cursor_count; }
6618  int const * GetStringCursors () const { return m_cursors; }
6620  int * GetStringCursors () { return m_cursors; }
6621 
6623  void SetTextLeaders (int length, float * locations = 0, unsigned char * flags = 0);
6625  int GetTextLeaderCount () const { return m_leader_count; }
6627  float const * GetTextLeaders () const { return m_leaders; }
6629  float * GetTextLeaders () { return m_leaders; }
6631  unsigned char const * GetTextLeaderFlags () const { return m_leader_flags; }
6633  unsigned char * GetTextLeaderFlags () { return m_leader_flags; }
6634 
6636  void SetDTextLeaders (int length, double * locations = 0, unsigned char * flags = 0);
6638  int GetDTextLeaderCount () const { return m_dleader_count; }
6640  double const * GetDTextLeaders () const { return m_dleaders; }
6642  double * GetDTextLeaders () { return m_dleaders; }
6644  unsigned char const * GetDTextLeaderFlags () const { return m_dleader_flags; }
6646  unsigned char * GetDTextLeaderFlags () { return m_dleader_flags; }
6647 };
6648 
6650 
6652 
6658 class BBINFILETK_API TK_Font : public BBaseOpcodeHandler {
6659  protected:
6660  char * m_name;
6661  char * m_lookup;
6662  char * m_bytes;
6665  int m_length;
6666  unsigned char m_type;
6667  unsigned char m_encoding;
6669  void set_bytes (int size, char const * bytes = 0);
6672  void set_name (char const * string);
6674  void set_name (int length);
6676  void set_lookup (char const * string);
6678  void set_lookup (int length);
6679 
6680  public:
6682  TK_Font () : BBaseOpcodeHandler (TKE_Font),
6683  m_name (0), m_lookup (0), m_bytes (0), m_name_length (0), m_lookup_length (0), m_length (0),
6684  m_type (0), m_encoding (0) {}
6685  ~TK_Font();
6686 
6689  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6690 
6691  TK_Status ReadAscii (BStreamFileToolkit & tk);
6692  TK_Status WriteAscii (BStreamFileToolkit & tk);
6693 
6694  void Reset ();
6695 
6696 
6698  void SetType (int t) { m_type = (unsigned char)t;}
6700  int GetType () const { return (int)m_type; }
6701 
6706  void SetBytes (int size, char const * bytes = 0) { set_bytes (size, bytes); }
6708  int GetBytesCount () const { return m_length; }
6710  char const * GetBytes () const { return m_bytes; }
6712  char * GetBytes () { return m_bytes; }
6713 
6715  void SetName (char const * string) { set_name (string); }
6717  void SetName (int length) { set_name (length); }
6719  char const * GetName () const { return m_name; }
6721  char * GetName () { return m_name; }
6722 
6724  void SetLookup (char const * string) { set_lookup (string); }
6726  void SetLookup (int length) { set_lookup (length); }
6728  char const * GetLookup () const { return m_lookup; }
6730  char * GetLookup () { return m_lookup; }
6731 
6733  void SetEncoding (int e) { m_encoding = (unsigned char)e;}
6735  int GetEncoding () const { return (int)m_encoding; }
6736 };
6737 
6739 
6740 
6742 extern const int TK_Image_Bytes_Per_Pixel[];
6743 
6744 #ifndef DOXYGEN_SHOULD_SKIP_THIS
6745 
6746 class BBINFILETK_API2 TK_Image_Data_Buffer {
6747  protected:
6748  unsigned char * m_buffer;
6749  unsigned int m_allocated;
6750  unsigned int m_used;
6751 
6752  public:
6754  TK_Image_Data_Buffer() : m_buffer (0), m_allocated (0), m_used (0) {}
6755  ~TK_Image_Data_Buffer();
6756 
6757  void Resize (unsigned int size);
6758  void Expand (unsigned int size) { Resize (Size() + size); }
6759  void Reset ();
6760 
6761  unsigned int const & Size () const { return m_allocated; }
6762  unsigned int const & Used () const { return m_used; }
6763  unsigned int & Used () { return m_used; }
6764  unsigned char const * Buffer () const { return m_buffer; }
6765  unsigned char * Buffer () { return m_buffer; }
6766 };
6767 
6768 
6769 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
6770 
6771 
6773 
6779 class BBINFILETK_API2 TK_Image : public BBaseOpcodeHandler {
6780  protected:
6781  char * m_bytes;
6782  char * m_name;
6783  char * m_reference;
6784  float m_position[3];
6785  double m_dposition[3];
6786  int m_size[2];
6790  unsigned char m_format;
6791  unsigned int m_options;
6792  unsigned char m_compression;
6793  unsigned char m_bytes_format;
6794  float m_explicit_size[2];
6795  unsigned char m_explicit_units[2];
6796  TK_Image_Data_Buffer m_work_area[2];
6801  void set_data (int size, char const * bytes = 0, unsigned char data_format = TKO_Compression_None);
6804  void set_name (char const * string);
6806  void set_name (int length);
6807 
6809  TK_Status compress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6811  TK_Status decompress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6813  TK_Status read_jpeg_header ();
6814 
6815  public:
6817  TK_Image ();
6818  ~TK_Image();
6819 
6822  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6823 
6824  TK_Status ReadAscii (BStreamFileToolkit & tk);
6825  TK_Status WriteAscii (BStreamFileToolkit & tk);
6826  TK_Status compress_image_ascii (BStreamFileToolkit & tk);
6827 
6828 
6829  void Reset ();
6830 
6835  void SetBytes (int size, char const * bytes = 0,
6836  unsigned char data_format = TKO_Compression_None)
6837  { set_data (size, bytes, data_format); }
6839  char const * GetBytes () const { return m_bytes; }
6841  char * GetBytes () { return m_bytes; }
6842 
6844  void SetName (char const * string) { set_name (string); }
6846  void SetName (int length) { set_name (length); }
6848  char const * GetName () const { return m_name; }
6850  char * GetName () { return m_name; }
6851 
6853  void SetReference (char const * string);
6855  void SetReference (int length);
6857  char const * GetReference () const { return m_reference; }
6859  char * GetReference () { return m_reference; }
6860 
6862  void SetPosition (float x, float y, float z)
6863  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6865  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6867  float const * GetPosition () const { return &m_position[0]; }
6868 
6870  void SetDPosition (double x, double y, double z)
6871  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6873  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6875  double const * GetDPosition () const { return &m_dposition[0]; }
6876 
6878  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
6880  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
6882  int const * GetSize () const { return m_size; }
6883 
6885  void SetFormat (int f) { m_format = (unsigned char)(f & TKO_Image_Format_Mask); }
6887  int GetFormat () const { return (int)m_format; }
6888 
6890  void SetOptions (int f) { m_options = (unsigned char)(f & TKO_Image_Options_Mask); }
6892  int GetOptions () const { return (int)m_options; }
6893 
6895  void SetCompression (int c) { m_compression = (unsigned char)c; }
6897  int GetCompression () const { return (int)m_compression; }
6898 };
6899 
6900 
6902 
6904 
6910 class BBINFILETK_API2 TK_Texture : public BBaseOpcodeHandler {
6911  protected:
6912  char * m_name;
6914  char * m_image;
6915  char * m_camera;
6920  int m_flags;
6931  char m_layout;
6932  char m_tiling;
6933  float m_value_scale[2];
6934  int m_source_dimensions[3];
6935  char * m_transform;
6939  void set_name (int length);
6940  void set_name (char const * name);
6941  void set_image (int length);
6942  void set_image (char const * image);
6943  void set_transform (int length);
6944  void set_transform (char const * transform);
6945 
6946  public:
6948  TK_Texture () : BBaseOpcodeHandler (TKE_Texture),
6949  m_name (0), m_shader_source(0), m_image (0), m_camera (0),
6950  m_name_length (0), m_shader_source_length(0), m_image_length (0), m_camera_length (0),
6951  m_transform (0) {
6952  Reset();
6953  }
6954  ~TK_Texture();
6955 
6958  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6959 
6960  TK_Status ReadAscii (BStreamFileToolkit & tk);
6961  TK_Status WriteAscii (BStreamFileToolkit & tk);
6962 
6963  void Reset ();
6964 
6966  void SetName (char const * name) { set_name (name); }
6968  void SetName (int length) { set_name (length); }
6970  char const * GetName () const { return m_name; }
6972  char * GetName () { return m_name; }
6973 
6975  void SetShaderSource (char const * shader_source);
6977  void SetShaderSource (int length);
6979  char const * GetShaderSource () const { return m_shader_source; }
6981  char * GetShaderSource () { return m_shader_source; }
6982 
6984  void SetImage (char const * image) { set_image (image); }
6986  void SetImage (int length) { set_image (length); }
6988  char const * GetImage () const { return m_image; }
6990  char * GetImage () { return m_image; }
6991 
6993  void SetCamera (char const * camera);
6995  void SetCamera (int length);
6997  char const * GetCamera () const { return m_camera; }
6999  char * GetCamera () { return m_camera; }
7000 
7002  void SetFlags (int f) {
7003  m_flags = f;
7004  if ((f & TKO_Texture_Extended_Mask) != 0)
7005  m_flags |= TKO_Texture_Extended;
7006  }
7008  int GetFlags () const { return m_flags; }
7009 
7011  void SetParameterSource (int p) { m_param_source = (char)p; }
7013  int GetParameterSource () const { return (int)m_param_source; }
7014 
7016  void SetInterpolation (int p) { m_interpolation = (char)p; }
7018  int GetInterpolation () const { return (int)m_interpolation; }
7019 
7021  void SetDecimation (int p) { m_decimation = (char)p; }
7023  int GetDecimation () const { return (int)m_decimation; }
7024 
7026  void SetRedMapping (int p) { m_red_mapping = (char)p; }
7028  int GetRedMapping () const { return (int)m_red_mapping; }
7029 
7031  void SetGreenMapping (int p) { m_green_mapping = (char)p; }
7033  int GetGreenMapping () const { return (int)m_green_mapping; }
7034 
7036  void SetBlueMapping (int p) { m_blue_mapping = (char)p; }
7038  int GetBlueMapping () const { return (int)m_blue_mapping; }
7039 
7041  void SetAlphaMapping (int p) { m_alpha_mapping = (char)p; }
7043  int GetAlphaMapping () const { return (int)m_alpha_mapping; }
7044 
7046  void SetParameterFunction (int p) { m_param_function = (char)p; }
7048  int GetParameterFunction () const { return (int)m_param_function; }
7049 
7051  void SetLayout (int p) { m_layout = (char)p; }
7053  int GetLayout () const { return (int)m_layout; }
7054 
7056  void SetTiling (int p) { m_tiling = (char)p; }
7058  int GetTiling () const { return (int)m_tiling; }
7059 
7061  void SetValueScale (float v1, float v2) { m_value_scale[0] = v1; m_value_scale[1] = v2; }
7063  float const * GetValueScale () const { return m_value_scale; }
7064 
7066  void SetApplicationMode (int p) { m_apply_mode = (char)p; }
7068  int GetApplicationMode () const { return (int)m_apply_mode; }
7069 
7071  void SetParameterOffset (int p) { m_param_offset = (char)p; }
7073  int GetParameterOffset () const { return (int)m_param_offset; }
7074 
7079  void SetTransform (char const * transform) { set_transform (transform); }
7084  void SetTransform (int length) { set_transform (length); }
7086  char const * GetTransform () const { return m_transform; }
7088  char * GetTransform () { return m_transform; }
7089 };
7090 
7092 
7094 
7100 class BBINFILETK_API2 TK_Thumbnail : public BBaseOpcodeHandler {
7101  protected:
7102  unsigned char * m_bytes;
7104  int m_size[2];
7105  unsigned char m_format;
7107  public:
7109  TK_Thumbnail() : BBaseOpcodeHandler (TKE_Thumbnail), m_bytes (0), m_allocated (0), m_format (TKO_Thumbnail_Invalid) {}
7110  ~TK_Thumbnail();
7111 
7114  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7115 
7116  TK_Status ReadAscii (BStreamFileToolkit & tk);
7117  TK_Status WriteAscii (BStreamFileToolkit & tk);
7118 
7120  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
7121  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
7122  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
7123  void Reset ();
7124 
7129  void SetBytes (int size, unsigned char const * bytes = 0);
7131  unsigned char const * GetBytes () const { return m_bytes; }
7133  unsigned char * GetBytes () { return m_bytes; }
7134 
7136  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
7138  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
7140  int const * GetSize () const { return m_size; }
7141 
7143  void SetFormat (int f) { m_format = (unsigned char)f; }
7145  int GetFormat () const { return (int)m_format; }
7146 };
7147 
7148 
7150 
7152 
7157 class BBINFILETK_API2 TK_Glyph_Definition : public BBaseOpcodeHandler {
7158  protected:
7160  int m_size;
7161  char * m_name;
7162  char * m_data;
7164  public:
7166  TK_Glyph_Definition () : BBaseOpcodeHandler (TKE_Glyph_Definition),
7167  m_name_length (0), m_size (0),
7168  m_name (0), m_data (0) {}
7170 
7173  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7174 
7175  TK_Status ReadAscii (BStreamFileToolkit & tk);
7176  TK_Status WriteAscii (BStreamFileToolkit & tk);
7177 
7178  void Reset ();
7179 
7181  void SetName (char const * name);
7183  void SetName (int length);
7185  char const * GetName () const { return m_name; }
7187  char * GetName () { return m_name; }
7188 
7190  void SetDefinition (int size, char const * data = 0);
7192  int GetDefinitionSize () const { return m_size; }
7194  char const * GetDefinition () const { return m_data; }
7196  char * GetDefinition () { return m_data; }
7197 };
7198 
7199 
7201 
7206 class BBINFILETK_API2 TK_Shape_Definition : public BBaseOpcodeHandler {
7207  protected:
7209  int m_size;
7210  char * m_name;
7211  float * m_data;
7213  public:
7215  TK_Shape_Definition () : BBaseOpcodeHandler (TKE_Shape_Definition),
7216  m_name_length (0), m_size (0),
7217  m_name (0), m_data (0) {}
7219 
7222  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7223 
7224  TK_Status ReadAscii (BStreamFileToolkit & tk);
7225  TK_Status WriteAscii (BStreamFileToolkit & tk);
7226 
7227  void Reset ();
7228 
7230  void SetName (char const * name);
7232  void SetName (int length);
7234  char const * GetName () const { return m_name; }
7236  char * GetName () { return m_name; }
7237 
7239  void SetDefinition (int size, float const * data = 0);
7241  int GetDefinitionSize () const { return m_size; }
7243  float const * GetDefinition () const { return m_data; }
7245  float * GetDefinition () { return m_data; }
7246 };
7247 
7248 
7250 
7255 class BBINFILETK_API2 TK_Named_Style_Def : public BBaseOpcodeHandler {
7256  protected:
7258  char * m_name;
7261  char * m_segment;
7265  char * m_condition;
7269  bool m_follow;
7270 
7271  public:
7274  m_name_length (0), m_name (0),
7275  m_segment_length (0), m_segment (0) ,
7276  m_cond_length (0), m_cond_allocated (0), m_condition (0),
7277  m_key(-1), m_referee(0), m_follow(true) {}
7278  ~TK_Named_Style_Def();
7279 
7282  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7283 
7284  TK_Status ReadAscii (BStreamFileToolkit & tk);
7285  TK_Status WriteAscii (BStreamFileToolkit & tk);
7286 
7287  void Reset ();
7288 
7290  void SetName (char const * name);
7292  void SetName (int length);
7294  char const * GetName () const { return m_name; }
7296  char * GetName () { return m_name; }
7297 
7302  void SetSegment (char const * segment);
7307  void SetSegment (int length);
7311  char const * GetSegment () const { return m_segment; }
7316  char * GetSegment () { return m_segment; }
7317 };
7318 
7320 
7325 class BBINFILETK_API2 TK_Line_Style : public BBaseOpcodeHandler {
7326  protected:
7329  char * m_name;
7330  char * m_definition;
7332  public:
7334  TK_Line_Style () : BBaseOpcodeHandler (TKE_Line_Style),
7335  m_name_length (0), m_definition_length (0),
7336  m_name (0), m_definition (0) {}
7337  ~TK_Line_Style();
7338 
7341  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7342 
7343  TK_Status ReadAscii (BStreamFileToolkit & tk);
7344  TK_Status WriteAscii (BStreamFileToolkit & tk);
7345 
7346  void Reset ();
7347 
7349  void SetName (char const * name);
7351  void SetName (int length);
7353  char const * GetName () const { return m_name; }
7355  char * GetName () { return m_name; }
7356 
7358  void SetDefinition (char const * def);
7360  void SetDefinition (int length);
7362  char const * GetDefinition () const { return m_definition; }
7364  char * GetDefinition () { return m_definition; }
7365 };
7366 
7368 
7370 
7375 class BBINFILETK_API TK_Clip_Rectangle : public BBaseOpcodeHandler {
7376  protected:
7377  char m_options;
7378  float m_rect[4];
7380  public:
7383  : BBaseOpcodeHandler (TKE_Clip_Rectangle), m_options (0) {}
7384 
7387  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7388 
7389  TK_Status ReadAscii (BStreamFileToolkit & tk);
7390  TK_Status WriteAscii (BStreamFileToolkit & tk);
7391 
7392  void Reset ();
7393 
7395  void SetRectangle (float left, float right, float bottom, float top)
7396  { m_rect[0] = left; m_rect[1] = right; m_rect[2] = bottom; m_rect[3] = top; }
7398  void SetRectangle (float const * rect)
7399  { SetRectangle (rect[0], rect[1], rect[2], rect[3]); }
7401  float const * GetRectangle () const { return m_rect; }
7402 
7404  void SetOptions (int o) { m_options = (char)o; }
7406  int GetOptions () const { return (int)m_options; }
7407 };
7408 
7410 
7412 
7417 class BBINFILETK_API TK_Clip_Region : public BBaseOpcodeHandler {
7418  protected:
7419  char m_options;
7420  int m_count;
7421  float * m_points;
7422  double * m_dpoints;
7426  public:
7429  : BBaseOpcodeHandler (TKE_Clip_Region), m_options (0), m_count (0), m_points (0), m_dpoints (0), m_complex (0) {}
7430  ~TK_Clip_Region();
7431 
7434  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7435 
7436  TK_Status ReadAscii (BStreamFileToolkit & tk);
7437  TK_Status WriteAscii (BStreamFileToolkit & tk);
7438 
7439  void Reset ();
7440 
7445  void SetPoints (int count, float const points[] = 0);
7447  float const * GetPoints () const { return m_points; }
7449  float * GetPoints () { return m_points; }
7450 
7455  void SetDPoints (int count, double const points[] = 0);
7457  double const * GetDPoints () const { return m_dpoints; }
7459  double * GetDPoints () { return m_dpoints; }
7460 
7461 
7463  int GetCount () const { return m_count; }
7464 
7465 
7467  void SetOptions (int o) { m_options = (char)o; }
7469  int GetOptions () const { return (int)m_options; }
7470 };
7471 
7472 
7474 
7476 
7481 class BBINFILETK_API TK_Complex_Clip_Region : public BBaseOpcodeHandler {
7482  protected:
7483  char m_options;
7484  int m_loops;
7485  int m_total;
7486  int * m_lengths;
7487  float * m_points;
7488  double * m_dpoints;
7490  public:
7493  : BBaseOpcodeHandler (TKE_Complex_Clip_Region), m_options (0), m_loops (0), m_total (0),
7494  m_lengths (0), m_points (0), m_dpoints (0) {}
7496 
7499  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7500 
7501  TK_Status ReadAscii (BStreamFileToolkit & tk);
7502  TK_Status WriteAscii (BStreamFileToolkit & tk);
7503 
7504  void Reset ();
7505 
7510  void SetPoints (int count, float const points[] = 0);
7512  float const * GetPoints () const { return m_points; }
7514  float * GetPoints () { return m_points; }
7515 
7520  void SetDPoints (int count, double const points[] = 0);
7522  double const * GetDPoints () const { return m_dpoints; }
7524  double * GetDPoints () { return m_dpoints; }
7525 
7526 
7531  void SetLengths (int count, int const lengths[] = 0);
7533  int const * GetLengths () const { return m_lengths; }
7535  int * GetLengths () { return m_lengths; }
7536 
7537 
7539  int GetTotal () const { return m_total; }
7541  int GetLoops () const { return m_loops; }
7542 
7543 
7545  void SetOptions (int o) { m_options = (char)o; }
7547  int GetOptions () const { return (int)m_options; }
7548 };
7549 
7550 
7552 
7554 
7570 class BBINFILETK_API2 TK_User_Data : public BBaseOpcodeHandler {
7571  protected:
7572  int m_size;
7573  unsigned char * m_data;
7576  void set_data (int size, unsigned char const * bytes = 0);
7578 
7579  public:
7582  : BBaseOpcodeHandler (TKE_Start_User_Data), m_size (0), m_data (0), m_buffer_size(0) {}
7583  ~TK_User_Data();
7584 
7587  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7588 
7589  TK_Status ReadAscii (BStreamFileToolkit & tk);
7590  TK_Status WriteAscii (BStreamFileToolkit & tk);
7591 
7593  void Reset ();
7594 
7599  void SetUserData (int size, unsigned char const * bytes = 0) { set_data (size, bytes); }
7601  unsigned char const * GetUserData () const { return m_data; }
7603  unsigned char * GetUserData () { return m_data; }
7605  int GetSize () const { return m_size; }
7606 
7608  void Resize (int size);
7609 
7611  void SetSize (int size);
7612 };
7613 
7614 
7616 
7618 
7630 class BBINFILETK_API2 TK_Material : public BBaseOpcodeHandler {
7631  protected:
7633 
7636  struct vlist_s *m_data;
7637 
7638  public:
7640  TK_Material () : BBaseOpcodeHandler (TKE_Material), m_total_size(0), m_data(0) {}
7641  ~TK_Material();
7642 
7645  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7646  void Reset ();
7647 
7648  TK_Status PushUserData (char const *buffer, int buffer_size, bool tally_total_size = true);
7649  TK_Status GetBlock (char const **ptr, int *buffer_size);
7650 };
7651 
7653 
7658 class BBINFILETK_API TK_XML : public BBaseOpcodeHandler {
7659  protected:
7660  int m_size;
7661  char * m_data;
7663  public:
7665  TK_XML (): BBaseOpcodeHandler (TKE_XML), m_size (0), m_data (0) {}
7666  ~TK_XML();
7667 
7670  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7671 
7672  TK_Status ReadAscii (BStreamFileToolkit & tk);
7673  TK_Status WriteAscii (BStreamFileToolkit & tk);
7674 
7676  void Reset ();
7677 
7682  void SetXML (int size, char const * data = 0);
7686  void AppendXML (int size, char const * data = 0);
7688  char const * GetXML () const { return m_data; }
7690  char * GetXML () { return m_data; }
7692  int GetSize () const { return m_size; }
7693 };
7694 
7695 
7696 
7698 
7704 class BBINFILETK_API TK_URL : public BBaseOpcodeHandler {
7705  protected:
7706  int m_length;
7708  char * m_string;
7710  public:
7713  m_length (0), m_allocated (0), m_string (0) {}
7714  ~TK_URL();
7715 
7718  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7719 
7720  TK_Status ReadAscii (BStreamFileToolkit & tk);
7721  TK_Status WriteAscii (BStreamFileToolkit & tk);
7722 
7723  void Reset ();
7724 
7726  void SetString (char const * string);
7728  void SetString (int length);
7730  char const * GetString () const { return m_string; }
7732  char * GetString () { return m_string; }
7733 };
7734 
7735 
7737 
7743 class BBINFILETK_API TK_External_Reference : public BBaseOpcodeHandler {
7744  protected:
7745  int m_length;
7747  char * m_string;
7749  public:
7750  TK_External_Reference () : BBaseOpcodeHandler (TKE_External_Reference),
7751  m_length (0), m_allocated (0), m_string (0) {}
7753 
7756  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7757 
7758  TK_Status ReadAscii (BStreamFileToolkit & tk);
7759  TK_Status WriteAscii (BStreamFileToolkit & tk);
7760 
7762  void Reset ();
7763 
7765  void SetString (char const * string);
7767  void SetString (int length);
7769  char const * GetString () const { return m_string; }
7771  char * GetString () { return m_string; }
7772 };
7773 
7774 
7776 
7782 class BBINFILETK_API TK_External_Reference_Unicode : public BBaseOpcodeHandler {
7783  protected:
7784  int m_length;
7786  wchar_t * m_string;
7788  public:
7789  TK_External_Reference_Unicode () : BBaseOpcodeHandler (TKE_External_Reference_Unicode),
7790  m_length (0), m_allocated (0), m_string (0) {}
7792 
7795  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7796 
7798  void Reset ();
7799 
7801  void SetString (__wchar_t const * string);
7802 #ifdef _MSC_VER
7803  void SetString (unsigned short const * string);
7804 #endif
7805 
7806  void SetString (int length);
7808  wchar_t const * GetString () const { return m_string; }
7810  wchar_t * GetString () { return m_string; }
7811 };
7812 
7813 
7814 
7815 
7817 
7823 class BBINFILETK_API TK_Image_XRef : public BBaseOpcodeHandler {
7824  protected:
7825  char * m_name;
7827  int m_size[2];
7828  char m_bpp;
7829 
7831  void set_name (char const * string);
7833  void set_name (int length);
7834 
7835  public:
7836  TK_Image_XRef () : BBaseOpcodeHandler (TKE_Image_XRef), m_name (0), m_name_length (0), m_bpp(0)
7837  { m_size[0] = m_size[1] = 0; }
7838  ~TK_Image_XRef();
7839 
7842  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7844  void Reset (void);
7845 
7847  void SetName (char const * string) { set_name (string);}
7849  void SetName (int length) { set_name (length);}
7851  char const * GetName (void) const { return m_name;}
7853  char * GetName (void) { return m_name;}
7854 
7855  void SetSize (int x, int y ) { m_size[0] = x; m_size[1] = y;}
7856  int const* GetSize (void) const { return m_size;}
7857  int * GetSize (void) { return m_size;}
7858 
7859  void SetBitDepth( char bpp ) { m_bpp = bpp;}
7860  char const GetBitDepth (void) const { return m_bpp;}
7861  char GetBitDepth (void) { return m_bpp;}
7862 };
7863 
7864 
7865 #endif //BOPCODE_HANDLER
7866 
void SetOptions(int o)
Definition: BOpcodeHandler.h:5487
void SetAxis(float const s[], float const e[])
Definition: BOpcodeHandler.h:6201
char ** m_isoline_patterns
for internal use only.
Definition: BOpcodeHandler.h:2296
float GetPreferenceCutoff() const
Definition: BOpcodeHandler.h:5097
char * GetString()
Definition: BOpcodeHandler.h:2181
void SetColorMarkerContrastLockMask(int m)
Definition: BOpcodeHandler.h:2841
float * m_control_points
Definition: BOpcodeHandler.h:5375
float const * GetRGB() const
Definition: BOpcodeHandler.h:1948
int m_nurbs_options_value
For internal use only.
Definition: BOpcodeHandler.h:2326
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:2440
int GetTechnology() const
Definition: BOpcodeHandler.h:2465
char m_isoline_position_type
for internal use only.
Definition: BOpcodeHandler.h:2290
BBaseOpcodeHandler * m_indices
Definition: BOpcodeHandler.h:4464
int GetOptions() const
Definition: BOpcodeHandler.h:5237
for further expansion
Definition: BOpcodeEnums.h:1127
void SetPoints(float const s[], float const e[])
Definition: BOpcodeHandler.h:5274
ID_Key last_key(BStreamFileToolkit &tk) const
obsolete
Definition: BOpcodeHandler.h:650
int value
For internal use only.
Definition: BOpcodeHandler.h:1059
int GetSelectionLevel() const
Definition: BOpcodeHandler.h:3952
int GetFlags() const
Definition: BOpcodeHandler.h:7008
void SetType(int t)
Definition: BOpcodeHandler.h:6489
virtual bool NeedsContext(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:227
unsigned char const * GetUserData() const
Definition: BOpcodeHandler.h:7601
int GetMaximumExtentMode() const
Definition: BOpcodeHandler.h:3888
TK_Clip_Rectangle()
Definition: BOpcodeHandler.h:7382
int m_name_length
Definition: BOpcodeHandler.h:7159
TK_Grid()
Definition: BOpcodeHandler.h:6401
int m_name_length
Definition: BOpcodeHandler.h:6788
char m_maximum_extent_level
internal use; maximum extent level
Definition: BOpcodeHandler.h:3801
char * GetName()
Definition: BOpcodeHandler.h:6721
void SetJoinCutoffAngle(int d)
Definition: BOpcodeHandler.h:2493
int GetLodMinimumTriangleCount() const
Definition: BOpcodeHandler.h:3409
int GetFormat() const
Definition: BOpcodeHandler.h:6887
void SetPixelThreshold(int c)
Definition: BOpcodeHandler.h:3880
float GetCutGeometryTolerance() const
Definition: BOpcodeHandler.h:3577
void SetDUpVector(double const u[])
Definition: BOpcodeHandler.h:4775
void SetVisibilityLockValue(int v)
Definition: BOpcodeHandler.h:2530
int const * GetSize() const
Definition: BOpcodeHandler.h:7140
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:646
int GetToleranceUnits() const
Definition: BOpcodeHandler.h:5010
float const * GetDefinition() const
Definition: BOpcodeHandler.h:7243
bool GetLogging() const
Definition: BStreamFileToolkit.h:1005
float * m_v_knots
Definition: BOpcodeHandler.h:5551
void SetPattern(int p)
Definition: BOpcodeHandler.h:4289
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:7103
void SetTransmissionName(int length)
Definition: BOpcodeHandler.h:1848
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5376
ID_Key GetIndex()
Definition: BOpcodeHandler.h:1410
void SetDUpVector(double x, double y, double z)
Definition: BOpcodeHandler.h:4772
void SetTransmission(float const rgb[])
Definition: BOpcodeHandler.h:1844
float const * GetField() const
Definition: BOpcodeHandler.h:4786
void SetLodFallback(int v)
Definition: BOpcodeHandler.h:3427
double * m_dpoints
Definition: BOpcodeHandler.h:6271
int GetCount() const
Definition: BOpcodeHandler.h:5672
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:6997
void SetColorMarkerContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3244
float * m_leaders
Definition: BOpcodeHandler.h:6540
void SetOptions(int o)
Definition: BOpcodeHandler.h:7404
char * m_name
Definition: BOpcodeHandler.h:7825
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char *b, int n)
Definition: BOpcodeHandler.h:296
int GetRadiusCount() const
Definition: BOpcodeHandler.h:6352
int const * GetIndices() const
Definition: BOpcodeHandler.h:4628
void SetColorLockValue(int v)
Definition: BOpcodeHandler.h:2553
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:6865
int GetForcedLockValue() const
Definition: BOpcodeHandler.h:2916
void SetInternalSelectionLimit(int i)
Definition: BOpcodeHandler.h:3848
int m_count
internal use
Definition: BOpcodeHandler.h:5628
int m_lookup_length
Definition: BOpcodeHandler.h:6664
int m_shader_source_length
Definition: BOpcodeHandler.h:6917
void SetDRef1(double const r[])
Definition: BOpcodeHandler.h:6461
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:5719
void SetGeneralDisplacement(int d)
Definition: BOpcodeHandler.h:2488
unsigned short mask
specifies which settings are active (i.e. the attributes for which we have an opinion at this point) ...
Definition: BOpcodeHandler.h:6508
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4549
bool NeedsTag() const
Definition: BOpcodeHandler.h:199
unsigned int NextOpcodeSequence()
Definition: BStreamFileToolkit.h:1036
int GetColorVertexLockMask() const
Definition: BOpcodeHandler.h:2777
TK_Header()
Definition: BOpcodeHandler.h:879
int m_values_length
internal use
Definition: BOpcodeHandler.h:2122
float const * GetWeights() const
Definition: BOpcodeHandler.h:5522
unsigned char m_degree
Definition: BOpcodeHandler.h:5466
int GetColorWindowForcedLockMask() const
Definition: BOpcodeHandler.h:3088
void SetAmbientUpVector(float const v[])
Definition: BOpcodeHandler.h:3736
Capping_Options
Definition: BOpcodeHandler.h:6297
int m_simple_reflection_blur
For internal use only.
Definition: BOpcodeHandler.h:2378
char const * GetView() const
Definition: BOpcodeHandler.h:4833
int m_shape_length
for internal use only
Definition: BOpcodeHandler.h:4913
unsigned char m_tolerance_units
for internal use only
Definition: BOpcodeHandler.h:4921
int GetColorLineContrastLockValue() const
Definition: BOpcodeHandler.h:2834
unsigned char m_opcode
The opcode being handled by this particular object.
Definition: BOpcodeHandler.h:65
float const * GetPlane() const
Definition: BOpcodeHandler.h:5811
int GetTextRegionFitting() const
Definition: BOpcodeHandler.h:6610
int GetStringCursorCount() const
Definition: BOpcodeHandler.h:6616
float GetHlrFaceDisplacement() const
Definition: BOpcodeHandler.h:3353
float * GetDefinition()
Definition: BOpcodeHandler.h:7245
int GetDebug() const
Definition: BOpcodeHandler.h:2475
int GetNURBSCurveBudget() const
Definition: BOpcodeHandler.h:3379
float const * GetAmbientUpVector() const
Definition: BOpcodeHandler.h:3738
char m_char
temporary
Definition: BOpcodeHandler.h:84
TK_Status PutGeneral(BStreamFileToolkit &tk)
Definition: BOpcodeHandler.h:491
int GetColorTextContrastLockMask() const
Definition: BOpcodeHandler.h:2892
static TK_Status GetData(BStreamFileToolkit &tk, short *s, int n)
Definition: BOpcodeHandler.h:264
float const * GetTextLeaders() const
Definition: BOpcodeHandler.h:6627
int GetGeometry() const
Definition: BOpcodeHandler.h:2103
void SetVertexDisplacement(int d)
Definition: BOpcodeHandler.h:2483
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5294
int m_size
Definition: BOpcodeHandler.h:7572
self-explanatory; (internal note: keep this listed last)
Definition: BOpcodeEnums.h:1064
void SetFormat(int f)
Definition: BOpcodeHandler.h:6885
int GetLodAlgorithm() const
Definition: BOpcodeHandler.h:3405
void SetOblique(float h, float v)
Definition: BOpcodeHandler.h:4801
void SetColorTextLockValue(int v)
Definition: BOpcodeHandler.h:2668
unsigned short m_pattern
internal use
Definition: BOpcodeHandler.h:4274
double * m_dpoints
Definition: BOpcodeHandler.h:7422
channel m_specular
internal use
Definition: BOpcodeHandler.h:1736
unsigned char const * GetBytes() const
Definition: BOpcodeHandler.h:7131
float vertical_offset
offset, positive or negative, from the standard position. units are specified separately in vertical_...
Definition: BOpcodeHandler.h:6502
self-explanatory
Definition: BOpcodeEnums.h:266
char * m_shader_source
Definition: BOpcodeHandler.h:6913
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:3083
TK_Status ReadAscii(BStreamFileToolkit &tk)
Deprecated.
void SetBufferSizeLimit(int l)
Definition: BOpcodeHandler.h:3320
float * GetPoints()
Definition: BOpcodeHandler.h:5580
short m_type
Definition: BOpcodeHandler.h:4412
unsigned char Opcode() const
Definition: BOpcodeHandler.h:164
void SetTechnology(int t)
Definition: BOpcodeHandler.h:2463
int m_surface_trim_budget
For internal use only.
Definition: BOpcodeHandler.h:2330
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:4755
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:3720
char m_options
for internal use only
Definition: BOpcodeHandler.h:5696
void SetPreferenceCutoffUnits(int u)
Definition: BOpcodeHandler.h:5100
void increase_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:659
HT_NURBS_Trim * m_list
Definition: BOpcodeHandler.h:5472
void SetDPoints(double const p[])
Definition: BOpcodeHandler.h:5292
void SetTolerance(float t)
Definition: BOpcodeHandler.h:5003
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:7088
void SetSimpleShadowBlur(int m)
Definition: BOpcodeHandler.h:3614
float m_surface_max_facet_angle
For internal use only.
Definition: BOpcodeHandler.h:2332
unsigned short m_mask
internal use
Definition: BOpcodeHandler.h:3973
float m_radius
Definition: BOpcodeHandler.h:6178
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:4745
int GetColorForcedLockValue() const
Definition: BOpcodeHandler.h:2961
int GetColorLineContrastLockMask() const
Definition: BOpcodeHandler.h:2823
char const * GetName() const
Definition: BOpcodeHandler.h:7294
void SetLodBounding(float const s[], float const e[])
Definition: BOpcodeHandler.h:3437
float m_hlr_weight
for internal use only.
Definition: BOpcodeHandler.h:2281
double * GetDTextLeaders()
Definition: BOpcodeHandler.h:6642
char * m_name
Definition: BOpcodeHandler.h:7258
void SetBufferOptionsMask(int v)
Definition: BOpcodeHandler.h:3312
int m_nurbs_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2325
float * m_control_points
Definition: BOpcodeHandler.h:5547
int m_loops
Definition: BOpcodeHandler.h:7484
void SetImage(int length)
Definition: BOpcodeHandler.h:6986
short color_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1065
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6733
Handles the TKE_Close_Segment opcode.
Definition: BOpcodeHandler.h:1229
int GetPattern() const
Definition: BOpcodeHandler.h:4291
Handles the TKE_Geometry_Options opcode.
Definition: BOpcodeHandler.h:3971
float const * GetCenter() const
Definition: BOpcodeHandler.h:6087
int m_up
internal use; specifies what geometry is selectable on mouse button up. For internal use only...
Definition: BOpcodeHandler.h:4077
int m_debug_allocated
Definition: BOpcodeHandler.h:71
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5667
int GetOrientationCount() const
Definition: BOpcodeHandler.h:4006
float const * GetPoints() const
Definition: BOpcodeHandler.h:7512
void SetDEnd(double const e[])
Definition: BOpcodeHandler.h:5926
int GetColorVertexLockValue() const
Definition: BOpcodeHandler.h:2788
TK_Unavailable(char opcode)
Definition: BOpcodeHandler.h:858
void SetOptions(char const *options)
Definition: BOpcodeHandler.h:4487
static TK_Status GetData(BStreamFileToolkit &tk, float *f, int n)
Definition: BOpcodeHandler.h:280
void SetColorFaceLockMask(int m)
Definition: BOpcodeHandler.h:2565
int GetUSize() const
Definition: BOpcodeHandler.h:5591
short color_window_mask
For internal use only.
Definition: BOpcodeHandler.h:1072
int m_allocated
Definition: BOpcodeHandler.h:7785
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1623
void SetSelectionCulling(int c)
Definition: BOpcodeHandler.h:3872
void SetAxis(float x, float y, float z)
Definition: BOpcodeHandler.h:6096
float m_max_distance
internal use; max distance
Definition: BOpcodeHandler.h:3806
void SetDPoints(double const s[], double const m[], double const e[], double const c[]=0)
Definition: BOpcodeHandler.h:5940
channel m_transmission
internal use
Definition: BOpcodeHandler.h:1738
Handles the TKE_Cylinder opcode.
Definition: BOpcodeHandler.h:6175
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:5987
float m_radius
Definition: BOpcodeHandler.h:6058
void Reset(void)
Definition: BOpcodeHandler.h:5211
char const * GetBytes() const
Definition: BOpcodeHandler.h:6839
Handles the TKE_Color_By_Value opcode.
Definition: BOpcodeHandler.h:1958
unsigned char m_flags
Definition: BOpcodeHandler.h:6056
char * m_string
internal use
Definition: BOpcodeHandler.h:2125
TK_Sphere()
Definition: BOpcodeHandler.h:6068
int GetTotal() const
Definition: BOpcodeHandler.h:7539
HLONG const * GetValues() const
Definition: BOpcodeHandler.h:4580
double * GetDRadii()
Definition: BOpcodeHandler.h:6346
////
Definition: BOpcodeEnums.h:49
double * m_dpoints
Definition: BOpcodeHandler.h:7488
float GetGreekingLimit() const
Definition: BOpcodeHandler.h:5050
void SetShadowMapResolution(int m)
Definition: BOpcodeHandler.h:3666
double * GetDOrigin()
Definition: BOpcodeHandler.h:6454
void SetInner(float i)
Definition: BOpcodeHandler.h:5748
unsigned char m_region_count
Definition: BOpcodeHandler.h:6535
TK_Conditional_Action()
Definition: BOpcodeHandler.h:4419
char const * GetImage() const
Definition: BOpcodeHandler.h:6988
void SetDPlane(double a, double b, double c, double d)
Definition: BOpcodeHandler.h:5801
options mask (unsigned char if file version is < 1805)
Definition: BOpcodeEnums.h:1368
void SetColorBackForcedLockMask(int m)
Definition: BOpcodeHandler.h:3152
int GetCount() const
Definition: BOpcodeHandler.h:5821
Handles the TKE_Termination and TKE_Pause opcodes.
Definition: BOpcodeHandler.h:1006
unsigned short m_contour_options
for internal use only.
Definition: BOpcodeHandler.h:2285
char * m_condition
Definition: BOpcodeHandler.h:7265
double * m_dpoints
internal use
Definition: BOpcodeHandler.h:5630
int GetMaximumExtentLevel() const
Definition: BOpcodeHandler.h:3892
TK_Thumbnail()
Definition: BOpcodeHandler.h:7109
void GetDTarget(double t[]) const
Definition: BOpcodeHandler.h:4759
void decrease_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:661
int GetLodNumCutoffs() const
Definition: BOpcodeHandler.h:3497
char m_options
relevant to TKE_Distant_Light and TKE_Local_Light only. See TKO_Light_Options.
Definition: BOpcodeHandler.h:5193
short color_vertex_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1088
int GetLodClamp() const
Definition: BOpcodeHandler.h:3417
int GetTransparentHSR() const
Definition: BOpcodeHandler.h:2455
int GetHSR() const
Definition: BOpcodeHandler.h:2450
void SetLookup(int length)
Definition: BOpcodeHandler.h:6726
void SetChannels(int c)
Definition: BOpcodeHandler.h:1788
near limit setting
Definition: BOpcodeEnums.h:1097
float m_end_u
Definition: BOpcodeHandler.h:5471
void SetName(int length)
Definition: BOpcodeHandler.h:6717
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:5714
short color_window_value
For internal use only.
Definition: BOpcodeHandler.h:1073
float m_cut_geometry_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2357
float * m_points
Definition: BOpcodeHandler.h:5464
type for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:645
bool validate_count(int count, int limit=1<< 24) const
Definition: BOpcodeHandler.h:690
void SetShadowMap(int m)
Definition: BOpcodeHandler.h:3661
void SetEnd(float x, float y, float z)
Definition: BOpcodeHandler.h:5873
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6592
double * GetDPoints()
Definition: BOpcodeHandler.h:5584
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:6912
char m_green_mapping
Definition: BOpcodeHandler.h:6927
char * GetSegment()
Definition: BOpcodeHandler.h:1341
int GetLockValue() const
Definition: BOpcodeHandler.h:2513
char * GetString()
Definition: BOpcodeHandler.h:7771
unsigned char m_encoding
Definition: BOpcodeHandler.h:6667
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:5158
Definition: BOpcodeHandler.h:4299
void SetBumpName(char const *name)
Definition: BOpcodeHandler.h:1881
void SetImageScale(float const s[])
Definition: BOpcodeHandler.h:3743
char * m_style
for internal use only
Definition: BOpcodeHandler.h:4916
void SetOrtho(float const s[])
Definition: BOpcodeHandler.h:6113
int GetColorTextLockValue() const
Definition: BOpcodeHandler.h:2673
int m_from_variant
internal use
Definition: BOpcodeHandler.h:1453
float const * GetDepthRange() const
Definition: BOpcodeHandler.h:3709
int m_mask
specifies which rendering options are active (and hence, which are valid). For internal use only...
Definition: BOpcodeHandler.h:4897
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:5730
virtual void Reset()
int m_mask
internal use; specifies which selectability settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4075
void SetGloss(float g)
Definition: BOpcodeHandler.h:1890
char const * GetTransform() const
Definition: BOpcodeHandler.h:7086
TK_Delete_Object()
Definition: BOpcodeHandler.h:1484
TK_Cutting_Plane()
Definition: BOpcodeHandler.h:5778
void SetCallback(int length)
Definition: BOpcodeHandler.h:2221
void SetMaximumExtentMode(int c)
Definition: BOpcodeHandler.h:3890
int m_hard_extent
internal use; hard extent
Definition: BOpcodeHandler.h:3802
static TK_Status PutData(BStreamFileToolkit &tk, char const &c)
Definition: BOpcodeHandler.h:450
void SetMoveDown(int m)
Definition: BOpcodeHandler.h:4135
void SetAxis(float const a[])
Definition: BOpcodeHandler.h:6203
void SetValue(float const triple[])
Definition: BOpcodeHandler.h:2006
int m_style_length
for internal use only
Definition: BOpcodeHandler.h:4914
wchar_t * m_string
Definition: BOpcodeHandler.h:7786
int m_internal_polyline
internal use
Definition: BOpcodeHandler.h:3792
int GetColorFaceForcedLockMask() const
Definition: BOpcodeHandler.h:2973
int m_min_triangle_count
For internal use only.
Definition: BOpcodeHandler.h:2314
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:6140
TK_Circle(unsigned char opcode)
Definition: BOpcodeHandler.h:5844
void SetOrderedWeight(int index, float weight)
Definition: BOpcodeHandler.h:3938
int m_flags
Definition: BOpcodeHandler.h:6920
char m_orientation_count
internal use
Definition: BOpcodeHandler.h:3976
int GetType() const
Definition: BOpcodeHandler.h:6700
static TK_Status GetData(BStreamFileToolkit &tk, float &f)
Definition: BOpcodeHandler.h:323
char m_layout
Definition: BOpcodeHandler.h:6931
static int flip(int i)
for internal use only
Definition: BOpcodeHandler.h:510
int GetColorLineLockMask() const
Definition: BOpcodeHandler.h:2616
int GetForceDefer() const
Definition: BOpcodeHandler.h:3957
char * GetXML()
Definition: BOpcodeHandler.h:7690
int m_leader_count
Definition: BOpcodeHandler.h:6539
int GetColorLineContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3226
double const * GetDPosition() const
Definition: BOpcodeHandler.h:4737
Handles the TKE_Selectability opcode.
Definition: BOpcodeHandler.h:4073
float * m_points
Definition: BOpcodeHandler.h:5312
int GetOptions() const
Definition: BOpcodeHandler.h:7406
void SetTransparentHSR(int t)
Definition: BOpcodeHandler.h:2453
int GetMoveDown() const
Definition: BOpcodeHandler.h:4140
Definition: BOpcodeEnums.h:363
double const * GetDField() const
Definition: BOpcodeHandler.h:4795
void SetSimpleReflectionVisibilityMask(int m)
Definition: BOpcodeHandler.h:3699
unsigned char m_format
Definition: BOpcodeHandler.h:7105
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:6319
int m_count
Definition: BOpcodeHandler.h:6545
int m_count
Definition: BOpcodeHandler.h:5463
void SetInternalShellSelectionLimit(int i)
Definition: BOpcodeHandler.h:3853
int GetDegree() const
Definition: BOpcodeHandler.h:5514
Handles the TKE_Glyph_Definition opcode.
Definition: BOpcodeHandler.h:7157
static void fix(int *i, int n)
for internal use only
Definition: BOpcodeHandler.h:535
int m_size
Definition: BOpcodeHandler.h:7660
void SetColorVertexContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3278
void SetView(char const *name)
Definition: BOpcodeHandler.h:4829
int m_edge_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2401
int m_knot_count_implicit
Definition: BOpcodeHandler.h:5374
int m_progress
Tracks the amount of data that has been read/written so far.
Definition: BOpcodeHandler.h:64
self-explanatory
Definition: BOpcodeEnums.h:1213
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:4725
short color_marker_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1087
int GetCaps() const
Definition: BOpcodeHandler.h:6360
int m_allocated
Definition: BOpcodeHandler.h:6529
void SetIndex(float val)
Definition: BOpcodeHandler.h:2106
int GetRelatedSelectionLimit() const
Definition: BOpcodeHandler.h:3845
unsigned char m_bytes_format
Definition: BOpcodeHandler.h:6793
void SetCylinderTessellation(int n)
Definition: BOpcodeHandler.h:3509
void SetRef2(float x, float y, float z)
Definition: BOpcodeHandler.h:6434
Handles the TKE_Dictionary_Locater opcode.
Definition: BOpcodeHandler.h:1672
void SetEnd(float const e[])
Definition: BOpcodeHandler.h:5877
char m_num_sphere
For internal use only.
Definition: BOpcodeHandler.h:2345
char m_options
Definition: BOpcodeHandler.h:7483
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:2391
int GetVisibilityLockValue() const
Definition: BOpcodeHandler.h:2535
float * m_u_knots
Definition: BOpcodeHandler.h:5550
int GetUnits() const
Definition: BOpcodeHandler.h:4265
extra item for selectability; refer to ::HC_Set_Selectability for a description
Definition: BOpcodeEnums.h:223
unsigned char * m_bytes
Definition: BOpcodeHandler.h:7102
int m_count
Definition: BOpcodeHandler.h:6269
void SetIndex(int i)
Definition: BOpcodeHandler.h:1273
void SetOrderedWeightsMask(int c)
Definition: BOpcodeHandler.h:3933
unsigned int m_options
Definition: BOpcodeHandler.h:6791
unsigned char m_hlr_hsr_algorithm
for internal use only.
Definition: BOpcodeHandler.h:2283
void SetAntiAlias(int m)
Definition: BOpcodeHandler.h:3765
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6873
float const * GetWeights() const
Definition: BOpcodeHandler.h:5416
float m_depth_peeling_min_area
For internal use only.
Definition: BOpcodeHandler.h:2396
int GetColorFaceForcedLockValue() const
Definition: BOpcodeHandler.h:2984
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1658
void SetLockMask(int m)
Definition: BOpcodeHandler.h:2506
void SetParameterSource(int p)
Definition: BOpcodeHandler.h:7011
extended bit
Definition: BOpcodeEnums.h:1408
char const * GetName() const
Definition: BOpcodeHandler.h:6719
void SetValue(int v)
Definition: BOpcodeHandler.h:3838
char * m_image
Definition: BOpcodeHandler.h:6914
unsigned char m_transforms
for internal use only
Definition: BOpcodeHandler.h:4925
Handles the TKE_Line_Style opcode.
Definition: BOpcodeHandler.h:7325
char m_options
Definition: BOpcodeHandler.h:7377
int GetApplicationMode() const
Definition: BOpcodeHandler.h:7068
int m_curve_budget
For internal use only.
Definition: BOpcodeHandler.h:2327
float * GetRef2()
Definition: BOpcodeHandler.h:6442
int GetColorWindowLockMask() const
Definition: BOpcodeHandler.h:2685
bool m_is_valid
internal use
Definition: BOpcodeHandler.h:5140
int m_name_length
Definition: BOpcodeHandler.h:7257
int GetLength()
Definition: BOpcodeHandler.h:4534
float m_value
for internal use only.
Definition: BOpcodeHandler.h:4242
char * m_name
internal use: name
Definition: BOpcodeHandler.h:4302
void SetCaps(int f)
Definition: BOpcodeHandler.h:6358
void SetLodOptionsMask(int v)
Definition: BOpcodeHandler.h:3395
void SetPreferenceCutoff(float s)
Definition: BOpcodeHandler.h:5095
void SetNames(int length)
Definition: BOpcodeHandler.h:4968
void SetNURBSSurfaceBudget(int b)
Definition: BOpcodeHandler.h:3385
TK_Tag(unsigned char opcode=TKE_Tag)
Definition: BOpcodeHandler.h:1613
int GetOptions() const
Definition: BOpcodeHandler.h:5610
int m_count
for internal use only
Definition: BOpcodeHandler.h:4546
char * m_transform
Definition: BOpcodeHandler.h:6935
char * m_name
Definition: BOpcodeHandler.h:4694
char const * GetEmissionName() const
Definition: BOpcodeHandler.h:1867
char const * GetSegment() const
Definition: BOpcodeHandler.h:7311
void SetOblique(float const o[])
Definition: BOpcodeHandler.h:4807
void SetSize(int const s[])
Definition: BOpcodeHandler.h:6880
short color_marker_value
For internal use only.
Definition: BOpcodeHandler.h:1069
int GetDTextLeaderCount() const
Definition: BOpcodeHandler.h:6638
int GetVisibilityForcedLockValue() const
Definition: BOpcodeHandler.h:2938
void SetColorFaceLockValue(int v)
Definition: BOpcodeHandler.h:2576
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:7692
int visibility_value
For internal use only.
Definition: BOpcodeHandler.h:1099
float * m_isoline_positions
for internal use only.
Definition: BOpcodeHandler.h:2292
int m_to_index
internal use
Definition: BOpcodeHandler.h:1454
void SetDPoints(double const s[], double const e[])
Definition: BOpcodeHandler.h:5288
int GetEncoding() const
Definition: BOpcodeHandler.h:6735
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int &i)
Definition: BOpcodeHandler.h:320
int GetAntiAlias() const
Definition: BOpcodeHandler.h:3767
char const * GetReference() const
Definition: BOpcodeHandler.h:6857
int GetSimpleShadowResolution() const
Definition: BOpcodeHandler.h:3621
char m_red_mapping
Definition: BOpcodeHandler.h:6926
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6862
int m_segment_length
Definition: BOpcodeHandler.h:7260
static TK_Status PutData(BStreamFileToolkit &tk, float const &f)
Definition: BOpcodeHandler.h:468
int GetLodNumRatios() const
Definition: BOpcodeHandler.h:3457
Handles the TKE_Texture opcode.
Definition: BOpcodeHandler.h:6910
int m_allocated
Definition: BOpcodeHandler.h:1173
TK_Status WriteAscii(BStreamFileToolkit &tk)
Deprecated.
unsigned char m_options
Definition: BOpcodeHandler.h:5467
Handles the TKE_Inlude_Segment TKE_Named_Style and TKE_Style_Segment opcodes.
Definition: BOpcodeHandler.h:1288
TK_Clip_Region()
Definition: BOpcodeHandler.h:7428
int GetColorFaceLockMask() const
Definition: BOpcodeHandler.h:2570
void SetNURBSOptionsValue(int v)
Definition: BOpcodeHandler.h:3373
void SetColorWindowContrastLockMask(int m)
Definition: BOpcodeHandler.h:2726
void SetMirror(float r, float g, float b)
Definition: BOpcodeHandler.h:1827
int m_length
Definition: BOpcodeHandler.h:4693
int GetVisibilityForcedLockMask() const
Definition: BOpcodeHandler.h:2927
void SetFogLimits(float const l[])
Definition: BOpcodeHandler.h:2500
float const * GetTarget() const
Definition: BOpcodeHandler.h:4747
void SetValue(int v0, int v1=0, int v2=0)
Definition: BOpcodeHandler.h:2443
int m_cut_geometry_edge_pattern_length
for internal use only.
Definition: BOpcodeHandler.h:2361
void SetRef1(float x, float y, float z)
Definition: BOpcodeHandler.h:6423
TK_Close_Segment()
Definition: BOpcodeHandler.h:1232
int GetColorTextForcedLockMask() const
Definition: BOpcodeHandler.h:3065
int GetColorWindowContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3145
char * GetCutGeometryEdgePattern()
Definition: BOpcodeHandler.h:3596
TK_Unicode_Options()
Definition: BOpcodeHandler.h:4513
self-explanatory
Definition: BOpcodeEnums.h:1377
float const * GetValue() const
Definition: BOpcodeHandler.h:2008
void SetSelectionBias(int c)
Definition: BOpcodeHandler.h:3876
float const * GetViewVolume() const
Definition: BOpcodeHandler.h:3919
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:4098
HT_NURBS_Trim * GetNext(void)
Definition: BOpcodeHandler.h:5503
float * GetLodThresholds()
Definition: BOpcodeHandler.h:3483
void SetColorLineContrastLockValue(int v)
Definition: BOpcodeHandler.h:2829
int m_index
internal use: simple value for recognised old forms
Definition: BOpcodeHandler.h:4303
void Set_General_Flags(int f)
Definition: BOpcodeHandler.h:170
float const * GetOblique() const
Definition: BOpcodeHandler.h:4809
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:6218
int GetColorVertexForcedLockMask() const
Definition: BOpcodeHandler.h:3180
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:5724
void SetColorFaceContrastLockMask(int m)
Definition: BOpcodeHandler.h:2703
char const * GetBumpName() const
Definition: BOpcodeHandler.h:1885
int GetGeneralDisplacement() const
Definition: BOpcodeHandler.h:2490
int GetGreekingMode() const
Definition: BOpcodeHandler.h:5060
unsigned char m_layout
for internal use only
Definition: BOpcodeHandler.h:4928
short color_edge_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1083
float * GetPoints()
Definition: BOpcodeHandler.h:7449
void SetString(char const *string)
Definition: BOpcodeHandler.h:6568
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6589
TK_Bounding(unsigned char opcode, float min[], float max[])
Definition: BOpcodeHandler.h:5146
void SetOptions(int o)
Definition: BOpcodeHandler.h:5758
void SetWindow(int n, float const w[])
Definition: BOpcodeHandler.h:4872
int m_max_degree
For internal use only.
Definition: BOpcodeHandler.h:2317
void SetLodRatios(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3448
float GetNearLimit() const
Definition: BOpcodeHandler.h:4819
TK_Font()
Definition: BOpcodeHandler.h:6682
float m_simple_reflection_yon
For internal use only.
Definition: BOpcodeHandler.h:2380
char * GetEnvironmentName()
Definition: BOpcodeHandler.h:1878
float const * GetStart() const
Definition: BOpcodeHandler.h:5897
float * GetPoints()
Definition: BOpcodeHandler.h:5340
int GetValue() const
Definition: BOpcodeHandler.h:4963
float const * GetPoints() const
Definition: BOpcodeHandler.h:6309
Does not handle any top level opcodes, but rather only the trim types allowable on nurbs surfaces...
Definition: BOpcodeHandler.h:5456
int GetColorLineContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3237
void SetColorLineLockMask(int m)
Definition: BOpcodeHandler.h:2611
void SetValue(float a, float b, float c)
Definition: BOpcodeHandler.h:2002
void SetLayout(int l)
Definition: BOpcodeHandler.h:5105
float * GetPoints()
Definition: BOpcodeHandler.h:5659
TK_Conditions()
Definition: BOpcodeHandler.h:4378
double GetDRadius() const
Definition: BOpcodeHandler.h:6131
unsigned char m_tessellations
For internal use only.
Definition: BOpcodeHandler.h:2342
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:4752
void SetNURBSOptionsMask(int m)
Definition: BOpcodeHandler.h:3365
channel m_mirror
internal use
Definition: BOpcodeHandler.h:1737
int GetOptions() const
Definition: BOpcodeHandler.h:5520
void SetColorLineContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3232
double const * GetDPoints() const
Definition: BOpcodeHandler.h:6332
char const * GetMirrorName() const
Definition: BOpcodeHandler.h:1837
int GetLodNumLevels() const
Definition: BOpcodeHandler.h:3413
float m_curve_max_angle
For internal use only.
Definition: BOpcodeHandler.h:2335
float GetWidthScale() const
Definition: BOpcodeHandler.h:5025
void SetMajor(float const m[])
Definition: BOpcodeHandler.h:5996
void GetUpVector(float u[]) const
Definition: BOpcodeHandler.h:4769
float * m_knots
Definition: BOpcodeHandler.h:5469
unsigned short m_mask_transform
For internal use only.
Definition: BOpcodeHandler.h:2388
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5548
void SetOrtho(float x, float y, float z)
Definition: BOpcodeHandler.h:6107
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:5738
TK_Color_By_Value()
Definition: BOpcodeHandler.h:1966
void SetEnd(float e)
Definition: BOpcodeHandler.h:5423
float const * GetSimpleShadowColor() const
Definition: BOpcodeHandler.h:3652
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:7730
int GetPreferenceCutoffUnits() const
Definition: BOpcodeHandler.h:5102
void SetDRadius(double radius)
Definition: BOpcodeHandler.h:6342
void SetMiddle(float const m[])
Definition: BOpcodeHandler.h:5869
char * GetName()
Definition: BOpcodeHandler.h:7355
void SetCulling(int c)
Definition: BOpcodeHandler.h:3868
float * m_data
Definition: BOpcodeHandler.h:7211
TK_File_Info()
Definition: BOpcodeHandler.h:908
unsigned char m_space_units
for internal use only
Definition: BOpcodeHandler.h:4922
void GetDField(double f[]) const
Definition: BOpcodeHandler.h:4797
float GetRotation() const
Definition: BOpcodeHandler.h:5015
char * m_name
Definition: BOpcodeHandler.h:7161
void SetTransmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1842
HT_NURBS_Trim * m_trims
Definition: BOpcodeHandler.h:5553
unsigned char m_region_options
Definition: BOpcodeHandler.h:6533
self-explanatory
Definition: BOpcodeEnums.h:270
void SetVisibilityLockMask(int m)
Definition: BOpcodeHandler.h:2519
double const * GetDUpVector() const
Definition: BOpcodeHandler.h:4777
Handles the TKE_Open_Segment opcode.
Definition: BOpcodeHandler.h:1170
unsigned char m_antialias
For internal use only.
Definition: BOpcodeHandler.h:2404
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:4862
int GetColorEdgeLockValue() const
Definition: BOpcodeHandler.h:2604
float m_stereo_separation
For internal use only.
Definition: BOpcodeHandler.h:2339
int m_name_length
internal use: length of name
Definition: BOpcodeHandler.h:4301
double m_dradius
Definition: BOpcodeHandler.h:6062
int GetType() const
Definition: BOpcodeHandler.h:6491
int m_debug
For internal use only.
Definition: BOpcodeHandler.h:2262
float m_extra_space
for internal use only
Definition: BOpcodeHandler.h:4906
void SetLookup(char const *string)
Definition: BOpcodeHandler.h:6724
double * GetDPoints()
Definition: BOpcodeHandler.h:5348
void SetIndices(int count)
Definition: BOpcodeHandler.h:4622
void SetOptions(int o)
Definition: BOpcodeHandler.h:7545
void SetMinor(float x, float y, float z)
Definition: BOpcodeHandler.h:6001
float GetExtraSpace() const
Definition: BOpcodeHandler.h:5030
int GetTextLeaderCount() const
Definition: BOpcodeHandler.h:6625
void SetMaskTransform(int m)
Definition: BOpcodeHandler.h:3554
void SetOptions(int o)
Definition: BOpcodeHandler.h:5426
float * GetWeights()
Definition: BOpcodeHandler.h:5417
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:3943
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7241
void SetStart(float s)
Definition: BOpcodeHandler.h:5421
TK_Character_Attribute * m_character_attributes
Definition: BOpcodeHandler.h:6546
bump map
Definition: BOpcodeEnums.h:274
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7192
TK_Reopen_Segment()
Definition: BOpcodeHandler.h:1263
void SetAlphaMapping(int p)
Definition: BOpcodeHandler.h:7041
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:5638
int m_simple_reflection_visibility_mask
For internal use only.
Definition: BOpcodeHandler.h:2381
TK_Cylinder()
Definition: BOpcodeHandler.h:6185
int GetColorMarkerContrastLockValue() const
Definition: BOpcodeHandler.h:2857
float const * GetMirror() const
Definition: BOpcodeHandler.h:1835
Handles the TKE_Geometry_Attributes opcode.
Definition: BOpcodeHandler.h:1553
int m_length
Definition: BOpcodeHandler.h:7784
unsigned char m_optionals
Definition: BOpcodeHandler.h:5371
int m_gooch_color_map_segment_length
Definition: BOpcodeHandler.h:2351
format mask
Definition: BOpcodeEnums.h:1360
Handles the TKE_Sphere opcode.
Definition: BOpcodeHandler.h:6054
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:2336
int m_name_length
Definition: BOpcodeHandler.h:6916
void SetRef2(float const r[])
Definition: BOpcodeHandler.h:6438
float const * GetSpecular() const
Definition: BOpcodeHandler.h:1820
void SetOptions(int o)
Definition: BOpcodeHandler.h:7467
TK_User_Index()
Definition: BOpcodeHandler.h:4555
unsigned char m_renderer_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4926
float const * GetMajor() const
Definition: BOpcodeHandler.h:5998
short m_options
Definition: BOpcodeHandler.h:4413
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4544
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:3580
int GetOptions() const
Definition: BOpcodeHandler.h:5427
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:2316
TK_Renumber(unsigned char opcode, ID_Key key=0)
Definition: BOpcodeHandler.h:1587
double * GetDPoints()
Definition: BOpcodeHandler.h:5412
void SetExtraSpaceUnits(int u)
Definition: BOpcodeHandler.h:5033
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6870
int m_mask
internal use
Definition: BOpcodeHandler.h:2070
double const * GetDStart() const
Definition: BOpcodeHandler.h:6229
float m_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2318
Definition: BStream.h:285
void SetGreekingMode(int m)
Definition: BOpcodeHandler.h:5058
mask of bits requiring extended
Definition: BOpcodeEnums.h:808
//// Default reader provided for "W3D Image XRef"
Definition: BOpcodeEnums.h:155
double const * GetDEnd() const
Definition: BOpcodeHandler.h:6231
int m_data_size
Definition: BOpcodeHandler.h:6787
int GetCutGeometry() const
Definition: BOpcodeHandler.h:3562
unsigned char vertical_offset_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6512
int m_name_length
Definition: BOpcodeHandler.h:7826
void SetColorMarkerContrastLockValue(int v)
Definition: BOpcodeHandler.h:2852
int GetOptions() const
Definition: BOpcodeHandler.h:4449
static TK_Status GetData(BStreamFileToolkit &tk, unsigned short *s, int n)
Definition: BOpcodeHandler.h:299
void SetDMatrix(double const m[])
Definition: BOpcodeHandler.h:4194
unsigned char m_options
Definition: BOpcodeHandler.h:6532
Definition: BOpcodeHandler.h:830
char * m_condition
Definition: BOpcodeHandler.h:1295
Handles the TKE_Image opcode.
Definition: BOpcodeHandler.h:6779
void SetPlane(float const p[])
Definition: BOpcodeHandler.h:5806
int GetSimpleShadowBlur() const
Definition: BOpcodeHandler.h:3616
void SetInternalPolylineSelectionLimit(int i)
Definition: BOpcodeHandler.h:3858
float * GetPoints()
Definition: BOpcodeHandler.h:7514
Handles the TKE_Font opcode.
Definition: BOpcodeHandler.h:6658
virtual TK_Status Read(BStreamFileToolkit &tk)=0
void SetName(char const *string)
Definition: BOpcodeHandler.h:7847
Handles the TKE_Unicode_Options opcode.
Definition: BOpcodeHandler.h:4506
int * GetIndices()
Definition: BOpcodeHandler.h:4578
void SetView(int length)
Definition: BOpcodeHandler.h:4831
int GetShadowMap() const
Definition: BOpcodeHandler.h:3663
Internal_Translator::Index_Key_Pair * m_item
internal use; cache lookup in Pending cases
Definition: BOpcodeHandler.h:1644
unsigned char * GetTextLeaderFlags()
Definition: BOpcodeHandler.h:6633
float m_inner
for internal use only
Definition: BOpcodeHandler.h:5694
TK_Status Read(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1103
float * m_weights
Definition: BOpcodeHandler.h:5377
void SetCenter(float const c[])
Definition: BOpcodeHandler.h:5886
int GetCutGeometryEdgeWeightUnits() const
Definition: BOpcodeHandler.h:3587
void SetCutGeometryColorMatch(int m)
Definition: BOpcodeHandler.h:3570
void SetPoints(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5655
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6123
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:5735
int const * GetIndices() const
Definition: BOpcodeHandler.h:4576
int GetInternalShellSelectionLimit() const
Definition: BOpcodeHandler.h:3855
void SetProjection(int p)
Definition: BOpcodeHandler.h:4823
int GetAlphaMapping() const
Definition: BOpcodeHandler.h:7043
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:5380
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6594
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1713
double * GetDPoints()
Definition: BOpcodeHandler.h:5669
void SetColorWindowLockValue(int v)
Definition: BOpcodeHandler.h:2691
Handles the TKE_Heuristics opcode.
Definition: BOpcodeHandler.h:3785
int m_value
specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4898
Definition: BOpcodeHandler.h:1056
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6125
void SetSimpleShadowLight(float x, float y, float z)
Definition: BOpcodeHandler.h:3624
unsigned char m_simple_shadow_blur
For internal use only.
Definition: BOpcodeHandler.h:2364
char m_decimation
Definition: BOpcodeHandler.h:6925
void SetTessellationMask(int m)
Definition: BOpcodeHandler.h:3505
void SetFormat(int f)
Definition: BOpcodeHandler.h:7143
int GetSimpleReflectionVisibilityValue() const
Definition: BOpcodeHandler.h:3701
char m_threshold_type
For internal use only.
Definition: BOpcodeHandler.h:2313
Handles the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE_Circular_Wedge opcodes...
Definition: BOpcodeHandler.h:5833
int GetForcedLockMask() const
Definition: BOpcodeHandler.h:2911
int GetColorWindowContrastLockMask() const
Definition: BOpcodeHandler.h:2731
int GetBlueMapping() const
Definition: BOpcodeHandler.h:7038
int const * GetSize() const
Definition: BOpcodeHandler.h:6882
int * GetIndices()
Definition: BOpcodeHandler.h:4631
void SetHlrLinePattern(int p)
Definition: BOpcodeHandler.h:3355
short color_window_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1077
int GetColorEdgeForcedLockMask() const
Definition: BOpcodeHandler.h:2996
void SetSlant(float s)
Definition: BOpcodeHandler.h:5018
void SetViewVolume(float const v[])
Definition: BOpcodeHandler.h:3930
void SetVectorTolerance(float tol)
Definition: BOpcodeHandler.h:3912
void SetVisibilityForcedLockMask(int m)
Definition: BOpcodeHandler.h:2922
int GetCount() const
Definition: BOpcodeHandler.h:7463
char * GetName()
Definition: BOpcodeHandler.h:6850
float GetSlant() const
Definition: BOpcodeHandler.h:5020
void SetSimpleShadowLight(float const l[])
Definition: BOpcodeHandler.h:3630
void set_points(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5316
double * m_dleaders
Definition: BOpcodeHandler.h:6543
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:5722
int GetColorBackForcedLockMask() const
Definition: BOpcodeHandler.h:3157
short color_face_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1074
Definition: BStream.h:259
TK_Bounding(unsigned char opcode)
Definition: BOpcodeHandler.h:5143
int GetWhenInvisible() const
Definition: BOpcodeHandler.h:4162
TK_Compression(char opcode)
Definition: BOpcodeHandler.h:1038
void SetColorFaceContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3106
Definition: BOpcodeHandler.h:4272
float * GetPoints()
Definition: BOpcodeHandler.h:5512
float m_rotation
for internal use only
Definition: BOpcodeHandler.h:4903
char * GetNames()
Definition: BOpcodeHandler.h:4972
unsigned char m_greeking_units
for internal use only
Definition: BOpcodeHandler.h:4923
TK_Size(unsigned char opcode)
Definition: BOpcodeHandler.h:4247
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:4617
TK_XML()
Definition: BOpcodeHandler.h:7665
void SetLodClamp(int v)
Definition: BOpcodeHandler.h:3415
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const &i)
Definition: BOpcodeHandler.h:465
void SetFogLimits(float n, float f)
Definition: BOpcodeHandler.h:2498
void SetQuantization(int q)
Definition: BOpcodeHandler.h:2468
double const * GetDMiddle() const
Definition: BOpcodeHandler.h:5948
char m_lod_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2308
void SetMirrorName(char const *name)
Definition: BOpcodeHandler.h:1831
char * m_cut_geometry_edge_pattern
for internal use only.
Definition: BOpcodeHandler.h:2360
Handles the TKE_URL opcodes.
Definition: BOpcodeHandler.h:7704
Handles the TKE_Area_Light opcode.
Definition: BOpcodeHandler.h:5626
int GetMask() const
Definition: BOpcodeHandler.h:4958
float const * GetImageScale() const
Definition: BOpcodeHandler.h:3745
void SetOrigin(float const o[])
Definition: BOpcodeHandler.h:6416
void SetSimpleReflectionOpacity(float o)
Definition: BOpcodeHandler.h:3694
int GetIndex()
Definition: BOpcodeHandler.h:1496
char * GetShaderSource()
Definition: BOpcodeHandler.h:6981
double const * GetDRef2() const
Definition: BOpcodeHandler.h:6474
void SetNURBSSurfaceTrimBudget(int b)
Definition: BOpcodeHandler.h:3389
int GetVertexDisplacement() const
Definition: BOpcodeHandler.h:2485
unsigned char * GetDTextLeaderFlags()
Definition: BOpcodeHandler.h:6646
Handles the TKE_Cutting_Plane opcode.
Definition: BOpcodeHandler.h:5770
float const * GetPosition() const
Definition: BOpcodeHandler.h:4727
int GetColorLineLockValue() const
Definition: BOpcodeHandler.h:2627
float * GetUKnots()
Definition: BOpcodeHandler.h:5601
void SetSelectionLevel(int l)
Definition: BOpcodeHandler.h:3950
int GetRedMapping() const
Definition: BOpcodeHandler.h:7028
int GetDisplayListLevel() const
Definition: BOpcodeHandler.h:3602
virtual TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
int GetColorVertexContrastLockMask() const
Definition: BOpcodeHandler.h:2869
bool IsCollectionPart() const
Definition: BOpcodeHandler.h:209
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:4735
int GetOptions() const
Definition: BOpcodeHandler.h:7547
void SetLodThresholdType(int v)
Definition: BOpcodeHandler.h:3464
self-explanatory
Definition: BOpcodeEnums.h:269
void SetName(int length)
Definition: BOpcodeHandler.h:6968
TK_Callback()
Definition: BOpcodeHandler.h:2206
int const * GetPreferences() const
Definition: BOpcodeHandler.h:5092
float const * GetKnots() const
Definition: BOpcodeHandler.h:5418
TK_Complex_Clip_Region()
Definition: BOpcodeHandler.h:7492
void SetBlueMapping(int p)
Definition: BOpcodeHandler.h:7036
int GetParameterOffset() const
Definition: BOpcodeHandler.h:7073
Handles the TKE_Named_Style_Def opcode.
Definition: BOpcodeHandler.h:7255
double * GetDRef1()
Definition: BOpcodeHandler.h:6465
void **const GetValues() const
Definition: BOpcodeHandler.h:4634
int GetLodOptionsValue() const
Definition: BOpcodeHandler.h:3401
int GetColorVertexContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3283
float m_surface_max_facet_deviation
For internal use only.
Definition: BOpcodeHandler.h:2333
int GetTargetVersion() const
Definition: BStreamFileToolkit.h:986
int m_allocated
internal use
Definition: BOpcodeHandler.h:944
float const * GetRef1() const
Definition: BOpcodeHandler.h:6429
float GetRendererCutoff() const
Definition: BOpcodeHandler.h:5076
float GetLodTolerance() const
Definition: BOpcodeHandler.h:3425
float m_greeking_limit
for internal use only
Definition: BOpcodeHandler.h:4908
//– would like this to be obsolete, but...
Definition: BOpcodeEnums.h:151
int GetColorBackLockMask() const
Definition: BOpcodeHandler.h:2754
int GetColorFaceContrastLockMask() const
Definition: BOpcodeHandler.h:2708
float GetVectorTolerance() const
Definition: BOpcodeHandler.h:3910
float const * GetEndNormal(int index) const
Definition: BOpcodeHandler.h:6375
void SetField(float const f[])
Definition: BOpcodeHandler.h:4784
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:6835
char const * GetConditions() const
Definition: BOpcodeHandler.h:4395
unsigned short const * GetOptions() const
Definition: BOpcodeHandler.h:4530
void SetIndex(float i)
Definition: BOpcodeHandler.h:1894
char * GetConditions()
Definition: BOpcodeHandler.h:4397
void SetMatrix(float const m[])
Definition: BOpcodeHandler.h:4190
self-explanatory
Definition: BOpcodeEnums.h:1095
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:6504
Handles the TKE_Complex_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7481
void SetShadowMapSamples(int m)
Definition: BOpcodeHandler.h:3671
void SetOptions(int o)
Definition: BOpcodeHandler.h:5235
char * m_string
Definition: BOpcodeHandler.h:7747
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:7021
void SetName(int length)
Definition: BOpcodeHandler.h:6846
void SetName(char const *string)
Definition: BOpcodeHandler.h:6715
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7362
int GetInterpolation() const
Definition: BOpcodeHandler.h:7018
unsigned char m_preference_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4927
char const * GetCallback() const
Definition: BOpcodeHandler.h:2223
TK_User_Options()
Definition: BOpcodeHandler.h:4473
unsigned char m_region_fit
Definition: BOpcodeHandler.h:6534
double * m_dpoints
Definition: BOpcodeHandler.h:5313
int m_selection_culling
internal use; selection culling options
Definition: BOpcodeHandler.h:3796
float m_line_spacing
for internal use only
Definition: BOpcodeHandler.h:4907
TK_Color_By_FIndex()
Definition: BOpcodeHandler.h:2075
char * GetName()
Definition: BOpcodeHandler.h:7296
float rotation
the angle (in degrees) that text is rotated
Definition: BOpcodeHandler.h:6505
void SetField(float w, float h)
Definition: BOpcodeHandler.h:4782
int GetCount() const
Definition: BOpcodeHandler.h:4625
int m_down
internal use; specifies what geometry is selectable on mouse button down. For internal use only...
Definition: BOpcodeHandler.h:4076
unsigned short * GetOptions()
Definition: BOpcodeHandler.h:4532
char * GetCallback()
Definition: BOpcodeHandler.h:2225
float const * GetVector() const
Definition: BOpcodeHandler.h:3900
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6581
int GetSize() const
Definition: BOpcodeHandler.h:1696
int GetDown() const
Definition: BOpcodeHandler.h:4118
bool Find_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:687
void SetHardExtent(int c)
Definition: BOpcodeHandler.h:3896
char const * GetSphereTessellations() const
Definition: BOpcodeHandler.h:3539
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:4050
TK_Spot_Light()
Definition: BOpcodeHandler.h:5700
void SetImageTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3752
void SetOuter(float o)
Definition: BOpcodeHandler.h:5743
void SetSize(int size)
Definition: BOpcodeHandler.h:1694
void SetVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3902
float GetHlrDimFactor() const
Definition: BOpcodeHandler.h:3349
float m_compression_quality
Definition: BOpcodeHandler.h:6797
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:6584
short color_face_mask
For internal use only.
Definition: BOpcodeHandler.h:1062
void SetParameterFunction(int p)
Definition: BOpcodeHandler.h:7046
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:4762
int m_camera_length
Definition: BOpcodeHandler.h:6919
int m_to_variant
internal use
Definition: BOpcodeHandler.h:1455
Handles the TKE_XML opcode.
Definition: BOpcodeHandler.h:7658
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6875
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:6781
Handles the TKE_External_Reference opcodes.
Definition: BOpcodeHandler.h:7743
Definition: BOpcodeHandler.h:4213
TK_Material()
Definition: BOpcodeHandler.h:7640
int GetSimpleReflection() const
Definition: BOpcodeHandler.h:3679
virtual TK_Status Error(char const *msg=0) const
int m_allocated
Definition: BOpcodeHandler.h:5311
TK_Bounding(unsigned char opcode, float center[], float radius)
Definition: BOpcodeHandler.h:5152
unsigned short m_simple_shadow
For internal use only.
Definition: BOpcodeHandler.h:2363
void SetFlags(int f)
Definition: BOpcodeHandler.h:7002
int const * GetStringCursors() const
Definition: BOpcodeHandler.h:6618
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1926
char * GetName()
Definition: BOpcodeHandler.h:6972
void SetColorForcedLockValue(int v)
Definition: BOpcodeHandler.h:2956
Handles the TKE_Repeat_Object opcode.
Definition: BOpcodeHandler.h:1450
void SetCutGeometryTolerance(float m)
Definition: BOpcodeHandler.h:3575
void SetHSR(int h)
Definition: BOpcodeHandler.h:2448
int GetLength()
Definition: BOpcodeHandler.h:4399
void SetName(char const *string)
Definition: BOpcodeHandler.h:6844
unsigned char m_cut_geometry_edge_weight_units
for internal use only.
Definition: BOpcodeHandler.h:2359
char * m_string
Definition: BOpcodeHandler.h:2197
int GetSimpleShadow() const
Definition: BOpcodeHandler.h:3611
void SetLodCutoffs(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3488
int m_count
Definition: BOpcodeHandler.h:5310
int const * GetSizes() const
Definition: BOpcodeHandler.h:4640
char * GetSphereTessellations()
Definition: BOpcodeHandler.h:3541
int GetColorMarkerForcedLockMask() const
Definition: BOpcodeHandler.h:3042
void SetNext(HT_NURBS_Trim *next)
Definition: BOpcodeHandler.h:5489
for further expansion
Definition: BOpcodeEnums.h:1126
char m_num_cutoffs
For internal use only.
Definition: BOpcodeHandler.h:2320
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:5369
void SetDiffuseTextureTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3757
char const * GetName(void) const
Definition: BOpcodeHandler.h:7851
int GetEncoding() const
Definition: BOpcodeHandler.h:6599
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:3713
Handles the TKE_Conditions opcode.
Definition: BOpcodeHandler.h:4371
int GetInternalSelectionLimit() const
Definition: BOpcodeHandler.h:3850
float m_surface_max_facet_width
For internal use only.
Definition: BOpcodeHandler.h:2334
char m_blue_mapping
Definition: BOpcodeHandler.h:6928
float * m_points
Definition: BOpcodeHandler.h:6270
void SetLodCutoff(float r)
Definition: BOpcodeHandler.h:3486
unsigned char m_optionals
Definition: BOpcodeHandler.h:5544
int GetColorTextContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3295
unsigned char m_shadow_map_samples
For internal use only.
Definition: BOpcodeHandler.h:2373
int GetTextRegionOptions() const
Definition: BOpcodeHandler.h:6608
double const * GetDMajor() const
Definition: BOpcodeHandler.h:6026
int m_value
internal use; specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4021
void SetUserData(int size, unsigned char const *bytes=0)
Definition: BOpcodeHandler.h:7599
void SetNames(char const *names)
Definition: BOpcodeHandler.h:4966
void SetDPoints(double x1, double y1, double z1, double x2, double y2, double z2)
Definition: BOpcodeHandler.h:5283
char * m_names
for internal use only
Definition: BOpcodeHandler.h:4900
void SetList(HT_NURBS_Trim *node)
Definition: BOpcodeHandler.h:5488
void SetLodNumLevels(int v)
Definition: BOpcodeHandler.h:3411
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:3860
static TK_Status GetData(BStreamFileToolkit &tk, int &i)
Definition: BOpcodeHandler.h:311
float const * GetMatrix() const
Definition: BOpcodeHandler.h:4198
////
Definition: BOpcodeEnums.h:148
int m_index
Definition: BOpcodeHandler.h:1384
int m_dleader_count
Definition: BOpcodeHandler.h:6542
float size
the size. Units are specified separately in size_units
Definition: BOpcodeHandler.h:6501
bool Tagging(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:187
void SetHlrDimFactor(float d)
Definition: BOpcodeHandler.h:3347
TK_Enumerated(unsigned char opcode)
Definition: BOpcodeHandler.h:4219
unsigned char m_buffer_options_value
For internal use only.
Definition: BOpcodeHandler.h:2272
int * GetCounts()
Definition: BOpcodeHandler.h:6486
float * GetRadii()
Definition: BOpcodeHandler.h:6323
char const * GetXML() const
Definition: BOpcodeHandler.h:7688
int m_offset
internal use
Definition: BOpcodeHandler.h:1675
void SetStart(float const s[])
Definition: BOpcodeHandler.h:5861
char m_alpha_mapping
Definition: BOpcodeHandler.h:6929
unsigned char m_buffer_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2271
void SetBufferOptionsValue(int v)
Definition: BOpcodeHandler.h:3316
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const *s, int n)
Definition: BOpcodeHandler.h:444
float GetInner() const
Definition: BOpcodeHandler.h:5750
float m_renderer_cutoff
for internal use only
Definition: BOpcodeHandler.h:4909
char * GetStyle()
Definition: BOpcodeHandler.h:4990
int m_mask
internal use; specifies which visibility settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4020
void SetColorLineForcedLockValue(int v)
Definition: BOpcodeHandler.h:3025
char * m_comment
internal use
Definition: BOpcodeHandler.h:946
int GetSelectionCulling() const
Definition: BOpcodeHandler.h:3874
float * m_points
Definition: BOpcodeHandler.h:7421
double * m_dplanes
internal use
Definition: BOpcodeHandler.h:5773
char const * GetCylinderTessellations() const
Definition: BOpcodeHandler.h:3522
int GetExtras() const
Definition: BOpcodeHandler.h:3865
unsigned char m_greeking_mode
for internal use only
Definition: BOpcodeHandler.h:4924
static short flip(short s)
for internal use only
Definition: BOpcodeHandler.h:506
int GetFaceDisplacement() const
Definition: BOpcodeHandler.h:2480
float GetEnd() const
Definition: BOpcodeHandler.h:5424
TK_Polypoint(unsigned char opcode)
Definition: BOpcodeHandler.h:5321
void SetDepthRange(float const l[])
Definition: BOpcodeHandler.h:3707
void SetSpecularName(int length)
Definition: BOpcodeHandler.h:1818
int GetLoops() const
Definition: BOpcodeHandler.h:7541
float m_simple_reflection_opacity
For internal use only.
Definition: BOpcodeHandler.h:2377
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:6212
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:5085
int m_maximum_extent
internal use; maximum extent
Definition: BOpcodeHandler.h:3799
int GetSelectionBias() const
Definition: BOpcodeHandler.h:3878
unsigned char m_clamp
For internal use only.
Definition: BOpcodeHandler.h:2315
int GetValue() const
Definition: BOpcodeHandler.h:4061
bool GetFollow()
Definition: BOpcodeHandler.h:1436
void SetColorWindowContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3140
float * GetKnots()
Definition: BOpcodeHandler.h:5419
char const * GetName() const
Definition: BOpcodeHandler.h:7234
void SetVisibilityForcedLockValue(int v)
Definition: BOpcodeHandler.h:2933
float const * GetOrientation() const
Definition: BOpcodeHandler.h:4008
int GetQuantization() const
Definition: BOpcodeHandler.h:2470
char * GetTransmissionName()
Definition: BOpcodeHandler.h:1854
void SetColorTextContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3301
TK_User_Value()
Definition: BOpcodeHandler.h:4659
int m_cond_length
Definition: BOpcodeHandler.h:7263
void SetColorVertexLockMask(int m)
Definition: BOpcodeHandler.h:2772
char * GetCondition()
Definition: BOpcodeHandler.h:4438
int GetColorVertexContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3272
int * GetSizes()
Definition: BOpcodeHandler.h:4643
void SetLodBounding(float const p[])
Definition: BOpcodeHandler.h:3441
//// pseudo-handler (non-zero value)
Definition: BOpcodeEnums.h:157
void SetValue(HLONG v)
Definition: BOpcodeHandler.h:4670
int const * GetLengths() const
Definition: BOpcodeHandler.h:7533
char * GetLookup()
Definition: BOpcodeHandler.h:6730
float const * GetPoints() const
Definition: BOpcodeHandler.h:5280
void SetColorEdgeForcedLockMask(int m)
Definition: BOpcodeHandler.h:2991
int m_count
Definition: BOpcodeHandler.h:7420
void SetLimits(float s, float e)
Definition: BOpcodeHandler.h:6038
void SetIndices(int count, int const indices[], POINTER_SIZED_INT const values[])
Definition: BOpcodeHandler.h:4569
unsigned char m_flags
Definition: BOpcodeHandler.h:6275
int GetAction() const
Definition: BOpcodeHandler.h:4445
float GetSimpleShadowOpacity() const
Definition: BOpcodeHandler.h:3657
void SetDMiddle(double x, double y, double z)
Definition: BOpcodeHandler.h:5914
void GetField(float f[]) const
Definition: BOpcodeHandler.h:4788
void SetRelatedSelectionLimit(int r)
Definition: BOpcodeHandler.h:3843
TK_Geometry_Attributes()
Definition: BOpcodeHandler.h:1558
int GetMaximumExtent() const
Definition: BOpcodeHandler.h:3886
Handles the TKE_Clip_Rectangle opcode.
Definition: BOpcodeHandler.h:7375
void SetLockValue(int v)
Definition: BOpcodeHandler.h:2511
void SetMaximumExtent(int c)
Definition: BOpcodeHandler.h:3884
unsigned char m_fallback
For internal use only.
Definition: BOpcodeHandler.h:2323
unsigned char m_compression
Definition: BOpcodeHandler.h:6792
char const * GetCondition() const
Definition: BOpcodeHandler.h:1357
Handles the TKE_Text_Font opcode.
Definition: BOpcodeHandler.h:4895
int GetLodOptionsMask() const
Definition: BOpcodeHandler.h:3397
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:2581
char const * GetDiffuseName() const
Definition: BOpcodeHandler.h:1807
void SetMajor(float x, float y, float z)
Definition: BOpcodeHandler.h:5992
static TK_Status GetData(BStreamFileToolkit &tk, double *d, int n)
Definition: BOpcodeHandler.h:288
float const * GetOrderedWeights() const
Definition: BOpcodeHandler.h:3945
HLONG * m_values
for internal use only
Definition: BOpcodeHandler.h:4548
int GetOptions() const
Definition: BOpcodeHandler.h:6892
static TK_Status PutData(BStreamFileToolkit &tk, double const &d)
Definition: BOpcodeHandler.h:471
float const * GetValueScale() const
Definition: BOpcodeHandler.h:7063
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4592
int m_size
Definition: BOpcodeHandler.h:7160
unsigned char * m_isoline_weights_unit
for internal use only.
Definition: BOpcodeHandler.h:2299
float const * GetValues() const
Definition: BOpcodeHandler.h:2157
void SetCollectionPart(bool n)
Definition: BOpcodeHandler.h:204
int GetParameterSource() const
Definition: BOpcodeHandler.h:7013
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:6236
void SetBytes(int size, char const *bytes=0)
Definition: BOpcodeHandler.h:6706
float * GetVKnots()
Definition: BOpcodeHandler.h:5605
BBaseOpcodeHandler(int op)
Definition: BOpcodeHandler.h:92
char const * GetOptions() const
Definition: BOpcodeHandler.h:4491
Definition: BOpcodeHandler.h:4240
float const * GetImageTintColor() const
Definition: BOpcodeHandler.h:3754
int m_name_length
Definition: BOpcodeHandler.h:7208
char const * GetCutGeometryEdgePattern() const
Definition: BOpcodeHandler.h:3594
double const * GetDPlanes() const
Definition: BOpcodeHandler.h:5818
unsigned char * m_leader_flags
Definition: BOpcodeHandler.h:6541
Handles the TKE_Dictionary opcode.
Definition: BOpcodeHandler.h:1637
float * GetLodRatios()
Definition: BOpcodeHandler.h:3461
void SetValue(int v)
Definition: BOpcodeHandler.h:4961
float const * GetPosition() const
Definition: BOpcodeHandler.h:6586
float const * GetTransmission() const
Definition: BOpcodeHandler.h:1850
int GetCaps() const
Definition: BOpcodeHandler.h:6242
int GetColorEdgeLockMask() const
Definition: BOpcodeHandler.h:2593
void SetOrientation(int count, float const o[])
Definition: BOpcodeHandler.h:3998
bool GetStreaming() const
Definition: BOpcodeHandler.h:4360
void SetLayout(int p)
Definition: BOpcodeHandler.h:7051
char m_param_function
Definition: BOpcodeHandler.h:6930
char * m_definition
Definition: BOpcodeHandler.h:7330
int m_string_length
internal use
Definition: BOpcodeHandler.h:2124
char m_num_cylinder
For internal use only.
Definition: BOpcodeHandler.h:2343
int m_surface_budget
For internal use only.
Definition: BOpcodeHandler.h:2329
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:5615
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:2298
short color_cut_edge_mask
For internal use only.
Definition: BOpcodeHandler.h:1096
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7194
int GetVisibilityLockMask() const
Definition: BOpcodeHandler.h:2524
Definition: BStream.h:258
void SetRotation(float r)
Definition: BOpcodeHandler.h:5013
int GetValue(int index=0) const
Definition: BOpcodeHandler.h:2445
int GetBufferOptionsMask() const
Definition: BOpcodeHandler.h:3314
//
Definition: BOpcodeEnums.h:142
float * m_weights
Definition: BOpcodeHandler.h:5549
void SetColorBackLockMask(int m)
Definition: BOpcodeHandler.h:2749
Handles the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes.
Definition: BOpcodeHandler.h:5189
TK_PolyCylinder()
Definition: BOpcodeHandler.h:6280
void SetRectangle(float left, float right, float bottom, float top)
Definition: BOpcodeHandler.h:7395
void SetUpVector(float const u[])
Definition: BOpcodeHandler.h:4765
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:7329
HLONG m_value
for internal use only
Definition: BOpcodeHandler.h:4655
char * GetCondition()
Definition: BOpcodeHandler.h:1362
float const * GetWindow() const
Definition: BOpcodeHandler.h:4877
unsigned char m_type
Definition: BOpcodeHandler.h:6666
void SetDMajor(double const m[])
Definition: BOpcodeHandler.h:6024
void SetScreenRange(float const l[])
Definition: BOpcodeHandler.h:3718
int GetCutGeometryLevel() const
Definition: BOpcodeHandler.h:3567
char * GetName()
Definition: BOpcodeHandler.h:4327
char * GetShape()
Definition: BOpcodeHandler.h:4981
void SetImageScale(float x, float y)
Definition: BOpcodeHandler.h:3741
float const * GetVKnots() const
Definition: BOpcodeHandler.h:5603
void SetStreaming(bool s)
Definition: BOpcodeHandler.h:4358
void SetSpace(int s)
Definition: BOpcodeHandler.h:1997
void SetEnvironmentName(int length)
Definition: BOpcodeHandler.h:1874
int GetCompression() const
Definition: BOpcodeHandler.h:6897
int const * GetRenderers() const
Definition: BOpcodeHandler.h:5071
int m_index
internal use
Definition: BOpcodeHandler.h:2022
void SetRadius(float r)
Definition: BOpcodeHandler.h:6091
HT_NURBS_Trim * m_next
Definition: BOpcodeHandler.h:5461
TK_Open_Segment()
Definition: BOpcodeHandler.h:1183
void SetLodOptionsValue(int v)
Definition: BOpcodeHandler.h:3399
void SetVector(float const v[])
Definition: BOpcodeHandler.h:3908
int GetColorTextLockMask() const
Definition: BOpcodeHandler.h:2662
extended bits for common/shared items
Definition: BOpcodeEnums.h:176
BBaseOpcodeHandler * m_complex
Definition: BOpcodeHandler.h:7423
Definition: BOpcodeHandler.h:1721
double const * GetDStart() const
Definition: BOpcodeHandler.h:5946
void SetMiddle(float x, float y, float z)
Definition: BOpcodeHandler.h:5865
int GetGeometry() const
Definition: BOpcodeHandler.h:1941
int GetRendererCutoffUnits() const
Definition: BOpcodeHandler.h:5081
short m_channels
internal use
Definition: BOpcodeHandler.h:1716
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:6878
self-explanatory
Definition: BOpcodeEnums.h:1214
float m_hlr_transparency_cutoff
For internal use only.
Definition: BOpcodeHandler.h:2278
float m_preference_cutoff
for internal use only
Definition: BOpcodeHandler.h:4910
void SetLodMinimumTriangleCount(int v)
Definition: BOpcodeHandler.h:3407
char * m_condition
Definition: BOpcodeHandler.h:1387
float m_start
Definition: BOpcodeHandler.h:5379
void SetDOrigin(double const o[])
Definition: BOpcodeHandler.h:6450
TK_Ellipse(unsigned char opcode)
Definition: BOpcodeHandler.h:5972
int GetCount() const
Definition: BOpcodeHandler.h:6350
TK_Heuristics()
Definition: BOpcodeHandler.h:3816
void SetHlrFaceDisplacement(float d)
Definition: BOpcodeHandler.h:3351
void SetPoints(float const s[], float const m[], float const e[], float const c[]=0)
Definition: BOpcodeHandler.h:5891
int GetMaskTransform() const
Definition: BOpcodeHandler.h:3556
int GetColorTextContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3306
char * GetString()
Definition: BOpcodeHandler.h:7732
void SetDStart(double x, double y, double z)
Definition: BOpcodeHandler.h:5906
void SetDiffuseTextureTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3760
void SetEmission(float const rgb[])
Definition: BOpcodeHandler.h:1859
void SetOptions(int f)
Definition: BOpcodeHandler.h:6890
unsigned char * GetBytes()
Definition: BOpcodeHandler.h:7133
void SetMask(int m)
Definition: BOpcodeHandler.h:3829
void SetConcentration(float c)
Definition: BOpcodeHandler.h:5753
char m_param_source
Definition: BOpcodeHandler.h:6923
float * GetWeights()
Definition: BOpcodeHandler.h:5524
int m_buffer_size
Definition: BOpcodeHandler.h:7574
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:3163
unsigned short m_simple_shadow_resolution
For internal use only.
Definition: BOpcodeHandler.h:2365
int const * GetCounts() const
Definition: BOpcodeHandler.h:6484
float const * GetEnd() const
Definition: BOpcodeHandler.h:6209
void SetPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:5797
int GetOrderedWeightsMask() const
Definition: BOpcodeHandler.h:3935
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:7268
Lock_Masks m_filter
for internal use only
Definition: BOpcodeHandler.h:1302
void SetColorTextForcedLockMask(int m)
Definition: BOpcodeHandler.h:3060
char * GetName(void)
Definition: BOpcodeHandler.h:7853
void SetForceDefer(int l)
Definition: BOpcodeHandler.h:3955
void SetColorLockMask(int m)
Definition: BOpcodeHandler.h:2542
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:4172
void SetWindow(float const w[], float const o[])
Definition: BOpcodeHandler.h:4869
void SetIndex(int i)
Definition: BOpcodeHandler.h:4229
void SetVertexDecimation(float f)
Definition: BOpcodeHandler.h:3770
int GetColorWindowContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3134
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:7033
////
Definition: BOpcodeEnums.h:36
char * GetCylinderTessellations()
Definition: BOpcodeHandler.h:3524
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:5727
void SetSphereTessellation(int n)
Definition: BOpcodeHandler.h:3526
void SetColorBackLockValue(int v)
Definition: BOpcodeHandler.h:2760
void SetAction(int at)
Definition: BOpcodeHandler.h:4443
float m_index
internal use
Definition: BOpcodeHandler.h:2071
void SetDAxis(double const s[], double const e[])
Definition: BOpcodeHandler.h:6223
char * GetSegment()
Definition: BOpcodeHandler.h:1214
void SetSize(int const s[])
Definition: BOpcodeHandler.h:7138
void SetColorVertexContrastLockValue(int v)
Definition: BOpcodeHandler.h:2875
int m_general_displacement
For internal use only.
Definition: BOpcodeHandler.h:2399
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:7328
static TK_Status GetData(BStreamFileToolkit &tk, int *i, int n)
Definition: BOpcodeHandler.h:272
TK_Line(unsigned char opcode=TKE_Line)
Definition: BOpcodeHandler.h:5258
int m_stage
The writing stage.
Definition: BOpcodeHandler.h:63
void SetColorLineContrastLockMask(int m)
Definition: BOpcodeHandler.h:2818
void SetColorVertexForcedLockValue(int v)
Definition: BOpcodeHandler.h:3186
int GetNURBSOptionsValue() const
Definition: BOpcodeHandler.h:3375
float * m_planes
internal use
Definition: BOpcodeHandler.h:5772
Handles the TKE_Image_XRef opcodes.
Definition: BOpcodeHandler.h:7823
void SetTiling(int p)
Definition: BOpcodeHandler.h:7056
int GetLodFallback() const
Definition: BOpcodeHandler.h:3429
float GetCutGeometryEdgeWeight() const
Definition: BOpcodeHandler.h:3585
short color_edge_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1082
void SetDMinor(double const m[])
Definition: BOpcodeHandler.h:6033
Handles the TKE_PolyCylinder opcode.
Definition: BOpcodeHandler.h:6267
int * GetLengths()
Definition: BOpcodeHandler.h:7535
char m_type
internal use
Definition: BOpcodeHandler.h:5139
all
Definition: BOpcodeEnums.h:345
mask of bits in second byte
Definition: BOpcodeEnums.h:760
unsigned short m_shadow_map
For internal use only.
Definition: BOpcodeHandler.h:2371
void GetDPosition(double p[]) const
Definition: BOpcodeHandler.h:4739
float m_stereo_distance
For internal use only.
Definition: BOpcodeHandler.h:2340
int m_length
Definition: BOpcodeHandler.h:4462
float GetLineSpacing() const
Definition: BOpcodeHandler.h:5040
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:5508
void SetColorTextContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3290
int GetColorBackLockValue() const
Definition: BOpcodeHandler.h:2765
void SetWhenInvisible(int m)
Definition: BOpcodeHandler.h:4157
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:651
void SetKey(ID_Key k)
Definition: BOpcodeHandler.h:1596
char const * GetNames() const
Definition: BOpcodeHandler.h:4970
int GetLength() const
Definition: BOpcodeHandler.h:2161
int m_placeholder
internal use
Definition: BOpcodeHandler.h:1640
unsigned char * m_dleader_flags
Definition: BOpcodeHandler.h:6544
float m_vertex_decimation
For internal use only.
Definition: BOpcodeHandler.h:2402
double const * GetDRadii() const
Definition: BOpcodeHandler.h:6344
char * GetName()
Definition: BOpcodeHandler.h:7236
void SetColorMarkerForcedLockMask(int m)
Definition: BOpcodeHandler.h:3037
wchar_t const * GetString() const
Definition: BOpcodeHandler.h:7808
void SetInterpolation(int p)
Definition: BOpcodeHandler.h:7016
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6119
void SetDMinor(double x, double y, double z)
Definition: BOpcodeHandler.h:6029
float * GetMatrix()
Definition: BOpcodeHandler.h:4200
void SetOrigin(float x, float y, float z)
Definition: BOpcodeHandler.h:6412
int m_length
Definition: BOpcodeHandler.h:4373
int GetGeometryOptionsMask() const
Definition: BOpcodeHandler.h:3546
int m_allocated
Definition: BOpcodeHandler.h:1291
int GetCutGeometryColorMatch() const
Definition: BOpcodeHandler.h:3572
unsigned char size_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6511
Handles the TKE_External_Reference_Unicode opcodes.
Definition: BOpcodeHandler.h:7782
float m_outer
for internal use only
Definition: BOpcodeHandler.h:5693
Handles the TKE_Polyline and TKE_Polygon opcodes.
Definition: BOpcodeHandler.h:5308
char m_apply_mode
Definition: BOpcodeHandler.h:6936
int * m_cursors
Definition: BOpcodeHandler.h:6538
HLONG * GetValues()
Definition: BOpcodeHandler.h:4582
int GetHlrOptions() const
Definition: BOpcodeHandler.h:3345
int m_pixel_threshold
internal use; pixel threshold
Definition: BOpcodeHandler.h:3798
int m_count
internal use
Definition: BOpcodeHandler.h:5774
int mask
For internal use only.
Definition: BOpcodeHandler.h:1058
int m_internal_shell
internal use
Definition: BOpcodeHandler.h:3791
void SetRef1(float const r[])
Definition: BOpcodeHandler.h:6427
float const * GetLimits() const
Definition: BOpcodeHandler.h:6042
unsigned char m_type
Definition: BOpcodeHandler.h:5462
float GetConcentration() const
Definition: BOpcodeHandler.h:5755
void SetColorFaceContrastLockValue(int v)
Definition: BOpcodeHandler.h:2714
int GetColorMarkerLockMask() const
Definition: BOpcodeHandler.h:2639
Handles the TKE_Bounding and TKE_Bounding_Info opcodes.
Definition: BOpcodeHandler.h:5135
unsigned char m_projection
internal use
Definition: BOpcodeHandler.h:4692
char m_tint_effect
For internal use only.
Definition: BOpcodeHandler.h:2304
void SetColorFaceForcedLockValue(int v)
Definition: BOpcodeHandler.h:2979
TK_User_Data()
Definition: BOpcodeHandler.h:7581
int GetCount() const
Definition: BOpcodeHandler.h:5415
void SetRGB(float const rgb[])
Definition: BOpcodeHandler.h:1946
unsigned char m_degree[2]
Definition: BOpcodeHandler.h:5545
int m_force_defer
internal use; hard extent
Definition: BOpcodeHandler.h:3803
float GetOuter() const
Definition: BOpcodeHandler.h:5745
float const * GetPosition() const
Definition: BOpcodeHandler.h:5716
int m_index
Definition: BOpcodeHandler.h:1259
void SetPoint(float x, float y, float z)
Definition: BOpcodeHandler.h:5221
////
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:7166
Handles the TKE_Shape_Definition opcode.
Definition: BOpcodeHandler.h:7206
int GetColorForcedLockMask() const
Definition: BOpcodeHandler.h:2950
float * GetTextLeaders()
Definition: BOpcodeHandler.h:6629
double m_dradius
Definition: BOpcodeHandler.h:6180
void SetColorVertexContrastLockMask(int m)
Definition: BOpcodeHandler.h:2864
int GetColorLockMask() const
Definition: BOpcodeHandler.h:2547
void SetGreekingLimit(float s)
Definition: BOpcodeHandler.h:5048
float const * GetStart() const
Definition: BOpcodeHandler.h:6207
void SetLodAlgorithm(int v)
Definition: BOpcodeHandler.h:3403
char * GetEmissionName()
Definition: BOpcodeHandler.h:1869
int GetNURBSSurfaceBudget() const
Definition: BOpcodeHandler.h:3387
unsigned short m_tint_options
For internal use only.
Definition: BOpcodeHandler.h:2301
int m_maximum_extent_mode
internal use; maximum extent mode – int! argh...
Definition: BOpcodeHandler.h:3800
TK_Status Write(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1104
void SetWindow(float const w[])
Definition: BOpcodeHandler.h:4867
channel m_diffuse
internal use
Definition: BOpcodeHandler.h:1735
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2088
void SetRendererCutoff(float s)
Definition: BOpcodeHandler.h:5074
int GetNumSphereTessellations() const
Definition: BOpcodeHandler.h:3537
float * GetValues()
Definition: BOpcodeHandler.h:2159
float * m_radii
Definition: BOpcodeHandler.h:6273
Handles the TKE_Camera opcode.
Definition: BOpcodeHandler.h:4682
int GetTransparentStyle() const
Definition: BOpcodeHandler.h:2460
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:3249
int GetSizeUnits() const
Definition: BOpcodeHandler.h:5000
void SetLodThreshold(float r)
Definition: BOpcodeHandler.h:3468
float m_start_u
Definition: BOpcodeHandler.h:5470
int GetJoinCutoffAngle() const
Definition: BOpcodeHandler.h:2495
void SetName(int length)
Definition: BOpcodeHandler.h:7849
int GetColorWindowLockValue() const
Definition: BOpcodeHandler.h:2696
unsigned short m_transparency_options
internal use; low nibble style, next peeling flags, then zsort
Definition: BOpcodeHandler.h:2352
int m_total_size
the total size of the blind material data
Definition: BOpcodeHandler.h:7632
int m_mask
internal use
Definition: BOpcodeHandler.h:1715
char m_interpolation
Definition: BOpcodeHandler.h:6924
void SetNURBSCurveContinuedBudget(int b)
Definition: BOpcodeHandler.h:3381
char const * GetComment() const
Definition: BOpcodeHandler.h:988
void SetHlrOptions(int o)
Definition: BOpcodeHandler.h:3336
void SetStereoDistance(float d)
Definition: BOpcodeHandler.h:3330
Handles the TKE_Text and TKE_Text_With_Encoding opcodes.
Definition: BOpcodeHandler.h:6524
int GetColorBackForcedLockValue() const
Definition: BOpcodeHandler.h:3168
unsigned char m_size_units
for internal use only
Definition: BOpcodeHandler.h:4920
float const * GetWeights() const
Definition: BOpcodeHandler.h:5595
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:7745
float width_scale
adjustment to character width
Definition: BOpcodeHandler.h:6506
char m_param_offset
Definition: BOpcodeHandler.h:6937
int m_substage
Definition: BOpcodeHandler.h:5460
double * GetDRef2()
Definition: BOpcodeHandler.h:6476
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6017
float * m_weights
Definition: BOpcodeHandler.h:5468
void SetFlags(int f)
Definition: BOpcodeHandler.h:924
char * GetLoggingString()
Definition: BOpcodeHandler.h:249
void SetDebug(int d)
Definition: BOpcodeHandler.h:2473
int m_lod_options_value
For internal use only.
Definition: BOpcodeHandler.h:2307
char * GetDefinition()
Definition: BOpcodeHandler.h:7364
float * m_points
Definition: BOpcodeHandler.h:7487
unsigned char m_format
Definition: BOpcodeHandler.h:6790
int GetColorMarkerContrastLockMask() const
Definition: BOpcodeHandler.h:2846
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:5657
int m_length
Definition: BOpcodeHandler.h:6665
oblique y setting
Definition: BOpcodeEnums.h:1093
Handles the TKE_Rendering_Options opcode.
Definition: BOpcodeHandler.h:2255
void SetScreenRange(int n, float const l[])
Definition: BOpcodeHandler.h:3723
void SetMaximumExtentLevel(int c)
Definition: BOpcodeHandler.h:3894
float const * GetPoints() const
Definition: BOpcodeHandler.h:5510
int Pass(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:176
secondary extended bits
Definition: BOpcodeEnums.h:205
int GetUDegree() const
Definition: BOpcodeHandler.h:5587
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:3921
unsigned char m_units
for internal use only.
Definition: BOpcodeHandler.h:4243
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:5983
int GetMask() const
Definition: BOpcodeHandler.h:3835
void SetComment(char const *comment)
Definition: BOpcodeHandler.h:979
unsigned char m_flags
Definition: BOpcodeHandler.h:5839
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:3191
void SetColorMarkerForcedLockValue(int v)
Definition: BOpcodeHandler.h:3048
self-explanatory
Definition: BOpcodeEnums.h:1526
HT_NURBS_Trim const * GetList() const
Definition: BOpcodeHandler.h:5530
void SetDAxis(double const a[])
Definition: BOpcodeHandler.h:6225
Definition: BOpcodeHandler.h:855
short color_marker_mask
For internal use only.
Definition: BOpcodeHandler.h:1068
char * GetSegment()
Definition: BOpcodeHandler.h:7316
int m_isoline_weight_count
for internal use only.
Definition: BOpcodeHandler.h:2297
void SetParameterOffset(int p)
Definition: BOpcodeHandler.h:7071
float const * GetPoints() const
Definition: BOpcodeHandler.h:5409
float const * GetKnots() const
Definition: BOpcodeHandler.h:5526
Contains enum types which are used by BBaseOpcodeHandler.
char * m_string
Definition: BOpcodeHandler.h:7708
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:4202
float const * GetDiffuseTextureTintColor() const
Definition: BOpcodeHandler.h:3762
char * GetString()
Definition: BOpcodeHandler.h:6578
double const * GetDPoints() const
Definition: BOpcodeHandler.h:7457
int GetCount() const
Definition: BOpcodeHandler.h:5351
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:3696
int m_hlr_line_pattern
For internal use only.
Definition: BOpcodeHandler.h:2279
Handles the TKE_Material opcode.
Definition: BOpcodeHandler.h:7630
void SetStereoSeparation(float s)
Definition: BOpcodeHandler.h:3326
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:257
char const * GetCondition() const
Definition: BOpcodeHandler.h:4436
void SetCaps(int f)
Definition: BOpcodeHandler.h:6240
int GetBytesCount() const
Definition: BOpcodeHandler.h:6708
Handles the TKE_Window opcode.
Definition: BOpcodeHandler.h:4844
BBaseOpcodeHandler * m_index_data
Definition: BOpcodeHandler.h:4466
TK_Point(unsigned char opcode)
Definition: BOpcodeHandler.h:5197
int m_length
Definition: BOpcodeHandler.h:6528
BBaseOpcodeHandler * m_unicode
Definition: BOpcodeHandler.h:4465
unsigned char m_encoding
Definition: BOpcodeHandler.h:6531
TK_LOD()
Definition: BOpcodeHandler.h:1521
int GetColorEdgeContrastLockValue() const
Definition: BOpcodeHandler.h:2811
void SetColorVertexContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3267
void SetSize(float value, int units=TKO_Generic_Size_Unspecified)
Definition: BOpcodeHandler.h:4258
void SetAxis(float const s[])
Definition: BOpcodeHandler.h:6102
void SetValue(int m)
Definition: BOpcodeHandler.h:4056
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6227
Handles the TKE_Visibility opcode.
Definition: BOpcodeHandler.h:4018
unsigned short m_selection_bias
internal use; selection bias options
Definition: BOpcodeHandler.h:3797
float GetIndex() const
Definition: BOpcodeHandler.h:1896
void SetPoint(float const p[])
Definition: BOpcodeHandler.h:5223
void SetExtras(int e)
Definition: BOpcodeHandler.h:3863
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:7273
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:7121
unsigned char m_cut_geometry_match
For internal use only.
Definition: BOpcodeHandler.h:2356
char * m_string
Definition: BOpcodeHandler.h:1292
void SetPoints(float const p[])
Definition: BOpcodeHandler.h:5278
double * GetDPoints()
Definition: BOpcodeHandler.h:7524
void SetTransparentStyle(int s)
Definition: BOpcodeHandler.h:2458
float const * GetRectangle() const
Definition: BOpcodeHandler.h:7401
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:2288
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:6509
TK_Color_RGB()
Definition: BOpcodeHandler.h:1913
unsigned char m_cut_geometry
For internal use only.
Definition: BOpcodeHandler.h:2354
char m_type
Definition: BOpcodeHandler.h:6394
void SetNeedsTag(bool n)
Definition: BOpcodeHandler.h:194
char * m_shape
for internal use only
Definition: BOpcodeHandler.h:4915
float const * GetRef2() const
Definition: BOpcodeHandler.h:6440
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4599
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:3014
char * GetView()
Definition: BOpcodeHandler.h:4835
void SetWidthScale(float s)
Definition: BOpcodeHandler.h:5023
void SetColorEdgeLockMask(int m)
Definition: BOpcodeHandler.h:2588
void SetColorFaceContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3117
unsigned char m_degree
Definition: BOpcodeHandler.h:5372
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5582
int GetDegree() const
Definition: BOpcodeHandler.h:5414
void SetFollow(bool f)
Definition: BOpcodeHandler.h:1366
char * GetSpecularName()
Definition: BOpcodeHandler.h:1824
int m_name_length
Definition: BOpcodeHandler.h:7327
Handles the TKE_NURBS_Surface opcode.
Definition: BOpcodeHandler.h:5542
int m_reference_length
Definition: BOpcodeHandler.h:6789
float const * GetUKnots() const
Definition: BOpcodeHandler.h:5599
int GetColorWindowForcedLockValue() const
Definition: BOpcodeHandler.h:3099
char * m_data
Definition: BOpcodeHandler.h:7661
float * m_points
internal use
Definition: BOpcodeHandler.h:5629
int GetShadowMapResolution() const
Definition: BOpcodeHandler.h:3668
void SetOptions(int o)
Definition: BOpcodeHandler.h:5675
int m_names_length
for internal use only
Definition: BOpcodeHandler.h:4899
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1390
void SetDField(double const f[])
Definition: BOpcodeHandler.h:4793
int GetShadowMapSamples() const
Definition: BOpcodeHandler.h:3673
double const * GetDTarget() const
Definition: BOpcodeHandler.h:4757
struct vlist_s * m_data
Definition: BOpcodeHandler.h:7636
unsigned char m_geometry_options
For internal use only.
Definition: BOpcodeHandler.h:2390
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:7215
void SetColorLineLockValue(int v)
Definition: BOpcodeHandler.h:2622
void SetIndices(int count)
Definition: BOpcodeHandler.h:4572
float const * GetSimpleReflectionPlane() const
Definition: BOpcodeHandler.h:3691
float m_vector_tolerance
internal use; culling vector tolerance
Definition: BOpcodeHandler.h:3805
int m_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2400
int GetHlrLinePattern() const
Definition: BOpcodeHandler.h:3357
float GetStereoDistance() const
Definition: BOpcodeHandler.h:3332
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:6513
int GetRenderer() const
Definition: BOpcodeHandler.h:5066
void SetCylinderTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3511
void SetNearLimit(float l)
Definition: BOpcodeHandler.h:4814
char m_contour_value_adjustment
for internal use only.
Definition: BOpcodeHandler.h:2287
void SetExtraSpace(float s)
Definition: BOpcodeHandler.h:5028
#define ID_Key
Definition: BStream.h:233
unsigned short m_value
internal use
Definition: BOpcodeHandler.h:3974
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:4742
int GetIndex() const
Definition: BOpcodeHandler.h:2059
void SetMask(int m0, int m1=0, int m2=0)
Definition: BOpcodeHandler.h:2430
int m_cond_allocated
Definition: BOpcodeHandler.h:7264
int GetColorVertexContrastLockValue() const
Definition: BOpcodeHandler.h:2880
unsigned char m_flags
Definition: BOpcodeHandler.h:6181
char * name
the font name
Definition: BOpcodeHandler.h:6498
int GetLayout() const
Definition: BOpcodeHandler.h:5107
double * GetDPoints()
Definition: BOpcodeHandler.h:7459
wchar_t * GetString()
Definition: BOpcodeHandler.h:7810
int GetColorFaceContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3111
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:5930
double * m_dradii
Definition: BOpcodeHandler.h:6274
int GetMask() const
Definition: BOpcodeHandler.h:3995
Utility class for managing HSF header information.
Definition: BOpcodeHandler.h:872
float const * GetUpVector() const
Definition: BOpcodeHandler.h:4767
unsigned short m_isoline_options
for internal use only.
Definition: BOpcodeHandler.h:2286
float GetVertexDecimation() const
Definition: BOpcodeHandler.h:3772
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:5269
int m_index
internal use
Definition: BOpcodeHandler.h:1480
float * GetPoints()
Definition: BOpcodeHandler.h:6311
int m_simple_reflection_visibility_value
For internal use only.
Definition: BOpcodeHandler.h:2382
void SetSimpleReflectionPlane(float const p[])
Definition: BOpcodeHandler.h:3689
float m_concentration
for internal use only
Definition: BOpcodeHandler.h:5695
void SetString(int length)
Definition: BOpcodeHandler.h:6574
int GetNumCylinderTessellations() const
Definition: BOpcodeHandler.h:3520
int GetChannels() const
Definition: BOpcodeHandler.h:1794
float * GetWeights()
Definition: BOpcodeHandler.h:5597
void SetTransform(int length)
Definition: BOpcodeHandler.h:7084
void SetToleranceUnits(int u)
Definition: BOpcodeHandler.h:5008
float const * GetDiffuse() const
Definition: BOpcodeHandler.h:1805
int GetOptions() const
Definition: BOpcodeHandler.h:7469
void SetColorWindowForcedLockValue(int v)
Definition: BOpcodeHandler.h:3094
void SetTransform(char const *transform)
Definition: BOpcodeHandler.h:7079
Handles the TKE_Thumbnail opcode.
Definition: BOpcodeHandler.h:7100
Handles the TKE_User_Options opcode.
Definition: BOpcodeHandler.h:4460
int m_margin_count
for internal use only
Definition: BOpcodeHandler.h:4917
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5554
int GetTransforms() const
Definition: BOpcodeHandler.h:5045
void SetForcedLockValue(int v)
Definition: BOpcodeHandler.h:2914
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:4107
Handles the TKE_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7417
void SetSegment(int length)
Definition: BOpcodeHandler.h:1332
char const * GetString() const
Definition: BOpcodeHandler.h:7769
unsigned char m_display_list_level
For internal use only.
Definition: BOpcodeHandler.h:2403
int GetVDegree() const
Definition: BOpcodeHandler.h:5589
int GetValue() const
Definition: BOpcodeHandler.h:3840
char const * GetName() const
Definition: BOpcodeHandler.h:7185
#define NS_TRIM_END
terminates an NS_TRIM_COLLECTION if one is active, otherwise terminates the list of trims ...
Definition: BOpcodeHandler.h:5439
char * GetImage()
Definition: BOpcodeHandler.h:6990
float * GetOrderedWeights()
Definition: BOpcodeHandler.h:3947
float const * GetMiddle() const
Definition: BOpcodeHandler.h:5899
TK_Color_Map()
Definition: BOpcodeHandler.h:2133
int m_size
Definition: BOpcodeHandler.h:7209
char * m_string
Definition: BOpcodeHandler.h:4374
double const * GetDPoint() const
Definition: BOpcodeHandler.h:5232
void SetDiffuse(float const rgb[])
Definition: BOpcodeHandler.h:1799
double const * GetDOrtho() const
Definition: BOpcodeHandler.h:6153
static void fix_in(double *d, int n)
for internal use only
Definition: BOpcodeHandler.h:577
int GetIndex() const
Definition: BOpcodeHandler.h:4332
void SetDepthRange(float n, float f)
Definition: BOpcodeHandler.h:3705
short color_vertex_mask
For internal use only.
Definition: BOpcodeHandler.h:1080
int GetMoveUp() const
Definition: BOpcodeHandler.h:4151
short color_face_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1075
int GetColorFaceContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3122
TK_Streaming()
Definition: BOpcodeHandler.h:4349
static void fix(short *s, int n)
for internal use only
Definition: BOpcodeHandler.h:547
float GetMaxDistance() const
Definition: BOpcodeHandler.h:3916
void GetOblique(float o[]) const
Definition: BOpcodeHandler.h:4811
void SetMoveUp(int m)
Definition: BOpcodeHandler.h:4146
int GetDecimation() const
Definition: BOpcodeHandler.h:7023
void SetRendererCutoffUnits(int u)
Definition: BOpcodeHandler.h:5079
void SetCutGeometry(int m)
Definition: BOpcodeHandler.h:3560
void SetEndNormal(int index, float const normal[]=0)
Definition: BOpcodeHandler.h:6363
TK_Bounding(unsigned char opcode, double center[], double radius)
Definition: BOpcodeHandler.h:5165
char * m_debug_string
Definition: BOpcodeHandler.h:72
char m_tiling
Definition: BOpcodeHandler.h:6932
void SetColorVertexForcedLockMask(int m)
Definition: BOpcodeHandler.h:3175
char const * GetSegment() const
Definition: BOpcodeHandler.h:1209
int m_cursor_count
Definition: BOpcodeHandler.h:6537
void SetSimpleReflection(int m)
Definition: BOpcodeHandler.h:3677
int GetGreekingLimitUnits() const
Definition: BOpcodeHandler.h:5055
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:2311
int GetNURBSSurfaceTrimBudget() const
Definition: BOpcodeHandler.h:3391
float m_contour_value_translate
for internal use only.
Definition: BOpcodeHandler.h:2289
unsigned char const * GetTextLeaderFlags() const
Definition: BOpcodeHandler.h:6631
int m_mask
internal use
Definition: BOpcodeHandler.h:1960
float const * GetLodCutoffs() const
Definition: BOpcodeHandler.h:3499
TK_Named(unsigned char opcode)
Definition: BOpcodeHandler.h:4307
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:6196
void SetEmissionName(int length)
Definition: BOpcodeHandler.h:1863
char * m_name
Definition: BOpcodeHandler.h:6660
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4547
char const * GetString() const
Definition: BOpcodeHandler.h:6576
void SetDStart(double const s[])
Definition: BOpcodeHandler.h:5910
void SetColorEdgeContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3209
float m_width_scale
for internal use only
Definition: BOpcodeHandler.h:4905
int GetColorEdgeForcedLockValue() const
Definition: BOpcodeHandler.h:3007
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:5400
char const * GetStyle() const
Definition: BOpcodeHandler.h:4988
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:7267
char * m_name
Definition: BOpcodeHandler.h:6782
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:1392
float GetSize() const
Definition: BOpcodeHandler.h:4995
int m_move_up
internal use; specifies what geometry is selectable on mouse move without buttons down...
Definition: BOpcodeHandler.h:4079
TK_Matrix(unsigned char opcode)
Definition: BOpcodeHandler.h:4179
void SetDMiddle(double const m[])
Definition: BOpcodeHandler.h:5918
unsigned short m_simple_reflection
For internal use only.
Definition: BOpcodeHandler.h:2375
float GetRadius() const
Definition: BOpcodeHandler.h:6093
float const * GetTarget() const
Definition: BOpcodeHandler.h:5732
int GetNURBSCurveContinuedBudget() const
Definition: BOpcodeHandler.h:3383
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:4345
Lock_Masks m_lock
For internal use only.
Definition: BOpcodeHandler.h:2268
unsigned char * m_data
Definition: BOpcodeHandler.h:7573
float GetSize() const
Definition: BOpcodeHandler.h:4263
void SetGreenMapping(int p)
Definition: BOpcodeHandler.h:7031
void SetLodThresholds(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3470
void SetRectangle(float const *rect)
Definition: BOpcodeHandler.h:7398
TK_Status SetDPoints(int count, double const points[]=0)
void SetOptions(int at)
Definition: BOpcodeHandler.h:4447
Base class for shell and mesh.
Definition: BPolyhedron.h:22
char const * GetName() const
Definition: BOpcodeHandler.h:6970
char m_options
Definition: BOpcodeHandler.h:7419
void ** m_values
for internal use only
Definition: BOpcodeHandler.h:4596
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:7522
TK_User_Index_Data()
Definition: BOpcodeHandler.h:4606
void SetDCenter(double const c[])
Definition: BOpcodeHandler.h:5935
void SetCompression(int c)
Definition: BOpcodeHandler.h:6895
int GetHardExtent() const
Definition: BOpcodeHandler.h:3898
TK_Color_By_Index(unsigned char opcode)
Definition: BOpcodeHandler.h:2026
char * m_reference
Definition: BOpcodeHandler.h:6783
void SetSimpleReflectionPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3682
extends font options to a second byte
Definition: BOpcodeEnums.h:1116
void SetRenderer(int r)
Definition: BOpcodeHandler.h:5064
int m_name_length
Definition: BOpcodeHandler.h:6663
Handles the TKE_Conditional_Action opcode.
Definition: BOpcodeHandler.h:4410
char const * GetName() const
Definition: BOpcodeHandler.h:4325
TK_Geometry_Options()
Definition: BOpcodeHandler.h:3981
int GetUp() const
Definition: BOpcodeHandler.h:4129
void SetEmissionName(char const *name)
Definition: BOpcodeHandler.h:1861
char * m_bytes
Definition: BOpcodeHandler.h:6662
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:3549
float m_surface_max_trim_curve_deviation
For internal use only.
Definition: BOpcodeHandler.h:2331
void SetColorEdgeContrastLockValue(int v)
Definition: BOpcodeHandler.h:2806
double const * GetDPlane() const
Definition: BOpcodeHandler.h:5813
Handles the TKE_Start_User_Data opcode.
Definition: BOpcodeHandler.h:7570
float m_size
for internal use only
Definition: BOpcodeHandler.h:4901
float * GetKnots()
Definition: BOpcodeHandler.h:5528
int m_length
internal use
Definition: BOpcodeHandler.h:2121
float const * GetPoints() const
Definition: BOpcodeHandler.h:5578
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:2126
void SetName(char const *name)
Definition: BOpcodeHandler.h:6966
TK_Status SetPoints(int count, float const points[]=0)
unsigned char const * GetDTextLeaderFlags() const
Definition: BOpcodeHandler.h:6644
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:5593
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:6661
char const * GetLookup() const
Definition: BOpcodeHandler.h:6728
TK_Window()
Definition: BOpcodeHandler.h:4851
void SetColorTextContrastLockValue(int v)
Definition: BOpcodeHandler.h:2898
int GetColorLineForcedLockValue() const
Definition: BOpcodeHandler.h:3030
TK_Linear_Pattern(unsigned char opcode)
Definition: BOpcodeHandler.h:4278
int m_radius_count
Definition: BOpcodeHandler.h:6272
void SetSimpleShadowResolution(int m)
Definition: BOpcodeHandler.h:3619
void SetIndex(int index)
Definition: BOpcodeHandler.h:1408
float GetTolerance() const
Definition: BOpcodeHandler.h:5005
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6015
void SetDRef2(double const r[])
Definition: BOpcodeHandler.h:6472
TK_Line_Style()
Definition: BOpcodeHandler.h:7334
Definition: BOpcodeHandler.h:4343
void SetDOrtho(double x, double y, double z)
Definition: BOpcodeHandler.h:6145
float * GetRef1()
Definition: BOpcodeHandler.h:6431
char m_num_ratios
For internal use only.
Definition: BOpcodeHandler.h:2309
float GetHardEdgeAngle() const
Definition: BOpcodeHandler.h:3551
void SetGreekingLimitUnits(int u)
Definition: BOpcodeHandler.h:5053
int GetParameterFunction() const
Definition: BOpcodeHandler.h:7048
unsigned char m_extras
internal use; low bit set == left handed, second bit set == spriting
Definition: BOpcodeHandler.h:3794
void SetLineSpacing(float s)
Definition: BOpcodeHandler.h:5038
float const * GetMinor() const
Definition: BOpcodeHandler.h:6007
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6597
Handles the TKE_Start_Compression and TKE_Stop_Compression opcodes.
Definition: BOpcodeHandler.h:1035
char const * GetShape() const
Definition: BOpcodeHandler.h:4979
unsigned short * m_string
Definition: BOpcodeHandler.h:4509
static void fix_out(float *f, int n)
for internal use only
Definition: BOpcodeHandler.h:592
char const * GetName() const
Definition: BOpcodeHandler.h:6848
void SetColorWindowContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3129
void SetPreferences(int r1, int r2)
Definition: BOpcodeHandler.h:5090
TK_Texture()
Definition: BOpcodeHandler.h:6948
char * m_gooch_color_map_segment
For internal use only.
Definition: BOpcodeHandler.h:2350
void SetColorEdgeContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3198
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1048
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6234
int m_allocated
Definition: BOpcodeHandler.h:7746
int GetLodThresholdType() const
Definition: BOpcodeHandler.h:3466
static TK_Status PutData(BStreamFileToolkit &tk, double const *d, int n)
Definition: BOpcodeHandler.h:418
int GetPreference() const
Definition: BOpcodeHandler.h:5087
float m_gooch_diffuse_weight
For internal use only.
Definition: BOpcodeHandler.h:2349
void SetColorEdgeContrastLockMask(int m)
Definition: BOpcodeHandler.h:2795
char const * GetName() const
Definition: BOpcodeHandler.h:7353
int GetLodNumThresholds() const
Definition: BOpcodeHandler.h:3479
void SetAmbientUpVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3733
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:7603
double const * GetDTextLeaders() const
Definition: BOpcodeHandler.h:6640
float const * GetLodRatios() const
Definition: BOpcodeHandler.h:3459
int GetColorTextContrastLockValue() const
Definition: BOpcodeHandler.h:2903
extended bits for color
Definition: BOpcodeEnums.h:191
void SetColorWindowLockMask(int m)
Definition: BOpcodeHandler.h:2680
int m_total
Definition: BOpcodeHandler.h:7485
int GetColorMarkerContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3260
HT_NURBS_Trim * GetList()
Definition: BOpcodeHandler.h:5532
void SetIndex(int i)
Definition: BOpcodeHandler.h:1494
float const * getSimpleShadowLight() const
Definition: BOpcodeHandler.h:3632
static TK_Status PutData(BStreamFileToolkit &tk, float const *f, int n)
Definition: BOpcodeHandler.h:395
float GetStereoSeparation() const
Definition: BOpcodeHandler.h:3328
char const * GetEnvironmentName() const
Definition: BOpcodeHandler.h:1876
void SetSimpleShadowOpacity(float o)
Definition: BOpcodeHandler.h:3655
void SetColorWindowContrastLockValue(int v)
Definition: BOpcodeHandler.h:2737
double const * GetDOrigin() const
Definition: BOpcodeHandler.h:6452
char * GetName()
Definition: BOpcodeHandler.h:7187
void SetStart(float x, float y, float z)
Definition: BOpcodeHandler.h:5857
void GetTarget(float t[]) const
Definition: BOpcodeHandler.h:4749
char const * GetSpecularName() const
Definition: BOpcodeHandler.h:1822
void SetIndex(int i)
Definition: BOpcodeHandler.h:2057
int m_substage
Definition: BOpcodeHandler.h:6547
float const * GetPoint() const
Definition: BOpcodeHandler.h:5225
int GetFormat() const
Definition: BOpcodeHandler.h:7145
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:5901
extra item for color; refer to ::HC_Set_Color for a description
Definition: BOpcodeEnums.h:214
void SetSimpleShadowPlane(float const p[])
Definition: BOpcodeHandler.h:3642
float const * GetFogLimits() const
Definition: BOpcodeHandler.h:2502
int GetCount() const
Definition: BOpcodeHandler.h:4574
void SetDEnd(double x, double y, double z)
Definition: BOpcodeHandler.h:5922
void SetColorForcedLockMask(int m)
Definition: BOpcodeHandler.h:2945
self-explanatory
Definition: BOpcodeEnums.h:1253
int m_lod_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2306
int GetTiling() const
Definition: BOpcodeHandler.h:7058
float * m_isoline_colors
for internal use only.
Definition: BOpcodeHandler.h:2294
void SetColorEdgeLockValue(int v)
Definition: BOpcodeHandler.h:2599
void SetDisplayListLevel(int m)
Definition: BOpcodeHandler.h:3600
TK_URL()
Definition: BOpcodeHandler.h:7712
int GetProjection() const
Definition: BOpcodeHandler.h:4825
int m_allocated
Definition: BOpcodeHandler.h:7707
void SetSphereTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3528
void SetImage(char const *image)
Definition: BOpcodeHandler.h:6984
int GetLength()
Definition: BOpcodeHandler.h:4440
float const * GetTextRegionPoints() const
Definition: BOpcodeHandler.h:6606
void SetRedMapping(int p)
Definition: BOpcodeHandler.h:7026
Handles the TKE_Delete_Object opcode.
Definition: BOpcodeHandler.h:1478
void SetMinor(float const m[])
Definition: BOpcodeHandler.h:6005
double * GetDPoints()
Definition: BOpcodeHandler.h:6334
float * GetOrigin()
Definition: BOpcodeHandler.h:6420
void SetColorMarkerContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3255
double const * GetDMinor() const
Definition: BOpcodeHandler.h:6035
TK_Default()
Definition: BOpcodeHandler.h:838
short m_fbe_mask
For internal use only.
Definition: BOpcodeHandler.h:2406
void SetColorFaceForcedLockMask(int m)
Definition: BOpcodeHandler.h:2968
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:4779
HLONG GetValue() const
Definition: BOpcodeHandler.h:4672
unsigned char m_heuristic
For internal use only.
Definition: BOpcodeHandler.h:2322
int * GetStringCursors()
Definition: BOpcodeHandler.h:6620
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1297
char * GetDefinition()
Definition: BOpcodeHandler.h:7196
int m_count
for internal use only
Definition: BOpcodeHandler.h:4594
void SetApplicationMode(int p)
Definition: BOpcodeHandler.h:7066
void SetEnvironmentName(char const *name)
Definition: BOpcodeHandler.h:1872
Handles the TKE_Spot_Light opcode.
Definition: BOpcodeHandler.h:5687
TK_Camera(unsigned char opcode=TKE_Camera)
Definition: BOpcodeHandler.h:4703
void SetRenderers(int r1, int r2)
Definition: BOpcodeHandler.h:5069
void SetMirror(float const rgb[])
Definition: BOpcodeHandler.h:1829
int GetType() const
Definition: BOpcodeHandler.h:5506
void SetSpecularName(char const *name)
Definition: BOpcodeHandler.h:1816
float const * GetPosition() const
Definition: BOpcodeHandler.h:6867
double const * GetDTarget() const
Definition: BOpcodeHandler.h:5740
float const * GetOrigin() const
Definition: BOpcodeHandler.h:6418
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:3322
void SetMirrorName(int length)
Definition: BOpcodeHandler.h:1833
char const * GetBytes() const
Definition: BOpcodeHandler.h:6710
bool GetFollow()
Definition: BOpcodeHandler.h:1368
char * m_string
Definition: BOpcodeHandler.h:6530
TK_Text_Font()
Definition: BOpcodeHandler.h:4935
int GetGeometry() const
Definition: BOpcodeHandler.h:1786
int m_length
Definition: BOpcodeHandler.h:4508
float * m_values
internal use
Definition: BOpcodeHandler.h:2123
int GetColorEdgeContrastLockMask() const
Definition: BOpcodeHandler.h:2800
void SetSize(float s)
Definition: BOpcodeHandler.h:4993
float const * GetAxis() const
Definition: BOpcodeHandler.h:6104
int m_move_down
internal use; specifies what geometry is selectable on mouse button down and move. For internal use only.
Definition: BOpcodeHandler.h:4078
void SetOptions(int length)
Definition: BOpcodeHandler.h:4489
int m_cond_length
Definition: BOpcodeHandler.h:1385
char * m_name
Definition: BOpcodeHandler.h:7210
void SetDRef1(double x, double y, double z)
Definition: BOpcodeHandler.h:6457
int GetColorWindowContrastLockValue() const
Definition: BOpcodeHandler.h:2742
int GetColorTextForcedLockValue() const
Definition: BOpcodeHandler.h:3076
void SetLodMaxDegree(int v)
Definition: BOpcodeHandler.h:3419
void SetSegment(int length)
Definition: BOpcodeHandler.h:1204
float m_simple_reflection_hither
For internal use only.
Definition: BOpcodeHandler.h:2379
void SetSimpleShadow(int m)
Definition: BOpcodeHandler.h:3605
void SetNURBSCurveBudget(int b)
Definition: BOpcodeHandler.h:3377
int GetNURBSOptionsMask() const
Definition: BOpcodeHandler.h:3371
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:3565
unsigned char m_depth_peeling_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2397
void SetIndex(int i)
Definition: BOpcodeHandler.h:4330
int m_value
internal use
Definition: BOpcodeHandler.h:3788
void SetColorMarkerLockMask(int m)
Definition: BOpcodeHandler.h:2634
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:4732
Handles the TKE_Line opcode.
Definition: BOpcodeHandler.h:5249
float m_slant
for internal use only
Definition: BOpcodeHandler.h:4904
float const * GetAxis() const
Definition: BOpcodeHandler.h:6205
int GetColorEdgeContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3214
virtual TK_Status Execute(BStreamFileToolkit &tk)
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5473
void SetDown(int m)
Definition: BOpcodeHandler.h:4113
int GetCulling() const
Definition: BOpcodeHandler.h:3870
float GetHlrFaceSortingAlgorithm() const
Definition: BOpcodeHandler.h:3361
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:7136
int GetExtraSpaceUnits() const
Definition: BOpcodeHandler.h:5035
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5411
float const * GetOrtho() const
Definition: BOpcodeHandler.h:6115
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6129
int GetLayout() const
Definition: BOpcodeHandler.h:7053
float const * GetCenter() const
Definition: BOpcodeHandler.h:5989
char * m_string
Definition: BOpcodeHandler.h:4415
int m_substage
Definition: BOpcodeHandler.h:6921
void SetColorTextForcedLockValue(int v)
Definition: BOpcodeHandler.h:3071
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:4998
void SetEmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1857
void SetLodRatio(float r)
Definition: BOpcodeHandler.h:3446
void SetDPoint(double const p[])
Definition: BOpcodeHandler.h:5230
TK_Visibility(void)
Definition: BOpcodeHandler.h:4025
int GetColorMarkerForcedLockValue() const
Definition: BOpcodeHandler.h:3053
int m_control_point_count
Definition: BOpcodeHandler.h:5373
char m_index
internal use
Definition: BOpcodeHandler.h:4215
char * GetReference()
Definition: BOpcodeHandler.h:6859
self-explanatory
Definition: BOpcodeEnums.h:268
void SetSimpleShadowColor(float const rgb[])
Definition: BOpcodeHandler.h:3650
void SetColorLineContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3221
float GetStart() const
Definition: BOpcodeHandler.h:5422
int m_related
internal use
Definition: BOpcodeHandler.h:3790
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4595
void SetUp(int m)
Definition: BOpcodeHandler.h:4124
void SetMask(int m)
Definition: BOpcodeHandler.h:4950
void SetGeometryOptionsMask(int m)
Definition: BOpcodeHandler.h:3544
float const * GetPoints() const
Definition: BOpcodeHandler.h:5338
Lock_Masks m_forced
For internal use only.
Definition: BOpcodeHandler.h:2269
int GetOptions() const
Definition: BOpcodeHandler.h:5760
int GetLength()
Definition: BOpcodeHandler.h:4495
void SetValueScale(float v1, float v2)
Definition: BOpcodeHandler.h:7061
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:5881
float const * GetLodBounding() const
Definition: BOpcodeHandler.h:3443
int GetLockMask() const
Definition: BOpcodeHandler.h:2508
char * m_camera
Definition: BOpcodeHandler.h:6915
float const * GetRadii() const
Definition: BOpcodeHandler.h:6321
int m_image_length
Definition: BOpcodeHandler.h:6918
int GetIndex() const
Definition: BOpcodeHandler.h:4231
TK_Selectability(void)
Definition: BOpcodeHandler.h:4084
void SetColorEdgeForcedLockValue(int v)
Definition: BOpcodeHandler.h:3002
float const * GetScreenRange() const
Definition: BOpcodeHandler.h:3728
char const * GetString() const
Definition: BOpcodeHandler.h:2176
int m_length
Definition: BOpcodeHandler.h:7706
float const * GetLodThresholds() const
Definition: BOpcodeHandler.h:3481
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:1639
unsigned short m_shadow_map_resolution
For internal use only.
Definition: BOpcodeHandler.h:2372
float m_hlr_face_displacement
For internal use only.
Definition: BOpcodeHandler.h:2277
int m_tmp
Definition: BOpcodeHandler.h:6548
Handles the TKE_Ellipse and TKE_Elliptical_Arc opcodes.
Definition: BOpcodeHandler.h:5964
float const * GetCenter() const
Definition: BOpcodeHandler.h:5903
short m_fbe_value
For internal use only.
Definition: BOpcodeHandler.h:2407
void SetDRef2(double x, double y, double z)
Definition: BOpcodeHandler.h:6468
int GetBufferOptionsValue() const
Definition: BOpcodeHandler.h:3318
float horizontal_offset
offset, positive or negative, from the standard position. units are specified separately in horizonta...
Definition: BOpcodeHandler.h:6503
int GetSize() const
Definition: BOpcodeHandler.h:7605
char * m_name
The name of the color channel.
Definition: BOpcodeHandler.h:1724
self-explanatory
Definition: BOpcodeEnums.h:267
Definition: BOpcodeHandler.h:6497
void SetDAxis(double x, double y, double z)
Definition: BOpcodeHandler.h:6134
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:6020
void SetForcedLockMask(int m)
Definition: BOpcodeHandler.h:2909
void SetSpecular(float r, float g, float b)
Definition: BOpcodeHandler.h:1812
void SetColorMarkerLockValue(int v)
Definition: BOpcodeHandler.h:2645
int * m_lengths
Definition: BOpcodeHandler.h:7486
void **const GetValues()
Definition: BOpcodeHandler.h:4637
int m_cond_allocated
Definition: BOpcodeHandler.h:1294
void SetTransforms(int t)
Definition: BOpcodeHandler.h:5043
Handles the TKE_Grid opcode.
Definition: BOpcodeHandler.h:6392
char * GetCamera()
Definition: BOpcodeHandler.h:6999
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:887
float color[3]
the color. RGB triplet
Definition: BOpcodeHandler.h:6500
void adjust_written(BStreamFileToolkit &tk, int count)
for internal use only
Definition: BOpcodeHandler.h:657
float const * GetPoints() const
Definition: BOpcodeHandler.h:7447
int m_size
internal use
Definition: BOpcodeHandler.h:1674
int GetColorLineForcedLockMask() const
Definition: BOpcodeHandler.h:3019
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:7269
float const * GetSimpleShadowPlane() const
Definition: BOpcodeHandler.h:3644
int m_curve_continued_budget
For internal use only.
Definition: BOpcodeHandler.h:2328
void SetCounts(int c1, int c2)
Definition: BOpcodeHandler.h:6480
int m_length
Definition: BOpcodeHandler.h:4414
indicates that the 2nd byte should be written
Definition: BOpcodeEnums.h:759
char * m_segment
Definition: BOpcodeHandler.h:7261
float GetRadius() const
Definition: BOpcodeHandler.h:6214
float const * GetPlanes() const
Definition: BOpcodeHandler.h:5816
unsigned char m_depth_peeling_layers
For internal use only.
Definition: BOpcodeHandler.h:2395
float m_cut_geometry_edge_weight
for internal use only.
Definition: BOpcodeHandler.h:2358
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:6085
int GetColorLockValue() const
Definition: BOpcodeHandler.h:2558
int GetGeometry() const
Definition: BOpcodeHandler.h:1994
virtual TK_Status Write(BStreamFileToolkit &tk)=0
void SetOptions(int opt)
Definition: BOpcodeHandler.h:4880
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:3432
int m_isoline_position_count
for internal use only.
Definition: BOpcodeHandler.h:2291
void SetDField(double w, double h)
Definition: BOpcodeHandler.h:4791
float * GetPoints()
Definition: BOpcodeHandler.h:5410
double const * GetDRef1() const
Definition: BOpcodeHandler.h:6463
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6142
Flags
Definition: BOpcodeHandler.h:6159
short color_simple_reflection_mask
For internal use only.
Definition: BOpcodeHandler.h:1092
void SetColorTextLockMask(int m)
Definition: BOpcodeHandler.h:2657
extended bit
Definition: BOpcodeEnums.h:807
void SetLodTolerance(float v)
Definition: BOpcodeHandler.h:3423
int GetTessellationMask() const
Definition: BOpcodeHandler.h:3507
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:5711
void SetOptions(int o)
Definition: BOpcodeHandler.h:5608
int m_cond_length
Definition: BOpcodeHandler.h:1293
float m_curve_max_length
For internal use only.
Definition: BOpcodeHandler.h:2337
int m_isoline_pattern_count
for internal use only.
Definition: BOpcodeHandler.h:2295
char * GetBytes()
Definition: BOpcodeHandler.h:6841
double const * GetDEnd() const
Definition: BOpcodeHandler.h:5950
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:3421
void SetDPlane(double const p[])
Definition: BOpcodeHandler.h:5808
int m_culling
internal use; culling options
Definition: BOpcodeHandler.h:3795
float * m_knots
Definition: BOpcodeHandler.h:5378
char m_options
internal use
Definition: BOpcodeHandler.h:5631
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:4722
static TK_Status GetData(BStreamFileToolkit &tk, char &c)
Definition: BOpcodeHandler.h:305
void SetFaceDisplacement(int d)
Definition: BOpcodeHandler.h:2478
char * GetBytes()
Definition: BOpcodeHandler.h:6712
Handles the TKE_User_Value opcode.
Definition: BOpcodeHandler.h:4653
void SetHlrFaceSortingAlgorithm(int a)
Definition: BOpcodeHandler.h:3359
short color_cut_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1097
int GetPixelThreshold() const
Definition: BOpcodeHandler.h:3882
void SetValues(int count, float const values[]=0)
Definition: BOpcodeHandler.h:2155
float GetStart() const
Definition: BOpcodeHandler.h:5516
extended bit for HLR suboptions; refer to ::HC_Set_Rendering_Options for description ...
Definition: BOpcodeEnums.h:650
char * m_string
Definition: BOpcodeHandler.h:4463
void SetColorTextContrastLockMask(int m)
Definition: BOpcodeHandler.h:2887
Handles the TKE_Color_By_FIndex opcode.
Definition: BOpcodeHandler.h:2068
double const * GetDCenter() const
Definition: BOpcodeHandler.h:5952
int m_mask
internal use
Definition: BOpcodeHandler.h:3787
void SetImageTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3749
unsigned char m_cut_geometry_level
For internal use only.
Definition: BOpcodeHandler.h:2355
short color_vertex_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1089
char * m_data
Definition: BOpcodeHandler.h:7162
short color_vertex_value
For internal use only.
Definition: BOpcodeHandler.h:1081
int GetColorMarkerLockValue() const
Definition: BOpcodeHandler.h:2650
int GetTextRegionCount() const
Definition: BOpcodeHandler.h:6604
void SetType(int t)
Definition: BOpcodeHandler.h:6698
int GetOptions() const
Definition: BOpcodeHandler.h:4882
float m_tolerance
for internal use only
Definition: BOpcodeHandler.h:4902
void SetDOrigin(double x, double y, double z)
Definition: BOpcodeHandler.h:6446
void SetSimpleShadowPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3635
void SetFormat(int f)
Definition: BOpcodeHandler.h:2147
int GetOptions() const
Definition: BOpcodeHandler.h:5677
int GetVersion() const
Definition: BStreamFileToolkit.h:972
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:6081
int m_isoline_color_count
for internal use only.
Definition: BOpcodeHandler.h:2293
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:5228
Capping_Options
Definition: BOpcodeHandler.h:6247
char * GetOptions()
Definition: BOpcodeHandler.h:4493
char const * GetShaderSource() const
Definition: BOpcodeHandler.h:6979
char * GetMirrorName()
Definition: BOpcodeHandler.h:1839
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5346
void GetPosition(float p[]) const
Definition: BOpcodeHandler.h:4729
entity is double precision
Definition: BStream.h:336
double * GetDMatrix()
Definition: BOpcodeHandler.h:4204
float * GetLodCutoffs()
Definition: BOpcodeHandler.h:3501
bool m_jpeg_native
Definition: BOpcodeHandler.h:6799
void SetGeometry(int m)
Definition: BOpcodeHandler.h:4038
void SetColorVertexLockValue(int v)
Definition: BOpcodeHandler.h:2783
int GetColorEdgeContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3203
int m_invisible
internal use; specifies what geometry is selectable even when invisible. For internal use only...
Definition: BOpcodeHandler.h:4080
int GetColorFaceContrastLockValue() const
Definition: BOpcodeHandler.h:2719
void SetSimpleShadowColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3647
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6011
void SetMask(int m)
Definition: BOpcodeHandler.h:3993
void SetRGB(float r, float g, float b)
Definition: BOpcodeHandler.h:1944
void SetDOrtho(double const s[])
Definition: BOpcodeHandler.h:6151