Introduction

Getting Started

Programming Guides

API Reference

Additional Resources

BOpcodeHandler.h
Go to the documentation of this file.
1 // Copyright (c) Tech Soft 3D, Inc.
2 //
3 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4 // and considered a trade secret as defined under civil and criminal statutes.
5 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6 // unauthorized use or misappropriation of its trade secrets. Use of this information
7 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9 
10 #ifndef BOPCODE_HANDLER
11 #define BOPCODE_HANDLER
12 
13 #ifndef BBINFILETK_TOOLKIT
14  #include "BStreamFileToolkit.h"
15 #endif
16 
17 #ifndef POINTER_SIZED_INT
18 #if defined(WIN64) || defined(_M_X64) || defined(_WIN64)
19 # define POINTER_SIZED_INT __int64
20 # define POINTER_SIZED_UINT unsigned __int64
21 #else
22 # define POINTER_SIZED_INT long
23 # define POINTER_SIZED_UINT unsigned long
24 #endif
25 #endif
26 
27 #include "BOpcodeEnums.h"
28 
29 
31 
34 
55 class BBINFILETK_API2 BBaseOpcodeHandler
56 #ifdef HPS_CORE_BUILD
57  : public CMO
58 #else
60 #endif
61 {
62  protected:
63  int m_stage;
64  int m_progress;
65  unsigned char m_opcode;
66  unsigned char m_general_flags;
67  bool m_needs_tag;
69 
72  char * m_debug_string;
74  char * m_ascii_buffer;
75  int m_ascii_size;
76  int m_ascii_length;
77 
78  int m_ascii_stage;
80 
81  unsigned char m_byte;
82  unsigned short m_unsigned_short;
83  int m_int;
84  char m_char;
85 
86  public:
93  : m_stage (0), m_progress (0), m_opcode ((unsigned char)op), m_general_flags(0), m_needs_tag (false),
94  m_collection_part(false), m_debug_length (0), m_debug_allocated (0), m_debug_string (0),
95  m_ascii_buffer (0), m_ascii_size (0), m_ascii_length (0), m_ascii_stage (0), m_ascii_progress(0),
96  m_byte(0), m_unsigned_short(0), m_int(0), m_char('\0')
97  {}
98  virtual ~BBaseOpcodeHandler ();
99 
107  virtual TK_Status Read (BStreamFileToolkit & tk) = 0;
108 
116  virtual TK_Status Write (BStreamFileToolkit & tk) = 0;
117 
125  virtual TK_Status Execute (BStreamFileToolkit & tk);
126 
136  virtual TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant = 0);
137 
147  virtual TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special);
148 
154  virtual void Reset ();
155 
160  virtual bool Match_Instance (BStreamFileToolkit const & tk, Recorded_Instance * instance);
161 
162 
164  unsigned char Opcode () const { return m_opcode; }
165 
167  unsigned char General_Flags () const { return m_general_flags; }
168 
170  void Set_General_Flags (int f) { m_general_flags = (unsigned char)f; }
171 
176  int Pass (BStreamFileToolkit & tk) const { return tk.pass(); }
177 
182  TK_Status Tag (BStreamFileToolkit & tk, int variant= -1) const { return tk.tag(variant); }
183 
187  bool Tagging (BStreamFileToolkit & tk) const {
188  return m_needs_tag || tk.GetWriteFlags(TK_Force_Tags) != 0;
189  }
190 
194  void SetNeedsTag (bool n) { m_needs_tag = n; }
195 
199  bool NeedsTag () const { return m_needs_tag; }
200 
204  void SetCollectionPart(bool n) { m_collection_part = n; }
205 
209  bool IsCollectionPart() const { return m_collection_part; }
210 
217  virtual TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const {
218  *handler = 0;
219  return tk.Error();
220  }
221 
227  virtual bool NeedsContext (BStreamFileToolkit & tk) const { (void)tk; return false; }
228 
233  void SetLoggingString (char const * segment);
234 
239  void SetLoggingString (int length);
240 
244  char const * GetLoggingString () const { return m_debug_string; }
249  char * GetLoggingString () { return m_debug_string; }
250 
254  void LogDebug (BStreamFileToolkit & tk, char const * string = 0);
255 
256  protected:
257  // various means of pulling data from the toolkit buffer
258  // Note: format conversion is safe to do in output buffer
259 
261  static TK_Status GetData (BStreamFileToolkit & tk, char * b, int n) { return tk.read (b, n); }
262 
264  static TK_Status GetData (BStreamFileToolkit & tk, short * s, int n) {
265  TK_Status status;
266  if ((status = GetData (tk, (char *)s, n * (int)sizeof (short))) == TK_Normal)
267  fix (s, n);
268  return status;
269  }
270 
272  static TK_Status GetData (BStreamFileToolkit & tk, int * i, int n) {
273  TK_Status status;
274  if ((status = GetData (tk, (char *)i, n * (int)sizeof (int))) == TK_Normal)
275  fix (i, n);
276  return status;
277  }
278 
280  static TK_Status GetData (BStreamFileToolkit & tk, float * f, int n) {
281  TK_Status status;
282  if ((status = GetData (tk, (char *)f, n * (int)sizeof (float))) == TK_Normal)
283  fix_in (f, n);
284  return status;
285  }
286 
288  static TK_Status GetData (BStreamFileToolkit & tk, double * d, int n) {
289  TK_Status status;
290  if ((status = GetData (tk, (char *)d, n * (int)sizeof (double))) == TK_Normal)
291  fix_in (d, n);
292  return status;
293  }
294 
296  static TK_Status GetData (BStreamFileToolkit & tk, unsigned char * b, int n) { return GetData (tk, (char *)b, n); }
297 
299  static TK_Status GetData (BStreamFileToolkit & tk, unsigned short * s, int n) { return GetData (tk, (short *)s, n); }
300 
302  static TK_Status GetData (BStreamFileToolkit & tk, unsigned int * i, int n) { return GetData (tk, (int *)i, n); }
303 
305  static TK_Status GetData (BStreamFileToolkit & tk, char & c) { return GetData (tk, &c, 1); }
306 
308  static TK_Status GetData (BStreamFileToolkit & tk, short & s) { return GetData (tk, &s, 1); }
309 
311  static TK_Status GetData (BStreamFileToolkit & tk, int & i) { return GetData (tk, &i, 1); }
312 
314  static TK_Status GetData (BStreamFileToolkit & tk, unsigned char & b) { return GetData (tk, &b, 1); }
315 
317  static TK_Status GetData (BStreamFileToolkit & tk, unsigned short & s) { return GetData (tk, &s, 1); }
318 
320  static TK_Status GetData (BStreamFileToolkit & tk, unsigned int & i) { return GetData (tk, &i, 1); }
321 
323  static TK_Status GetData (BStreamFileToolkit & tk, float & f) { return GetData (tk, &f, 1); }
324 
326  static TK_Status GetData (BStreamFileToolkit & tk, double & d) { return GetData (tk, &d, 1); }
327 
328 
331  TK_Status status = TK_Normal;
332 
333  if (tk.GetVersion() >= 1975 &&
334  (status = GetData (tk, m_general_flags)) != TK_Normal)
335  return status;
336 
337  return status;
338  }
339 
340 
341 
342 
344  static TK_Status LookatData (BStreamFileToolkit & tk, unsigned char & b) { return tk.lookat ((char &)b); }
345 
346  // various means of putting data into the toolkit buffer
347  // Note: format conversion is NOT safe in input buffer -- use temps
348 
350  static TK_Status PutData (BStreamFileToolkit & tk, char const * b, int n) { return tk.write (b, n); }
351 
353  static TK_Status PutData (BStreamFileToolkit & tk, short const * s, int n) {
354  #ifdef STREAM_BIGENDIAN
355  short * buffer;
356  short * tmp;
357  TK_Status status;
358  int i;
359  BSTREAM_ALLOC_ARRAY(buffer, n, short);
360  tmp = buffer;
361  for (i=0; i<n; ++i)
362  *tmp++ = flip (*s++);
363  status = PutData (tk, (char const *)buffer, n * (int)sizeof (short));
364  BSTREAM_FREE_ARRAY(buffer, n, short);
365  if (status != TK_Normal)
366  return status;
367  return TK_Normal;
368  #else
369  return PutData (tk, (char const *)s, n * (int)sizeof (short));
370  #endif
371  }
372 
374  static TK_Status PutData (BStreamFileToolkit & tk, int const * i, int n) {
375  #ifdef STREAM_BIGENDIAN
376  int * buffer;
377  int * tmp;
378  TK_Status status;
379  int j;
380  BSTREAM_ALLOC_ARRAY(buffer, n, int);
381  tmp = buffer;
382  for (j=0; j<n; ++j)
383  *tmp++ = flip (*i++);
384  status = PutData (tk, (char const *)buffer, n * (int)sizeof (int));
385  BSTREAM_FREE_ARRAY(buffer, n, int);
386  if (status != TK_Normal)
387  return status;
388  return TK_Normal;
389  #else
390  return PutData (tk, (char const *)i, n * (int)sizeof (int));
391  #endif
392  }
393 
395  static TK_Status PutData (BStreamFileToolkit & tk, float const * f, int n) {
396  #if defined(NON_IEEE) || defined(STREAM_BIGENDIAN)
397  float * buffer;
398  float * tmp;
399  TK_Status status;
400  int i;
401  BSTREAM_ALLOC_ARRAY(buffer, n, float);
402  tmp = buffer;
403  for (i=0; i<n; ++i) {
404  *tmp = *f++;
405  fix_out (tmp++, 1);
406  }
407  status = PutData (tk, (char const *)buffer, n * (int)sizeof (float));
408  BSTREAM_FREE_ARRAY(buffer, n, float);
409  if (status != TK_Normal)
410  return status;
411  return TK_Normal;
412  #else
413  return PutData (tk, (char const *)f, n * (int)sizeof (float));
414  #endif
415  }
416 
418  static TK_Status PutData (BStreamFileToolkit & tk, double const * d, int n) {
419  #if defined(NON_IEEE) || defined(STREAM_BIGENDIAN)
420  double * buffer;
421  double * tmp;
422  TK_Status status;
423  int i;
424  BSTREAM_ALLOC_ARRAY(buffer, n, double);
425  tmp = buffer;
426  for (i=0; i<n; ++i) {
427  *tmp = *d++;
428  fix_out (tmp++, 1);
429  }
430  status = PutData (tk, (char const *)buffer, n * (int)sizeof (double));
431  BSTREAM_FREE_ARRAY(buffer, n, double);
432  if (status != TK_Normal)
433  return status;
434  return TK_Normal;
435  #else
436  return PutData (tk, (char const *)d, n * (int)sizeof (double));
437  #endif
438  }
439 
441  static TK_Status PutData (BStreamFileToolkit & tk, unsigned char const * b, int n) { return PutData (tk, (char const *)b, n); }
442 
444  static TK_Status PutData (BStreamFileToolkit & tk, unsigned short const * s, int n) { return PutData (tk, (short const *)s, n); }
445 
447  static TK_Status PutData (BStreamFileToolkit & tk, unsigned int const * i, int n) { return PutData (tk, (int const *)i, n); }
448 
450  static TK_Status PutData (BStreamFileToolkit & tk, char const & c) { return PutData (tk, &c, 1); }
451 
453  static TK_Status PutData (BStreamFileToolkit & tk, short const & s) { return PutData (tk, &s, 1); }
454 
456  static TK_Status PutData (BStreamFileToolkit & tk, int const & i) { return PutData (tk, &i, 1); }
457 
459  static TK_Status PutData (BStreamFileToolkit & tk, unsigned char const & b) { return PutData (tk, &b, 1); }
460 
462  static TK_Status PutData (BStreamFileToolkit & tk, unsigned short const & s) { return PutData (tk, &s, 1); }
463 
465  static TK_Status PutData (BStreamFileToolkit & tk, unsigned int const & i) { return PutData (tk, &i, 1); }
466 
468  static TK_Status PutData (BStreamFileToolkit & tk, float const & f) { return PutData (tk, &f, 1); }
469 
471  static TK_Status PutData (BStreamFileToolkit & tk, double const & d) { return PutData (tk, &d, 1); }
472 
474  TK_Status PutOpcode (BStreamFileToolkit & tk, int adjust = 1) {
475  TK_Status status;
476  unsigned int sequence;
477 
478  if ((status = PutData (tk, Opcode ())) != TK_Normal)
479  return status;
480 
481  tk.adjust_written (adjust);
482 
483  sequence = tk.NextOpcodeSequence();
484  if (tk.GetLogging())
485  log_opcode (tk, sequence, Opcode());
486 
487  return status;
488  }
489 
492  TK_Status status = TK_Normal;
493 
494  if (tk.GetTargetVersion() >= 1975 &&
495  (status = PutData (tk, General_Flags ())) != TK_Normal)
496  return status;
497 
498  return status;
499  }
500 
501 
502 
503  /* note -- fix for int types will work during read OR write phase, but floats need separate routines for native->IEEE and IEEE->native
504  */
506  static short flip (short s) {
507  return (short)(((s >> 8) & 0x00FF) | (s << 8));
508  }
510  static int flip (int i) {
511  return ((i >> 24) & 0x000000FF) | ((i >> 8) & 0x0000FF00) |
512  ((i << 8) & 0x00FF0000) | (i << 24);
513  }
514 
515  #ifdef STREAM_BIGENDIAN
516  static void flip (double * d) {
518  char b[8];
519  memcpy (b, &d, sizeof(double));
520  Swap (b[0], b[7]);
521  Swap (b[1], b[6]);
522  Swap (b[2], b[5]);
523  Swap (b[3], b[4]);
524  memcpy (&d, b, sizeof(double));
525  }
526  #endif
527 
528 #ifndef DOXYGEN_SHOULD_SKIP_THIS
529  #ifndef UNREFERENCED
530  #define UNREFERENCED(x) (void)(x)
531  #endif
532 #endif
533 
535  static void fix (int * i, int n) {
536  #ifdef STREAM_BIGENDIAN
537  while (n--){
538  *i = flip (*i);
539  i++;
540  }
541  #else
542  UNREFERENCED(i);
543  UNREFERENCED(n);
544  #endif
545  }
547  static void fix (short * s, int n) {
548  #ifdef STREAM_BIGENDIAN
549  while (n--){
550  *s = flip (*s);
551  s++;
552  }
553  #else
554  UNREFERENCED(s);
555  UNREFERENCED(n);
556  #endif
557  }
558 
560  static void fix_in (float * f, int n) {
561  #ifdef NON_IEEE
562  // need to re-interpret from IEEE to native format
563  #endif
564 
565  #ifdef STREAM_BIGENDIAN
566  int * i = (int *) f;
567  while (n--) {
568  *i = flip (*i);
569  i++;
570  }
571  #else
572  UNREFERENCED(f);
573  UNREFERENCED(n);
574  #endif
575  }
577  static void fix_in (double * d, int n) {
578  #ifdef NON_IEEE
579  // need to re-interpret from IEEE to native format
580  #endif
581 
582  #ifdef STREAM_BIGENDIAN
583  while (n--) {
584  flip (d++);
585  }
586  #else
587  UNREFERENCED(d);
588  UNREFERENCED(n);
589  #endif
590  }
592  static void fix_out (float * f, int n) {
593  #ifdef NON_IEEE
594  // need to re-interpret from native format to IEEE
595  #endif
596 
597  #ifdef STREAM_BIGENDIAN
598  int * i = (int*) f;
599  while (n--) {
600  *i = flip (*i);
601  i++;
602  }
603  #else
604  UNREFERENCED(f);
605  UNREFERENCED(n);
606  #endif
607  }
609  static void fix_out (double * d, int n) {
610  #ifdef NON_IEEE
611  // need to re-interpret from native format to IEEE
612  #endif
613 
614  #ifdef STREAM_BIGENDIAN
615  while (n--) {
616  flip (d++);
617  }
618  #else
619  UNREFERENCED(d);
620  UNREFERENCED(n);
621  #endif
622  }
623 
625  void log_opcode (BStreamFileToolkit & tk, unsigned int sequence, unsigned char opcode);
626 
627 
628  /* common conversions
629  these two are for converting between floats [0.0,1.0] and unsigned chars [0,255]
630  */
632  void floats_to_bytes (float const * in, unsigned char * out, int count) const {
633  while (count-- > 0)
634  *out++ = char (*in++ * 255.999f);
635  }
637  void bytes_to_floats (unsigned char const * in, float * out, int count) const {
638  while (count-- > 0)
639  *out++ = float (*in++) * (1.0f/255.0f);
640  }
641 
642  // access to toolkit utility functions
644  void add_segment (BStreamFileToolkit & tk, ID_Key key) { tk.add_segment (key); }
646  ID_Key remove_segment (BStreamFileToolkit & tk) { return tk.remove_segment(); }
648  void set_last_key (BStreamFileToolkit & tk, ID_Key key) { tk.set_last_key (key); }
651  if (tk.m_last_keys_used == 1)
652  return tk.m_last_keys[0];
653  else
654  return -1;
655  }
657  void adjust_written (BStreamFileToolkit & tk, int count) { tk.adjust_written (count); }
659  void increase_nesting (BStreamFileToolkit & tk, int amount=1) { tk.increase_nesting (amount); }
661  void decrease_nesting (BStreamFileToolkit & tk, int amount=1) { tk.decrease_nesting (amount); }
662 
666  void Revisit (BStreamFileToolkit & tk, float priority=0.0f, int variant=0) const { tk.revisit (Opcode(), priority, variant); }
667 
671  BBaseOpcodeHandler * Opcode_Handler (BStreamFileToolkit & tk, unsigned char op) const
672  { return tk.opcode_handler (op); }
673 
675  void Record_Instance (BStreamFileToolkit & tk, ID_Key key, int variant,
676  int val1, int val2, int val3) const {
677  tk.record_instance (key, variant, this, val1, val2, val3);
678  }
680  bool Find_Instance (BStreamFileToolkit & tk, int val1, int val2, int val3) {
681  return tk.find_instance (this, val1, val2, val3);
682  }
683 
685  void Remember_Item (BStreamFileToolkit & tk, ID_Key key) const { tk.remember_item(key); }
687  bool Find_Item (BStreamFileToolkit & tk, ID_Key key) const { return tk.find_item(key); }
688 
690  bool validate_count (int count, int limit = 1<<24) const { return 0 <= count && count <= limit; }
691 
695  static float read_float (char const *cp, char const ** newcpp = 0);
697  static float read_float (char const *cp, char ** newcpp)
698  { return read_float (cp, (char const **)newcpp); }
700  static char * write_float (char * buffer, double f);
701 
702 
703 
705  TK_Status SkipNewlineAndTabs(BStreamFileToolkit & tk, unsigned int* readSize=0);
707  TK_Status ReadAsciiLine(BStreamFileToolkit & tk, unsigned int* readSize=0);
709  TK_Status ReadAsciiWord(BStreamFileToolkit & tk, unsigned int* readSize=0);
711  TK_Status ReadEndOpcode(BStreamFileToolkit & tk);
713  bool RemoveAngularBrackets(char* string);
715  bool RemoveQuotes(char* string);
717  TK_Status Read_Referenced_Segment(BStreamFileToolkit & tk, int &i_progress);
718 
719  //TK_Status GetAsciiData(BStreamFileToolkit & tk, float * rFloats, unsigned int n);
720 
722  TK_Status GetAsciiData(BStreamFileToolkit & tk, int * rInts, unsigned int n);
723  //TK_Status GetAsciiData(BStreamFileToolkit & tk, short * rShorts, unsigned int n);
724 
726  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned char& value);
728  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, char& value);
730  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned short& value);
732  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, short& value);
734  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, int& value);
736  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, float& value);
738  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, float * rFloats, unsigned int n);
740  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, char * m_string, unsigned int n);
742  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned char * m_string, unsigned int n);
744  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, int * rInts, unsigned int n);
746  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, short * rShorts, unsigned int n);
748  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned short * rShorts, unsigned int n);
750  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, unsigned char &value);
752  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, int &value);
754  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, char &value);
756  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, unsigned short &value);
758  TK_Status GetAsciiImageData(BStreamFileToolkit & tk, const char * tag, unsigned char * rValues, unsigned int n);
759 
761  TK_Status PutAsciiOpcode (BStreamFileToolkit & tk, int adjust = 1, bool is_end = false, bool want_newline = true);
762  // TK_Status PutAsciiOpcode (BStreamFileToolkit & tk, int adjust = 1);
763 
765  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, char const * b, int n);
767  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, short const * s, int n);
769  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, int const * i, int n);
771  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, float const * f, int n);
773  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned char const * b, int n);
775  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned short const * s, int n);
777  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned int const * i, int n);
779  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, char const & c);
781  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, short const & s);
783  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, int const & i);
785  TK_Status PutAsciiFlag (BStreamFileToolkit & tk, char const *tag, int const & i);
787  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned char const & b);
789  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned short const & s);
791  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned int const & i);
793  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, float const & f);
795  TK_Status PutAsciiMask (BStreamFileToolkit & tk,char const *tag, int const & i);
797  TK_Status PutAsciiHex (BStreamFileToolkit & tk, char const *tag, int const & i);
799  TK_Status PutStartXMLTag (BStreamFileToolkit & tk, char const *tag);
801  TK_Status PutEndXMLTag (BStreamFileToolkit & tk, char const *tag);
802 };
803 
805 #define IMPLEMENT_CLONE(class_name) \
806  TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
807  *newhandler = BSTREAM_NEW(class_name); \
808  if (*newhandler != nullptr) \
809  return TK_Normal; \
810  else \
811  return tk.Error ("memory allocation in" #class_name "::clone failed"); \
812  } //
813 #define IMPLEMENT_CLONE_OPCODE(class_name) \
815  TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
816  *newhandler = BSTREAM_NEW(class_name)(Opcode()); \
817  if (*newhandler != nullptr) \
818  return TK_Normal; \
819  else \
820  return tk.Error ("memory allocation in" #class_name "::clone failed"); \
821 } //
822 
824 
830 class BBINFILETK_API TK_Default : public BBaseOpcodeHandler {
831 
832  protected:
833  char * m_opcode_buffer;
834  int m_buffer_count;
835 
836  public:
838  TK_Default () : BBaseOpcodeHandler (TKE_Pseudo_Handler) {m_opcode_buffer = 0, m_buffer_count = 0;}
839 
841 
843 
844 
845  TK_Status ReadAscii (BStreamFileToolkit & tk);
846  TK_Status WriteAscii (BStreamFileToolkit & tk);
847 
848 };
849 
855 class BBINFILETK_API TK_Unavailable : public BBaseOpcodeHandler {
856  public:
858  TK_Unavailable (char opcode) : BBaseOpcodeHandler (opcode) {}
859 
862 };
863 
866 
872 class BBINFILETK_API TK_Header : public BBaseOpcodeHandler {
873  protected:
876 
877  public:
879  TK_Header () : BBaseOpcodeHandler (TKE_Pseudo_Handler), m_current_object (0) {}
880  ~TK_Header();
881 
884 
885 
886  TK_Status ReadAscii (BStreamFileToolkit & tk);
887  TK_Status WriteAscii (BStreamFileToolkit & tk);
888 
889 
890  void Reset ();
891 };
892 
893 
895 
901 class BBINFILETK_API TK_File_Info : public BBaseOpcodeHandler {
902  protected:
904  int m_flags;
905 
906  public:
908  TK_File_Info () : BBaseOpcodeHandler (TKE_File_Info), m_flags (0) {}
909 
910 
914  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
915  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
916  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
917 
918 
919  TK_Status ReadAscii (BStreamFileToolkit & tk);
920  TK_Status WriteAscii (BStreamFileToolkit & tk);
921 
922 
924  void SetFlags (int f) { m_flags = f; }
926  int GetFlags () { return m_flags; }
927 };
928 
929 
931 
939 class BBINFILETK_API TK_Comment : public BBaseOpcodeHandler {
940  protected:
942  int m_length;
946  char * m_comment;
947 
949  void set_comment (char const * comment);
951  void set_comment (int length);
952 
953  public:
955  TK_Comment (char const * comment = 0);
956  ~TK_Comment();
957 
961 
962  TK_Status ReadAscii (BStreamFileToolkit & tk);
963  TK_Status WriteAscii (BStreamFileToolkit & tk);
964  TK_Status ExecuteAscii (BStreamFileToolkit & tk);
967  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant) {
968  (void)tk; (void)key; (void)variant;
969  return TK_Normal;
970  }
971  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
972  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
973  void Reset ();
974 
979  void SetComment (char const * comment) { set_comment (comment); }
984  void SetComment (int length) { set_comment (length); }
988  char const * GetComment () const { return m_comment; }
993  char * GetComment () { return m_comment; }
994 };
995 
996 
998 
1006 class BBINFILETK_API TK_Terminator : public BBaseOpcodeHandler {
1007  public:
1009  TK_Terminator (char opcode, bool is_file_terminator = true) : BBaseOpcodeHandler (opcode),
1010  m_terminate_file(is_file_terminator) {}
1011 
1015 
1016 
1017  TK_Status ReadAscii (BStreamFileToolkit & tk);
1018  TK_Status WriteAscii (BStreamFileToolkit & tk);
1019 
1020  protected:
1022  // meant to terminate the file or something else (viz. LOD collection)
1024 };
1025 
1026 
1028 
1035 class BBINFILETK_API TK_Compression : public BBaseOpcodeHandler {
1036  public:
1038  TK_Compression (char opcode) : BBaseOpcodeHandler (opcode) {}
1039 
1042 
1043  TK_Status ReadAscii (BStreamFileToolkit & tk);
1044  TK_Status WriteAscii (BStreamFileToolkit & tk);
1046  TK_Status ExecuteAscii (BStreamFileToolkit & tk);
1047  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
1048  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1049  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1050 };
1051 
1053 
1054 
1055 // this should be based off a "data handling" interface class broken out from BBaseOpcodeHandler
1056 class BBINFILETK_API Lock_Masks : public BBaseOpcodeHandler {
1057  public:
1058  int mask;
1059  int value;
1100 
1101 
1102  Lock_Masks () : BBaseOpcodeHandler (0) {}
1104  TK_Status Write (BStreamFileToolkit &) { return TK_Error; } //-V524
1105 
1106  TK_Status Read (BStreamFileToolkit & tk, bool mask_only);
1107  TK_Status Write (BStreamFileToolkit & tk, bool mask_only);
1108 
1109  void init() {
1110  mask = value = 0;
1111  color_mask = color_value = 0;
1112  color_face_mask = color_face_value =
1113  color_edge_mask = color_edge_value =
1114  color_line_mask = color_line_value =
1115  color_marker_mask = color_marker_value =
1116  color_text_mask = color_text_value =
1117  color_window_mask = color_window_value =
1118  color_face_contrast_mask = color_face_contrast_value =
1119  color_window_contrast_mask = color_window_contrast_value =
1120  color_back_mask = color_back_value =
1121  color_vertex_mask = color_vertex_value =
1122  color_edge_contrast_mask = color_edge_contrast_value =
1123  color_line_contrast_mask = color_line_contrast_value =
1124  color_marker_contrast_mask = color_marker_contrast_value =
1125  color_vertex_contrast_mask = color_vertex_contrast_value =
1126  color_text_contrast_mask = color_text_contrast_value = 0;
1127  color_simple_reflection_mask = color_simple_reflection_value = 0;
1128  color_cut_face_mask = color_cut_face_value = 0;
1129  color_cut_edge_mask = color_cut_edge_value = 0;
1130  visibility_mask = visibility_value = 0;
1131  }
1132 
1133  void set_color() {
1134  color_mask = color_value = TKO_Geo_All_Colors;
1135  color_face_mask = color_face_value =
1136  color_edge_mask = color_edge_value =
1137  color_line_mask = color_line_value =
1138  color_marker_mask = color_marker_value =
1139  color_text_mask = color_text_value =
1140  color_window_mask = color_window_value =
1141  color_face_contrast_mask = color_face_contrast_value =
1142  color_window_contrast_mask = color_window_contrast_value =
1143  color_back_mask = color_back_value =
1144  color_vertex_mask = color_vertex_value =
1145  color_edge_contrast_mask = color_edge_contrast_value =
1146  color_line_contrast_mask = color_line_contrast_value =
1147  color_marker_contrast_mask = color_marker_contrast_value =
1148  color_vertex_contrast_mask = color_vertex_contrast_value =
1149  color_text_contrast_mask = color_text_contrast_value =
1150  color_simple_reflection_mask = color_simple_reflection_value =
1151  color_cut_face_mask = color_cut_face_value =
1152  color_cut_edge_mask = color_cut_edge_value =
1154  }
1155 };
1156 
1158 
1160 
1170 class BBINFILETK_API TK_Open_Segment : public BBaseOpcodeHandler {
1171  protected:
1172  int m_length;
1174  char * m_string;
1176  void set_segment (char const * segment);
1179  void set_segment (int length);
1180 
1181  public:
1183  TK_Open_Segment () : BBaseOpcodeHandler (TKE_Open_Segment), m_length (0), m_allocated (0), m_string (0) {}
1184  ~TK_Open_Segment();
1185 
1188  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1189 
1190  TK_Status ReadAscii (BStreamFileToolkit & tk);
1191  TK_Status WriteAscii (BStreamFileToolkit & tk);
1192  void Reset ();
1193 
1198  void SetSegment (char const * segment) { set_segment (segment); }
1199 
1204  void SetSegment (int length) { set_segment (length); }
1205 
1209  char const * GetSegment () const { return m_string; }
1214  char * GetSegment () { return m_string; }
1215 
1216 };
1217 
1218 
1220 
1229 class BBINFILETK_API TK_Close_Segment : public BBaseOpcodeHandler {
1230  public:
1232  TK_Close_Segment () : BBaseOpcodeHandler (TKE_Close_Segment) {}
1233 
1236  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1237 
1238  TK_Status ReadAscii (BStreamFileToolkit & tk);
1239  TK_Status WriteAscii (BStreamFileToolkit & tk);
1240 };
1241 
1242 
1243 
1245 
1257 class BBINFILETK_API TK_Reopen_Segment : public BBaseOpcodeHandler {
1258  protected:
1259  int m_index;
1261  public:
1263  TK_Reopen_Segment () : BBaseOpcodeHandler (TKE_Reopen_Segment), m_index (-1) {}
1264 
1267  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1268 
1269  TK_Status ReadAscii (BStreamFileToolkit & tk);
1270  TK_Status WriteAscii (BStreamFileToolkit & tk);
1271 
1273  void SetIndex (int i) { m_index = i; }
1275  int GetIndex () const { return m_index; }
1276 };
1277 
1278 
1280 
1288 class BBINFILETK_API TK_Referenced_Segment : public BBaseOpcodeHandler {
1289  protected:
1290  int m_length;
1292  char * m_string;
1295  char * m_condition;
1299  unsigned char m_renumbered_scope;
1301  bool m_follow;
1303 
1304  bool m_referee_has_priority;
1305  int m_referee_priority;
1306 
1307  void set_segment (char const * segment);
1308  void set_segment (int length);
1309 
1310  public:
1312  TK_Referenced_Segment (unsigned char opcode);
1314 
1317  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1318 
1319  TK_Status ReadAscii (BStreamFileToolkit & tk);
1320  TK_Status WriteAscii (BStreamFileToolkit & tk);
1321  void Reset ();
1322 
1327  void SetSegment (char const * segment) { set_segment (segment); }
1332  void SetSegment (int length) { set_segment (length); }
1336  char const * GetSegment () const { return m_string; }
1341  char * GetSegment () { return m_string; }
1342 
1343 
1348  void SetCondition (char const * condition);
1353  void SetCondition (int length);
1357  char const * GetCondition () const { return m_condition; }
1362  char * GetCondition () { return m_condition; }
1363 
1364 
1366  void SetFollow (bool f) { m_follow = f; }
1368  bool GetFollow () { return m_follow; }
1369 
1370 };
1371 
1372 
1374 
1382 class BBINFILETK_API TK_Reference : public BBaseOpcodeHandler {
1383  protected:
1384  int m_index;
1387  char * m_condition;
1392  bool m_follow;
1393 
1394  public:
1396  TK_Reference ();
1397  ~TK_Reference();
1398 
1401  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1402 
1403  TK_Status ReadAscii (BStreamFileToolkit & tk);
1404  TK_Status WriteAscii (BStreamFileToolkit & tk);
1405  void Reset ();
1406 
1408  void SetIndex (int index) { m_index = index; }
1410  ID_Key GetIndex () { return m_index; }
1411 
1416  void SetCondition (char const * condition);
1421  void SetCondition (int length);
1425  char const * GetCondition () const { return m_condition; }
1430  char * GetCondition () { return m_condition; }
1431 
1432 
1434  void SetFollow (bool f) { m_follow = f; }
1436  bool GetFollow () { return m_follow; }
1437 };
1438 
1440 
1442 
1450 class BBINFILETK_API TK_Instance : public BBaseOpcodeHandler {
1451  protected:
1457  float m_matrix[16];
1458 
1459  public:
1461  TK_Instance (int from_index=0, int from_variant=0, int to_index=0, int to_variant=0,
1462  int options=0, float const xform[]=0);
1463 
1466  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1467 
1468  TK_Status ReadAscii (BStreamFileToolkit & tk);
1469  TK_Status WriteAscii (BStreamFileToolkit & tk);
1470 
1471  void Reset ();
1472 };
1473 
1475 
1478 class BBINFILETK_API TK_Delete_Object : public BBaseOpcodeHandler {
1479  protected:
1480  int m_index;
1481 
1482  public:
1485 
1488  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1489 
1490  TK_Status ReadAscii (BStreamFileToolkit & tk);
1491  TK_Status WriteAscii (BStreamFileToolkit & tk);
1492 
1494  void SetIndex (int i) { m_index = i; }
1496  int GetIndex () { return m_index; }
1497 };
1498 
1499 
1501 
1502 
1504 
1507 class BBINFILETK_API TK_LOD : public BBaseOpcodeHandler {
1508  protected:
1514  struct vlist_s *m_current_working;
1516 
1517  TK_Status ReadOneList (BStreamFileToolkit & tk);
1518 
1519  public:
1521  TK_LOD () : BBaseOpcodeHandler (TKE_LOD) {
1522  m_num_primitives = 0;
1523  m_primitives = 0;
1524  m_highest_level = 0;
1525  m_levels_allocated = 0;
1526  m_substage = 0;
1527  m_current_working = 0;
1528  m_current_level = 0;
1529  }
1530  ~TK_LOD();
1531 
1534  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1535 
1536  TK_Status ReadAscii (BStreamFileToolkit & tk);
1537  TK_Status WriteAscii (BStreamFileToolkit & tk);
1538 
1539  void Reset ();
1540 };
1542 #define TKLOD_ESCAPE 255
1543 
1544 
1546 
1548 
1553 class BBINFILETK_API TK_Geometry_Attributes : public BBaseOpcodeHandler {
1554  protected:
1555 
1556  public:
1558  TK_Geometry_Attributes () : BBaseOpcodeHandler (TKE_Geometry_Attributes) {}
1559 
1562 
1563  TK_Status ReadAscii (BStreamFileToolkit & tk);
1564  TK_Status WriteAscii (BStreamFileToolkit & tk);
1566 };
1567 
1569 
1579 class BBINFILETK_API TK_Renumber : public BBaseOpcodeHandler {
1580  protected:
1582 
1583  public:
1587  TK_Renumber (unsigned char opcode, ID_Key key = 0) : BBaseOpcodeHandler (opcode), m_key (key) {}
1588 
1591  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1592 
1593  TK_Status ReadAscii (BStreamFileToolkit & tk);
1594  TK_Status WriteAscii (BStreamFileToolkit & tk);
1595 
1596  void SetKey (ID_Key k) { m_key = k; }
1598  ID_Key GetKey () const { return m_key; }
1599 };
1600 
1601 
1603 
1608 class BBINFILETK_API TK_Tag : public BBaseOpcodeHandler {
1609  protected:
1610 
1611  public:
1613  TK_Tag (unsigned char opcode = TKE_Tag) : BBaseOpcodeHandler (opcode) {}
1614 
1617 
1618  TK_Status ReadAscii (BStreamFileToolkit & tk);
1619  TK_Status WriteAscii (BStreamFileToolkit & tk);
1620 
1622  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1623  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1624  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1625 };
1626 
1628 
1635 // Note: unlike most opcode handlers, this one does not contain its own data, it is primarily a
1636 // wrapper around the key <-> index translation table in the toolkit.
1637 class BBINFILETK_API TK_Dictionary : public BBaseOpcodeHandler {
1638  protected:
1639  unsigned char m_format;
1641  unsigned char m_present;
1643 
1644  Internal_Translator::Index_Key_Pair * m_item;
1645 
1646  public:
1648  TK_Dictionary () : BBaseOpcodeHandler (TKE_Dictionary), m_format (0) {}
1649 
1652 
1653  TK_Status ReadAscii (BStreamFileToolkit & tk);
1654  TK_Status WriteAscii (BStreamFileToolkit & tk);
1655 
1657  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1658  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1659  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1660  void Reset ();
1661 };
1662 
1663 
1665 
1672 class BBINFILETK_API TK_Dictionary_Locater : public BBaseOpcodeHandler {
1673  protected:
1674  int m_size;
1675  int m_offset;
1676 
1677  public:
1679  TK_Dictionary_Locater () : BBaseOpcodeHandler (TKE_Dictionary_Locater), m_offset (0) {}
1680 
1683 
1684  TK_Status ReadAscii (BStreamFileToolkit & tk);
1685  TK_Status WriteAscii (BStreamFileToolkit & tk);
1686 
1688  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1689  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1690  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1691  void Reset ();
1692 
1694  void SetSize (int size) { m_size = size; }
1696  int GetSize () const { return m_size; }
1698  void SetOffset (int offset) { m_offset = offset; }
1700  int GetOffset () const { return m_offset; }
1701 };
1702 
1703 
1705 
1706 
1708 
1713 class BBINFILETK_API TK_Color : public BBaseOpcodeHandler {
1714  protected:
1715  int m_mask;
1716  short m_channels;
1717 
1721  class BBINFILETK_API channel {
1722  public:
1723  float m_rgb[3];
1724  char * m_name;
1725 
1726  channel() : m_name (0) {}
1727  ~channel() { Reset(); }
1728  void Reset () {
1729  if (m_name)
1730  BSTREAM_FREE_ARRAY(m_name, (int)(strlen(m_name) + 1), char);
1731  m_name = 0;
1732  }
1733  };
1734 
1742  float m_gloss;
1743  float m_index;
1745 
1747  void set_channel_rgb (channel & c, float r, float g, float b, int which_channel = -1) {
1748  c.m_rgb[0] = r; c.m_rgb[1] = g; c.m_rgb[2] = b;
1749  if (which_channel != -1) {
1750  m_channels |= (1 << which_channel);
1751  if (which_channel > TKO_Channel_Extended)
1752  m_channels |= (1 << TKO_Channel_Extended);
1753  }
1754  }
1756  void set_channel_name (channel & c, char const * name, int which_channel = -1);
1758  void set_channel_name (channel & c, int length, int which_channel = -1);
1759 
1760  public:
1761  TK_Color ();
1762  ~TK_Color ();
1763 
1764  TK_Status Read (BStreamFileToolkit & tk);
1765  TK_Status Write (BStreamFileToolkit & tk);
1766  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1767 
1768  TK_Status ReadAscii (BStreamFileToolkit & tk);
1769  TK_Status WriteAscii (BStreamFileToolkit & tk);
1770 
1771  void Reset ();
1772 
1774  void SetGeometry (int m) {
1775  m_mask = m & TKO_Geo_All_Colors;
1776  if ((m & TKO_Geo_Extended_Mask) != 0) {
1777  m_mask |= TKO_Geo_Extended;
1778  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1779  m_mask |= TKO_Geo_Extended_Colors;
1780  if ((m & TKO_Geo_Extended2_Mask) != 0)
1781  m_mask |= TKO_Geo_Extended2;
1782  }
1783  }
1784  }
1786  int GetGeometry () const { return m_mask; }
1788  void SetChannels (int c) {
1789  m_channels = (short)c;
1790  if ((c & (((unsigned int)~0) << (TKO_Channel_Extended_Shift))) != 0)
1791  m_channels |= (1 << TKO_Channel_Extended);
1792  }
1794  int GetChannels () const { return (int)m_channels; }
1795 
1797  void SetDiffuse (float r, float g, float b) { set_channel_rgb (m_diffuse, r, g, b, TKO_Channel_Diffuse); }
1799  void SetDiffuse (float const rgb[]) { SetDiffuse (rgb[0], rgb[1], rgb[2]); }
1801  void SetDiffuseName (char const * name) { set_channel_name (m_diffuse, name, TKO_Channel_Diffuse); }
1803  void SetDiffuseName (int length) { set_channel_name (m_diffuse, length, TKO_Channel_Diffuse); }
1805  float const * GetDiffuse () const { return m_diffuse.m_rgb; }
1807  char const * GetDiffuseName () const { return m_diffuse.m_name; }
1809  char * GetDiffuseName () { return m_diffuse.m_name; }
1810 
1812  void SetSpecular (float r, float g, float b) { set_channel_rgb (m_specular, r, g, b, TKO_Channel_Specular);}
1814  void SetSpecular (float const rgb[]) { SetSpecular (rgb[0], rgb[1], rgb[2]); }
1816  void SetSpecularName (char const * name) { set_channel_name (m_specular, name, TKO_Channel_Specular); }
1818  void SetSpecularName (int length) { set_channel_name (m_specular, length, TKO_Channel_Specular);}
1820  float const * GetSpecular () const { return m_specular.m_rgb; }
1822  char const * GetSpecularName () const { return m_specular.m_name; }
1824  char * GetSpecularName () { return m_specular.m_name; }
1825 
1827  void SetMirror (float r, float g, float b) { set_channel_rgb (m_mirror, r, g, b, TKO_Channel_Mirror); }
1829  void SetMirror (float const rgb[]) { SetMirror (rgb[0], rgb[1], rgb[2]); }
1831  void SetMirrorName (char const * name) { set_channel_name (m_mirror, name, TKO_Channel_Mirror); }
1833  void SetMirrorName (int length) { set_channel_name (m_mirror, length, TKO_Channel_Mirror); }
1835  float const * GetMirror () const { return m_mirror.m_rgb; }
1837  char const * GetMirrorName () const { return m_mirror.m_name; }
1839  char * GetMirrorName () { return m_mirror.m_name; }
1840 
1842  void SetTransmission (float r, float g, float b) { set_channel_rgb (m_transmission, r, g, b, TKO_Channel_Transmission); }
1844  void SetTransmission (float const rgb[]) { SetTransmission (rgb[0], rgb[1], rgb[2]); }
1846  void SetTransmissionName (char const * name) { set_channel_name (m_transmission, name, TKO_Channel_Transmission); }
1848  void SetTransmissionName (int length) { set_channel_name (m_transmission, length, TKO_Channel_Transmission); }
1850  float const * GetTransmission () const { return m_transmission.m_rgb; }
1852  char const * GetTransmissionName () const { return m_transmission.m_name; }
1854  char * GetTransmissionName () { return m_transmission.m_name; }
1855 
1857  void SetEmission (float r, float g, float b) { set_channel_rgb (m_emission, r, g, b, TKO_Channel_Emission);}
1859  void SetEmission (float const rgb[]) { SetEmission (rgb[0], rgb[1], rgb[2]); }
1861  void SetEmissionName (char const * name) { set_channel_name (m_emission, name, TKO_Channel_Emission); }
1863  void SetEmissionName (int length) { set_channel_name (m_emission, length, TKO_Channel_Emission);}
1865  float const * GetEmission () const { return m_emission.m_rgb; }
1867  char const * GetEmissionName () const { return m_emission.m_name; }
1869  char * GetEmissionName () { return m_emission.m_name; }
1870 
1872  void SetEnvironmentName (char const * name) { set_channel_name (m_environment, name, TKO_Channel_Environment); }
1874  void SetEnvironmentName (int length) { set_channel_name (m_environment, length, TKO_Channel_Environment); }
1876  char const * GetEnvironmentName () const { return m_environment.m_name; }
1878  char * GetEnvironmentName () { return m_environment.m_name; }
1879 
1881  void SetBumpName (char const * name) { set_channel_name (m_bump, name, TKO_Channel_Bump); }
1883  void SetBumpName (int length) { set_channel_name (m_bump, length, TKO_Channel_Bump); }
1885  char const * GetBumpName () const { return m_bump.m_name; }
1887  char * GetBumpName () { return m_bump.m_name; }
1888 
1890  void SetGloss (float g) { m_gloss = g; m_channels |= (1<<TKO_Channel_Gloss); }
1892  float GetGloss () const { return m_gloss; }
1894  void SetIndex (float i) { m_index = i; m_channels |= (1<<TKO_Channel_Index); }
1896  float GetIndex () const { return m_index; }
1897 };
1898 
1899 
1901 
1906 class BBINFILETK_API TK_Color_RGB : public BBaseOpcodeHandler {
1907  protected:
1908  int m_mask;
1909  float m_rgb[3];
1910 
1911  public:
1913  TK_Color_RGB () : BBaseOpcodeHandler (TKE_Color_RGB), m_mask (0) {}
1914 
1917  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1918 
1919  TK_Status ReadAscii (BStreamFileToolkit & tk);
1920  TK_Status WriteAscii (BStreamFileToolkit & tk);
1921 
1926  void SetGeometry (int m) {
1927  m_mask = m & TKO_Geo_All_Colors;
1928  if ((m & TKO_Geo_Extended_Mask) != 0) {
1929  m_mask |= TKO_Geo_Extended;
1930  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1931  m_mask |= TKO_Geo_Extended_Colors;
1932  if ((m & TKO_Geo_Extended2_Mask) != 0)
1933  m_mask |= TKO_Geo_Extended2;
1934  }
1935  }
1936  }
1941  int GetGeometry () const { return m_mask; }
1942 
1944  void SetRGB (float r, float g, float b) { m_rgb[0] = r; m_rgb[1] = g; m_rgb[2] = b; }
1946  void SetRGB (float const rgb[]) { SetRGB (rgb[0], rgb[1], rgb[2]); }
1948  float const * GetRGB () const { return m_rgb; }
1949 };
1950 
1951 
1953 
1958 class BBINFILETK_API TK_Color_By_Value : public BBaseOpcodeHandler {
1959  protected:
1960  int m_mask;
1961  float m_value[3];
1962  char m_space;
1963 
1964  public:
1966  TK_Color_By_Value () : BBaseOpcodeHandler (TKE_Color_By_Value), m_mask (0) {}
1967 
1970  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1971 
1972  TK_Status ReadAscii (BStreamFileToolkit & tk);
1973  TK_Status WriteAscii (BStreamFileToolkit & tk);
1974 
1979  void SetGeometry (int m) {
1980  m_mask = m & TKO_Geo_All_Colors;
1981  if ((m & TKO_Geo_Extended_Mask) != 0) {
1982  m_mask |= TKO_Geo_Extended;
1983  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1984  m_mask |= TKO_Geo_Extended_Colors;
1985  if ((m & TKO_Geo_Extended2_Mask) != 0)
1986  m_mask |= TKO_Geo_Extended2;
1987  }
1988  }
1989  }
1994  int GetGeometry () const { return m_mask; }
1995 
1997  void SetSpace (int s) { m_space = (char)s; }
1999  int GetSpace () const { return (int)m_space; }
2000 
2002  void SetValue (float a, float b, float c) {
2003  m_value[0] = a; m_value[1] = b; m_value[2] = c;
2004  }
2006  void SetValue (float const triple[]) { SetValue (triple[0], triple[1], triple[2]); }
2008  float const * GetValue () const { return m_value; }
2009 };
2010 
2011 
2013 
2019 class BBINFILETK_API TK_Color_By_Index : public BBaseOpcodeHandler {
2020  protected:
2021  int m_mask;
2022  int m_index;
2023 
2024  public:
2026  TK_Color_By_Index (unsigned char opcode) : BBaseOpcodeHandler (opcode), m_mask (0), m_index (-1) {}
2027 
2030  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2031 
2032  TK_Status ReadAscii (BStreamFileToolkit & tk);
2033  TK_Status WriteAscii (BStreamFileToolkit & tk);
2034 
2039  void SetGeometry (int m) {
2040  m_mask = m & TKO_Geo_All_Colors;
2041  if ((m & TKO_Geo_Extended_Mask) != 0) {
2042  m_mask |= TKO_Geo_Extended;
2043  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
2044  m_mask |= TKO_Geo_Extended_Colors;
2045  if ((m & TKO_Geo_Extended2_Mask) != 0)
2046  m_mask |= TKO_Geo_Extended2;
2047  }
2048  }
2049  }
2054  int GetGeometry () const { return m_mask; }
2055 
2057  void SetIndex (int i) { m_index = i; }
2059  int GetIndex () const { return m_index; }
2060 };
2061 
2063 
2068 class BBINFILETK_API TK_Color_By_FIndex : public BBaseOpcodeHandler {
2069  protected:
2070  int m_mask;
2071  float m_index;
2072 
2073  public:
2075  TK_Color_By_FIndex () : BBaseOpcodeHandler (TKE_Color_By_FIndex), m_mask (0), m_index (-1.0f) {}
2076 
2079  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2080 
2081  TK_Status ReadAscii (BStreamFileToolkit & tk);
2082  TK_Status WriteAscii (BStreamFileToolkit & tk);
2083 
2088  void SetGeometry (int m) {
2089  m_mask = m & TKO_Geo_All_Colors;
2090  if ((m & TKO_Geo_Extended_Mask) != 0) {
2091  m_mask |= TKO_Geo_Extended;
2092  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
2093  m_mask |= TKO_Geo_Extended_Colors;
2094  if ((m & TKO_Geo_Extended2_Mask) != 0)
2095  m_mask |= TKO_Geo_Extended2;
2096  }
2097  }
2098  }
2103  int GetGeometry () const { return m_mask; }
2104 
2106  void SetIndex (float val) { m_index = val; }
2108  float GetIndex () const { return m_index; }
2109 };
2110 
2111 
2114 
2119 class BBINFILETK_API TK_Color_Map : public BBaseOpcodeHandler {
2120  protected:
2121  int m_length;
2123  float * m_values;
2125  char * m_string;
2126  unsigned char m_format;
2127 
2129  void set_values (int length, float const values[] = 0);
2130 
2131  public:
2134  : BBaseOpcodeHandler (TKE_Color_Map), m_length (0), m_values_length (0), m_values (0), m_string_length (0), m_string (0), m_format (TKO_Map_RGB_Values) {}
2135  ~TK_Color_Map();
2136 
2139  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2140 
2141  TK_Status ReadAscii (BStreamFileToolkit & tk);
2142  TK_Status WriteAscii (BStreamFileToolkit & tk);
2143 
2144  void Reset ();
2145 
2147  void SetFormat (int f) { m_format = (unsigned char)f; }
2149  int GetFormat () const { return (int)m_format; }
2150 
2155  void SetValues (int count, float const values[] = 0) { set_values (count, values); }
2157  float const * GetValues () const { return m_values; }
2159  float * GetValues () { return m_values; }
2161  int GetLength () const { return m_length; }
2162 
2167  void SetString (char const * string);
2172  void SetString (int length);
2176  char const * GetString () const { return m_string; }
2181  char * GetString () { return m_string; }
2182 };
2183 
2185 
2188 
2194 class BBINFILETK_API TK_Callback : public BBaseOpcodeHandler {
2195  protected:
2196  int m_length;
2197  char * m_string;
2200  void set_callback (char const * callback);
2201 
2202  void set_callback (int length);
2203 
2204  public:
2206  TK_Callback () : BBaseOpcodeHandler (TKE_Callback), m_length (0), m_string (0) {}
2207  ~TK_Callback();
2208 
2211  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2212 
2213  TK_Status ReadAscii (BStreamFileToolkit & tk);
2214  TK_Status WriteAscii (BStreamFileToolkit & tk);
2215 
2216  void Reset ();
2217 
2219  void SetCallback (char const * callback) { set_callback (callback); }
2221  void SetCallback (int length) { set_callback (length); }
2223  char const * GetCallback () const { return m_string; }
2225  char * GetCallback () { return m_string; }
2226 };
2227 
2229 
2230 
2231 #if 0
2232 class BBINFILETK_API TK_Radiosity_RayTrace_Options : public BBaseOpcodeHandler {
2233  protected:
2234 
2235  public:
2236  TK_Radiosity_RayTrace_Options () : BBaseOpcodeHandler (TKE_Radiosity_RayTrace_Options) {}
2237  ~TK_Radiosity_RayTrace_Options () {}
2238 
2241 
2242  TK_Status ReadAscii (BStreamFileToolkit & tk);
2243  TK_Status WriteAscii (BStreamFileToolkit & tk);
2244 };
2245 #endif
2246 
2247 
2249 
2255 class BBINFILETK_API TK_Rendering_Options : public BBaseOpcodeHandler {
2256  protected:
2257  int m_mask[3];
2258  int m_value[3];
2259 
2260  unsigned char m_hsr;
2261  unsigned char m_tq;
2262  int m_debug;
2265 
2266  float m_fog_limits[2];
2267 
2270 
2271  unsigned char m_buffer_options_mask;
2272  unsigned char m_buffer_options_value;
2274 
2280  float m_hlr_color[3];
2282  unsigned char m_hlr_weight_units;
2284  unsigned char m_hlr_threshold_units;
2285  unsigned char m_hlr_hsr_algorithm;
2286 
2287  unsigned short m_contour_options;
2288  unsigned short m_isoline_options;
2301  unsigned char * m_isoline_weights_unit;
2302 
2303  unsigned short m_tint_options;
2304  float m_tint_color[3];
2305  float m_tint_range[2];
2307 
2312  float m_ratio[8];
2314  float m_threshold[8];
2317  unsigned char m_clamp;
2318  unsigned char m_num_levels;
2320  float m_tolerance;
2321  float m_bounding[6];
2323  float m_cutoff[8];
2324  unsigned char m_heuristic;
2325  unsigned char m_fallback;
2326 
2340 
2343 
2344  unsigned char m_tessellations;
2346  char m_cylinder[8];
2348  char m_sphere[8];
2349 
2350  float m_gooch_color_range[2];
2354  unsigned short m_transparency_options;
2355 
2356  unsigned char m_cut_geometry;
2357  unsigned char m_cut_geometry_level;
2358  unsigned char m_cut_geometry_match;
2364 
2365  unsigned short m_simple_shadow;
2366  unsigned char m_simple_shadow_blur;
2368  float m_simple_shadow_plane[4];
2369  float m_simple_shadow_light[3];
2370  float m_simple_shadow_color[3];
2371  float m_simple_shadow_opacity;
2372 
2373  unsigned short m_shadow_map;
2374  unsigned short m_shadow_map_resolution;
2375  unsigned char m_shadow_map_samples;
2376 
2377  unsigned short m_simple_reflection;
2378  float m_simple_reflection_plane[4];
2385 
2386  float m_depth_range[2];
2387  float m_screen_range[8];
2388  float m_ambient_up_vector[3];
2389  float m_image_scale[2];
2390  unsigned short m_mask_transform;
2391 
2392  unsigned char m_geometry_options;
2393  float m_dihedral;
2394 
2395  float m_image_tint_color[3];
2396  float m_texture_tint_color[3];
2397  unsigned char m_depth_peeling_layers;
2400 
2405  unsigned char m_display_list_level;
2406  unsigned char m_antialias;
2407 
2408  short m_fbe_mask;
2409  short m_fbe_value;
2410 
2411  float m_eye_dome_lighting_back_color[3];
2412 
2413  int m_extra;
2414 
2415 #if 0
2416  TK_Radiosity_RayTrace_Options *m_rrt;
2417 #endif
2418 
2419  public:
2423 
2426  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2427 
2428  TK_Status ReadAscii (BStreamFileToolkit & tk);
2429  TK_Status WriteAscii (BStreamFileToolkit & tk);
2430 
2431  void Reset ();
2432 
2434  void SetMask (int m0, int m1=0, int m2=0) {
2435  m_mask[0] = m0;
2436  m_mask[1] = m1;
2437  m_mask[2] = m2;
2438  if (m2 != 0)
2439  m_mask[1] |= TKO_Rendo_Extended;
2440  if (m1 != 0)
2441  m_mask[0] |= TKO_Rendo_Extended;
2442  }
2444  int GetMask (int index=0) const { return m_mask[index]; }
2445 
2447  void SetValue (int v0, int v1=0, int v2=0) { m_value[0] = v0; m_value[1] = v1; m_value[2] = v2; }
2449  int GetValue (int index=0) const { return m_value[index]; }
2450 
2452  void SetHSR (int h) { m_hsr &= 0xF0; m_hsr |= (unsigned char)h & 0x0F; }
2454  int GetHSR () const { return (int)(m_hsr & 0x0F); }
2455 
2457  void SetTransparentHSR (int t) { m_hsr &= 0x0F; m_hsr |= (unsigned char)t << 4; }
2459  int GetTransparentHSR () const { return (int)(m_hsr >> 4); }
2460 
2462  void SetTransparentStyle (int s) { m_transparency_options = (unsigned short)s; }
2464  int GetTransparentStyle () const { return (int)m_transparency_options; }
2465 
2467  void SetTechnology (int t) { m_tq &= 0xF0; m_tq |= (unsigned char)t & 0x0F; }
2469  int GetTechnology () const { return (int)(m_tq & 0x0F); }
2470 
2472  void SetQuantization (int q) { m_tq &= 0x0F; m_tq |= (unsigned char)q << 4; }
2474  int GetQuantization () const { return (int)(m_tq >> 4); }
2475 
2477  void SetDebug (int d) { m_debug = d; }
2479  int GetDebug () const { return m_debug; }
2480 
2482  void SetFaceDisplacement (int d) { m_face_displacement = d; }
2484  int GetFaceDisplacement () const { return m_face_displacement; }
2485 
2487  void SetVertexDisplacement (int d) { m_vertex_displacement = d; }
2489  int GetVertexDisplacement () const { return m_vertex_displacement; }
2490 
2492  void SetGeneralDisplacement (int d) { m_general_displacement = d; }
2494  int GetGeneralDisplacement () const { return m_general_displacement; }
2495 
2497  void SetJoinCutoffAngle (int d) { m_join_cutoff_angle = d; }
2499  int GetJoinCutoffAngle () const { return m_join_cutoff_angle; }
2500 
2502  void SetFogLimits (float n, float f) { m_fog_limits[0] = n; m_fog_limits[1] = f; }
2504  void SetFogLimits (float const l[]) { SetFogLimits (l[0], l[1]); }
2506  float const * GetFogLimits () const { return m_fog_limits; }
2507 
2508 
2510  void SetLockMask (int m) { m_lock.mask = m; }
2512  int GetLockMask () const { return m_lock.mask; }
2513 
2515  void SetLockValue (int v) { m_lock.value = v; }
2517  int GetLockValue () const { return m_lock.value; }
2518 
2523  void SetVisibilityLockMask (int m) { m_lock.visibility_mask = m; }
2528  int GetVisibilityLockMask () const { return m_lock.visibility_mask; }
2529 
2534  void SetVisibilityLockValue (int v) { m_lock.visibility_value = v; }
2539  int GetVisibilityLockValue () const { return m_lock.visibility_value; }
2540 
2541 
2546  void SetColorLockMask (int m) { m_lock.color_mask = m; }
2551  int GetColorLockMask () const { return m_lock.color_mask; }
2552 
2557  void SetColorLockValue (int v) { m_lock.color_value = v; }
2562  int GetColorLockValue () const { return m_lock.color_value; }
2563 
2564 
2569  void SetColorFaceLockMask (int m) { m_lock.color_face_mask = (short)m; }
2574  int GetColorFaceLockMask () const { return m_lock.color_face_mask; }
2575 
2580  void SetColorFaceLockValue (int v) { m_lock.color_face_value = (short)v; }
2585  int GetColorFaceLockValue () const { return m_lock.color_face_value; }
2586 
2587 
2592  void SetColorEdgeLockMask (int m) { m_lock.color_edge_mask = (short)m; }
2597  int GetColorEdgeLockMask () const { return m_lock.color_edge_mask; }
2598 
2603  void SetColorEdgeLockValue (int v) { m_lock.color_edge_value = (short)v; }
2608  int GetColorEdgeLockValue () const { return m_lock.color_edge_value; }
2609 
2610 
2615  void SetColorLineLockMask (int m) { m_lock.color_line_mask = (short)m; }
2620  int GetColorLineLockMask () const { return m_lock.color_line_mask; }
2621 
2626  void SetColorLineLockValue (int v) { m_lock.color_line_value = (short)v; }
2631  int GetColorLineLockValue () const { return m_lock.color_line_value; }
2632 
2633 
2638  void SetColorMarkerLockMask (int m) { m_lock.color_marker_mask = (short)m; }
2643  int GetColorMarkerLockMask () const { return m_lock.color_marker_mask; }
2644 
2649  void SetColorMarkerLockValue (int v) { m_lock.color_marker_value = (short)v; }
2654  int GetColorMarkerLockValue () const { return m_lock.color_marker_value; }
2655 
2656 
2661  void SetColorTextLockMask (int m) { m_lock.color_text_mask = (short)m; }
2666  int GetColorTextLockMask () const { return m_lock.color_text_mask; }
2667 
2672  void SetColorTextLockValue (int v) { m_lock.color_text_value = (short)v; }
2677  int GetColorTextLockValue () const { return m_lock.color_text_value; }
2678 
2679 
2684  void SetColorWindowLockMask (int m) { m_lock.color_window_mask = (short)m; }
2689  int GetColorWindowLockMask () const { return m_lock.color_window_mask; }
2690 
2695  void SetColorWindowLockValue (int v) { m_lock.color_window_value = (short)v; }
2700  int GetColorWindowLockValue () const { return m_lock.color_window_value; }
2701 
2702 
2707  void SetColorFaceContrastLockMask (int m) { m_lock.color_face_contrast_mask = (short)m; }
2712  int GetColorFaceContrastLockMask () const { return m_lock.color_face_contrast_mask; }
2713 
2718  void SetColorFaceContrastLockValue (int v) { m_lock.color_face_contrast_value = (short)v; }
2723  int GetColorFaceContrastLockValue () const { return m_lock.color_face_contrast_value; }
2724 
2725 
2730  void SetColorWindowContrastLockMask (int m) { m_lock.color_window_contrast_mask = (short)m; }
2735  int GetColorWindowContrastLockMask () const { return m_lock.color_window_contrast_mask; }
2736 
2741  void SetColorWindowContrastLockValue (int v) { m_lock.color_window_contrast_value = (short)v; }
2746  int GetColorWindowContrastLockValue () const { return m_lock.color_window_contrast_value; }
2747 
2748 
2753  void SetColorBackLockMask (int m) { m_lock.color_back_mask = (short)m; }
2758  int GetColorBackLockMask () const { return m_lock.color_back_mask; }
2759 
2764  void SetColorBackLockValue (int v) { m_lock.color_back_value = (short)v; }
2769  int GetColorBackLockValue () const { return m_lock.color_back_value; }
2770 
2771 
2776  void SetColorVertexLockMask (int m) { m_lock.color_vertex_mask = (short)m; }
2781  int GetColorVertexLockMask () const { return m_lock.color_vertex_mask; }
2782 
2787  void SetColorVertexLockValue (int v) { m_lock.color_vertex_value = (short)v; }
2792  int GetColorVertexLockValue () const { return m_lock.color_vertex_value; }
2793 
2794 
2799  void SetColorEdgeContrastLockMask (int m) { m_lock.color_edge_contrast_mask = (short)m; }
2804  int GetColorEdgeContrastLockMask () const { return m_lock.color_edge_contrast_mask; }
2805 
2810  void SetColorEdgeContrastLockValue (int v) { m_lock.color_edge_contrast_value = (short)v; }
2815  int GetColorEdgeContrastLockValue () const { return m_lock.color_edge_contrast_value; }
2816 
2817 
2822  void SetColorLineContrastLockMask (int m) { m_lock.color_line_contrast_mask = (short)m; }
2827  int GetColorLineContrastLockMask () const { return m_lock.color_line_contrast_mask; }
2828 
2833  void SetColorLineContrastLockValue (int v) { m_lock.color_line_contrast_value = (short)v; }
2838  int GetColorLineContrastLockValue () const { return m_lock.color_line_contrast_value; }
2839 
2840 
2845  void SetColorMarkerContrastLockMask (int m) { m_lock.color_marker_contrast_mask = (short)m; }
2850  int GetColorMarkerContrastLockMask () const { return m_lock.color_marker_contrast_mask; }
2851 
2856  void SetColorMarkerContrastLockValue (int v) { m_lock.color_marker_contrast_value = (short)v; }
2861  int GetColorMarkerContrastLockValue () const { return m_lock.color_marker_contrast_value; }
2862 
2863 
2868  void SetColorVertexContrastLockMask (int m) { m_lock.color_vertex_contrast_mask = (short)m; }
2873  int GetColorVertexContrastLockMask () const { return m_lock.color_vertex_contrast_mask; }
2874 
2879  void SetColorVertexContrastLockValue (int v) { m_lock.color_vertex_contrast_value = (short)v; }
2884  int GetColorVertexContrastLockValue () const { return m_lock.color_vertex_contrast_value; }
2885 
2886 
2891  void SetColorTextContrastLockMask (int m) { m_lock.color_text_contrast_mask = (short)m; }
2896  int GetColorTextContrastLockMask () const { return m_lock.color_text_contrast_mask; }
2897 
2902  void SetColorTextContrastLockValue (int v) { m_lock.color_text_contrast_value = (short)v; }
2907  int GetColorTextContrastLockValue () const { return m_lock.color_text_contrast_value; }
2908 
2909 
2910 
2911 
2913  void SetForcedLockMask (int m) { m_forced.mask = m; }
2915  int GetForcedLockMask () const { return m_forced.mask; }
2916 
2918  void SetForcedLockValue (int v) { m_forced.value = v; }
2920  int GetForcedLockValue () const { return m_forced.value; }
2921 
2926  void SetVisibilityForcedLockMask (int m) { m_forced.visibility_mask = m; }
2931  int GetVisibilityForcedLockMask () const { return m_forced.visibility_mask; }
2932 
2937  void SetVisibilityForcedLockValue (int v) { m_forced.visibility_value = v; }
2942  int GetVisibilityForcedLockValue () const { return m_forced.visibility_value; }
2943 
2944 
2949  void SetColorForcedLockMask (int m) { m_forced.color_mask = m; }
2954  int GetColorForcedLockMask () const { return m_forced.color_mask; }
2955 
2960  void SetColorForcedLockValue (int v) { m_forced.color_value = v; }
2965  int GetColorForcedLockValue () const { return m_forced.color_value; }
2966 
2967 
2972  void SetColorFaceForcedLockMask (int m) { m_forced.color_face_mask = (short)m; }
2977  int GetColorFaceForcedLockMask () const { return m_forced.color_face_mask; }
2978 
2983  void SetColorFaceForcedLockValue (int v) { m_forced.color_face_value = (short)v; }
2988  int GetColorFaceForcedLockValue () const { return m_forced.color_face_value; }
2989 
2990 
2995  void SetColorEdgeForcedLockMask (int m) { m_forced.color_edge_mask = (short)m; }
3000  int GetColorEdgeForcedLockMask () const { return m_forced.color_edge_mask; }
3001 
3006  void SetColorEdgeForcedLockValue (int v) { m_forced.color_edge_value = (short)v; }
3011  int GetColorEdgeForcedLockValue () const { return m_forced.color_edge_value; }
3012 
3013 
3018  void SetColorLineForcedLockMask (int m) { m_forced.color_line_mask = (short)m; }
3023  int GetColorLineForcedLockMask () const { return m_forced.color_line_mask; }
3024 
3029  void SetColorLineForcedLockValue (int v) { m_forced.color_line_value = (short)v; }
3034  int GetColorLineForcedLockValue () const { return m_forced.color_line_value; }
3035 
3036 
3041  void SetColorMarkerForcedLockMask (int m) { m_forced.color_marker_mask = (short)m; }
3046  int GetColorMarkerForcedLockMask () const { return m_forced.color_marker_mask; }
3047 
3052  void SetColorMarkerForcedLockValue (int v) { m_forced.color_marker_value = (short)v; }
3057  int GetColorMarkerForcedLockValue () const { return m_forced.color_marker_value; }
3058 
3059 
3064  void SetColorTextForcedLockMask (int m) { m_forced.color_text_mask = (short)m; }
3069  int GetColorTextForcedLockMask () const { return m_forced.color_text_mask; }
3070 
3075  void SetColorTextForcedLockValue (int v) { m_forced.color_text_value = (short)v; }
3080  int GetColorTextForcedLockValue () const { return m_forced.color_text_value; }
3081 
3082 
3087  void SetColorWindowForcedLockMask (int m) { m_forced.color_window_mask = (short)m; }
3092  int GetColorWindowForcedLockMask () const { return m_forced.color_window_mask; }
3093 
3098  void SetColorWindowForcedLockValue (int v) { m_forced.color_window_value = (short)v; }
3103  int GetColorWindowForcedLockValue () const { return m_forced.color_window_value; }
3104 
3105 
3110  void SetColorFaceContrastForcedLockMask (int m) { m_forced.color_face_contrast_mask = (short)m; }
3115  int GetColorFaceContrastForcedLockMask () const { return m_forced.color_face_contrast_mask; }
3116 
3121  void SetColorFaceContrastForcedLockValue (int v) { m_forced.color_face_contrast_value = (short)v; }
3126  int GetColorFaceContrastForcedLockValue () const { return m_forced.color_face_contrast_value; }
3127 
3128 
3133  void SetColorWindowContrastForcedLockMask (int m) { m_forced.color_window_contrast_mask = (short)m; }
3138  int GetColorWindowContrastForcedLockMask () const { return m_forced.color_window_contrast_mask; }
3139 
3144  void SetColorWindowContrastForcedLockValue (int v) { m_forced.color_window_contrast_value = (short)v; }
3149  int GetColorWindowContrastForcedLockValue () const { return m_forced.color_window_contrast_value; }
3150 
3151 
3156  void SetColorBackForcedLockMask (int m) { m_forced.color_back_mask = (short)m; }
3161  int GetColorBackForcedLockMask () const { return m_forced.color_back_mask; }
3162 
3167  void SetColorBackForcedLockValue (int v) { m_forced.color_back_value = (short)v; }
3172  int GetColorBackForcedLockValue () const { return m_forced.color_back_value; }
3173 
3174 
3179  void SetColorVertexForcedLockMask (int m) { m_forced.color_vertex_mask = (short)m; }
3184  int GetColorVertexForcedLockMask () const { return m_forced.color_vertex_mask; }
3185 
3190  void SetColorVertexForcedLockValue (int v) { m_forced.color_vertex_value = (short)v; }
3195  int GetColorVertexForcedLockValue () const { return m_forced.color_vertex_value; }
3196 
3197 
3202  void SetColorEdgeContrastForcedLockMask (int m) { m_forced.color_edge_contrast_mask = (short)m; }
3207  int GetColorEdgeContrastForcedLockMask () const { return m_forced.color_edge_contrast_mask; }
3208 
3213  void SetColorEdgeContrastForcedLockValue (int v) { m_forced.color_edge_contrast_value = (short)v; }
3218  int GetColorEdgeContrastForcedLockValue () const { return m_forced.color_edge_contrast_value; }
3219 
3220 
3225  void SetColorLineContrastForcedLockMask (int m) { m_forced.color_line_contrast_mask = (short)m; }
3230  int GetColorLineContrastForcedLockMask () const { return m_forced.color_line_contrast_mask; }
3231 
3236  void SetColorLineContrastForcedLockValue (int v) { m_forced.color_line_contrast_value = (short)v; }
3241  int GetColorLineContrastForcedLockValue () const { return m_forced.color_line_contrast_value; }
3242 
3243 
3248  void SetColorMarkerContrastForcedLockMask (int m) { m_forced.color_marker_contrast_mask = (short)m; }
3253  int GetColorMarkerContrastForcedLockMask () const { return m_forced.color_marker_contrast_mask; }
3254 
3259  void SetColorMarkerContrastForcedLockValue (int v) { m_forced.color_marker_contrast_value = (short)v; }
3264  int GetColorMarkerContrastForcedLockValue () const { return m_forced.color_marker_contrast_value; }
3265 
3266 
3271  void SetColorVertexContrastForcedLockMask (int m) { m_forced.color_vertex_contrast_mask = (short)m; }
3276  int GetColorVertexContrastForcedLockMask () const { return m_forced.color_vertex_contrast_mask; }
3277 
3282  void SetColorVertexContrastForcedLockValue (int v) { m_forced.color_vertex_contrast_value = (short)v; }
3287  int GetColorVertexContrastForcedLockValue () const { return m_forced.color_vertex_contrast_value; }
3288 
3289 
3294  void SetColorTextContrastForcedLockMask (int m) { m_forced.color_text_contrast_mask = (short)m; }
3299  int GetColorTextContrastForcedLockMask () const { return m_forced.color_text_contrast_mask; }
3300 
3305  void SetColorTextContrastForcedLockValue (int v) { m_forced.color_text_contrast_value = (short)v; }
3310  int GetColorTextContrastForcedLockValue () const { return m_forced.color_text_contrast_value; }
3311 
3312 
3313 
3314 
3316  void SetBufferOptionsMask (int v) { m_buffer_options_mask = (unsigned char)v; }
3318  int GetBufferOptionsMask () const { return m_buffer_options_mask; }
3320  void SetBufferOptionsValue (int v) { m_buffer_options_value = (unsigned char) v; }
3322  int GetBufferOptionsValue () const { return m_buffer_options_value; }
3324  void SetBufferSizeLimit (int l) { m_buffer_size_limit = l; }
3326  int GetBufferSizeLimit () const { return m_buffer_size_limit; }
3327 
3328 
3330  void SetStereoSeparation (float s) { m_stereo_separation = s; }
3332  float GetStereoSeparation () const { return m_stereo_separation; }
3334  void SetStereoDistance (float d) { m_stereo_distance = d; }
3336  float GetStereoDistance () const { return m_stereo_distance; }
3337 
3338 
3340  void SetHlrOptions (int o) {
3341  m_hlr_options = o;
3342  if ((o & TKO_Hidden_Line_Extended_Mask) != 0) {
3343  m_hlr_options |= TKO_Hidden_Line_Extended;
3344  if ((o & TKO_Hidden_Line_Extended2_Mask) != 0)
3345  m_hlr_options |= TKO_Hidden_Line_Extended2;
3346  }
3347  }
3349  int GetHlrOptions () const { return m_hlr_options; }
3351  void SetHlrDimFactor (float d) { m_hlr_dim_factor = d; }
3353  float GetHlrDimFactor () const { return m_hlr_dim_factor; }
3355  void SetHlrFaceDisplacement (float d) { m_hlr_face_displacement = d; }
3357  float GetHlrFaceDisplacement () const { return m_hlr_face_displacement; }
3359  void SetHlrLinePattern (int p) { m_hlr_line_pattern = p; }
3361  int GetHlrLinePattern () const { return m_hlr_line_pattern; }
3363  void SetHlrFaceSortingAlgorithm (int a) { m_hlr_hsr_algorithm = (unsigned char)a; }
3365  float GetHlrFaceSortingAlgorithm () const { return m_hlr_hsr_algorithm; }
3366 
3367 
3369  void SetNURBSOptionsMask (int m) {
3370  m_nurbs_options_mask = m;
3371  if ((m & TKO_NURBS_Extended_Mask) != 0)
3372  m_nurbs_options_mask |= TKO_NURBS_Extended;
3373  }
3375  int GetNURBSOptionsMask () const { return m_nurbs_options_mask; }
3377  void SetNURBSOptionsValue (int v) { m_nurbs_options_value = v; }
3379  int GetNURBSOptionsValue () const { return m_nurbs_options_value; }
3381  void SetNURBSCurveBudget (int b) { m_curve_budget = b; }
3383  int GetNURBSCurveBudget () const { return m_curve_budget; }
3385  void SetNURBSCurveContinuedBudget (int b) { m_curve_continued_budget = b; }
3387  int GetNURBSCurveContinuedBudget () const { return m_curve_continued_budget; }
3389  void SetNURBSSurfaceBudget (int b) { m_surface_budget = b; }
3391  int GetNURBSSurfaceBudget () const { return m_surface_budget; }
3393  void SetNURBSSurfaceTrimBudget (int b) { m_surface_trim_budget = b; }
3395  int GetNURBSSurfaceTrimBudget () const { return m_surface_trim_budget; }
3396 
3397 
3399  void SetLodOptionsMask (int v) { m_lod_options_mask = v; }
3401  int GetLodOptionsMask () const { return m_lod_options_mask; }
3403  void SetLodOptionsValue (int v) { m_lod_options_value = v; }
3405  int GetLodOptionsValue () const { return m_lod_options_value; }
3407  void SetLodAlgorithm (int v) { m_lod_algorithm = (char)v; }
3409  int GetLodAlgorithm () const { return m_lod_algorithm; }
3411  void SetLodMinimumTriangleCount (int v) { m_min_triangle_count = v; }
3413  int GetLodMinimumTriangleCount () const { return m_min_triangle_count; }
3415  void SetLodNumLevels (int v) { m_num_levels = (unsigned char)v; }
3417  int GetLodNumLevels () const { return m_num_levels; }
3419  void SetLodClamp (int v) { m_clamp = (unsigned char)v; }
3421  int GetLodClamp () const { return m_clamp; }
3423  void SetLodMaxDegree (int v) { m_max_degree = v; }
3425  int GetLodMaxDegree () const { return m_max_degree; }
3427  void SetLodTolerance (float v) { m_tolerance = v; }
3429  float GetLodTolerance () const { return m_tolerance; }
3431  void SetLodFallback (int v) { m_fallback = (char)v; }
3433  int GetLodFallback () const { return m_fallback; }
3434 
3436  void SetLodBounding (float x1, float y1, float z1, float x2, float y2, float z2) {
3437  m_bounding[0] = x1; m_bounding[1] = y1; m_bounding[2] = z1;
3438  m_bounding[3] = x2; m_bounding[4] = y2; m_bounding[5] = z2;
3439  }
3441  void SetLodBounding (float const s[], float const e[]) {
3442  SetLodBounding (s[0], s[1], s[2], e[0], e[1], e[2]);
3443  }
3445  void SetLodBounding (float const p[]) { SetLodBounding (&p[0], &p[3]); }
3447  float const * GetLodBounding () const { return m_bounding; }
3448 
3450  void SetLodRatio (float r) { m_num_ratios = 1; m_ratio[0] = r; }
3452  void SetLodRatios (int c, float const r[] = 0) {
3453  m_num_ratios = (char)c;
3454  if (r != 0) {
3455  int i;
3456  for (i=0; i<c; ++i)
3457  m_ratio[i] = r[i];
3458  }
3459  }
3461  int GetLodNumRatios () const { return m_num_ratios; }
3463  float const * GetLodRatios () const { return m_ratio; }
3465  float * GetLodRatios () { return m_ratio; }
3466 
3468  void SetLodThresholdType (int v) { m_threshold_type = (char)v; }
3470  int GetLodThresholdType () const { return m_threshold_type; }
3472  void SetLodThreshold (float r) { m_num_thresholds = 1; m_threshold[0] = r; }
3474  void SetLodThresholds (int c, float const r[] = 0) {
3475  m_num_thresholds = (char)c;
3476  if (r != 0) {
3477  int i;
3478  for (i=0; i<c; ++i)
3479  m_threshold[i] = r[i];
3480  }
3481  }
3483  int GetLodNumThresholds () const { return m_num_thresholds; }
3485  float const * GetLodThresholds () const { return m_threshold; }
3487  float * GetLodThresholds () { return m_threshold; }
3488 
3490  void SetLodCutoff (float r) { m_num_cutoffs = 1; m_cutoff[0] = r; }
3492  void SetLodCutoffs (int c, float const r[] = 0) {
3493  m_num_cutoffs = (char)c;
3494  if (r != 0) {
3495  int i;
3496  for (i=0; i<c; ++i)
3497  m_cutoff[i] = r[i];
3498  }
3499  }
3501  int GetLodNumCutoffs () const { return m_num_cutoffs; }
3503  float const * GetLodCutoffs () const { return m_cutoff; }
3505  float * GetLodCutoffs () { return m_cutoff; }
3506 
3507 
3509  void SetTessellationMask (int m) { m_tessellations = (unsigned char)m; }
3511  int GetTessellationMask () const { return m_tessellations; }
3513  void SetCylinderTessellation (int n) { m_num_cylinder = (char)1; m_cylinder[0] = (char)n; }
3515  void SetCylinderTessellations (int c, char const * n = 0) {
3516  m_num_cylinder = (char)c;
3517  if (n != 0) {
3518  int i;
3519  for (i=0; i<c; ++i)
3520  m_cylinder[i] = n[i];
3521  }
3522  }
3524  int GetNumCylinderTessellations () const { return m_num_cylinder; }
3526  char const * GetCylinderTessellations () const { return m_cylinder; }
3528  char * GetCylinderTessellations () { return m_cylinder; }
3530  void SetSphereTessellation (int n) { m_num_sphere = (char)1; m_sphere[0] = (char)n; }
3532  void SetSphereTessellations (int c, char const * n = 0) {
3533  m_num_sphere = (char)c;
3534  if (n != 0) {
3535  int i;
3536  for (i=0; i<c; ++i)
3537  m_sphere[i] = n[i];
3538  }
3539  }
3541  int GetNumSphereTessellations () const { return m_num_sphere; }
3543  char const * GetSphereTessellations () const { return m_sphere; }
3545  char * GetSphereTessellations () { return m_sphere; }
3546 
3548  void SetGeometryOptionsMask (int m) { m_geometry_options = (unsigned char)m; }
3550  int GetGeometryOptionsMask () const { return m_geometry_options; }
3551 
3553  void SetHardEdgeAngle (int m) { m_dihedral = (unsigned char)m; }
3555  float GetHardEdgeAngle () const { return m_dihedral; }
3556 
3558  void SetMaskTransform (int m) { m_mask_transform = (unsigned short)m; }
3560  int GetMaskTransform () const { return (int)m_mask_transform; }
3561 
3562 
3564  void SetCutGeometry (int m) { m_cut_geometry = (unsigned char)m; }
3566  int GetCutGeometry () const { return (int)m_cut_geometry; }
3567 
3569  void SetCutGeometryLevel (int m) { m_cut_geometry_level = (unsigned char)m; }
3571  int GetCutGeometryLevel () const { return (int)m_cut_geometry_level; }
3572 
3574  void SetCutGeometryColorMatch (int m) { m_cut_geometry_match = (unsigned char)m; }
3576  int GetCutGeometryColorMatch () const { return (int)m_cut_geometry_match; }
3577 
3579  void SetCutGeometryTolerance (float m) { m_cut_geometry_tolerance = m; }
3581  float GetCutGeometryTolerance () const { return m_cut_geometry_tolerance; }
3582 
3584  void SetCutGeometryEdgeWeight (float value, int units = TKO_Generic_Size_Unspecified) {
3585  m_cut_geometry_edge_weight = (value > 0.0f) ? value : -1.0f;
3586  m_cut_geometry_edge_weight_units = (value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
3587  }
3589  float GetCutGeometryEdgeWeight () const { return m_cut_geometry_edge_weight; }
3591  int GetCutGeometryEdgeWeightUnits () const { return m_cut_geometry_edge_weight_units; }
3592 
3594  void SetCutGeometryEdgePattern (char const * pattern);
3596  void SetCutGeometryEdgePattern (int length);
3598  char const * GetCutGeometryEdgePattern () const { return m_cut_geometry_edge_pattern; }
3600  char * GetCutGeometryEdgePattern () { return m_cut_geometry_edge_pattern; }
3601 
3602 
3604  void SetDisplayListLevel (int m) { m_display_list_level = (unsigned char)m; }
3606  int GetDisplayListLevel () const { return (int)m_display_list_level; }
3607 
3609  void SetSimpleShadow (int m) {
3610  m_simple_shadow = (unsigned short)m;
3611  if ((m & TKO_Simple_Shadow_Extended_Mask) != 0)
3612  m_simple_shadow |= TKO_Simple_Shadow_Extended;
3613  }
3615  int GetSimpleShadow () const { return (int)m_simple_shadow; }
3616 
3618  void SetSimpleShadowBlur (int m) { m_simple_shadow_blur = (unsigned char)m; }
3620  int GetSimpleShadowBlur () const { return (int)m_simple_shadow_blur; }
3621 
3623  void SetSimpleShadowResolution (int m) { m_simple_shadow_resolution = (unsigned short)m; }
3625  int GetSimpleShadowResolution () const { return (int)m_simple_shadow_resolution; }
3626 
3628  void SetSimpleShadowLight (float x, float y, float z) {
3629  m_simple_shadow_light[0] = x;
3630  m_simple_shadow_light[1] = y;
3631  m_simple_shadow_light[2] = z;
3632  }
3634  void SetSimpleShadowLight (float const l[]) { SetSimpleShadowLight (l[0], l[1], l[2]); }
3636  float const * getSimpleShadowLight () const { return m_simple_shadow_light; }
3637 
3639  void SetSimpleShadowPlane (float a, float b, float c, float d) {
3640  m_simple_shadow_plane[0] = a;
3641  m_simple_shadow_plane[1] = b;
3642  m_simple_shadow_plane[2] = c;
3643  m_simple_shadow_plane[3] = d;
3644  }
3646  void SetSimpleShadowPlane (float const p[]) { SetSimpleShadowPlane (p[0], p[1], p[2], p[3]); }
3648  float const * GetSimpleShadowPlane () const { return m_simple_shadow_plane; }
3649 
3651  void SetSimpleShadowColor (float r, float g, float b)
3652  { m_simple_shadow_color[0] = r; m_simple_shadow_color[1] = g; m_simple_shadow_color[2] = b; }
3654  void SetSimpleShadowColor (float const rgb[]) { SetSimpleShadowColor (rgb[0], rgb[1], rgb[2]); }
3656  float const * GetSimpleShadowColor () const { return m_simple_shadow_color; }
3657 
3659  void SetSimpleShadowOpacity (float o) { m_simple_shadow_opacity = o; }
3661  float GetSimpleShadowOpacity () const { return m_simple_shadow_opacity; }
3662 
3663 
3665  void SetShadowMap (int m) { m_shadow_map = (unsigned char)m; }
3667  int GetShadowMap () const { return (int)m_shadow_map; }
3668 
3670  void SetShadowMapResolution (int m) { m_shadow_map_resolution = (unsigned short)m; }
3672  int GetShadowMapResolution () const { return (int)m_shadow_map_resolution; }
3673 
3675  void SetShadowMapSamples (int m) { m_shadow_map_samples = (unsigned char)m; }
3677  int GetShadowMapSamples () const { return (int)m_shadow_map_samples; }
3678 
3679 
3681  void SetSimpleReflection (int m) { m_simple_reflection = (unsigned short)m; }
3683  int GetSimpleReflection () const { return (int)m_simple_reflection; }
3684 
3686  void SetSimpleReflectionPlane (float a, float b, float c, float d) {
3687  m_simple_reflection_plane[0] = a;
3688  m_simple_reflection_plane[1] = b;
3689  m_simple_reflection_plane[2] = c;
3690  m_simple_reflection_plane[3] = d;
3691  }
3693  void SetSimpleReflectionPlane (float const p[]) { SetSimpleReflectionPlane (p[0], p[1], p[2], p[3]); }
3695  float const * GetSimpleReflectionPlane () const { return m_simple_reflection_plane; }
3696 
3698  void SetSimpleReflectionOpacity (float o) { m_simple_reflection_opacity = o; }
3700  float GetSimpleReflectionOpacity () const { return m_simple_reflection_opacity; }
3701 
3703  void SetSimpleReflectionVisibilityMask (int m) { m_simple_reflection_visibility_mask = m; }
3705  int GetSimpleReflectionVisibilityValue () const { return m_simple_reflection_visibility_value; }
3706 
3707 
3709  void SetDepthRange (float n, float f) { m_depth_range[0] = n; m_depth_range[1] = f; }
3711  void SetDepthRange (float const l[]) { SetDepthRange (l[0], l[1]); }
3713  float const * GetDepthRange () const { return m_depth_range; }
3714 
3715 
3717  void SetScreenRange (float l, float r, float b, float t,
3718  float lo = 0, float ro = 0, float bo = 0, float to = 0)
3719  { m_screen_range[0] = l; m_screen_range[1] = r; m_screen_range[2] = b; m_screen_range[3] = t;
3720  m_screen_range[4] = lo; m_screen_range[5] = ro; m_screen_range[6] = bo; m_screen_range[7] = to; }
3722  void SetScreenRange (float const l[]) { SetScreenRange (l[0], l[1], l[2], l[3]); }
3724  void SetScreenRange (float const l[], float const o[])
3725  { SetScreenRange (l[0], l[1], l[2], l[3], o[0], o[1], o[2], o[3]); }
3727  void SetScreenRange (int n, float const l[])
3728  { if (n == 8) SetScreenRange (l[0], l[1], l[2], l[4], l[5], l[6], l[7], l[8]);
3729  else SetScreenRange (l[0], l[1], l[2], l[3]);
3730  }
3732  float const * GetScreenRange () const { return m_screen_range; }
3733 
3737  void SetAmbientUpVector (float x, float y, float z)
3738  { m_ambient_up_vector[0] = x; m_ambient_up_vector[1] = y; m_ambient_up_vector[2] = z; }
3740  void SetAmbientUpVector (float const v[]) { SetAmbientUpVector (v[0], v[1], v[2]); }
3742  float const * GetAmbientUpVector () const { return m_ambient_up_vector; }
3743 
3745  void SetImageScale (float x, float y) { m_image_scale[0] = x; m_image_scale[1] = y; }
3747  void SetImageScale (float const s[]) { SetImageScale (s[0], s[1]); }
3749  float const * GetImageScale () const { return m_image_scale; }
3750 
3751 
3753  void SetImageTintColor (float r, float g, float b)
3754  { m_image_tint_color[0] = r; m_image_tint_color[1] = g; m_image_tint_color[2] = b; }
3756  void SetImageTintColor (float const rgb[]) { SetImageTintColor (rgb[0], rgb[1], rgb[2]); }
3758  float const * GetImageTintColor () const { return m_image_tint_color; }
3759 
3761  void SetDiffuseTextureTintColor (float r, float g, float b)
3762  { m_texture_tint_color[0] = r; m_texture_tint_color[1] = g; m_texture_tint_color[2] = b; }
3764  void SetDiffuseTextureTintColor (float const rgb[]) { SetDiffuseTextureTintColor (rgb[0], rgb[1], rgb[2]); }
3766  float const * GetDiffuseTextureTintColor () const { return m_texture_tint_color; }
3767 
3769  void SetAntiAlias (int m) { m_antialias = (unsigned char)m; }
3771  int GetAntiAlias () const { return (int)m_antialias; }
3772 
3774  void SetVertexDecimation (float f) { m_vertex_decimation = f; }
3776  float GetVertexDecimation () const { return m_vertex_decimation; }
3777 };
3778 
3780 
3781 
3783 
3789 class BBINFILETK_API TK_Heuristics : public BBaseOpcodeHandler {
3790  protected:
3791  int m_mask;
3792  int m_value;
3793 
3797 
3798  unsigned char m_extras;
3801  unsigned short m_selection_bias;
3808  float m_vector[3];
3811  float m_view_volume[6];
3812 
3813  unsigned char m_ordered_weights_mask;
3814  float m_ordered_weights[TKO_Heur_Order_Count];
3815  unsigned char m_selection_level;
3816  unsigned char m_selection_sorting;
3817  unsigned char m_model_type;
3818 
3819  public:
3821  TK_Heuristics () : BBaseOpcodeHandler (TKE_Heuristics),
3822  m_mask (0), m_value (0), m_culling(0), m_selection_culling(0), m_selection_bias(0),
3823  m_pixel_threshold (0), m_maximum_extent (0), m_maximum_extent_mode(0) {}
3824  ~TK_Heuristics ();
3825 
3828  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
3829 
3830  TK_Status ReadAscii (BStreamFileToolkit & tk);
3831  TK_Status WriteAscii (BStreamFileToolkit & tk);
3832 
3834  void SetMask (int m) {
3835  m_mask = m;
3836  if ((m & TKO_Heuristic_Extended_Mask) != 0)
3837  m_mask |= TKO_Heuristic_Extended;
3838  }
3840  int GetMask () const { return m_mask; }
3841 
3843  void SetValue (int v) { m_value = v; }
3845  int GetValue () const { return m_value; }
3846 
3848  void SetRelatedSelectionLimit (int r) { m_related = r; }
3850  int GetRelatedSelectionLimit () const { return m_related; }
3851 
3853  void SetInternalSelectionLimit (int i) { m_internal_shell = m_internal_polyline = i; }
3855  int GetInternalSelectionLimit () const { return m_internal_shell; }
3856 
3858  void SetInternalShellSelectionLimit (int i) { m_internal_shell = i; }
3860  int GetInternalShellSelectionLimit () const { return m_internal_shell; }
3861 
3863  void SetInternalPolylineSelectionLimit (int i) { m_internal_polyline = i; }
3865  int GetInternalPolylineSelectionLimit () const { return m_internal_polyline; }
3866 
3868  void SetExtras (int e) { m_extras = (unsigned char)e; }
3870  int GetExtras () const { return (int)m_extras; }
3871 
3873  void SetCulling (int c) { m_culling = (unsigned short)c; }
3875  int GetCulling () const { return (int)m_culling; }
3877  void SetSelectionCulling (int c) { m_selection_culling = (unsigned short)c; }
3879  int GetSelectionCulling () const { return (int)m_selection_culling; }
3881  void SetSelectionBias (int c) { m_selection_bias = (unsigned short)c; }
3883  int GetSelectionBias () const { return (int)m_selection_bias; }
3885  void SetPixelThreshold (int c) { m_pixel_threshold = c; }
3887  int GetPixelThreshold () const { return m_pixel_threshold; }
3889  void SetMaximumExtent (int c) { m_maximum_extent = c; }
3891  int GetMaximumExtent () const { return m_maximum_extent; }
3893  int GetMaximumExtentMode () const { return m_maximum_extent_mode; }
3895  void SetMaximumExtentMode (int c) { m_maximum_extent_mode = c; }
3897  int GetMaximumExtentLevel () const { return m_maximum_extent_level; }
3899  void SetMaximumExtentLevel (int c) { m_maximum_extent_level = (unsigned char)c; }
3901  void SetHardExtent (int c) { m_hard_extent = c; }
3903  int GetHardExtent () const { return m_hard_extent; }
3905  float const * GetVector () const { return m_vector; }
3907  void SetVector (float x, float y, float z) {
3908  m_vector[0] = x;
3909  m_vector[1] = y;
3910  m_vector[2] = z;
3911  }
3913  void SetVector (float const v[]) { SetVector(v[0], v[1], v[2]); }
3915  float GetVectorTolerance () const { return m_vector_tolerance; }
3917  void SetVectorTolerance (float tol) { m_vector_tolerance = tol; }
3918 
3919  void SetMaxDistance (float m) { m_max_distance = m; }
3921  float GetMaxDistance () const { return m_max_distance; }
3922 
3924  float const * GetViewVolume () const { return m_view_volume; }
3926  void SetViewVolume (float ax, float ay, float az, float bx, float by, float bz) {
3927  m_view_volume[0] = ax;
3928  m_view_volume[1] = ay;
3929  m_view_volume[2] = az;
3930  m_view_volume[3] = bx;
3931  m_view_volume[4] = by;
3932  m_view_volume[5] = bz;
3933  }
3935  void SetViewVolume (float const v[]) { SetViewVolume(v[0], v[1], v[2], v[3], v[4], v[5]); }
3936 
3938  void SetOrderedWeightsMask (int c) { m_ordered_weights_mask = (unsigned char)c; }
3940  int GetOrderedWeightsMask () const { return (int)m_ordered_weights_mask; }
3941 
3943  void SetOrderedWeight (int index, float weight) {
3944  m_ordered_weights[index] = weight;
3945  m_ordered_weights_mask |= 1<<index;
3946  }
3948  float GetOrderedWeight (int index) const { return m_ordered_weights[index]; }
3950  float const * GetOrderedWeights () const { return m_ordered_weights; }
3952  float * GetOrderedWeights () { return m_ordered_weights; }
3953 
3955  void SetSelectionLevel (int l) { m_selection_level = (unsigned char)l; }
3957  int GetSelectionLevel () const { return (int)m_selection_level; }
3958 
3960  void SetSelectionSorting (int s) { m_selection_sorting = (unsigned char)s; }
3962  int GetSelectionSorting () const { return (int)m_selection_sorting; }
3963 
3965  void SetForceDefer (int l) { m_force_defer = l; }
3967  int GetForceDefer () const { return m_force_defer; }
3968 
3969 };
3970 
3972 
3973 
3975 
3981 class BBINFILETK_API TK_Geometry_Options : public BBaseOpcodeHandler {
3982  protected:
3983  unsigned short m_mask;
3984  unsigned short m_value;
3985 
3987  float m_orientation[6];
3990 
3991  public:
3993  TK_Geometry_Options () : BBaseOpcodeHandler (TKE_Geometry_Options),
3994  m_mask (0), m_value (0), m_orientation_count (0),
3995  m_coordinate_system_count (0), m_coordinate_systems (0) {}
3996  ~TK_Geometry_Options ();
3997 
3998  void Reset ();
3999 
4002  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4003 
4004  TK_Status ReadAscii (BStreamFileToolkit & tk);
4005  TK_Status WriteAscii (BStreamFileToolkit & tk);
4006 
4008  void SetMask (int m) { m_mask = (unsigned short)m; }
4010  int GetMask () const { return (int)m_mask; }
4011 
4013  void SetOrientation (int count, float const o[]) {
4014  if (count != 3 && count != 6)
4015  return;
4016  m_orientation_count = (unsigned char)count;
4017  while (count-- > 0)
4018  m_orientation[count] = o[count];
4019  }
4021  int GetOrientationCount () const { return (int) m_orientation_count; }
4023  float const * GetOrientation () const { return m_orientation; }
4024 
4026  void SetCoordinateSystems (int count, char const cs[]) {
4027  m_coordinate_system_count = count;
4028  m_coordinate_systems = new char [count];
4029  while (count-- > 0)
4030  m_coordinate_systems[count] = cs[count];
4031  }
4033  int GetCoordinateSystemCount () const { return m_coordinate_system_count; }
4035  char const * GetCoordinateSystems () const { return m_coordinate_systems; }
4036 };
4037 
4040 
4045 class BBINFILETK_API TK_Visibility : public BBaseOpcodeHandler {
4046  protected:
4047  int m_mask;
4048  int m_value;
4049 
4050  public:
4053  : BBaseOpcodeHandler (TKE_Visibility), m_mask (0), m_value (0) {}
4054 
4057  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4058 
4059  TK_Status ReadAscii (BStreamFileToolkit & tk);
4060  TK_Status WriteAscii (BStreamFileToolkit & tk);
4061 
4065  void SetGeometry (int m) {
4066  m_mask = m & TKO_Geo_All_Visibles;
4067  if ((m & TKO_Geo_Extended_Mask) != 0) {
4068  m_mask |= TKO_Geo_Extended;
4069  if ((m & TKO_Geo_Extended2_Mask) != 0)
4070  m_mask |= TKO_Geo_Extended2;
4071  }
4072  }
4077  int GetGeometry () const { return m_mask; }
4078 
4083  void SetValue (int m) { m_value = m; }
4088  int GetValue () const { return m_value; }
4089 };
4090 
4093 
4100 class BBINFILETK_API TK_Selectability : public BBaseOpcodeHandler {
4101  protected:
4102  int m_mask;
4103  int m_down;
4104  int m_up;
4108 
4109  public:
4112  : BBaseOpcodeHandler (TKE_Selectability),
4113  m_mask (0), m_down (0), m_up (0), m_move_down (0), m_move_up (0), m_invisible (0) {}
4114 
4117  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4118 
4119  TK_Status ReadAscii (BStreamFileToolkit & tk);
4120  TK_Status WriteAscii (BStreamFileToolkit & tk);
4121 
4125  void SetGeometry (int m) {
4126  m_mask = m & TKO_Geo_All_Selects;
4127  if ((m & TKO_Geo_Extended_Mask) != 0)
4128  m_mask |= TKO_Geo_Extended;
4129  }
4134  int GetGeometry () const { return m_mask; }
4135 
4140  void SetDown (int m) { m_down = m; }
4145  int GetDown () const { return m_down; }
4146 
4151  void SetUp (int m) { m_up = m; }
4156  int GetUp () const { return m_up; }
4157 
4162  void SetMoveDown (int m) { m_move_down = m; }
4167  int GetMoveDown () const { return m_move_down; }
4168 
4173  void SetMoveUp (int m) { m_move_up = m; }
4178  int GetMoveUp () const { return m_move_up; }
4179 
4184  void SetWhenInvisible (int m) { m_invisible = m; }
4189  int GetWhenInvisible () const { return m_invisible; }
4190 };
4191 
4193 
4199 class BBINFILETK_API TK_Matrix : public BBaseOpcodeHandler {
4200  protected:
4201  float m_matrix[16];
4202  double m_dmatrix[16];
4203 
4204  public:
4206  TK_Matrix (unsigned char opcode)
4207  : BBaseOpcodeHandler (opcode) {}
4208 
4211  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4212 
4213  TK_Status ReadAscii (BStreamFileToolkit & tk);
4214  TK_Status WriteAscii (BStreamFileToolkit & tk);
4215 
4217  void SetMatrix (float const m[]) {
4218  int i; for (i=0; i<16; i++) m_matrix[i] = m[i];
4219  }
4221  void SetDMatrix (double const m[]) {
4222  int i; for (i=0; i<16; i++) m_dmatrix[i] = m[i];
4223  }
4225  float const * GetMatrix () const { return m_matrix; }
4227  float * GetMatrix () { return m_matrix; }
4229  double const * GetDMatrix () const { return m_dmatrix; }
4231  double * GetDMatrix () { return m_dmatrix; }
4232 };
4233 
4234 
4240 class BBINFILETK_API TK_Enumerated : public BBaseOpcodeHandler {
4241  protected:
4242  char m_index;
4243 
4244  public:
4246  TK_Enumerated (unsigned char opcode)
4247  : BBaseOpcodeHandler (opcode), m_index (0) {}
4248 
4251  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4252 
4253  TK_Status ReadAscii (BStreamFileToolkit & tk);
4254  TK_Status WriteAscii (BStreamFileToolkit & tk);
4255 
4256  void SetIndex (int i) { m_index = (char)i; }
4258  int GetIndex () const { return (int)m_index; }
4259 };
4260 
4261 
4267 class BBINFILETK_API TK_Size : public BBaseOpcodeHandler {
4268  protected:
4269  float m_value;
4270  unsigned char m_units;
4271 
4272  public:
4274  TK_Size (unsigned char opcode)
4275  : BBaseOpcodeHandler (opcode), m_value (0.0f), m_units (TKO_Generic_Size_Unspecified) {}
4276 
4279  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4280 
4281  TK_Status ReadAscii (BStreamFileToolkit & tk);
4282  TK_Status WriteAscii (BStreamFileToolkit & tk);
4283 
4285  void SetSize (float value, int units = TKO_Generic_Size_Unspecified) {
4286  m_value = (value > 0.0f) ? value : 0.0f;
4287  m_units = (m_value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
4288  }
4290  float GetSize () const { return m_value; }
4292  int GetUnits () const { return m_units; }
4293 };
4294 
4299 class BBINFILETK_API TK_Linear_Pattern : public BBaseOpcodeHandler {
4300  protected:
4301  unsigned short m_pattern;
4302 
4303  public:
4305  TK_Linear_Pattern (unsigned char opcode)
4306  : BBaseOpcodeHandler (opcode), m_pattern (0) {}
4307 
4310  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4311 
4312  TK_Status ReadAscii (BStreamFileToolkit & tk);
4313  TK_Status WriteAscii (BStreamFileToolkit & tk);
4314 
4316  void SetPattern (int p) { m_pattern = (unsigned short)p; }
4318  int GetPattern () const { return (int)m_pattern; }
4319 };
4320 
4326 class BBINFILETK_API TK_Named : public BBaseOpcodeHandler {
4327  protected:
4329  char * m_name;
4330  int m_index;
4331 
4332  public:
4334  TK_Named (unsigned char opcode)
4335  : BBaseOpcodeHandler (opcode), m_name_length (0), m_name (0), m_index (0) {}
4336  ~TK_Named();
4337 
4340  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4341 
4342  TK_Status ReadAscii (BStreamFileToolkit & tk);
4343  TK_Status WriteAscii (BStreamFileToolkit & tk);
4344 
4345  void Reset ();
4346 
4348  void SetName (char const * name);
4350  void SetName (int length);
4352  char const * GetName () const { return m_name; }
4354  char * GetName () { return m_name; }
4355 
4357  void SetIndex (int i) { Reset(); m_index = i; }
4359  int GetIndex () const { return (int)m_index; }
4360 };
4361 
4362 
4363 
4370 class BBINFILETK_API TK_Streaming : public BBaseOpcodeHandler {
4371  protected:
4372  bool m_flag;
4373 
4374  public:
4377 
4380  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4381 
4382  TK_Status ReadAscii (BStreamFileToolkit & tk);
4383  TK_Status WriteAscii (BStreamFileToolkit & tk);
4384 
4385  void SetStreaming (bool s) { m_flag = s; }
4387  bool GetStreaming () const { return m_flag; }
4388 };
4389 
4392 
4398 class BBINFILETK_API TK_Conditions : public BBaseOpcodeHandler {
4399  protected:
4400  int m_length;
4401  char * m_string;
4403  public:
4405  TK_Conditions () : BBaseOpcodeHandler (TKE_Conditions), m_length (0), m_string (0) {}
4406  ~TK_Conditions();
4407 
4410  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4411 
4412  TK_Status ReadAscii (BStreamFileToolkit & tk);
4413  TK_Status WriteAscii (BStreamFileToolkit & tk);
4414 
4415  void Reset ();
4416 
4418  void SetConditions (char const * options);
4420  void SetConditions (int length);
4422  char const * GetConditions () const { return m_string; }
4424  char * GetConditions () { return m_string; }
4426  int GetLength() { return m_length; }
4427 };
4428 
4429 
4432 
4437 class BBINFILETK_API TK_Conditional_Action : public BBaseOpcodeHandler {
4438  protected:
4439  short m_type;
4440  short m_options;
4441  int m_length;
4442  char * m_string;
4444  public:
4446  TK_Conditional_Action () : BBaseOpcodeHandler (TKE_Conditional_Action), m_length (0), m_string (0) {}
4448 
4451  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4452 
4453  TK_Status ReadAscii (BStreamFileToolkit & tk);
4454  TK_Status WriteAscii (BStreamFileToolkit & tk);
4455 
4456  void Reset ();
4457 
4459  void SetCondition (char const * options);
4461  void SetCondition (int length);
4463  char const * GetCondition () const { return m_string; }
4465  char * GetCondition () { return m_string; }
4467  int GetLength() { return m_length; }
4468 
4470  void SetAction (int at) { m_type = (short)at; }
4472  int GetAction () const { return (int)m_type; }
4474  void SetOptions (int at) { m_options = (short)at; }
4476  int GetOptions () const { return (int)m_options; }
4477 };
4478 
4481 
4487 class BBINFILETK_API TK_User_Options : public BBaseOpcodeHandler {
4488  protected:
4489  int m_length;
4490  char * m_string;
4495  void set_options (char const * options);
4496  void set_options (int length);
4497 
4498  public:
4500  TK_User_Options () : BBaseOpcodeHandler (TKE_User_Options), m_length (0), m_string (0),
4501  m_indices (0), m_unicode (0), m_index_data(0) {}
4502  ~TK_User_Options();
4503 
4506  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4507 
4508  TK_Status ReadAscii (BStreamFileToolkit & tk);
4509  TK_Status WriteAscii (BStreamFileToolkit & tk);
4510 
4511  void Reset ();
4512 
4514  void SetOptions (char const * options) { set_options (options); }
4516  void SetOptions (int length) { set_options (length); }
4518  char const * GetOptions () const { return m_string; }
4520  char * GetOptions () { return m_string; }
4522  int GetLength() { return m_length; }
4523 };
4524 
4527 
4533 class BBINFILETK_API TK_Unicode_Options : public BBaseOpcodeHandler {
4534  protected:
4535  int m_length;
4536  unsigned short * m_string;
4538  public:
4540  TK_Unicode_Options () : BBaseOpcodeHandler (TKE_Unicode_Options), m_length (0), m_string (0) {}
4541  ~TK_Unicode_Options();
4542 
4545  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4546 
4547  TK_Status ReadAscii (BStreamFileToolkit & tk);
4548  TK_Status WriteAscii (BStreamFileToolkit & tk);
4549 
4550  void Reset ();
4551 
4553  void SetOptions (unsigned short const * options);
4555  void SetOptions (int length);
4557  unsigned short const * GetOptions () const { return m_string; }
4559  unsigned short * GetOptions () { return m_string; }
4561  int GetLength() { return m_length; }
4562 };
4563 
4565 
4571 class BBINFILETK_API TK_User_Index : public BBaseOpcodeHandler {
4572  protected:
4573  int m_count;
4574  int * m_indices;
4575  HLONG * m_values;
4577  void set_indices (int count, int const indices[], POINTER_SIZED_INT const values[]);
4578  void set_indices (int count);
4579 
4580  public:
4583  : BBaseOpcodeHandler (TKE_User_Index), m_count (0), m_indices (0), m_values (0), m_current_value(0) {}
4584  ~TK_User_Index();
4585 
4588  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4589 
4590  TK_Status ReadAscii (BStreamFileToolkit & tk);
4591  TK_Status WriteAscii (BStreamFileToolkit & tk);
4592 
4593  void Reset ();
4594 
4596  void SetIndices (int count, int const indices[], POINTER_SIZED_INT const values[])
4597  { set_indices (count, indices, values); }
4599  void SetIndices (int count) { set_indices (count); }
4601  int GetCount () const { return m_count; }
4603  int const * GetIndices () const { return m_indices; }
4605  int * GetIndices () { return m_indices; }
4607  HLONG const * GetValues () const { return m_values; }
4609  HLONG * GetValues () { return m_values; }
4610 };
4611 
4613 
4619 class BBINFILETK_API TK_User_Index_Data : public BBaseOpcodeHandler {
4620 protected:
4621  int m_count;
4622  int * m_indices;
4623  void ** m_values;
4624  int * m_sizes;
4625 
4627  void set_indices (int count, int const indices[], void const * values[], int const sizes[]);
4628  void set_indices (int count);
4629  void FreeMem ();
4630 
4631 public:
4634  : BBaseOpcodeHandler (TKE_User_Index_Data), m_count (0), m_indices (0), m_values (0), m_sizes(0), m_current_value(0) {}
4635  ~TK_User_Index_Data();
4636 
4639  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4640 
4641  void Reset ();
4642 
4644  void SetIndices (int count, int const indices[], void const * values[], int const sizes[]) {
4645  set_indices (count, indices, values, sizes);
4646  }
4647 
4649  void SetIndices (int count) { set_indices (count);}
4650 
4652  int GetCount () const { return m_count;}
4653 
4655  int const * GetIndices () const { return m_indices;}
4656 
4658  int * GetIndices () { return m_indices;}
4659 
4661  void ** const GetValues () const { return m_values;}
4662 
4664  void ** const GetValues () { return m_values;}
4665 
4667  int const * GetSizes () const { return m_sizes;}
4668 
4670  int * GetSizes () { return m_sizes;}
4671 };
4672 
4673 
4675 
4680 class BBINFILETK_API TK_User_Value : public BBaseOpcodeHandler {
4681  protected:
4682  HLONG m_value;
4683 
4684  public:
4687  : BBaseOpcodeHandler (TKE_User_Value), m_value (0) {}
4688 
4691  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4692 
4693  TK_Status ReadAscii (BStreamFileToolkit & tk);
4694  TK_Status WriteAscii (BStreamFileToolkit & tk);
4695 
4697  void SetValue (HLONG v) { m_value = v; }
4699  HLONG GetValue () const { return m_value; }
4700 };
4701 
4702 
4704 
4709 class BBINFILETK_API2 TK_Camera : public BBaseOpcodeHandler {
4710  protected:
4714  float m_settings[14];
4716  double m_dsettings[14];
4718  float m_details[3];
4719  unsigned char m_projection;
4720  int m_length;
4721  char * m_name;
4724  void set_name (char const * name);
4725 
4726  void set_name (int length);
4727 
4728  public:
4730  TK_Camera (unsigned char opcode = TKE_Camera)
4731  : BBaseOpcodeHandler (opcode), m_length (0), m_name (0) {
4732  int i;
4733  int count = (int)(sizeof(m_settings) / sizeof(m_settings[0]));
4734  for (i = 0; i < count; i++) {
4735  m_settings[i] = 0;
4736  m_dsettings[i] = 0;
4737  }
4738  }
4739  ~TK_Camera();
4740 
4743  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4744 
4745  TK_Status ReadAscii (BStreamFileToolkit & tk);
4746  TK_Status WriteAscii (BStreamFileToolkit & tk);
4747 
4749  void SetPosition (float x, float y, float z)
4750  { m_settings[0] = x; m_settings[1] = y; m_settings[2] = z; }
4752  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
4754  float const * GetPosition () const { return &m_settings[0]; }
4756  void GetPosition (float p[]) const { memcpy(p, GetPosition(), 3*sizeof(float)); }
4757 
4759  void SetDPosition (double x, double y, double z)
4760  { m_dsettings[0] = x; m_dsettings[1] = y; m_dsettings[2] = z; }
4762  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
4764  double const * GetDPosition () const { return &m_dsettings[0]; }
4766  void GetDPosition (double p[]) const { memcpy(p, GetDPosition(), 3*sizeof(double)); }
4767 
4769  void SetTarget (float x, float y, float z)
4770  { m_settings[3] = x; m_settings[4] = y; m_settings[5] = z; }
4772  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
4774  float const * GetTarget () const { return &m_settings[3]; }
4776  void GetTarget (float t[]) const { memcpy(t, GetTarget(), 3*sizeof(float)); }
4777 
4779  void SetDTarget (double x, double y, double z)
4780  { m_dsettings[3] = x; m_dsettings[4] = y; m_dsettings[5] = z; }
4782  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
4784  double const * GetDTarget () const { return &m_dsettings[3]; }
4786  void GetDTarget (double t[]) const { memcpy(t, GetDTarget(), 3*sizeof(double)); }
4787 
4789  void SetUpVector (float x, float y, float z)
4790  { m_settings[6] = x; m_settings[7] = y; m_settings[8] = z; }
4792  void SetUpVector (float const u[]) { SetUpVector (u[0], u[1], u[2]); }
4794  float const * GetUpVector () const { return &m_settings[6]; }
4796  void GetUpVector (float u[]) const { memcpy(u,GetUpVector(),3*sizeof(float)); }
4797 
4799  void SetDUpVector (double x, double y, double z)
4800  { m_dsettings[6] = x; m_dsettings[7] = y; m_dsettings[8] = z; }
4802  void SetDUpVector (double const u[]) { SetDUpVector (u[0], u[1], u[2]); }
4804  double const * GetDUpVector () const { return &m_dsettings[6]; }
4806  void GetDUpVector (double u[]) const { memcpy(u, GetDUpVector(), 3*sizeof(double)); }
4807 
4809  void SetField (float w, float h) { m_settings[9] = w; m_settings[10] = h; }
4811  void SetField (float const f[]) { SetField (f[0], f[1]); }
4813  float const * GetField () const { return &m_settings[9]; }
4815  void GetField (float f[]) const { memcpy(f,GetField(),2*sizeof(float)); }
4816 
4818  void SetDField (double w, double h) { m_dsettings[9] = w; m_dsettings[10] = h; }
4820  void SetDField (double const f[]) { SetDField (f[0], f[1]); }
4822  double const * GetDField () const { return &m_dsettings[9]; }
4824  void GetDField (double f[]) const { memcpy(f, GetDField(), 2*sizeof(double)); }
4825 
4826 
4828  void SetOblique (float h, float v) { m_details[0] = h; m_details[1] = v;
4829  m_projection &= ~TKO_Camera_Oblique_Mask;
4830  if (h != 0.0f) m_projection |= TKO_Camera_Oblique_Y;
4831  if (v != 0.0f) m_projection |= TKO_Camera_Oblique_Mask;
4832  }
4834  void SetOblique (float const o[]) { SetOblique (o[0], o[1]); }
4836  float const * GetOblique () const { return m_details; }
4838  void GetOblique (float o[]) const { memcpy(o, GetOblique(), 2*sizeof(float)); }
4839 
4841  void SetNearLimit (float l) { m_details[2] = l;
4842  m_projection &= ~TKO_Camera_Near_Limit;
4843  if (l != 0.0f) m_projection |= TKO_Camera_Near_Limit;
4844  }
4846  float GetNearLimit () const { return m_details[2]; }
4847 
4848 
4850  void SetProjection (int p) { m_projection = (char)p; }
4852  int GetProjection () const { return (int)m_projection; }
4853 
4854 
4856  void SetView (char const * name) { set_name (name); }
4858  void SetView (int length) { set_name (length); }
4860  char const * GetView () const { return m_name; }
4862  char * GetView () { return m_name; }
4863 };
4864 
4866 
4871 class BBINFILETK_API TK_Window : public BBaseOpcodeHandler {
4872  protected:
4873  float m_window[8];
4874  unsigned char m_options;
4875 
4876  public:
4879  : BBaseOpcodeHandler (TKE_Window), m_options (0) {}
4880 
4883  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4884 
4885  TK_Status ReadAscii (BStreamFileToolkit & tk);
4886  TK_Status WriteAscii (BStreamFileToolkit & tk);
4887 
4889  void SetWindow (float l, float r, float b, float t,
4890  float lo = 0, float ro = 0, float bo = 0, float to = 0)
4891  { m_window[0] = l; m_window[1] = r; m_window[2] = b; m_window[3] = t;
4892  m_window[4] = lo; m_window[5] = ro; m_window[6] = bo; m_window[7] = to; }
4894  void SetWindow (float const w[]) { SetWindow (w[0], w[1], w[2], w[3]); }
4896  void SetWindow (float const w[], float const o[])
4897  { SetWindow (w[0], w[1], w[2], w[3], o[0], o[1], o[2], o[3]); }
4899  void SetWindow (int n, float const w[])
4900  { if (n == 8) SetWindow (w[0], w[1], w[2], w[4], w[5], w[6], w[7], w[8]);
4901  else SetWindow (w[0], w[1], w[2], w[3]);
4902  }
4904  float const * GetWindow () const { return m_window; }
4905 
4907  void SetOptions (int opt) { m_options = (unsigned char)opt; }
4909  int GetOptions () const { return m_options; }
4910 };
4911 
4912 
4913 
4915 
4922 class BBINFILETK_API TK_Text_Font : public BBaseOpcodeHandler {
4923  protected:
4924  int m_mask;
4925  int m_value;
4927  char * m_names;
4928  float m_size;
4929  float m_tolerance;
4930  float m_rotation;
4931  float m_slant;
4938  int m_renderers[2];
4939  int m_preferences[2];
4942  char * m_shape;
4943  char * m_style;
4945  float m_margins[4];
4946  unsigned char m_margin_units[4];
4947  unsigned char m_size_units;
4948  unsigned char m_tolerance_units;
4949  unsigned char m_space_units;
4950  unsigned char m_greeking_units;
4951  unsigned char m_greeking_mode;
4952  unsigned char m_transforms;
4953  unsigned char m_renderer_cutoff_units;
4955  unsigned char m_layout;
4956 
4957  void set_names (int length);
4958  void set_names (char const * names);
4959 
4960  public:
4963  : BBaseOpcodeHandler (TKE_Text_Font), m_names_length (0), m_names (0)
4964  , m_shape_length (0), m_style_length (0), m_shape (0), m_style (0) {}
4965  ~TK_Text_Font ();
4966 
4969  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4970 
4971  TK_Status ReadAscii (BStreamFileToolkit & tk);
4972  TK_Status WriteAscii (BStreamFileToolkit & tk);
4973 
4974  void Reset ();
4975 
4977  void SetMask (int m) {
4978  m_mask = m;
4979  if ((m & TKO_Font_Extended2_Mask) != 0)
4980  m_mask |= TKO_Font_Extended2;
4981  if ((m & TKO_Font_Extended_Mask) != 0)
4982  m_mask |= TKO_Font_Extended;
4983  }
4985  int GetMask () const { return m_mask; }
4986 
4988  void SetValue (int v) { m_value = v; }
4990  int GetValue () const { return m_value; }
4991 
4993  void SetNames (char const * names) { set_names (names); }
4995  void SetNames (int length) { set_names (length); }
4997  char const * GetNames () const { return m_names; }
4999  char * GetNames () { return m_names; }
5000 
5002  void SetShape (char const * shape);
5004  void SetShape (int length);
5006  char const * GetShape () const { return m_shape; }
5008  char * GetShape () { return m_shape; }
5009 
5011  void SetStyle (char const * shape);
5013  void SetStyle (int length);
5015  char const * GetStyle () const { return m_style; }
5017  char * GetStyle () { return m_style; }
5018 
5020  void SetSize (float s) { m_size = s; }
5022  float GetSize () const { return m_size; }
5023 
5025  void SetSizeUnits (int u) { m_size_units = (unsigned char)u; }
5027  int GetSizeUnits () const { return (int)m_size_units; }
5028 
5030  void SetTolerance (float t) { m_tolerance = t; }
5032  float GetTolerance () const { return m_tolerance; }
5033 
5035  void SetToleranceUnits (int u) { m_tolerance_units = (unsigned char)u; }
5037  int GetToleranceUnits () const { return (int)m_tolerance_units; }
5038 
5040  void SetRotation (float r) { m_rotation = r; }
5042  float GetRotation () const { return m_rotation; }
5043 
5045  void SetSlant (float s) { m_slant = s; }
5047  float GetSlant () const { return m_slant; }
5048 
5050  void SetWidthScale (float s) { m_width_scale = s; }
5052  float GetWidthScale () const { return m_width_scale; }
5053 
5055  void SetExtraSpace (float s) { m_extra_space = s; }
5057  float GetExtraSpace () const { return m_extra_space; }
5058 
5060  void SetExtraSpaceUnits (int u) { m_space_units = (unsigned char)u; }
5062  int GetExtraSpaceUnits () const { return (int)m_space_units; }
5063 
5065  void SetLineSpacing (float s) { m_line_spacing = s; }
5067  float GetLineSpacing () const { return m_line_spacing; }
5068 
5070  void SetTransforms (int t) { m_transforms = (unsigned char)t; }
5072  int GetTransforms () const { return (int)m_transforms; }
5073 
5075  void SetGreekingLimit (float s) { m_greeking_limit = s; }
5077  float GetGreekingLimit () const { return m_greeking_limit; }
5078 
5080  void SetGreekingLimitUnits (int u) { m_greeking_units = (unsigned char)u; }
5082  int GetGreekingLimitUnits () const { return (int)m_greeking_units; }
5083 
5085  void SetGreekingMode (int m) { m_greeking_mode = (unsigned char)m; }
5087  int GetGreekingMode () const { return (int)m_greeking_mode; }
5088 
5089 
5091  void SetRenderer (int r) { m_renderers[0] = m_renderers[1] = r; }
5093  int GetRenderer () const { return m_renderers[0]; }
5094 
5096  void SetRenderers (int r1, int r2) { m_renderers[0] = r1; m_renderers[1] = r2; }
5098  int const * GetRenderers () const { return m_renderers; }
5099 
5101  void SetRendererCutoff (float s) { m_renderer_cutoff = s; }
5103  float GetRendererCutoff () const { return m_renderer_cutoff; }
5104 
5106  void SetRendererCutoffUnits (int u) { m_renderer_cutoff_units = (unsigned char)u; }
5108  int GetRendererCutoffUnits () const { return (int)m_renderer_cutoff_units; }
5109 
5110 
5112  void SetPreference (int r) { m_preferences[0] = m_preferences[1] = r; }
5114  int GetPreference () const { return m_preferences[0]; }
5115 
5117  void SetPreferences (int r1, int r2) { m_preferences[0] = r1; m_preferences[1] = r2; }
5119  int const * GetPreferences () const { return m_preferences; }
5120 
5122  void SetPreferenceCutoff (float s) { m_preference_cutoff = s; }
5124  float GetPreferenceCutoff () const { return m_preference_cutoff; }
5125 
5127  void SetPreferenceCutoffUnits (int u) { m_preference_cutoff_units = (unsigned char)u; }
5129  int GetPreferenceCutoffUnits () const { return (int)m_preference_cutoff_units; }
5130 
5132  void SetLayout (int l) {m_layout = (unsigned char)l;}
5134  int GetLayout () const {return (int)m_layout;}
5135 };
5136 
5138 
5140 
5150 
5162 class BBINFILETK_API2 TK_Bounding : public BBaseOpcodeHandler {
5163  protected:
5164  double m_dvalues[6];
5165  float m_values[6];
5166  char m_type;
5167  bool m_is_valid;
5168  public:
5170  TK_Bounding (unsigned char opcode)
5171  : BBaseOpcodeHandler (opcode) {}
5173  TK_Bounding (unsigned char opcode, float min[], float max[])
5174  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5175  m_values[0] = min[0]; m_values[1] = min[1]; m_values[2] = min[2];
5176  m_values[3] = max[0]; m_values[4] = max[1]; m_values[5] = max[2];
5177  }
5179  TK_Bounding (unsigned char opcode, float center[], float radius)
5180  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5181  m_values[0] = center[0]; m_values[1] = center[1]; m_values[2] = center[2];
5182  m_values[3] = radius;
5183  }
5185  TK_Bounding (unsigned char opcode, double min[], double max[])
5186  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5187  m_dvalues[0] = min[0]; m_dvalues[1] = min[1]; m_dvalues[2] = min[2];
5188  m_dvalues[3] = max[0]; m_dvalues[4] = max[1]; m_dvalues[5] = max[2];
5190  }
5192  TK_Bounding (unsigned char opcode, double center[], double radius)
5193  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5194  m_dvalues[0] = center[0]; m_dvalues[1] = center[1]; m_dvalues[2] = center[2];
5195  m_dvalues[3] = radius;
5197  }
5198 
5201  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5202 
5203  TK_Status ReadAscii (BStreamFileToolkit & tk);
5204  TK_Status WriteAscii (BStreamFileToolkit & tk);
5205 };
5206 
5208 
5210 
5216 class BBINFILETK_API TK_Point : public BBaseOpcodeHandler {
5217  protected:
5218  float m_point[3];
5219  double m_dpoint[3];
5220  char m_options;
5221 
5222  public:
5224  TK_Point (unsigned char opcode)
5225  : BBaseOpcodeHandler (opcode) {
5226  m_point[0] = m_point[1] = m_point[2] = 0;
5227  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5228  m_options = 0;
5229  };
5230 
5233  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5234 
5235  TK_Status ReadAscii (BStreamFileToolkit & tk);
5236  TK_Status WriteAscii (BStreamFileToolkit & tk);
5237 
5238  void Reset(void) {
5239  m_point[0] = m_point[1] = m_point[2] = 0;
5240  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5241  m_options = 0;
5243  };
5244 
5245 
5246 
5248  void SetPoint (float x, float y, float z) { m_point[0] = x; m_point[1] = y; m_point[2] = z; }
5250  void SetPoint (float const p[]) { SetPoint (p[0], p[1], p[2]); }
5252  float const * GetPoint () const { return m_point; }
5253 
5255  void SetDPoint (double x, double y, double z) { m_dpoint[0] = x; m_dpoint[1] = y; m_dpoint[2] = z; }
5257  void SetDPoint (double const p[]) { SetDPoint (p[0], p[1], p[2]); }
5259  double const * GetDPoint () const { return m_dpoint; }
5260 
5262  void SetOptions (int o) { m_options = (char)o; }
5264  int GetOptions () const { return (int)m_options; }
5265 
5266 };
5267 
5268 
5269 
5271 
5276 class BBINFILETK_API TK_Line : public BBaseOpcodeHandler {
5277  protected:
5279  float m_points[6];
5281  double m_dpoints[6];
5282 
5283  public:
5285  TK_Line (unsigned char opcode = TKE_Line)
5286  : BBaseOpcodeHandler (opcode) {}
5287 
5290  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5291 
5292  TK_Status ReadAscii (BStreamFileToolkit & tk);
5293  TK_Status WriteAscii (BStreamFileToolkit & tk);
5294 
5296  void SetPoints (float x1, float y1, float z1, float x2, float y2, float z2) {
5297  m_points[0] = x1; m_points[1] = y1; m_points[2] = z1;
5298  m_points[3] = x2; m_points[4] = y2; m_points[5] = z2;
5299  }
5301  void SetPoints (float const s[], float const e[]) {
5302  SetPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5303  }
5305  void SetPoints (float const p[]) { SetPoints (&p[0], &p[3]); }
5307  float const * GetPoints () const { return m_points; }
5308 
5310  void SetDPoints (double x1, double y1, double z1, double x2, double y2, double z2) {
5311  m_dpoints[0] = x1; m_dpoints[1] = y1; m_dpoints[2] = z1;
5312  m_dpoints[3] = x2; m_dpoints[4] = y2; m_dpoints[5] = z2;
5313  }
5315  void SetDPoints (double const s[], double const e[]) {
5316  SetDPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5317  }
5319  void SetDPoints (double const p[]) { SetDPoints (&p[0], &p[3]); }
5321  double const * GetDPoints () const { return m_dpoints; }
5322 
5323 };
5324 
5325 
5326 
5328 
5335 class BBINFILETK_API TK_Polypoint : public BBaseOpcodeHandler {
5336  protected:
5337  int m_count;
5339  float * m_points;
5340  double * m_dpoints;
5343  void set_points (int count, float const points[] = 0) { SetPoints (count, points); }
5344  public:
5348  TK_Polypoint (unsigned char opcode)
5349  : BBaseOpcodeHandler (opcode), m_count (0), m_allocated (0), m_points (0), m_dpoints (0) {}
5350  ~TK_Polypoint();
5351 
5354  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5355 
5356  TK_Status ReadAscii (BStreamFileToolkit & tk);
5357  TK_Status WriteAscii (BStreamFileToolkit & tk);
5358 
5359  void Reset ();
5360 
5363  void SetPoints (int count, float const points[] = 0);
5365  float const * GetPoints () const { return m_points; }
5367  float * GetPoints () { return m_points; }
5368 
5371  void SetDPoints (int count, double const points[] = 0);
5373  double const * GetDPoints () const { return m_dpoints; }
5375  double * GetDPoints () { return m_dpoints; }
5376 
5378  int GetCount () const { return m_count; }
5379 
5380 };
5381 
5382 
5383 
5384 
5385 #define NC_HAS_WEIGHTS 0x01
5386 #define NC_HAS_KNOTS 0x02
5387 #define NC_HAS_START 0x04
5388 #define NC_HAS_END 0x08
5389 
5390 
5396 class BBINFILETK_API TK_NURBS_Curve : public BBaseOpcodeHandler {
5397  protected:
5398  unsigned char m_optionals;
5399  unsigned char m_degree;
5404  float *m_weights;
5405  float *m_knots;
5406  float m_start;
5407  float m_end;
5409  void set_curve (int degree, int control_count, float const points[] = 0,
5411  float const weights[] = 0, float const knots[] = 0,
5412  float start = 0.0f, float end = 1.0f);
5413  public:
5414  TK_NURBS_Curve();
5415  ~TK_NURBS_Curve();
5416 
5419  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5420 
5421  TK_Status ReadAscii (BStreamFileToolkit & tk);
5422  TK_Status WriteAscii (BStreamFileToolkit & tk);
5423 
5424  void Reset ();
5425 
5427  void SetCurve (int degree, int control_count, float const points[] = 0,
5428  float const weights[] = 0, float const knots[] = 0,
5429  float start = 0.0f, float end = 1.0f) {
5430  set_curve (degree, control_count, points, weights, knots, start, end);
5431  }
5432  void SetDCurve (int degree, int control_count, double const points[] = 0,
5433  float const weights[] = 0, float const knots[] = 0,
5434  float start = 0.0f, float end = 1.0f);
5435 
5436  float const * GetPoints () const { return m_control_points; }
5437  float * GetPoints () { return m_control_points; }
5438  double const * GetDPoints () const { return m_dcontrol_points; }
5439  double * GetDPoints () { return m_dcontrol_points; }
5441  int GetDegree () const { return m_degree; }
5442  int GetCount () const { return m_control_point_count; }
5443  float const * GetWeights () const { return m_weights; }
5444  float * GetWeights () { return m_weights; }
5445  float const * GetKnots () const { return m_knots; }
5446  float * GetKnots () { return m_knots; }
5448  void SetStart (float s) { m_start = s; }
5449  float GetStart () const { return m_start; }
5450  void SetEnd (float e) { m_end = e; }
5451  float GetEnd () const { return m_end; }
5453  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5454  int GetOptions () const { return m_optionals; }
5456 };
5457 
5458 
5459 
5460 
5461 
5462 #define NS_HAS_WEIGHTS 0x01
5463 #define NS_HAS_KNOTS 0x02
5464 #define NS_HAS_TRIMS 0x04
5465 
5466 #define NS_TRIM_END 0
5467 #define NS_TRIM_POLY 1
5468 #define NS_TRIM_CURVE 2
5469 #define NS_TRIM_COLLECTION 3
5470 #define NS_TRIM_LAST_KNOWN_TYPE 3
5471 
5472 #define NS_TRIM_KEEP 0x01
5473 #define NS_TRIM_HAS_WEIGHTS 0x02
5474 #define NS_TRIM_HAS_KNOTS 0x04
5475 
5476 
5483 class BBINFILETK_API HT_NURBS_Trim : public BBaseOpcodeHandler {
5484  friend class TK_NURBS_Surface;
5485  protected:
5486  //first 5 are relevant to polys and curves
5489  unsigned char m_type;
5490  int m_count;
5491  float * m_points;
5492  //next 6 are specific to curves
5493  unsigned char m_degree;
5494  unsigned char m_options;
5495  float * m_weights;
5496  float * m_knots;
5497  float m_start_u;
5498  float m_end_u;
5502  HT_NURBS_Trim();
5503  TK_Status read_collection(BStreamFileToolkit & tk);
5504  TK_Status write_collection(BStreamFileToolkit & tk);
5507  public:
5508  ~HT_NURBS_Trim();
5509  void SetPoly (int count, float const points[] = 0);
5510  void SetCurve (int degree, int control_count, float const points[] = 0,
5511  float const weights[] = 0, float const knots[] = 0, float start_u = 0, float end_u = 1);
5512  void SetCollection ();
5513  HT_NURBS_Trim * PrependCollection();
5514  void SetOptions (int o) { m_options = (unsigned char)o; }
5515  void SetList (HT_NURBS_Trim *node) { m_list = node; }
5516  void SetNext (HT_NURBS_Trim *next) { m_next = next; }
5517  void SetStart(float start) { m_start_u = start; }
5518  void SetEnd(float end) { m_end_u = end; }
5519 
5522 
5525 
5526  TK_Status read_collection_ascii(BStreamFileToolkit & tk);
5527  TK_Status write_collection_ascii(BStreamFileToolkit & tk);
5528 
5530  HT_NURBS_Trim * GetNext (void) { return m_next; }
5531  HT_NURBS_Trim const * GetNext (void) const { return m_next; }
5533  int GetType () const { return m_type; }
5535  int GetCount () const { return m_count; }
5537  float const * GetPoints () const { return m_points; }
5539  float * GetPoints () { return m_points; }
5541  int GetDegree () const { return m_degree; }
5543  float GetStart() const { return m_start_u; }
5545  float GetEnd() const { return m_end_u; }
5547  int GetOptions () const { return m_options; }
5549  float const * GetWeights () const { return m_weights; }
5551  float * GetWeights () { return m_weights; }
5553  float const * GetKnots () const { return m_knots; }
5555  float * GetKnots () { return m_knots; }
5557  HT_NURBS_Trim const *GetList () const { return m_list; }
5559  HT_NURBS_Trim * GetList () { return m_list; }
5560 
5561 };
5562 
5564 
5569 class BBINFILETK_API TK_NURBS_Surface : public BBaseOpcodeHandler {
5570  protected:
5571  unsigned char m_optionals;
5572  unsigned char m_degree[2];
5573  int m_size[2];
5576  float * m_weights;
5577  float * m_u_knots;
5578  float * m_v_knots;
5584  public:
5585  TK_NURBS_Surface();
5586  ~TK_NURBS_Surface();
5587 
5590  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5591 
5592  TK_Status ReadAscii (BStreamFileToolkit & tk);
5593  TK_Status WriteAscii (BStreamFileToolkit & tk);
5594 
5595  void Reset ();
5597  void SetSurface (int u_degree, int v_degree, int u_size, int v_size,
5598  float const points[] = 0, float const weights[] = 0,
5599  float const u_knots[] = 0, float const v_knots[] = 0);
5600  void SetDSurface (int u_degree, int v_degree, int u_size, int v_size,
5601  double const points[] = 0, float const weights[] = 0,
5602  float const u_knots[] = 0, float const v_knots[] = 0);
5605  float const * GetPoints () const { return m_control_points; }
5607  float * GetPoints () { return m_control_points; }
5609  double const * GetDPoints () const { return m_dcontrol_points; }
5611  double * GetDPoints () { return m_dcontrol_points; }
5612 
5614  int GetUDegree () const { return m_degree[0]; }
5616  int GetVDegree () const { return m_degree[1]; }
5618  int GetUSize () const { return m_size[0]; }
5620  int GetVSize () const { return m_size[1]; }
5622  float const * GetWeights () const { return m_weights; }
5624  float * GetWeights () { return m_weights; }
5626  float const * GetUKnots () const { return m_u_knots; }
5628  float * GetUKnots () { return m_u_knots; }
5630  float const * GetVKnots () const { return m_v_knots; }
5632  float * GetVKnots () { return m_v_knots; }
5633 
5635  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5637  int GetOptions () const { return m_optionals; }
5638 
5640  HT_NURBS_Trim * NewTrim (int type = NS_TRIM_END);
5642  HT_NURBS_Trim * GetTrims () { return m_trims; }
5643 
5644 
5645 };
5646 
5648 
5653 class BBINFILETK_API TK_Area_Light : public BBaseOpcodeHandler {
5654  protected:
5655  int m_count;
5656  float * m_points;
5657  double * m_dpoints;
5658  char m_options;
5659 
5661  void set_points (int count, float const points[] = 0);
5662 
5663  public:
5666  : BBaseOpcodeHandler (TKE_Area_Light), m_count (0), m_points (0), m_dpoints (0), m_options (0) {}
5667  ~TK_Area_Light();
5668 
5671  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5672 
5673  TK_Status ReadAscii (BStreamFileToolkit & tk);
5674  TK_Status WriteAscii (BStreamFileToolkit & tk);
5675 
5676  void Reset ();
5677 
5682  void SetPoints (int count, float const points[] = 0) { set_points (count, points); }
5684  float const * GetPoints () const { return m_points; }
5686  float * GetPoints () { return m_points; }
5687 
5692  void SetDPoints (int count, double const points[] = 0) ;
5694  double const * GetDPoints () const { return m_dpoints; }
5696  double * GetDPoints () { return m_dpoints; }
5697 
5699  int GetCount () const { return m_count; }
5700 
5702  void SetOptions (int o) { m_options = (char)o; }
5704  int GetOptions () const { return (int)m_options; }
5705 };
5706 
5707 
5709 
5714 class BBINFILETK_API TK_Spot_Light : public BBaseOpcodeHandler {
5715  protected:
5716  float m_position[3];
5717  float m_target[3];
5718  double m_dposition[3];
5719  double m_dtarget[3];
5720  float m_outer;
5721  float m_inner;
5723  char m_options;
5724 
5725  public:
5728  : BBaseOpcodeHandler (TKE_Spot_Light), m_options (0) {}
5729 
5732  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5733 
5734  TK_Status ReadAscii (BStreamFileToolkit & tk);
5735  TK_Status WriteAscii (BStreamFileToolkit & tk);
5736 
5738  void SetPosition (float x, float y, float z)
5739  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
5741  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
5743  float const * GetPosition () const { return m_position; }
5744 
5746  void SetDPosition (double x, double y, double z)
5747  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
5749  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
5751  double const * GetDPosition () const { return m_dposition; }
5752 
5754  void SetTarget (float x, float y, float z)
5755  { m_target[0] = x; m_target[1] = y; m_target[2] = z; }
5757  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
5759  float const * GetTarget () const { return m_target; }
5760 
5762  void SetDTarget (double x, double y, double z)
5763  { m_dtarget[0] = x; m_dtarget[1] = y; m_dtarget[2] = z; }
5765  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
5767  double const * GetDTarget () const { return m_dtarget; }
5768 
5770  void SetOuter (float o) { m_outer = o; }
5772  float GetOuter () const { return m_outer; }
5773 
5775  void SetInner (float i) { m_inner = i; }
5777  float GetInner () const { return m_inner; }
5778 
5780  void SetConcentration (float c) { m_concentration = c; }
5782  float GetConcentration () const { return m_concentration; }
5783 
5785  void SetOptions (int o) { m_options = (char)o; }
5787  int GetOptions () const { return (int)m_options; }
5788 };
5789 
5790 
5792 
5797 class BBINFILETK_API TK_Cutting_Plane : public BBaseOpcodeHandler {
5798  protected:
5799  float * m_planes;
5800  double * m_dplanes;
5801  int m_count;
5802 
5803  public:
5806  : BBaseOpcodeHandler (TKE_Cutting_Plane), m_planes (0), m_dplanes (0), m_count (0) {}
5807  ~TK_Cutting_Plane ();
5808 
5811  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5812 
5813  TK_Status ReadAscii (BStreamFileToolkit & tk);
5814  TK_Status WriteAscii (BStreamFileToolkit & tk);
5815 
5816  void Reset ();
5817 
5819  void SetPlanes (int count, float const p[]=0);
5821  void SetDPlanes (int count, double const p[]=0);
5822 
5824  void SetPlane (float a, float b, float c, float d)
5825  { SetPlanes(1);
5826  m_planes[0] = a; m_planes[1] = b; m_planes[2] = c; m_planes[3] = d; }
5828  void SetDPlane (double a, double b, double c, double d)
5829  { SetDPlanes(1);
5830  m_dplanes[0] = a; m_dplanes[1] = b; m_dplanes[2] = c; m_dplanes[3] = d; }
5831 
5833  void SetPlane (float const p[]) { SetPlanes (1, p); }
5835  void SetDPlane (double const p[]) { SetDPlanes (1, p); }
5836 
5838  float const * GetPlane () const { return m_planes; }
5840  double const * GetDPlane () const { return m_dplanes; }
5841 
5843  float const * GetPlanes () const { return m_planes; }
5845  double const * GetDPlanes () const { return m_dplanes; }
5846 
5848  int GetCount () const { return m_count; }
5849 };
5850 
5851 
5853 
5860 class BBINFILETK_API TK_Circle : public BBaseOpcodeHandler {
5861  protected:
5862  float m_points[9];
5863  float m_center[3];
5864  double m_dpoints[9];
5865  double m_dcenter[3];
5866  unsigned char m_flags;
5869  public:
5871  TK_Circle (unsigned char opcode)
5872  : BBaseOpcodeHandler (opcode), m_flags (0) {}
5873 
5876  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5877 
5878  TK_Status ReadAscii (BStreamFileToolkit & tk);
5879  TK_Status WriteAscii (BStreamFileToolkit & tk);
5880 
5881  void Reset ();
5882 
5884  void SetStart (float x, float y, float z) {
5885  m_points[0] = x; m_points[1] = y; m_points[2] = z;
5886  }
5888  void SetStart (float const s[]) {
5889  SetStart (s[0], s[1], s[2]);
5890  }
5892  void SetMiddle (float x, float y, float z) {
5893  m_points[3] = x; m_points[4] = y; m_points[5] = z;
5894  }
5896  void SetMiddle (float const m[]) {
5897  SetMiddle (m[0], m[1], m[2]);
5898  }
5900  void SetEnd (float x, float y, float z) {
5901  m_points[6] = x; m_points[7] = y; m_points[8] = z;
5902  }
5904  void SetEnd (float const e[]) {
5905  SetEnd (e[0], e[1], e[2]);
5906  }
5908  void SetCenter (float x, float y, float z) {
5909  m_center[0] = x; m_center[1] = y; m_center[2] = z;
5910  m_flags = TKO_Circular_Center;
5911  }
5913  void SetCenter (float const c[]) {
5914  if (c) SetCenter (c[0], c[1], c[2]);
5915  else m_flags = 0;
5916  }
5918  void SetPoints (float const s[], float const m[], float const e[],
5919  float const c[] = 0) {
5920  SetStart (s); SetMiddle (m); SetEnd (e); SetCenter (c);
5921  }
5922 
5924  float const * GetStart () const { return &m_points[0]; }
5926  float const * GetMiddle () const { return &m_points[3]; }
5928  float const * GetEnd () const { return &m_points[6]; }
5930  float const * GetCenter () const { return (m_flags & TKO_Circular_Center) ? m_center : 0; }
5931 
5933  void SetDStart (double x, double y, double z) {
5934  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
5935  }
5937  void SetDStart (double const s[]) {
5938  SetDStart (s[0], s[1], s[2]);
5939  }
5941  void SetDMiddle (double x, double y, double z) {
5942  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
5943  }
5945  void SetDMiddle (double const m[]) {
5946  SetDMiddle (m[0], m[1], m[2]);
5947  }
5949  void SetDEnd (double x, double y, double z) {
5950  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
5951  }
5953  void SetDEnd (double const e[]) {
5954  SetDEnd (e[0], e[1], e[2]);
5955  }
5957  void SetDCenter (double x, double y, double z) {
5958  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
5959  m_flags = TKO_Circular_Center;
5960  }
5962  void SetDCenter (double const c[]) {
5963  if (c) SetDCenter (c[0], c[1], c[2]);
5964  else m_flags = 0;
5965  }
5967  void SetDPoints (double const s[], double const m[], double const e[],
5968  double const c[] = 0) {
5969  SetDStart (s); SetDMiddle (m); SetDEnd (e); SetDCenter (c);
5970  }
5971 
5973  double const * GetDStart () const { return &m_dpoints[0]; }
5975  double const * GetDMiddle () const { return &m_dpoints[3]; }
5977  double const * GetDEnd () const { return &m_dpoints[6]; }
5979  double const * GetDCenter () const { return (m_flags & TKO_Circular_Center) ? m_dcenter : 0; }
5980 };
5981 
5982 
5984 
5991 class BBINFILETK_API TK_Ellipse : public BBaseOpcodeHandler {
5992  protected:
5993  float m_points[9];
5994  double m_dpoints[9];
5995  float m_limits[2];
5997  public:
5999  TK_Ellipse (unsigned char opcode)
6000  : BBaseOpcodeHandler (opcode) {}
6001 
6004  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6005 
6006  TK_Status ReadAscii (BStreamFileToolkit & tk);
6007  TK_Status WriteAscii (BStreamFileToolkit & tk);
6008 
6010  void SetCenter (float x, float y, float z) {
6011  m_points[0] = x; m_points[1] = y; m_points[2] = z;
6012  }
6014  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
6016  float const * GetCenter () const { return &m_points[0]; }
6017 
6019  void SetMajor (float x, float y, float z) {
6020  m_points[3] = x; m_points[4] = y; m_points[5] = z;
6021  }
6023  void SetMajor (float const m[]) { SetMajor (m[0], m[1], m[2]); }
6025  float const * GetMajor () const { return &m_points[3]; }
6026 
6028  void SetMinor (float x, float y, float z) {
6029  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6030  }
6032  void SetMinor (float const m[]) { SetMinor (m[0], m[1], m[2]); }
6034  float const * GetMinor () const { return &m_points[6]; }
6035 
6036 
6038  void SetDCenter (double x, double y, double z) {
6039  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6040  }
6042  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6044  double const * GetDCenter () const { return &m_dpoints[0]; }
6045 
6047  void SetDMajor (double x, double y, double z) {
6048  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6049  }
6051  void SetDMajor (double const m[]) { SetDMajor (m[0], m[1], m[2]); }
6053  double const * GetDMajor () const { return &m_dpoints[3]; }
6054 
6056  void SetDMinor (double x, double y, double z) {
6057  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6058  }
6060  void SetDMinor (double const m[]) { SetDMinor (m[0], m[1], m[2]); }
6062  double const * GetDMinor () const { return &m_dpoints[6]; }
6063 
6065  void SetLimits (float s, float e) {
6066  m_limits[0] = s; m_limits[1] = e;
6067  }
6069  float const * GetLimits () const { return m_limits; }
6070 };
6071 
6072 
6074 
6081 class BBINFILETK_API TK_Sphere : public BBaseOpcodeHandler {
6082  protected:
6083  unsigned char m_flags;
6084  float m_center[3];
6085  float m_radius;
6086  float m_axis[3];
6087  float m_ortho[3];
6088  double m_dcenter[3];
6089  double m_dradius;
6090  double m_daxis[3];
6091  double m_dortho[3];
6093  public:
6096  : BBaseOpcodeHandler (TKE_Sphere) { Reset(); }
6097 
6100  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6101 
6102  TK_Status ReadAscii (BStreamFileToolkit & tk);
6103  TK_Status WriteAscii (BStreamFileToolkit & tk);
6104 
6105  void Reset ();
6106 
6108  void SetCenter (float x, float y, float z) {
6109  m_center[0] = x; m_center[1] = y; m_center[2] = z;
6110  }
6112  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
6114  float const * GetCenter () const { return m_center; }
6115 
6116 
6118  void SetRadius (float r) { m_radius = r; }
6120  float GetRadius () const { return m_radius; }
6121 
6123  void SetAxis (float x, float y, float z) {
6124  m_axis[0] = x; m_axis[1] = y; m_axis[2] = z;
6125  if (x != 0.0f || y != 1.0f || z != 0.0f)
6126  m_flags &= ~TKSPH_NULL_AXIS;
6127  }
6129  void SetAxis (float const s[]) { SetAxis (s[0], s[1], s[2]); }
6131  float const * GetAxis () const { return m_axis; }
6132 
6134  void SetOrtho (float x, float y, float z) {
6135  m_ortho[0] = x; m_ortho[1] = y; m_ortho[2] = z;
6136  if (x != 1.0f || y != 0.0f || z != 0.0f)
6137  m_flags &= ~TKSPH_NULL_AXIS;
6138  }
6140  void SetOrtho (float const s[]) { SetOrtho (s[0], s[1], s[2]); }
6142  float const * GetOrtho () const { return m_ortho; }
6143 
6144 
6146  void SetDCenter (double x, double y, double z) {
6147  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
6148  }
6150  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6152  double const * GetDCenter () const { return m_dcenter; }
6153 
6154 
6156  void SetDRadius (double r) { m_dradius = r; }
6158  double GetDRadius () const { return m_dradius; }
6159 
6161  void SetDAxis (double x, double y, double z) {
6162  m_daxis[0] = x; m_daxis[1] = y; m_daxis[2] = z;
6163  if (x != 0.0f || y != 1.0f || z != 0.0f)
6164  m_flags &= ~TKSPH_NULL_AXIS;
6165  }
6167  void SetDAxis (double const s[]) { SetDAxis (s[0], s[1], s[2]); }
6169  double const * GetDAxis () const { return m_daxis; }
6170 
6172  void SetDOrtho (double x, double y, double z) {
6173  m_dortho[0] = x; m_dortho[1] = y; m_dortho[2] = z;
6174  if (x != 1.0f || y != 0.0f || z != 0.0f)
6175  m_flags &= ~TKSPH_NULL_AXIS;
6176  }
6178  void SetDOrtho (double const s[]) { SetDOrtho (s[0], s[1], s[2]); }
6180  double const * GetDOrtho () const { return m_dortho; }
6181 
6182 
6186  enum Flags {
6187  TKSPH_NONE = 0x0,
6188  TKSPH_NULL_AXIS = 0x1
6189  };
6190 
6191 };
6192 
6193 
6195 
6202 class BBINFILETK_API TK_Cylinder : public BBaseOpcodeHandler {
6203  protected:
6204  float m_axis[6];
6205  float m_radius;
6206  double m_daxis[6];
6207  double m_dradius;
6208  unsigned char m_flags;
6210  public:
6213  : BBaseOpcodeHandler (TKE_Cylinder) {}
6214 
6217  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6218 
6219  TK_Status ReadAscii (BStreamFileToolkit & tk);
6220  TK_Status WriteAscii (BStreamFileToolkit & tk);
6221 
6223  void SetAxis (float x1, float y1, float z1, float x2, float y2, float z2) {
6224  m_axis[0] = x1; m_axis[1] = y1; m_axis[2] = z1;
6225  m_axis[3] = x2; m_axis[4] = y2; m_axis[5] = z2;
6226  }
6228  void SetAxis (float const s[], float const e[]) { SetAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6230  void SetAxis (float const a[]) { SetAxis (&a[0], &a[3]); }
6232  float const * GetAxis () const { return m_axis; }
6234  float const * GetStart () const { return &m_axis[0]; }
6236  float const * GetEnd () const { return &m_axis[3]; }
6237 
6239  void SetRadius (float r) { m_radius = r; }
6241  float GetRadius () const { return m_radius; }
6242 
6243 
6245  void SetDAxis (double x1, double y1, double z1, double x2, double y2, double z2) {
6246  m_daxis[0] = x1; m_daxis[1] = y1; m_daxis[2] = z1;
6247  m_daxis[3] = x2; m_daxis[4] = y2; m_daxis[5] = z2;
6248  }
6250  void SetDAxis (double const s[], double const e[]) { SetDAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6252  void SetDAxis (double const a[]) { SetDAxis (&a[0], &a[3]); }
6254  double const * GetDAxis () const { return m_daxis; }
6256  double const * GetDStart () const { return &m_daxis[0]; }
6258  double const * GetDEnd () const { return &m_daxis[3]; }
6259 
6261  void SetDRadius (double r) { m_dradius = r; }
6263  double GetDRadius () const { return m_dradius; }
6264 
6265 
6267  void SetCaps (int f) { m_flags = (unsigned char)f; }
6269  int GetCaps () const { return m_flags; }
6270 
6275  TKCYL_NONE = 0,
6276  TKCYL_FIRST = 1,
6277  TKCYL_SECOND = 2,
6278  TKCYL_BOTH = 3
6279  };
6280 
6281 };
6282 
6283 
6285 
6292 #include "BPolyhedron.h"
6293 
6294 class BBINFILETK_API TK_PolyCylinder : public TK_Polyhedron {
6295  protected:
6296  int m_count;
6297  float * m_points;
6298  double * m_dpoints;
6300  float * m_radii;
6301  double * m_dradii;
6302  unsigned char m_flags;
6303  float m_normals[6];
6305  public:
6308  : TK_Polyhedron (TKE_PolyCylinder), m_count (0), m_points (0), m_dpoints (0),
6309  m_radius_count (0), m_radii (0), m_dradii (0) {}
6310  ~TK_PolyCylinder();
6311 
6314  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6315 
6316  TK_Status ReadAscii (BStreamFileToolkit & tk);
6317  TK_Status WriteAscii (BStreamFileToolkit & tk);
6318 
6319  virtual void Reset ();
6320 
6325  TKCYL_NORMAL_FIRST = 0x04,
6326  TKCYL_NORMAL_SECOND = 0x08,
6327  TKCYL_OPTIONALS = 0x10
6328  };
6329 
6334  void SetPoints (int count, float const points[] = 0);
6336  float const * GetPoints () const { return m_points; }
6338  float * GetPoints () { return m_points; }
6339 
6344  void SetRadii (int count, float const radii[] = 0);
6346  void SetRadius (float radius) { SetRadii (1, &radius); }
6348  float const * GetRadii () const { return m_radii; }
6350  float * GetRadii () { return m_radii; }
6351 
6352 
6357  void SetDPoints (int count, double const points[] = 0);
6359  double const * GetDPoints () const { return m_dpoints; }
6361  double * GetDPoints () { return m_dpoints; }
6362 
6367  void SetDRadii (int count, double const radii[] = 0);
6369  void SetDRadius (double radius) { SetDRadii (1, &radius); }
6371  double const * GetDRadii () const { return m_dradii; }
6373  double * GetDRadii () { return m_dradii; }
6374 
6375 
6377  int GetCount () const { return m_count; }
6379  int GetRadiusCount () const { return m_radius_count; }
6380 
6381 
6382 
6383 
6385  void SetCaps (int f) { m_flags &= ~0x03; m_flags |= f; }
6387  int GetCaps () const { return m_flags & 0x03; }
6388 
6390  void SetEndNormal (int index, float const normal[] = 0) {
6391  int mask = 0x40 << index;
6392  if (normal == 0)
6393  m_flags &= ~mask;
6394  else {
6395  m_flags |= mask;
6396  m_normals[3*index+0] = normal[0];
6397  m_normals[3*index+1] = normal[1];
6398  m_normals[3*index+2] = normal[2];
6399  }
6400  }
6402  float const * GetEndNormal (int index) const {
6403  int mask = 0x40 << index;
6404  if (m_flags & mask)
6405  return &m_normals[3*index];
6406  else
6407  return 0;
6408  }
6409 };
6410 
6411 
6413 
6419 class BBINFILETK_API TK_Grid : public BBaseOpcodeHandler {
6420  protected:
6421  char m_type;
6422  float m_points[9];
6423  double m_dpoints[9];
6424  int m_counts[2];
6426  public:
6429  : BBaseOpcodeHandler (TKE_Grid) {}
6430 
6433  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6434 
6435  TK_Status ReadAscii (BStreamFileToolkit & tk);
6436  TK_Status WriteAscii (BStreamFileToolkit & tk);
6437 
6439  void SetOrigin (float x, float y, float z) {
6440  m_points[0] = x; m_points[1] = y; m_points[2] = z;
6441  }
6443  void SetOrigin (float const o[]) { SetOrigin (o[0], o[1], o[2]); }
6445  float const * GetOrigin () const { return &m_points[0]; }
6447  float * GetOrigin () { return &m_points[0]; }
6448 
6450  void SetRef1 (float x, float y, float z) {
6451  m_points[3] = x; m_points[4] = y; m_points[5] = z;
6452  }
6454  void SetRef1 (float const r[]) { SetRef1 (r[0], r[1], r[2]); }
6456  float const * GetRef1 () const { return &m_points[3]; }
6458  float * GetRef1 () { return &m_points[3]; }
6459 
6461  void SetRef2 (float x, float y, float z) {
6462  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6463  }
6465  void SetRef2 (float const r[]) { SetRef2 (r[0], r[1], r[2]); }
6467  float const * GetRef2 () const { return &m_points[6]; }
6469  float * GetRef2 () { return &m_points[6]; }
6470 
6471 
6473  void SetDOrigin (double x, double y, double z) {
6474  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6475  }
6477  void SetDOrigin (double const o[]) { SetDOrigin (o[0], o[1], o[2]);}
6479  double const * GetDOrigin () const { return &m_dpoints[0]; }
6481  double * GetDOrigin () { return &m_dpoints[0]; }
6482 
6484  void SetDRef1 (double x, double y, double z) {
6485  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6486  }
6488  void SetDRef1 (double const r[]) { SetDRef1 (r[0], r[1], r[2]); }
6490  double const * GetDRef1 () const { return &m_dpoints[3]; }
6492  double * GetDRef1 () { return &m_dpoints[3]; }
6493 
6495  void SetDRef2 (double x, double y, double z) {
6496  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6497  }
6499  void SetDRef2 (double const r[]) { SetDRef2 (r[0], r[1], r[2]); }
6501  double const * GetDRef2 () const { return &m_dpoints[6]; }
6503  double * GetDRef2 () { return &m_dpoints[6]; }
6504 
6505 
6507  void SetCounts (int c1, int c2) {
6508  m_counts[0] = c1; m_counts[1] = c2;
6509  }
6511  int const * GetCounts () const { return m_counts; }
6513  int * GetCounts () { return m_counts; }
6514 
6516  void SetType (int t) { m_type = (char)t; }
6518  int GetType () const { return (int)m_type; }
6519 };
6520 
6522 
6525  char * name;
6526 
6527  float color[3];
6528  float size;
6531  float slant;
6532  float rotation;
6533  float width_scale;
6534 
6535  unsigned short mask;
6536  unsigned short value;
6537 
6538  unsigned char size_units;
6539  unsigned char vertical_offset_units;
6540  unsigned char horizontal_offset_units;
6541 };
6542 
6543 
6545 
6551 class BBINFILETK_API TK_Text : public BBaseOpcodeHandler {
6552  protected:
6553  float m_position[3];
6554  double m_dposition[3];
6555  int m_length;
6557  char * m_string;
6558  unsigned char m_encoding;
6559  unsigned char m_options;
6560  unsigned char m_region_options;
6561  unsigned char m_region_fit;
6562  unsigned char m_region_count;
6563  float m_region[4*3];
6565  int * m_cursors;
6567  float * m_leaders;
6568  unsigned char * m_leader_flags;
6570  double * m_dleaders;
6571  unsigned char * m_dleader_flags;
6572  int m_count;
6575  int m_tmp;
6577  void set_string (char const * string);
6578  void set_string (int length);
6579 
6580  public:
6582  TK_Text (unsigned char opcode);
6583  ~TK_Text();
6584 
6587  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6588 
6589  TK_Status ReadAscii (BStreamFileToolkit & tk);
6590  TK_Status WriteAscii (BStreamFileToolkit & tk);
6591 
6592  void Reset ();
6593 
6595  void SetString (char const * string) { set_string (string); }
6597  void SetString (unsigned short const * string);
6599  void SetString (unsigned int const * string);
6601  void SetString (int length) { set_string (length); }
6603  char const * GetString () const { return m_string; }
6605  char * GetString () { return m_string; }
6606 
6608  void SetPosition (float x, float y, float z)
6609  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6611  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6613  float const * GetPosition () const { return &m_position[0]; }
6614 
6616  void SetDPosition (double x, double y, double z)
6617  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6619  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6621  double const * GetDPosition () const { return &m_dposition[0]; }
6622 
6624  void SetEncoding (int e) { m_encoding = (unsigned char)e; }
6626  int GetEncoding () const { return (int)m_encoding; }
6627 
6629  void SetTextRegion (int c, float const p[], int o=0, int f=0);
6631  int GetTextRegionCount () const { return (int)m_region_count; }
6633  float const * GetTextRegionPoints () const { return m_region; }
6635  int GetTextRegionOptions () const { return (int)m_region_options; }
6637  int GetTextRegionFitting () const { return (int)m_region_fit; }
6638 
6639 
6641  void SetStringCursors (int length, int * locations = 0);
6643  int GetStringCursorCount () const { return m_cursor_count; }
6645  int const * GetStringCursors () const { return m_cursors; }
6647  int * GetStringCursors () { return m_cursors; }
6648 
6650  void SetTextLeaders (int length, float * locations = 0, unsigned char * flags = 0);
6652  int GetTextLeaderCount () const { return m_leader_count; }
6654  float const * GetTextLeaders () const { return m_leaders; }
6656  float * GetTextLeaders () { return m_leaders; }
6658  unsigned char const * GetTextLeaderFlags () const { return m_leader_flags; }
6660  unsigned char * GetTextLeaderFlags () { return m_leader_flags; }
6661 
6663  void SetDTextLeaders (int length, double * locations = 0, unsigned char * flags = 0);
6665  int GetDTextLeaderCount () const { return m_dleader_count; }
6667  double const * GetDTextLeaders () const { return m_dleaders; }
6669  double * GetDTextLeaders () { return m_dleaders; }
6671  unsigned char const * GetDTextLeaderFlags () const { return m_dleader_flags; }
6673  unsigned char * GetDTextLeaderFlags () { return m_dleader_flags; }
6674 };
6675 
6677 
6679 
6685 class BBINFILETK_API TK_Font : public BBaseOpcodeHandler {
6686  protected:
6687  char * m_name;
6688  char * m_lookup;
6689  char * m_bytes;
6692  int m_length;
6693  unsigned char m_type;
6694  unsigned char m_encoding;
6696  void set_bytes (int size, char const * bytes = 0);
6699  void set_name (char const * string);
6701  void set_name (int length);
6703  void set_lookup (char const * string);
6705  void set_lookup (int length);
6706 
6707  public:
6709  TK_Font () : BBaseOpcodeHandler (TKE_Font),
6710  m_name (0), m_lookup (0), m_bytes (0), m_name_length (0), m_lookup_length (0), m_length (0),
6711  m_type (0), m_encoding (0) {}
6712  ~TK_Font();
6713 
6716  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6717 
6718  TK_Status ReadAscii (BStreamFileToolkit & tk);
6719  TK_Status WriteAscii (BStreamFileToolkit & tk);
6720 
6721  void Reset ();
6722 
6723 
6725  void SetType (int t) { m_type = (unsigned char)t;}
6727  int GetType () const { return (int)m_type; }
6728 
6733  void SetBytes (int size, char const * bytes = 0) { set_bytes (size, bytes); }
6735  int GetBytesCount () const { return m_length; }
6737  char const * GetBytes () const { return m_bytes; }
6739  char * GetBytes () { return m_bytes; }
6740 
6742  void SetName (char const * string) { set_name (string); }
6744  void SetName (int length) { set_name (length); }
6746  char const * GetName () const { return m_name; }
6748  char * GetName () { return m_name; }
6749 
6751  void SetLookup (char const * string) { set_lookup (string); }
6753  void SetLookup (int length) { set_lookup (length); }
6755  char const * GetLookup () const { return m_lookup; }
6757  char * GetLookup () { return m_lookup; }
6758 
6760  void SetEncoding (int e) { m_encoding = (unsigned char)e;}
6762  int GetEncoding () const { return (int)m_encoding; }
6763 };
6764 
6766 
6767 
6769 extern const int TK_Image_Bytes_Per_Pixel[];
6770 
6771 #ifndef DOXYGEN_SHOULD_SKIP_THIS
6772 
6773 class BBINFILETK_API2 TK_Image_Data_Buffer {
6774  protected:
6775  unsigned char * m_buffer;
6776  unsigned int m_allocated;
6777  unsigned int m_used;
6778 
6779  public:
6781  TK_Image_Data_Buffer() : m_buffer (0), m_allocated (0), m_used (0) {}
6782  ~TK_Image_Data_Buffer();
6783 
6784  void Resize (unsigned int size);
6785  void Expand (unsigned int size) { Resize (Size() + size); }
6786  void Reset ();
6787 
6788  unsigned int const & Size () const { return m_allocated; }
6789  unsigned int const & Used () const { return m_used; }
6790  unsigned int & Used () { return m_used; }
6791  unsigned char const * Buffer () const { return m_buffer; }
6792  unsigned char * Buffer () { return m_buffer; }
6793 };
6794 
6795 
6796 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
6797 
6798 
6800 
6806 class BBINFILETK_API2 TK_Image : public BBaseOpcodeHandler {
6807  protected:
6808  char * m_bytes;
6809  char * m_name;
6810  char * m_reference;
6811  float m_position[3];
6812  double m_dposition[3];
6813  int m_size[2];
6817  unsigned char m_format;
6818  unsigned int m_options;
6819  unsigned char m_compression;
6820  unsigned char m_bytes_format;
6821  float m_explicit_size[2];
6822  unsigned char m_explicit_units[2];
6823  TK_Image_Data_Buffer m_work_area[2];
6828  void set_data (int size, char const * bytes = 0, unsigned char data_format = TKO_Compression_None);
6831  void set_name (char const * string);
6833  void set_name (int length);
6834 
6836  TK_Status compress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6838  TK_Status decompress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6840  TK_Status read_jpeg_header ();
6841 
6842  public:
6844  TK_Image ();
6845  ~TK_Image();
6846 
6849  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6850 
6851  TK_Status ReadAscii (BStreamFileToolkit & tk);
6852  TK_Status WriteAscii (BStreamFileToolkit & tk);
6853  TK_Status compress_image_ascii (BStreamFileToolkit & tk);
6854 
6855 
6856  void Reset ();
6857 
6862  void SetBytes (int size, char const * bytes = 0,
6863  unsigned char data_format = TKO_Compression_None)
6864  { set_data (size, bytes, data_format); }
6866  char const * GetBytes () const { return m_bytes; }
6868  char * GetBytes () { return m_bytes; }
6869 
6871  void SetName (char const * string) { set_name (string); }
6873  void SetName (int length) { set_name (length); }
6875  char const * GetName () const { return m_name; }
6877  char * GetName () { return m_name; }
6878 
6880  void SetReference (char const * string);
6882  void SetReference (int length);
6884  char const * GetReference () const { return m_reference; }
6886  char * GetReference () { return m_reference; }
6887 
6889  void SetPosition (float x, float y, float z)
6890  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6892  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6894  float const * GetPosition () const { return &m_position[0]; }
6895 
6897  void SetDPosition (double x, double y, double z)
6898  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6900  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6902  double const * GetDPosition () const { return &m_dposition[0]; }
6903 
6905  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
6907  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
6909  int const * GetSize () const { return m_size; }
6910 
6912  void SetFormat (int f) { m_format = (unsigned char)(f & TKO_Image_Format_Mask); }
6914  int GetFormat () const { return (int)m_format; }
6915 
6917  void SetOptions (int f) { m_options = (unsigned char)(f & TKO_Image_Options_Mask); }
6919  int GetOptions () const { return (int)m_options; }
6920 
6922  void SetCompression (int c) { m_compression = (unsigned char)c; }
6924  int GetCompression () const { return (int)m_compression; }
6925 };
6926 
6927 
6929 
6931 
6937 class BBINFILETK_API2 TK_Texture : public BBaseOpcodeHandler {
6938  protected:
6939  char * m_name;
6941  char * m_image;
6942  char * m_camera;
6947  int m_flags;
6958  char m_layout;
6959  char m_tiling;
6960  float m_value_scale[2];
6961  int m_source_dimensions[3];
6962  char * m_transform;
6966  void set_name (int length);
6967  void set_name (char const * name);
6968  void set_image (int length);
6969  void set_image (char const * image);
6970  void set_transform (int length);
6971  void set_transform (char const * transform);
6972 
6973  public:
6975  TK_Texture () : BBaseOpcodeHandler (TKE_Texture),
6976  m_name (0), m_shader_source(0), m_image (0), m_camera (0),
6977  m_name_length (0), m_shader_source_length(0), m_image_length (0), m_camera_length (0),
6978  m_transform (0) {
6979  Reset();
6980  }
6981  ~TK_Texture();
6982 
6985  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6986 
6987  TK_Status ReadAscii (BStreamFileToolkit & tk);
6988  TK_Status WriteAscii (BStreamFileToolkit & tk);
6989 
6990  void Reset ();
6991 
6993  void SetName (char const * name) { set_name (name); }
6995  void SetName (int length) { set_name (length); }
6997  char const * GetName () const { return m_name; }
6999  char * GetName () { return m_name; }
7000 
7002  void SetShaderSource (char const * shader_source);
7004  void SetShaderSource (int length);
7006  char const * GetShaderSource () const { return m_shader_source; }
7008  char * GetShaderSource () { return m_shader_source; }
7009 
7011  void SetImage (char const * image) { set_image (image); }
7013  void SetImage (int length) { set_image (length); }
7015  char const * GetImage () const { return m_image; }
7017  char * GetImage () { return m_image; }
7018 
7020  void SetCamera (char const * camera);
7022  void SetCamera (int length);
7024  char const * GetCamera () const { return m_camera; }
7026  char * GetCamera () { return m_camera; }
7027 
7029  void SetFlags (int f) {
7030  m_flags = f;
7031  if ((f & TKO_Texture_Extended_Mask) != 0)
7032  m_flags |= TKO_Texture_Extended;
7033  }
7035  int GetFlags () const { return m_flags; }
7036 
7038  void SetParameterSource (int p) { m_param_source = (char)p; }
7040  int GetParameterSource () const { return (int)m_param_source; }
7041 
7043  void SetInterpolation (int p) { m_interpolation = (char)p; }
7045  int GetInterpolation () const { return (int)m_interpolation; }
7046 
7048  void SetDecimation (int p) { m_decimation = (char)p; }
7050  int GetDecimation () const { return (int)m_decimation; }
7051 
7053  void SetRedMapping (int p) { m_red_mapping = (char)p; }
7055  int GetRedMapping () const { return (int)m_red_mapping; }
7056 
7058  void SetGreenMapping (int p) { m_green_mapping = (char)p; }
7060  int GetGreenMapping () const { return (int)m_green_mapping; }
7061 
7063  void SetBlueMapping (int p) { m_blue_mapping = (char)p; }
7065  int GetBlueMapping () const { return (int)m_blue_mapping; }
7066 
7068  void SetAlphaMapping (int p) { m_alpha_mapping = (char)p; }
7070  int GetAlphaMapping () const { return (int)m_alpha_mapping; }
7071 
7073  void SetParameterFunction (int p) { m_param_function = (char)p; }
7075  int GetParameterFunction () const { return (int)m_param_function; }
7076 
7078  void SetLayout (int p) { m_layout = (char)p; }
7080  int GetLayout () const { return (int)m_layout; }
7081 
7083  void SetTiling (int p) { m_tiling = (char)p; }
7085  int GetTiling () const { return (int)m_tiling; }
7086 
7088  void SetValueScale (float v1, float v2) { m_value_scale[0] = v1; m_value_scale[1] = v2; }
7090  float const * GetValueScale () const { return m_value_scale; }
7091 
7093  void SetApplicationMode (int p) { m_apply_mode = (char)p; }
7095  int GetApplicationMode () const { return (int)m_apply_mode; }
7096 
7098  void SetParameterOffset (int p) { m_param_offset = (char)p; }
7100  int GetParameterOffset () const { return (int)m_param_offset; }
7101 
7106  void SetTransform (char const * transform) { set_transform (transform); }
7111  void SetTransform (int length) { set_transform (length); }
7113  char const * GetTransform () const { return m_transform; }
7115  char * GetTransform () { return m_transform; }
7116 };
7117 
7119 
7121 
7127 class BBINFILETK_API2 TK_Thumbnail : public BBaseOpcodeHandler {
7128  protected:
7129  unsigned char * m_bytes;
7131  int m_size[2];
7132  unsigned char m_format;
7134  public:
7136  TK_Thumbnail() : BBaseOpcodeHandler (TKE_Thumbnail), m_bytes (0), m_allocated (0), m_format (TKO_Thumbnail_Invalid) {}
7137  ~TK_Thumbnail();
7138 
7141  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7142 
7143  TK_Status ReadAscii (BStreamFileToolkit & tk);
7144  TK_Status WriteAscii (BStreamFileToolkit & tk);
7145 
7147  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
7148  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
7149  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
7150  void Reset ();
7151 
7156  void SetBytes (int size, unsigned char const * bytes = 0);
7158  unsigned char const * GetBytes () const { return m_bytes; }
7160  unsigned char * GetBytes () { return m_bytes; }
7161 
7163  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
7165  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
7167  int const * GetSize () const { return m_size; }
7168 
7170  void SetFormat (int f) { m_format = (unsigned char)f; }
7172  int GetFormat () const { return (int)m_format; }
7173 };
7174 
7175 
7177 
7179 
7184 class BBINFILETK_API2 TK_Glyph_Definition : public BBaseOpcodeHandler {
7185  protected:
7187  int m_size;
7188  char * m_name;
7189  char * m_data;
7191  public:
7193  TK_Glyph_Definition () : BBaseOpcodeHandler (TKE_Glyph_Definition),
7194  m_name_length (0), m_size (0),
7195  m_name (0), m_data (0) {}
7197 
7200  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7201 
7202  TK_Status ReadAscii (BStreamFileToolkit & tk);
7203  TK_Status WriteAscii (BStreamFileToolkit & tk);
7204 
7205  void Reset ();
7206 
7208  void SetName (char const * name);
7210  void SetName (int length);
7212  char const * GetName () const { return m_name; }
7214  char * GetName () { return m_name; }
7215 
7217  void SetDefinition (int size, char const * data = 0);
7219  int GetDefinitionSize () const { return m_size; }
7221  char const * GetDefinition () const { return m_data; }
7223  char * GetDefinition () { return m_data; }
7224 };
7225 
7226 
7228 
7233 class BBINFILETK_API2 TK_Shape_Definition : public BBaseOpcodeHandler {
7234  protected:
7236  int m_size;
7237  char * m_name;
7238  float * m_data;
7240  public:
7242  TK_Shape_Definition () : BBaseOpcodeHandler (TKE_Shape_Definition),
7243  m_name_length (0), m_size (0),
7244  m_name (0), m_data (0) {}
7246 
7249  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7250 
7251  TK_Status ReadAscii (BStreamFileToolkit & tk);
7252  TK_Status WriteAscii (BStreamFileToolkit & tk);
7253 
7254  void Reset ();
7255 
7257  void SetName (char const * name);
7259  void SetName (int length);
7261  char const * GetName () const { return m_name; }
7263  char * GetName () { return m_name; }
7264 
7266  void SetDefinition (int size, float const * data = 0);
7268  int GetDefinitionSize () const { return m_size; }
7270  float const * GetDefinition () const { return m_data; }
7272  float * GetDefinition () { return m_data; }
7273 };
7274 
7275 
7277 
7282 class BBINFILETK_API2 TK_Named_Style_Def : public BBaseOpcodeHandler {
7283  protected:
7285  char * m_name;
7288  char * m_segment;
7292  char * m_condition;
7296  bool m_follow;
7297 
7298  public:
7301  m_name_length (0), m_name (0),
7302  m_segment_length (0), m_segment (0) ,
7303  m_cond_length (0), m_cond_allocated (0), m_condition (0),
7304  m_key(-1), m_referee(0), m_follow(true) {}
7305  ~TK_Named_Style_Def();
7306 
7309  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7310 
7311  TK_Status ReadAscii (BStreamFileToolkit & tk);
7312  TK_Status WriteAscii (BStreamFileToolkit & tk);
7313 
7314  void Reset ();
7315 
7317  void SetName (char const * name);
7319  void SetName (int length);
7321  char const * GetName () const { return m_name; }
7323  char * GetName () { return m_name; }
7324 
7329  void SetSegment (char const * segment);
7334  void SetSegment (int length);
7338  char const * GetSegment () const { return m_segment; }
7343  char * GetSegment () { return m_segment; }
7344 };
7345 
7347 
7352 class BBINFILETK_API2 TK_Line_Style : public BBaseOpcodeHandler {
7353  protected:
7356  char * m_name;
7357  char * m_definition;
7359  public:
7361  TK_Line_Style () : BBaseOpcodeHandler (TKE_Line_Style),
7362  m_name_length (0), m_definition_length (0),
7363  m_name (0), m_definition (0) {}
7364  ~TK_Line_Style();
7365 
7368  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7369 
7370  TK_Status ReadAscii (BStreamFileToolkit & tk);
7371  TK_Status WriteAscii (BStreamFileToolkit & tk);
7372 
7373  void Reset ();
7374 
7376  void SetName (char const * name);
7378  void SetName (int length);
7380  char const * GetName () const { return m_name; }
7382  char * GetName () { return m_name; }
7383 
7385  void SetDefinition (char const * def);
7387  void SetDefinition (int length);
7389  char const * GetDefinition () const { return m_definition; }
7391  char * GetDefinition () { return m_definition; }
7392 };
7393 
7395 
7397 
7402 class BBINFILETK_API TK_Clip_Rectangle : public BBaseOpcodeHandler {
7403  protected:
7404  char m_options;
7405  float m_rect[4];
7407  public:
7410  : BBaseOpcodeHandler (TKE_Clip_Rectangle), m_options (0) {}
7411 
7414  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7415 
7416  TK_Status ReadAscii (BStreamFileToolkit & tk);
7417  TK_Status WriteAscii (BStreamFileToolkit & tk);
7418 
7419  void Reset ();
7420 
7422  void SetRectangle (float left, float right, float bottom, float top)
7423  { m_rect[0] = left; m_rect[1] = right; m_rect[2] = bottom; m_rect[3] = top; }
7425  void SetRectangle (float const * rect)
7426  { SetRectangle (rect[0], rect[1], rect[2], rect[3]); }
7428  float const * GetRectangle () const { return m_rect; }
7429 
7431  void SetOptions (int o) { m_options = (char)o; }
7433  int GetOptions () const { return (int)m_options; }
7434 };
7435 
7437 
7439 
7444 class BBINFILETK_API TK_Clip_Region : public BBaseOpcodeHandler {
7445  protected:
7446  char m_options;
7447  int m_count;
7448  float * m_points;
7449  double * m_dpoints;
7453  public:
7456  : BBaseOpcodeHandler (TKE_Clip_Region), m_options (0), m_count (0), m_points (0), m_dpoints (0), m_complex (0) {}
7457  ~TK_Clip_Region();
7458 
7461  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7462 
7463  TK_Status ReadAscii (BStreamFileToolkit & tk);
7464  TK_Status WriteAscii (BStreamFileToolkit & tk);
7465 
7466  void Reset ();
7467 
7472  void SetPoints (int count, float const points[] = 0);
7474  float const * GetPoints () const { return m_points; }
7476  float * GetPoints () { return m_points; }
7477 
7482  void SetDPoints (int count, double const points[] = 0);
7484  double const * GetDPoints () const { return m_dpoints; }
7486  double * GetDPoints () { return m_dpoints; }
7487 
7488 
7490  int GetCount () const { return m_count; }
7491 
7492 
7494  void SetOptions (int o) { m_options = (char)o; }
7496  int GetOptions () const { return (int)m_options; }
7497 };
7498 
7499 
7501 
7503 
7508 class BBINFILETK_API TK_Complex_Clip_Region : public BBaseOpcodeHandler {
7509  protected:
7510  char m_options;
7511  int m_loops;
7512  int m_total;
7513  int * m_lengths;
7514  float * m_points;
7515  double * m_dpoints;
7517  public:
7520  : BBaseOpcodeHandler (TKE_Complex_Clip_Region), m_options (0), m_loops (0), m_total (0),
7521  m_lengths (0), m_points (0), m_dpoints (0) {}
7523 
7526  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7527 
7528  TK_Status ReadAscii (BStreamFileToolkit & tk);
7529  TK_Status WriteAscii (BStreamFileToolkit & tk);
7530 
7531  void Reset ();
7532 
7537  void SetPoints (int count, float const points[] = 0);
7539  float const * GetPoints () const { return m_points; }
7541  float * GetPoints () { return m_points; }
7542 
7547  void SetDPoints (int count, double const points[] = 0);
7549  double const * GetDPoints () const { return m_dpoints; }
7551  double * GetDPoints () { return m_dpoints; }
7552 
7553 
7558  void SetLengths (int count, int const lengths[] = 0);
7560  int const * GetLengths () const { return m_lengths; }
7562  int * GetLengths () { return m_lengths; }
7563 
7564 
7566  int GetTotal () const { return m_total; }
7568  int GetLoops () const { return m_loops; }
7569 
7570 
7572  void SetOptions (int o) { m_options = (char)o; }
7574  int GetOptions () const { return (int)m_options; }
7575 };
7576 
7577 
7579 
7581 
7597 class BBINFILETK_API2 TK_User_Data : public BBaseOpcodeHandler {
7598  protected:
7599  int m_size;
7600  unsigned char * m_data;
7603  void set_data (int size, unsigned char const * bytes = 0);
7605 
7606  public:
7609  : BBaseOpcodeHandler (TKE_Start_User_Data), m_size (0), m_data (0), m_buffer_size(0) {}
7610  ~TK_User_Data();
7611 
7614  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7615 
7616  TK_Status ReadAscii (BStreamFileToolkit & tk);
7617  TK_Status WriteAscii (BStreamFileToolkit & tk);
7618 
7620  void Reset ();
7621 
7626  void SetUserData (int size, unsigned char const * bytes = 0) { set_data (size, bytes); }
7628  unsigned char const * GetUserData () const { return m_data; }
7630  unsigned char * GetUserData () { return m_data; }
7632  int GetSize () const { return m_size; }
7633 
7635  void Resize (int size);
7636 
7638  void SetSize (int size);
7639 };
7640 
7641 
7643 
7645 
7657 class BBINFILETK_API2 TK_Material : public BBaseOpcodeHandler {
7658  protected:
7660 
7663  struct vlist_s *m_data;
7664 
7665  public:
7667  TK_Material () : BBaseOpcodeHandler (TKE_Material), m_total_size(0), m_data(0) {}
7668  ~TK_Material();
7669 
7672  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7673  void Reset ();
7674 
7675  TK_Status PushUserData (char const *buffer, int buffer_size, bool tally_total_size = true);
7676  TK_Status GetBlock (char const **ptr, int *buffer_size);
7677 };
7678 
7680 
7685 class BBINFILETK_API TK_XML : public BBaseOpcodeHandler {
7686  protected:
7687  int m_size;
7688  char * m_data;
7690  public:
7692  TK_XML (): BBaseOpcodeHandler (TKE_XML), m_size (0), m_data (0) {}
7693  ~TK_XML();
7694 
7697  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7698 
7699  TK_Status ReadAscii (BStreamFileToolkit & tk);
7700  TK_Status WriteAscii (BStreamFileToolkit & tk);
7701 
7703  void Reset ();
7704 
7709  void SetXML (int size, char const * data = 0);
7713  void AppendXML (int size, char const * data = 0);
7715  char const * GetXML () const { return m_data; }
7717  char * GetXML () { return m_data; }
7719  int GetSize () const { return m_size; }
7720 };
7721 
7722 
7723 
7725 
7731 class BBINFILETK_API TK_URL : public BBaseOpcodeHandler {
7732  protected:
7733  int m_length;
7735  char * m_string;
7737  public:
7740  m_length (0), m_allocated (0), m_string (0) {}
7741  ~TK_URL();
7742 
7745  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7746 
7747  TK_Status ReadAscii (BStreamFileToolkit & tk);
7748  TK_Status WriteAscii (BStreamFileToolkit & tk);
7749 
7750  void Reset ();
7751 
7753  void SetString (char const * string);
7755  void SetString (int length);
7757  char const * GetString () const { return m_string; }
7759  char * GetString () { return m_string; }
7760 };
7761 
7762 
7764 
7770 class BBINFILETK_API TK_External_Reference : public BBaseOpcodeHandler {
7771  protected:
7772  int m_length;
7774  char * m_string;
7776  public:
7777  TK_External_Reference () : BBaseOpcodeHandler (TKE_External_Reference),
7778  m_length (0), m_allocated (0), m_string (0) {}
7780 
7783  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7784 
7785  TK_Status ReadAscii (BStreamFileToolkit & tk);
7786  TK_Status WriteAscii (BStreamFileToolkit & tk);
7787 
7789  void Reset ();
7790 
7792  void SetString (char const * string);
7794  void SetString (int length);
7796  char const * GetString () const { return m_string; }
7798  char * GetString () { return m_string; }
7799 };
7800 
7801 
7803 
7809 class BBINFILETK_API TK_External_Reference_Unicode : public BBaseOpcodeHandler {
7810  protected:
7811  int m_length;
7813  wchar_t * m_string;
7815  public:
7816  TK_External_Reference_Unicode () : BBaseOpcodeHandler (TKE_External_Reference_Unicode),
7817  m_length (0), m_allocated (0), m_string (0) {}
7819 
7822  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7823 
7825  void Reset ();
7826 
7828  void SetString (__wchar_t const * string);
7829 #ifdef _MSC_VER
7830  void SetString (unsigned short const * string);
7831 #endif
7832 
7833  void SetString (int length);
7835  wchar_t const * GetString () const { return m_string; }
7837  wchar_t * GetString () { return m_string; }
7838 };
7839 
7840 
7841 
7842 
7844 
7850 class BBINFILETK_API TK_Image_XRef : public BBaseOpcodeHandler {
7851  protected:
7852  char * m_name;
7854  int m_size[2];
7855  char m_bpp;
7856 
7858  void set_name (char const * string);
7860  void set_name (int length);
7861 
7862  public:
7863  TK_Image_XRef () : BBaseOpcodeHandler (TKE_Image_XRef), m_name (0), m_name_length (0), m_bpp(0)
7864  { m_size[0] = m_size[1] = 0; }
7865  ~TK_Image_XRef();
7866 
7869  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7871  void Reset (void);
7872 
7874  void SetName (char const * string) { set_name (string);}
7876  void SetName (int length) { set_name (length);}
7878  char const * GetName (void) const { return m_name;}
7880  char * GetName (void) { return m_name;}
7881 
7882  void SetSize (int x, int y ) { m_size[0] = x; m_size[1] = y;}
7883  int const* GetSize (void) const { return m_size;}
7884  int * GetSize (void) { return m_size;}
7885 
7886  void SetBitDepth( char bpp ) { m_bpp = bpp;}
7887  char const GetBitDepth (void) const { return m_bpp;}
7888  char GetBitDepth (void) { return m_bpp;}
7889 };
7890 
7891 
7892 #endif //BOPCODE_HANDLER
7893 
void SetOptions(int o)
Definition: BOpcodeHandler.h:5514
void SetAxis(float const s[], float const e[])
Definition: BOpcodeHandler.h:6228
char ** m_isoline_patterns
for internal use only.
Definition: BOpcodeHandler.h:2298
float GetPreferenceCutoff() const
Definition: BOpcodeHandler.h:5124
char * GetString()
Definition: BOpcodeHandler.h:2181
void SetColorMarkerContrastLockMask(int m)
Definition: BOpcodeHandler.h:2845
float * m_control_points
Definition: BOpcodeHandler.h:5402
float const * GetRGB() const
Definition: BOpcodeHandler.h:1948
int m_nurbs_options_value
For internal use only.
Definition: BOpcodeHandler.h:2328
static TK_Status PutData(BStreamFileToolkit &tk, short const *s, int n)
Definition: BOpcodeHandler.h:353
shift corresponding to extended bit
Definition: BOpcodeEnums.h:279
int GetMask(int index=0) const
Definition: BOpcodeHandler.h:2444
int GetTechnology() const
Definition: BOpcodeHandler.h:2469
char m_isoline_position_type
for internal use only.
Definition: BOpcodeHandler.h:2292
BBaseOpcodeHandler * m_indices
Definition: BOpcodeHandler.h:4491
int GetOptions() const
Definition: BOpcodeHandler.h:5264
for further expansion
Definition: BOpcodeEnums.h:1137
void SetPoints(float const s[], float const e[])
Definition: BOpcodeHandler.h:5301
ID_Key last_key(BStreamFileToolkit &tk) const
obsolete
Definition: BOpcodeHandler.h:650
int value
For internal use only.
Definition: BOpcodeHandler.h:1059
char * m_coordinate_systems
internal use
Definition: BOpcodeHandler.h:3989
int GetSelectionLevel() const
Definition: BOpcodeHandler.h:3957
int GetFlags() const
Definition: BOpcodeHandler.h:7035
void SetType(int t)
Definition: BOpcodeHandler.h:6516
virtual bool NeedsContext(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:227
unsigned char const * GetUserData() const
Definition: BOpcodeHandler.h:7628
int GetMaximumExtentMode() const
Definition: BOpcodeHandler.h:3893
TK_Clip_Rectangle()
Definition: BOpcodeHandler.h:7409
int m_name_length
Definition: BOpcodeHandler.h:7186
TK_Grid()
Definition: BOpcodeHandler.h:6428
int m_name_length
Definition: BOpcodeHandler.h:6815
char m_maximum_extent_level
internal use; maximum extent level
Definition: BOpcodeHandler.h:3805
char * GetName()
Definition: BOpcodeHandler.h:6748
void SetJoinCutoffAngle(int d)
Definition: BOpcodeHandler.h:2497
int GetLodMinimumTriangleCount() const
Definition: BOpcodeHandler.h:3413
int GetFormat() const
Definition: BOpcodeHandler.h:6914
void SetPixelThreshold(int c)
Definition: BOpcodeHandler.h:3885
float GetCutGeometryTolerance() const
Definition: BOpcodeHandler.h:3581
void SetDUpVector(double const u[])
Definition: BOpcodeHandler.h:4802
void SetVisibilityLockValue(int v)
Definition: BOpcodeHandler.h:2534
int const * GetSize() const
Definition: BOpcodeHandler.h:7167
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:647
int GetToleranceUnits() const
Definition: BOpcodeHandler.h:5037
float const * GetDefinition() const
Definition: BOpcodeHandler.h:7270
bool GetLogging() const
Definition: BStreamFileToolkit.h:1005
float * m_v_knots
Definition: BOpcodeHandler.h:5578
void SetPattern(int p)
Definition: BOpcodeHandler.h:4316
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:7130
void SetTransmissionName(int length)
Definition: BOpcodeHandler.h:1848
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5403
void SetCoordinateSystems(int count, char const cs[])
Definition: BOpcodeHandler.h:4026
ID_Key GetIndex()
Definition: BOpcodeHandler.h:1410
void SetDUpVector(double x, double y, double z)
Definition: BOpcodeHandler.h:4799
void SetTransmission(float const rgb[])
Definition: BOpcodeHandler.h:1844
float const * GetField() const
Definition: BOpcodeHandler.h:4813
void SetLodFallback(int v)
Definition: BOpcodeHandler.h:3431
double * m_dpoints
Definition: BOpcodeHandler.h:6298
int GetCount() const
Definition: BOpcodeHandler.h:5699
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:7024
void SetColorMarkerContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3248
float * m_leaders
Definition: BOpcodeHandler.h:6567
void SetOptions(int o)
Definition: BOpcodeHandler.h:7431
char * m_name
Definition: BOpcodeHandler.h:7852
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char *b, int n)
Definition: BOpcodeHandler.h:296
int GetRadiusCount() const
Definition: BOpcodeHandler.h:6379
int const * GetIndices() const
Definition: BOpcodeHandler.h:4655
void SetColorLockValue(int v)
Definition: BOpcodeHandler.h:2557
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:6892
int GetForcedLockValue() const
Definition: BOpcodeHandler.h:2920
void SetInternalSelectionLimit(int i)
Definition: BOpcodeHandler.h:3853
int m_count
internal use
Definition: BOpcodeHandler.h:5655
int m_lookup_length
Definition: BOpcodeHandler.h:6691
int m_shader_source_length
Definition: BOpcodeHandler.h:6944
void SetDRef1(double const r[])
Definition: BOpcodeHandler.h:6488
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:5746
void SetGeneralDisplacement(int d)
Definition: BOpcodeHandler.h:2492
unsigned short mask
specifies which settings are active (i.e. the attributes for which we have an opinion at this point) ...
Definition: BOpcodeHandler.h:6535
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4576
bool NeedsTag() const
Definition: BOpcodeHandler.h:199
unsigned int NextOpcodeSequence()
Definition: BStreamFileToolkit.h:1036
int GetColorVertexLockMask() const
Definition: BOpcodeHandler.h:2781
TK_Header()
Definition: BOpcodeHandler.h:879
int m_values_length
internal use
Definition: BOpcodeHandler.h:2122
float const * GetWeights() const
Definition: BOpcodeHandler.h:5549
unsigned char m_degree
Definition: BOpcodeHandler.h:5493
int GetColorWindowForcedLockMask() const
Definition: BOpcodeHandler.h:3092
void SetAmbientUpVector(float const v[])
Definition: BOpcodeHandler.h:3740
Capping_Options
Definition: BOpcodeHandler.h:6324
int m_simple_reflection_blur
For internal use only.
Definition: BOpcodeHandler.h:2380
char const * GetView() const
Definition: BOpcodeHandler.h:4860
int m_shape_length
for internal use only
Definition: BOpcodeHandler.h:4940
unsigned char m_tolerance_units
for internal use only
Definition: BOpcodeHandler.h:4948
int GetColorLineContrastLockValue() const
Definition: BOpcodeHandler.h:2838
unsigned char m_opcode
The opcode being handled by this particular object.
Definition: BOpcodeHandler.h:65
float const * GetPlane() const
Definition: BOpcodeHandler.h:5838
int GetTextRegionFitting() const
Definition: BOpcodeHandler.h:6637
int GetStringCursorCount() const
Definition: BOpcodeHandler.h:6643
float GetHlrFaceDisplacement() const
Definition: BOpcodeHandler.h:3357
float * GetDefinition()
Definition: BOpcodeHandler.h:7272
int GetDebug() const
Definition: BOpcodeHandler.h:2479
int GetNURBSCurveBudget() const
Definition: BOpcodeHandler.h:3383
float const * GetAmbientUpVector() const
Definition: BOpcodeHandler.h:3742
char m_char
temporary
Definition: BOpcodeHandler.h:84
TK_Status PutGeneral(BStreamFileToolkit &tk)
Definition: BOpcodeHandler.h:491
int GetColorTextContrastLockMask() const
Definition: BOpcodeHandler.h:2896
static TK_Status GetData(BStreamFileToolkit &tk, short *s, int n)
Definition: BOpcodeHandler.h:264
float const * GetTextLeaders() const
Definition: BOpcodeHandler.h:6654
int GetGeometry() const
Definition: BOpcodeHandler.h:2103
void SetVertexDisplacement(int d)
Definition: BOpcodeHandler.h:2487
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5321
int m_size
Definition: BOpcodeHandler.h:7599
self-explanatory; (internal note: keep this listed last)
Definition: BOpcodeEnums.h:1074
void SetFormat(int f)
Definition: BOpcodeHandler.h:6912
int GetLodAlgorithm() const
Definition: BOpcodeHandler.h:3409
void SetOblique(float h, float v)
Definition: BOpcodeHandler.h:4828
void SetColorTextLockValue(int v)
Definition: BOpcodeHandler.h:2672
unsigned short m_pattern
internal use
Definition: BOpcodeHandler.h:4301
double * m_dpoints
Definition: BOpcodeHandler.h:7449
channel m_specular
internal use
Definition: BOpcodeHandler.h:1736
unsigned char const * GetBytes() const
Definition: BOpcodeHandler.h:7158
float vertical_offset
offset, positive or negative, from the standard position. units are specified separately in vertical_...
Definition: BOpcodeHandler.h:6529
self-explanatory
Definition: BOpcodeEnums.h:266
char * m_shader_source
Definition: BOpcodeHandler.h:6940
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:3087
TK_Status ReadAscii(BStreamFileToolkit &tk)
Deprecated.
void SetBufferSizeLimit(int l)
Definition: BOpcodeHandler.h:3324
float * GetPoints()
Definition: BOpcodeHandler.h:5607
short m_type
Definition: BOpcodeHandler.h:4439
unsigned char Opcode() const
Definition: BOpcodeHandler.h:164
void SetTechnology(int t)
Definition: BOpcodeHandler.h:2467
int m_surface_trim_budget
For internal use only.
Definition: BOpcodeHandler.h:2332
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:4782
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:3724
char m_options
for internal use only
Definition: BOpcodeHandler.h:5723
void SetPreferenceCutoffUnits(int u)
Definition: BOpcodeHandler.h:5127
void increase_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:659
HT_NURBS_Trim * m_list
Definition: BOpcodeHandler.h:5499
void SetDPoints(double const p[])
Definition: BOpcodeHandler.h:5319
void SetTolerance(float t)
Definition: BOpcodeHandler.h:5030
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:7115
void SetSimpleShadowBlur(int m)
Definition: BOpcodeHandler.h:3618
float m_surface_max_facet_angle
For internal use only.
Definition: BOpcodeHandler.h:2334
unsigned short m_mask
internal use
Definition: BOpcodeHandler.h:3983
float m_radius
Definition: BOpcodeHandler.h:6205
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:4772
int GetColorForcedLockValue() const
Definition: BOpcodeHandler.h:2965
int GetColorLineContrastLockMask() const
Definition: BOpcodeHandler.h:2827
char const * GetName() const
Definition: BOpcodeHandler.h:7321
void SetLodBounding(float const s[], float const e[])
Definition: BOpcodeHandler.h:3441
float m_hlr_weight
for internal use only.
Definition: BOpcodeHandler.h:2281
double * GetDTextLeaders()
Definition: BOpcodeHandler.h:6669
char * m_name
Definition: BOpcodeHandler.h:7285
void SetBufferOptionsMask(int v)
Definition: BOpcodeHandler.h:3316
int m_nurbs_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2327
float * m_control_points
Definition: BOpcodeHandler.h:5574
int m_loops
Definition: BOpcodeHandler.h:7511
void SetImage(int length)
Definition: BOpcodeHandler.h:7013
short color_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1065
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6760
Handles the TKE_Close_Segment opcode.
Definition: BOpcodeHandler.h:1229
int GetPattern() const
Definition: BOpcodeHandler.h:4318
Handles the TKE_Geometry_Options opcode.
Definition: BOpcodeHandler.h:3981
float const * GetCenter() const
Definition: BOpcodeHandler.h:6114
int m_up
internal use; specifies what geometry is selectable on mouse button up. For internal use only...
Definition: BOpcodeHandler.h:4104
int m_debug_allocated
Definition: BOpcodeHandler.h:71
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5694
int GetOrientationCount() const
Definition: BOpcodeHandler.h:4021
float const * GetPoints() const
Definition: BOpcodeHandler.h:7539
void SetDEnd(double const e[])
Definition: BOpcodeHandler.h:5953
int GetColorVertexLockValue() const
Definition: BOpcodeHandler.h:2792
TK_Unavailable(char opcode)
Definition: BOpcodeHandler.h:858
void SetOptions(char const *options)
Definition: BOpcodeHandler.h:4514
static TK_Status GetData(BStreamFileToolkit &tk, float *f, int n)
Definition: BOpcodeHandler.h:280
void SetColorFaceLockMask(int m)
Definition: BOpcodeHandler.h:2569
int GetUSize() const
Definition: BOpcodeHandler.h:5618
short color_window_mask
For internal use only.
Definition: BOpcodeHandler.h:1072
int m_allocated
Definition: BOpcodeHandler.h:7812
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1623
void SetSelectionCulling(int c)
Definition: BOpcodeHandler.h:3877
void SetAxis(float x, float y, float z)
Definition: BOpcodeHandler.h:6123
float m_max_distance
internal use; max distance
Definition: BOpcodeHandler.h:3810
void SetDPoints(double const s[], double const m[], double const e[], double const c[]=0)
Definition: BOpcodeHandler.h:5967
channel m_transmission
internal use
Definition: BOpcodeHandler.h:1738
Handles the TKE_Cylinder opcode.
Definition: BOpcodeHandler.h:6202
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:6014
float m_radius
Definition: BOpcodeHandler.h:6085
void Reset(void)
Definition: BOpcodeHandler.h:5238
char const * GetBytes() const
Definition: BOpcodeHandler.h:6866
Handles the TKE_Color_By_Value opcode.
Definition: BOpcodeHandler.h:1958
unsigned char m_flags
Definition: BOpcodeHandler.h:6083
char * m_string
internal use
Definition: BOpcodeHandler.h:2125
TK_Sphere()
Definition: BOpcodeHandler.h:6095
int GetTotal() const
Definition: BOpcodeHandler.h:7566
HLONG const * GetValues() const
Definition: BOpcodeHandler.h:4607
double * GetDRadii()
Definition: BOpcodeHandler.h:6373
////
Definition: BOpcodeEnums.h:49
double * m_dpoints
Definition: BOpcodeHandler.h:7515
float GetGreekingLimit() const
Definition: BOpcodeHandler.h:5077
void SetShadowMapResolution(int m)
Definition: BOpcodeHandler.h:3670
double * GetDOrigin()
Definition: BOpcodeHandler.h:6481
void SetInner(float i)
Definition: BOpcodeHandler.h:5775
unsigned char m_region_count
Definition: BOpcodeHandler.h:6562
TK_Conditional_Action()
Definition: BOpcodeHandler.h:4446
char const * GetImage() const
Definition: BOpcodeHandler.h:7015
void SetDPlane(double a, double b, double c, double d)
Definition: BOpcodeHandler.h:5828
options mask (unsigned char if file version is < 1805)
Definition: BOpcodeEnums.h:1382
void SetColorBackForcedLockMask(int m)
Definition: BOpcodeHandler.h:3156
int GetCount() const
Definition: BOpcodeHandler.h:5848
Handles the TKE_Termination and TKE_Pause opcodes.
Definition: BOpcodeHandler.h:1006
unsigned short m_contour_options
for internal use only.
Definition: BOpcodeHandler.h:2287
char * m_condition
Definition: BOpcodeHandler.h:7292
double * m_dpoints
internal use
Definition: BOpcodeHandler.h:5657
int GetMaximumExtentLevel() const
Definition: BOpcodeHandler.h:3897
TK_Thumbnail()
Definition: BOpcodeHandler.h:7136
void GetDTarget(double t[]) const
Definition: BOpcodeHandler.h:4786
void decrease_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:661
int GetLodNumCutoffs() const
Definition: BOpcodeHandler.h:3501
char m_options
relevant to TKE_Distant_Light and TKE_Local_Light only. See TKO_Light_Options.
Definition: BOpcodeHandler.h:5220
short color_vertex_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1088
int GetLodClamp() const
Definition: BOpcodeHandler.h:3421
int GetTransparentHSR() const
Definition: BOpcodeHandler.h:2459
int GetHSR() const
Definition: BOpcodeHandler.h:2454
void SetLookup(int length)
Definition: BOpcodeHandler.h:6753
void SetChannels(int c)
Definition: BOpcodeHandler.h:1788
near limit setting
Definition: BOpcodeEnums.h:1107
float m_end_u
Definition: BOpcodeHandler.h:5498
void SetName(int length)
Definition: BOpcodeHandler.h:6744
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:5741
short color_window_value
For internal use only.
Definition: BOpcodeHandler.h:1073
float m_cut_geometry_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2359
float * m_points
Definition: BOpcodeHandler.h:5491
type for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:646
bool validate_count(int count, int limit=1<< 24) const
Definition: BOpcodeHandler.h:690
void SetShadowMap(int m)
Definition: BOpcodeHandler.h:3665
void SetEnd(float x, float y, float z)
Definition: BOpcodeHandler.h:5900
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6619
double * GetDPoints()
Definition: BOpcodeHandler.h:5611
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:6939
char m_green_mapping
Definition: BOpcodeHandler.h:6954
char * GetSegment()
Definition: BOpcodeHandler.h:1341
int GetLockValue() const
Definition: BOpcodeHandler.h:2517
char * GetString()
Definition: BOpcodeHandler.h:7798
unsigned char m_encoding
Definition: BOpcodeHandler.h:6694
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:5185
Definition: BOpcodeHandler.h:4326
void SetBumpName(char const *name)
Definition: BOpcodeHandler.h:1881
void SetImageScale(float const s[])
Definition: BOpcodeHandler.h:3747
char * m_style
for internal use only
Definition: BOpcodeHandler.h:4943
void SetOrtho(float const s[])
Definition: BOpcodeHandler.h:6140
int GetColorTextLockValue() const
Definition: BOpcodeHandler.h:2677
int m_from_variant
internal use
Definition: BOpcodeHandler.h:1453
float const * GetDepthRange() const
Definition: BOpcodeHandler.h:3713
int m_mask
specifies which rendering options are active (and hence, which are valid). For internal use only...
Definition: BOpcodeHandler.h:4924
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:5757
virtual void Reset()
int m_mask
internal use; specifies which selectability settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4102
void SetGloss(float g)
Definition: BOpcodeHandler.h:1890
char const * GetTransform() const
Definition: BOpcodeHandler.h:7113
TK_Delete_Object()
Definition: BOpcodeHandler.h:1484
TK_Cutting_Plane()
Definition: BOpcodeHandler.h:5805
void SetCallback(int length)
Definition: BOpcodeHandler.h:2221
void SetMaximumExtentMode(int c)
Definition: BOpcodeHandler.h:3895
int m_hard_extent
internal use; hard extent
Definition: BOpcodeHandler.h:3806
static TK_Status PutData(BStreamFileToolkit &tk, char const &c)
Definition: BOpcodeHandler.h:450
void SetMoveDown(int m)
Definition: BOpcodeHandler.h:4162
void SetAxis(float const a[])
Definition: BOpcodeHandler.h:6230
void SetValue(float const triple[])
Definition: BOpcodeHandler.h:2006
int m_style_length
for internal use only
Definition: BOpcodeHandler.h:4941
wchar_t * m_string
Definition: BOpcodeHandler.h:7813
int m_internal_polyline
internal use
Definition: BOpcodeHandler.h:3796
int GetColorFaceForcedLockMask() const
Definition: BOpcodeHandler.h:2977
int m_min_triangle_count
For internal use only.
Definition: BOpcodeHandler.h:2316
short color_line_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1085
Handles the TKE_Reference opcodes.
Definition: BOpcodeHandler.h:1382
short color_cut_face_value
For internal use only.
Definition: BOpcodeHandler.h:1095
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition: BStreamFileToolkit.h:367
void SetDAxis(double const s[])
Definition: BOpcodeHandler.h:6167
TK_Circle(unsigned char opcode)
Definition: BOpcodeHandler.h:5871
void SetOrderedWeight(int index, float weight)
Definition: BOpcodeHandler.h:3943
int m_flags
Definition: BOpcodeHandler.h:6947
char m_orientation_count
internal use
Definition: BOpcodeHandler.h:3986
int GetType() const
Definition: BOpcodeHandler.h:6727
static TK_Status GetData(BStreamFileToolkit &tk, float &f)
Definition: BOpcodeHandler.h:323
char m_layout
Definition: BOpcodeHandler.h:6958
static int flip(int i)
for internal use only
Definition: BOpcodeHandler.h:510
int GetColorLineLockMask() const
Definition: BOpcodeHandler.h:2620
int GetForceDefer() const
Definition: BOpcodeHandler.h:3967
char * GetXML()
Definition: BOpcodeHandler.h:7717
int m_leader_count
Definition: BOpcodeHandler.h:6566
int GetColorLineContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3230
double const * GetDPosition() const
Definition: BOpcodeHandler.h:4764
Handles the TKE_Selectability opcode.
Definition: BOpcodeHandler.h:4100
float * m_points
Definition: BOpcodeHandler.h:5339
int GetOptions() const
Definition: BOpcodeHandler.h:7433
void SetTransparentHSR(int t)
Definition: BOpcodeHandler.h:2457
int GetMoveDown() const
Definition: BOpcodeHandler.h:4167
Definition: BOpcodeEnums.h:363
double const * GetDField() const
Definition: BOpcodeHandler.h:4822
void SetSimpleReflectionVisibilityMask(int m)
Definition: BOpcodeHandler.h:3703
unsigned char m_format
Definition: BOpcodeHandler.h:7132
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:6346
int m_count
Definition: BOpcodeHandler.h:6572
int m_count
Definition: BOpcodeHandler.h:5490
void SetInternalShellSelectionLimit(int i)
Definition: BOpcodeHandler.h:3858
int GetDegree() const
Definition: BOpcodeHandler.h:5541
Handles the TKE_Glyph_Definition opcode.
Definition: BOpcodeHandler.h:7184
static void fix(int *i, int n)
for internal use only
Definition: BOpcodeHandler.h:535
int m_size
Definition: BOpcodeHandler.h:7687
void SetColorVertexContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3282
void SetView(char const *name)
Definition: BOpcodeHandler.h:4856
int m_edge_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2403
int m_knot_count_implicit
Definition: BOpcodeHandler.h:5401
int m_progress
Tracks the amount of data that has been read/written so far.
Definition: BOpcodeHandler.h:64
self-explanatory
Definition: BOpcodeEnums.h:1224
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:4752
short color_marker_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1087
int GetCaps() const
Definition: BOpcodeHandler.h:6387
int m_allocated
Definition: BOpcodeHandler.h:6556
void SetIndex(float val)
Definition: BOpcodeHandler.h:2106
int GetRelatedSelectionLimit() const
Definition: BOpcodeHandler.h:3850
unsigned char m_bytes_format
Definition: BOpcodeHandler.h:6820
void SetCylinderTessellation(int n)
Definition: BOpcodeHandler.h:3513
void SetRef2(float x, float y, float z)
Definition: BOpcodeHandler.h:6461
Handles the TKE_Dictionary_Locater opcode.
Definition: BOpcodeHandler.h:1672
void SetEnd(float const e[])
Definition: BOpcodeHandler.h:5904
char m_num_sphere
For internal use only.
Definition: BOpcodeHandler.h:2347
char m_options
Definition: BOpcodeHandler.h:7510
Handles the TKE_Tag opcode.
Definition: BOpcodeHandler.h:1608
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int *i, int n)
Definition: BOpcodeHandler.h:302
Definition: BStreamFileToolkit.h:34
float m_dihedral
For internal use only.
Definition: BOpcodeHandler.h:2393
int GetVisibilityLockValue() const
Definition: BOpcodeHandler.h:2539
float * m_u_knots
Definition: BOpcodeHandler.h:5577
int GetUnits() const
Definition: BOpcodeHandler.h:4292
extra item for selectability; refer to ::HC_Set_Selectability for a description
Definition: BOpcodeEnums.h:223
unsigned char * m_bytes
Definition: BOpcodeHandler.h:7129
int m_count
Definition: BOpcodeHandler.h:6296
void SetIndex(int i)
Definition: BOpcodeHandler.h:1273
void SetOrderedWeightsMask(int c)
Definition: BOpcodeHandler.h:3938
unsigned int m_options
Definition: BOpcodeHandler.h:6818
unsigned char m_hlr_hsr_algorithm
for internal use only.
Definition: BOpcodeHandler.h:2285
void SetAntiAlias(int m)
Definition: BOpcodeHandler.h:3769
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6900
float const * GetWeights() const
Definition: BOpcodeHandler.h:5443
float m_depth_peeling_min_area
For internal use only.
Definition: BOpcodeHandler.h:2398
int GetColorFaceForcedLockValue() const
Definition: BOpcodeHandler.h:2988
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1658
void SetLockMask(int m)
Definition: BOpcodeHandler.h:2510
void SetParameterSource(int p)
Definition: BOpcodeHandler.h:7038
extended bit
Definition: BOpcodeEnums.h:1422
char const * GetName() const
Definition: BOpcodeHandler.h:6746
void SetValue(int v)
Definition: BOpcodeHandler.h:3843
char * m_image
Definition: BOpcodeHandler.h:6941
unsigned char m_transforms
for internal use only
Definition: BOpcodeHandler.h:4952
Handles the TKE_Line_Style opcode.
Definition: BOpcodeHandler.h:7352
char m_options
Definition: BOpcodeHandler.h:7404
int GetApplicationMode() const
Definition: BOpcodeHandler.h:7095
int m_curve_budget
For internal use only.
Definition: BOpcodeHandler.h:2329
float * GetRef2()
Definition: BOpcodeHandler.h:6469
int GetColorWindowLockMask() const
Definition: BOpcodeHandler.h:2689
bool m_is_valid
internal use
Definition: BOpcodeHandler.h:5167
int m_name_length
Definition: BOpcodeHandler.h:7284
int GetLength()
Definition: BOpcodeHandler.h:4561
float m_value
for internal use only.
Definition: BOpcodeHandler.h:4269
char * m_name
internal use: name
Definition: BOpcodeHandler.h:4329
void SetCaps(int f)
Definition: BOpcodeHandler.h:6385
void SetLodOptionsMask(int v)
Definition: BOpcodeHandler.h:3399
void SetPreferenceCutoff(float s)
Definition: BOpcodeHandler.h:5122
void SetNames(int length)
Definition: BOpcodeHandler.h:4995
void SetNURBSSurfaceBudget(int b)
Definition: BOpcodeHandler.h:3389
TK_Tag(unsigned char opcode=TKE_Tag)
Definition: BOpcodeHandler.h:1613
int GetOptions() const
Definition: BOpcodeHandler.h:5637
int m_count
for internal use only
Definition: BOpcodeHandler.h:4573
char * m_transform
Definition: BOpcodeHandler.h:6962
char * m_name
Definition: BOpcodeHandler.h:4721
char const * GetEmissionName() const
Definition: BOpcodeHandler.h:1867
char const * GetSegment() const
Definition: BOpcodeHandler.h:7338
void SetOblique(float const o[])
Definition: BOpcodeHandler.h:4834
void SetSize(int const s[])
Definition: BOpcodeHandler.h:6907
short color_marker_value
For internal use only.
Definition: BOpcodeHandler.h:1069
int GetDTextLeaderCount() const
Definition: BOpcodeHandler.h:6665
int GetVisibilityForcedLockValue() const
Definition: BOpcodeHandler.h:2942
void SetColorFaceLockValue(int v)
Definition: BOpcodeHandler.h:2580
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:7719
int visibility_value
For internal use only.
Definition: BOpcodeHandler.h:1099
float * m_isoline_positions
for internal use only.
Definition: BOpcodeHandler.h:2294
int m_to_index
internal use
Definition: BOpcodeHandler.h:1454
void SetDPoints(double const s[], double const e[])
Definition: BOpcodeHandler.h:5315
int GetEncoding() const
Definition: BOpcodeHandler.h:6762
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int &i)
Definition: BOpcodeHandler.h:320
int GetAntiAlias() const
Definition: BOpcodeHandler.h:3771
char const * GetReference() const
Definition: BOpcodeHandler.h:6884
int GetSimpleShadowResolution() const
Definition: BOpcodeHandler.h:3625
char m_red_mapping
Definition: BOpcodeHandler.h:6953
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6889
int m_segment_length
Definition: BOpcodeHandler.h:7287
static TK_Status PutData(BStreamFileToolkit &tk, float const &f)
Definition: BOpcodeHandler.h:468
int GetLodNumRatios() const
Definition: BOpcodeHandler.h:3461
Handles the TKE_Texture opcode.
Definition: BOpcodeHandler.h:6937
int m_allocated
Definition: BOpcodeHandler.h:1173
TK_Status WriteAscii(BStreamFileToolkit &tk)
Deprecated.
unsigned char m_options
Definition: BOpcodeHandler.h:5494
Handles the TKE_Inlude_Segment TKE_Named_Style and TKE_Style_Segment opcodes.
Definition: BOpcodeHandler.h:1288
TK_Clip_Region()
Definition: BOpcodeHandler.h:7455
int GetColorFaceLockMask() const
Definition: BOpcodeHandler.h:2574
void SetNURBSOptionsValue(int v)
Definition: BOpcodeHandler.h:3377
void SetColorWindowContrastLockMask(int m)
Definition: BOpcodeHandler.h:2730
void SetMirror(float r, float g, float b)
Definition: BOpcodeHandler.h:1827
int m_length
Definition: BOpcodeHandler.h:4720
int GetVisibilityForcedLockMask() const
Definition: BOpcodeHandler.h:2931
void SetFogLimits(float const l[])
Definition: BOpcodeHandler.h:2504
float const * GetTarget() const
Definition: BOpcodeHandler.h:4774
void SetValue(int v0, int v1=0, int v2=0)
Definition: BOpcodeHandler.h:2447
int m_cut_geometry_edge_pattern_length
for internal use only.
Definition: BOpcodeHandler.h:2363
void SetRef1(float x, float y, float z)
Definition: BOpcodeHandler.h:6450
TK_Close_Segment()
Definition: BOpcodeHandler.h:1232
int GetColorTextForcedLockMask() const
Definition: BOpcodeHandler.h:3069
int GetColorWindowContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3149
char * GetCutGeometryEdgePattern()
Definition: BOpcodeHandler.h:3600
TK_Unicode_Options()
Definition: BOpcodeHandler.h:4540
self-explanatory
Definition: BOpcodeEnums.h:1391
float const * GetValue() const
Definition: BOpcodeHandler.h:2008
void SetSelectionBias(int c)
Definition: BOpcodeHandler.h:3881
float const * GetViewVolume() const
Definition: BOpcodeHandler.h:3924
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:4125
HT_NURBS_Trim * GetNext(void)
Definition: BOpcodeHandler.h:5530
float * GetLodThresholds()
Definition: BOpcodeHandler.h:3487
void SetColorLineContrastLockValue(int v)
Definition: BOpcodeHandler.h:2833
int m_index
internal use: simple value for recognised old forms
Definition: BOpcodeHandler.h:4330
char const * GetCoordinateSystems() const
Definition: BOpcodeHandler.h:4035
void Set_General_Flags(int f)
Definition: BOpcodeHandler.h:170
float const * GetOblique() const
Definition: BOpcodeHandler.h:4836
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:6245
int GetColorVertexForcedLockMask() const
Definition: BOpcodeHandler.h:3184
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:5751
void SetColorFaceContrastLockMask(int m)
Definition: BOpcodeHandler.h:2707
char const * GetBumpName() const
Definition: BOpcodeHandler.h:1885
int GetGeneralDisplacement() const
Definition: BOpcodeHandler.h:2494
int GetGreekingMode() const
Definition: BOpcodeHandler.h:5087
unsigned char m_layout
for internal use only
Definition: BOpcodeHandler.h:4955
short color_edge_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1083
float * GetPoints()
Definition: BOpcodeHandler.h:7476
void SetString(char const *string)
Definition: BOpcodeHandler.h:6595
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6616
TK_Bounding(unsigned char opcode, float min[], float max[])
Definition: BOpcodeHandler.h:5173
void SetOptions(int o)
Definition: BOpcodeHandler.h:5785
void SetWindow(int n, float const w[])
Definition: BOpcodeHandler.h:4899
int m_max_degree
For internal use only.
Definition: BOpcodeHandler.h:2319
int GetSelectionSorting() const
Definition: BOpcodeHandler.h:3962
void SetLodRatios(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3452
float GetNearLimit() const
Definition: BOpcodeHandler.h:4846
TK_Font()
Definition: BOpcodeHandler.h:6709
float m_simple_reflection_yon
For internal use only.
Definition: BOpcodeHandler.h:2382
char * GetEnvironmentName()
Definition: BOpcodeHandler.h:1878
float const * GetStart() const
Definition: BOpcodeHandler.h:5924
float * GetPoints()
Definition: BOpcodeHandler.h:5367
int GetValue() const
Definition: BOpcodeHandler.h:4990
float const * GetPoints() const
Definition: BOpcodeHandler.h:6336
Does not handle any top level opcodes, but rather only the trim types allowable on nurbs surfaces...
Definition: BOpcodeHandler.h:5483
int GetColorLineContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3241
void SetColorLineLockMask(int m)
Definition: BOpcodeHandler.h:2615
void SetValue(float a, float b, float c)
Definition: BOpcodeHandler.h:2002
void SetLayout(int l)
Definition: BOpcodeHandler.h:5132
float * GetPoints()
Definition: BOpcodeHandler.h:5686
TK_Conditions()
Definition: BOpcodeHandler.h:4405
double GetDRadius() const
Definition: BOpcodeHandler.h:6158
unsigned char m_tessellations
For internal use only.
Definition: BOpcodeHandler.h:2344
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:4779
void SetNURBSOptionsMask(int m)
Definition: BOpcodeHandler.h:3369
channel m_mirror
internal use
Definition: BOpcodeHandler.h:1737
int GetOptions() const
Definition: BOpcodeHandler.h:5547
void SetColorLineContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3236
double const * GetDPoints() const
Definition: BOpcodeHandler.h:6359
char const * GetMirrorName() const
Definition: BOpcodeHandler.h:1837
int GetLodNumLevels() const
Definition: BOpcodeHandler.h:3417
float m_curve_max_angle
For internal use only.
Definition: BOpcodeHandler.h:2337
float GetWidthScale() const
Definition: BOpcodeHandler.h:5052
void SetMajor(float const m[])
Definition: BOpcodeHandler.h:6023
void GetUpVector(float u[]) const
Definition: BOpcodeHandler.h:4796
float * m_knots
Definition: BOpcodeHandler.h:5496
unsigned short m_mask_transform
For internal use only.
Definition: BOpcodeHandler.h:2390
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5575
void SetOrtho(float x, float y, float z)
Definition: BOpcodeHandler.h:6134
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:5765
TK_Color_By_Value()
Definition: BOpcodeHandler.h:1966
void SetEnd(float e)
Definition: BOpcodeHandler.h:5450
float const * GetSimpleShadowColor() const
Definition: BOpcodeHandler.h:3656
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:7757
int GetPreferenceCutoffUnits() const
Definition: BOpcodeHandler.h:5129
void SetDRadius(double radius)
Definition: BOpcodeHandler.h:6369
void SetMiddle(float const m[])
Definition: BOpcodeHandler.h:5896
char * GetName()
Definition: BOpcodeHandler.h:7382
void SetCulling(int c)
Definition: BOpcodeHandler.h:3873
float * m_data
Definition: BOpcodeHandler.h:7238
TK_File_Info()
Definition: BOpcodeHandler.h:908
unsigned char m_space_units
for internal use only
Definition: BOpcodeHandler.h:4949
void GetDField(double f[]) const
Definition: BOpcodeHandler.h:4824
float GetRotation() const
Definition: BOpcodeHandler.h:5042
char * m_name
Definition: BOpcodeHandler.h:7188
void SetTransmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1842
HT_NURBS_Trim * m_trims
Definition: BOpcodeHandler.h:5580
unsigned char m_region_options
Definition: BOpcodeHandler.h:6560
self-explanatory
Definition: BOpcodeEnums.h:270
void SetVisibilityLockMask(int m)
Definition: BOpcodeHandler.h:2523
double const * GetDUpVector() const
Definition: BOpcodeHandler.h:4804
Handles the TKE_Open_Segment opcode.
Definition: BOpcodeHandler.h:1170
unsigned char m_antialias
For internal use only.
Definition: BOpcodeHandler.h:2406
void SetWindow(float l, float r, float b, float t, float lo=0, float ro=0, float bo=0, float to=0)
Definition: BOpcodeHandler.h:4889
int GetColorEdgeLockValue() const
Definition: BOpcodeHandler.h:2608
float m_stereo_separation
For internal use only.
Definition: BOpcodeHandler.h:2341
int m_name_length
internal use: length of name
Definition: BOpcodeHandler.h:4328
double m_dradius
Definition: BOpcodeHandler.h:6089
int GetType() const
Definition: BOpcodeHandler.h:6518
int m_debug
For internal use only.
Definition: BOpcodeHandler.h:2262
float m_extra_space
for internal use only
Definition: BOpcodeHandler.h:4933
void SetLookup(char const *string)
Definition: BOpcodeHandler.h:6751
double * GetDPoints()
Definition: BOpcodeHandler.h:5375
void SetIndices(int count)
Definition: BOpcodeHandler.h:4649
void SetOptions(int o)
Definition: BOpcodeHandler.h:7572
void SetMinor(float x, float y, float z)
Definition: BOpcodeHandler.h:6028
float GetExtraSpace() const
Definition: BOpcodeHandler.h:5057
int GetTextLeaderCount() const
Definition: BOpcodeHandler.h:6652
void SetMaskTransform(int m)
Definition: BOpcodeHandler.h:3558
void SetOptions(int o)
Definition: BOpcodeHandler.h:5453
float * GetWeights()
Definition: BOpcodeHandler.h:5444
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:3948
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7268
void SetStart(float s)
Definition: BOpcodeHandler.h:5448
TK_Character_Attribute * m_character_attributes
Definition: BOpcodeHandler.h:6573
bump map
Definition: BOpcodeEnums.h:274
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7219
TK_Reopen_Segment()
Definition: BOpcodeHandler.h:1263
void SetAlphaMapping(int p)
Definition: BOpcodeHandler.h:7068
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:5665
int m_simple_reflection_visibility_mask
For internal use only.
Definition: BOpcodeHandler.h:2383
TK_Cylinder()
Definition: BOpcodeHandler.h:6212
int GetColorMarkerContrastLockValue() const
Definition: BOpcodeHandler.h:2861
float const * GetMirror() const
Definition: BOpcodeHandler.h:1835
Handles the TKE_Geometry_Attributes opcode.
Definition: BOpcodeHandler.h:1553
int m_length
Definition: BOpcodeHandler.h:7811
unsigned char m_optionals
Definition: BOpcodeHandler.h:5398
int m_gooch_color_map_segment_length
Definition: BOpcodeHandler.h:2353
format mask
Definition: BOpcodeEnums.h:1374
Handles the TKE_Sphere opcode.
Definition: BOpcodeHandler.h:6081
channel m_emission
internal use
Definition: BOpcodeHandler.h:1739
static TK_Status GetData(BStreamFileToolkit &tk, double &d)
Definition: BOpcodeHandler.h:326
float m_curve_max_deviation
For internal use only.
Definition: BOpcodeHandler.h:2338
int m_name_length
Definition: BOpcodeHandler.h:6943
void SetRef2(float const r[])
Definition: BOpcodeHandler.h:6465
float const * GetSpecular() const
Definition: BOpcodeHandler.h:1820
void SetOptions(int o)
Definition: BOpcodeHandler.h:7494
TK_User_Index()
Definition: BOpcodeHandler.h:4582
unsigned char m_renderer_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4953
float const * GetMajor() const
Definition: BOpcodeHandler.h:6025
short m_options
Definition: BOpcodeHandler.h:4440
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4571
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:3584
int GetOptions() const
Definition: BOpcodeHandler.h:5454
short color_window_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1076
unsigned char m_num_levels
For internal use only.
Definition: BOpcodeHandler.h:2318
TK_Renumber(unsigned char opcode, ID_Key key=0)
Definition: BOpcodeHandler.h:1587
double * GetDPoints()
Definition: BOpcodeHandler.h:5439
void SetExtraSpaceUnits(int u)
Definition: BOpcodeHandler.h:5060
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6897
int m_mask
internal use
Definition: BOpcodeHandler.h:2070
double const * GetDStart() const
Definition: BOpcodeHandler.h:6256
float m_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2320
Definition: BStream.h:299
void SetGreekingMode(int m)
Definition: BOpcodeHandler.h:5085
mask of bits requiring extended
Definition: BOpcodeEnums.h:812
//// Default reader provided for "W3D Image XRef"
Definition: BOpcodeEnums.h:155
double const * GetDEnd() const
Definition: BOpcodeHandler.h:6258
int m_data_size
Definition: BOpcodeHandler.h:6814
int GetCutGeometry() const
Definition: BOpcodeHandler.h:3566
unsigned char vertical_offset_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6539
int m_name_length
Definition: BOpcodeHandler.h:7853
void SetColorMarkerContrastLockValue(int v)
Definition: BOpcodeHandler.h:2856
int GetOptions() const
Definition: BOpcodeHandler.h:4476
static TK_Status GetData(BStreamFileToolkit &tk, unsigned short *s, int n)
Definition: BOpcodeHandler.h:299
void SetDMatrix(double const m[])
Definition: BOpcodeHandler.h:4221
unsigned char m_options
Definition: BOpcodeHandler.h:6559
Definition: BOpcodeHandler.h:830
char * m_condition
Definition: BOpcodeHandler.h:1295
Handles the TKE_Image opcode.
Definition: BOpcodeHandler.h:6806
void SetPlane(float const p[])
Definition: BOpcodeHandler.h:5833
int GetSimpleShadowBlur() const
Definition: BOpcodeHandler.h:3620
void SetInternalPolylineSelectionLimit(int i)
Definition: BOpcodeHandler.h:3863
float * GetPoints()
Definition: BOpcodeHandler.h:7541
Handles the TKE_Font opcode.
Definition: BOpcodeHandler.h:6685
virtual TK_Status Read(BStreamFileToolkit &tk)=0
void SetName(char const *string)
Definition: BOpcodeHandler.h:7874
Handles the TKE_Unicode_Options opcode.
Definition: BOpcodeHandler.h:4533
int * GetIndices()
Definition: BOpcodeHandler.h:4605
void SetView(int length)
Definition: BOpcodeHandler.h:4858
int GetShadowMap() const
Definition: BOpcodeHandler.h:3667
Internal_Translator::Index_Key_Pair * m_item
internal use; cache lookup in Pending cases
Definition: BOpcodeHandler.h:1644
unsigned char * GetTextLeaderFlags()
Definition: BOpcodeHandler.h:6660
float m_inner
for internal use only
Definition: BOpcodeHandler.h:5721
TK_Status Read(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1103
float * m_weights
Definition: BOpcodeHandler.h:5404
void SetCenter(float const c[])
Definition: BOpcodeHandler.h:5913
int GetCutGeometryEdgeWeightUnits() const
Definition: BOpcodeHandler.h:3591
void SetCutGeometryColorMatch(int m)
Definition: BOpcodeHandler.h:3574
void SetPoints(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5682
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6150
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:5762
int const * GetIndices() const
Definition: BOpcodeHandler.h:4603
int GetInternalShellSelectionLimit() const
Definition: BOpcodeHandler.h:3860
void SetProjection(int p)
Definition: BOpcodeHandler.h:4850
int GetAlphaMapping() const
Definition: BOpcodeHandler.h:7070
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:5407
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6621
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1713
double * GetDPoints()
Definition: BOpcodeHandler.h:5696
void SetColorWindowLockValue(int v)
Definition: BOpcodeHandler.h:2695
Handles the TKE_Heuristics opcode.
Definition: BOpcodeHandler.h:3789
int m_value
specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4925
Definition: BOpcodeHandler.h:1056
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6152
void SetSimpleShadowLight(float x, float y, float z)
Definition: BOpcodeHandler.h:3628
unsigned char m_simple_shadow_blur
For internal use only.
Definition: BOpcodeHandler.h:2366
char m_decimation
Definition: BOpcodeHandler.h:6952
void SetTessellationMask(int m)
Definition: BOpcodeHandler.h:3509
void SetFormat(int f)
Definition: BOpcodeHandler.h:7170
int GetSimpleReflectionVisibilityValue() const
Definition: BOpcodeHandler.h:3705
char m_threshold_type
For internal use only.
Definition: BOpcodeHandler.h:2315
Handles the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE_Circular_Wedge opcodes...
Definition: BOpcodeHandler.h:5860
int GetForcedLockMask() const
Definition: BOpcodeHandler.h:2915
int GetColorWindowContrastLockMask() const
Definition: BOpcodeHandler.h:2735
int GetBlueMapping() const
Definition: BOpcodeHandler.h:7065
int const * GetSize() const
Definition: BOpcodeHandler.h:6909
int * GetIndices()
Definition: BOpcodeHandler.h:4658
void SetHlrLinePattern(int p)
Definition: BOpcodeHandler.h:3359
short color_window_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1077
int GetColorEdgeForcedLockMask() const
Definition: BOpcodeHandler.h:3000
void SetSlant(float s)
Definition: BOpcodeHandler.h:5045
void SetViewVolume(float const v[])
Definition: BOpcodeHandler.h:3935
void SetVectorTolerance(float tol)
Definition: BOpcodeHandler.h:3917
void SetVisibilityForcedLockMask(int m)
Definition: BOpcodeHandler.h:2926
int GetCount() const
Definition: BOpcodeHandler.h:7490
char * GetName()
Definition: BOpcodeHandler.h:6877
float GetSlant() const
Definition: BOpcodeHandler.h:5047
void SetSimpleShadowLight(float const l[])
Definition: BOpcodeHandler.h:3634
void set_points(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5343
double * m_dleaders
Definition: BOpcodeHandler.h:6570
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:5749
int GetColorBackForcedLockMask() const
Definition: BOpcodeHandler.h:3161
short color_face_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1074
Definition: BStream.h:273
TK_Bounding(unsigned char opcode)
Definition: BOpcodeHandler.h:5170
int GetWhenInvisible() const
Definition: BOpcodeHandler.h:4189
TK_Compression(char opcode)
Definition: BOpcodeHandler.h:1038
void SetColorFaceContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3110
Definition: BOpcodeHandler.h:4299
float * GetPoints()
Definition: BOpcodeHandler.h:5539
float m_rotation
for internal use only
Definition: BOpcodeHandler.h:4930
char * GetNames()
Definition: BOpcodeHandler.h:4999
unsigned char m_greeking_units
for internal use only
Definition: BOpcodeHandler.h:4950
TK_Size(unsigned char opcode)
Definition: BOpcodeHandler.h:4274
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:4644
TK_XML()
Definition: BOpcodeHandler.h:7692
void SetLodClamp(int v)
Definition: BOpcodeHandler.h:3419
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const &i)
Definition: BOpcodeHandler.h:465
void SetFogLimits(float n, float f)
Definition: BOpcodeHandler.h:2502
void SetQuantization(int q)
Definition: BOpcodeHandler.h:2472
double const * GetDMiddle() const
Definition: BOpcodeHandler.h:5975
char m_lod_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2310
void SetMirrorName(char const *name)
Definition: BOpcodeHandler.h:1831
char * m_cut_geometry_edge_pattern
for internal use only.
Definition: BOpcodeHandler.h:2362
Handles the TKE_URL opcodes.
Definition: BOpcodeHandler.h:7731
Handles the TKE_Area_Light opcode.
Definition: BOpcodeHandler.h:5653
int GetMask() const
Definition: BOpcodeHandler.h:4985
float const * GetImageScale() const
Definition: BOpcodeHandler.h:3749
void SetOrigin(float const o[])
Definition: BOpcodeHandler.h:6443
void SetSimpleReflectionOpacity(float o)
Definition: BOpcodeHandler.h:3698
int GetIndex()
Definition: BOpcodeHandler.h:1496
char * GetShaderSource()
Definition: BOpcodeHandler.h:7008
double const * GetDRef2() const
Definition: BOpcodeHandler.h:6501
void SetNURBSSurfaceTrimBudget(int b)
Definition: BOpcodeHandler.h:3393
int GetVertexDisplacement() const
Definition: BOpcodeHandler.h:2489
unsigned char * GetDTextLeaderFlags()
Definition: BOpcodeHandler.h:6673
Handles the TKE_Cutting_Plane opcode.
Definition: BOpcodeHandler.h:5797
float const * GetPosition() const
Definition: BOpcodeHandler.h:4754
int GetColorLineLockValue() const
Definition: BOpcodeHandler.h:2631
float * GetUKnots()
Definition: BOpcodeHandler.h:5628
void SetSelectionLevel(int l)
Definition: BOpcodeHandler.h:3955
int GetRedMapping() const
Definition: BOpcodeHandler.h:7055
int GetDisplayListLevel() const
Definition: BOpcodeHandler.h:3606
virtual TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
int GetColorVertexContrastLockMask() const
Definition: BOpcodeHandler.h:2873
bool IsCollectionPart() const
Definition: BOpcodeHandler.h:209
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:4762
int GetOptions() const
Definition: BOpcodeHandler.h:7574
void SetLodThresholdType(int v)
Definition: BOpcodeHandler.h:3468
self-explanatory
Definition: BOpcodeEnums.h:269
void SetName(int length)
Definition: BOpcodeHandler.h:6995
TK_Callback()
Definition: BOpcodeHandler.h:2206
int const * GetPreferences() const
Definition: BOpcodeHandler.h:5119
float const * GetKnots() const
Definition: BOpcodeHandler.h:5445
TK_Complex_Clip_Region()
Definition: BOpcodeHandler.h:7519
void SetBlueMapping(int p)
Definition: BOpcodeHandler.h:7063
int GetParameterOffset() const
Definition: BOpcodeHandler.h:7100
Handles the TKE_Named_Style_Def opcode.
Definition: BOpcodeHandler.h:7282
int GetCoordinateSystemCount() const
Definition: BOpcodeHandler.h:4033
double * GetDRef1()
Definition: BOpcodeHandler.h:6492
void **const GetValues() const
Definition: BOpcodeHandler.h:4661
int GetLodOptionsValue() const
Definition: BOpcodeHandler.h:3405
int GetColorVertexContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3287
float m_surface_max_facet_deviation
For internal use only.
Definition: BOpcodeHandler.h:2335
int GetTargetVersion() const
Definition: BStreamFileToolkit.h:986
int m_allocated
internal use
Definition: BOpcodeHandler.h:944
float const * GetRef1() const
Definition: BOpcodeHandler.h:6456
float GetRendererCutoff() const
Definition: BOpcodeHandler.h:5103
float GetLodTolerance() const
Definition: BOpcodeHandler.h:3429
float m_greeking_limit
for internal use only
Definition: BOpcodeHandler.h:4935
//– would like this to be obsolete, but...
Definition: BOpcodeEnums.h:151
int GetColorBackLockMask() const
Definition: BOpcodeHandler.h:2758
int GetColorFaceContrastLockMask() const
Definition: BOpcodeHandler.h:2712
float GetVectorTolerance() const
Definition: BOpcodeHandler.h:3915
float const * GetEndNormal(int index) const
Definition: BOpcodeHandler.h:6402
void SetField(float const f[])
Definition: BOpcodeHandler.h:4811
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:6862
char const * GetConditions() const
Definition: BOpcodeHandler.h:4422
unsigned short const * GetOptions() const
Definition: BOpcodeHandler.h:4557
void SetIndex(float i)
Definition: BOpcodeHandler.h:1894
char * GetConditions()
Definition: BOpcodeHandler.h:4424
void SetMatrix(float const m[])
Definition: BOpcodeHandler.h:4217
self-explanatory
Definition: BOpcodeEnums.h:1105
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:6531
Handles the TKE_Complex_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7508
void SetShadowMapSamples(int m)
Definition: BOpcodeHandler.h:3675
void SetOptions(int o)
Definition: BOpcodeHandler.h:5262
char * m_string
Definition: BOpcodeHandler.h:7774
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:7048
void SetName(int length)
Definition: BOpcodeHandler.h:6873
void SetName(char const *string)
Definition: BOpcodeHandler.h:6742
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7389
int GetInterpolation() const
Definition: BOpcodeHandler.h:7045
unsigned char m_preference_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4954
char const * GetCallback() const
Definition: BOpcodeHandler.h:2223
TK_User_Options()
Definition: BOpcodeHandler.h:4500
unsigned char m_region_fit
Definition: BOpcodeHandler.h:6561
double * m_dpoints
Definition: BOpcodeHandler.h:5340
int m_selection_culling
internal use; selection culling options
Definition: BOpcodeHandler.h:3800
float m_line_spacing
for internal use only
Definition: BOpcodeHandler.h:4934
TK_Color_By_FIndex()
Definition: BOpcodeHandler.h:2075
char * GetName()
Definition: BOpcodeHandler.h:7323
int m_coordinate_system_count
internal use
Definition: BOpcodeHandler.h:3988
float rotation
the angle (in degrees) that text is rotated
Definition: BOpcodeHandler.h:6532
void SetField(float w, float h)
Definition: BOpcodeHandler.h:4809
int GetCount() const
Definition: BOpcodeHandler.h:4652
int m_down
internal use; specifies what geometry is selectable on mouse button down. For internal use only...
Definition: BOpcodeHandler.h:4103
unsigned short * GetOptions()
Definition: BOpcodeHandler.h:4559
char * GetCallback()
Definition: BOpcodeHandler.h:2225
float const * GetVector() const
Definition: BOpcodeHandler.h:3905
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6608
int GetSize() const
Definition: BOpcodeHandler.h:1696
int GetDown() const
Definition: BOpcodeHandler.h:4145
bool Find_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:687
void SetHardExtent(int c)
Definition: BOpcodeHandler.h:3901
char const * GetSphereTessellations() const
Definition: BOpcodeHandler.h:3543
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:4077
TK_Spot_Light()
Definition: BOpcodeHandler.h:5727
void SetImageTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3756
void SetOuter(float o)
Definition: BOpcodeHandler.h:5770
void SetSize(int size)
Definition: BOpcodeHandler.h:1694
void SetVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3907
float GetHlrDimFactor() const
Definition: BOpcodeHandler.h:3353
float m_compression_quality
Definition: BOpcodeHandler.h:6824
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:6611
short color_face_mask
For internal use only.
Definition: BOpcodeHandler.h:1062
void SetParameterFunction(int p)
Definition: BOpcodeHandler.h:7073
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:4789
int m_camera_length
Definition: BOpcodeHandler.h:6946
int m_to_variant
internal use
Definition: BOpcodeHandler.h:1455
Handles the TKE_XML opcode.
Definition: BOpcodeHandler.h:7685
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6902
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:6808
Handles the TKE_External_Reference opcodes.
Definition: BOpcodeHandler.h:7770
Definition: BOpcodeHandler.h:4240
TK_Material()
Definition: BOpcodeHandler.h:7667
int GetSimpleReflection() const
Definition: BOpcodeHandler.h:3683
virtual TK_Status Error(char const *msg=0) const
int m_allocated
Definition: BOpcodeHandler.h:5338
TK_Bounding(unsigned char opcode, float center[], float radius)
Definition: BOpcodeHandler.h:5179
unsigned short m_simple_shadow
For internal use only.
Definition: BOpcodeHandler.h:2365
void SetFlags(int f)
Definition: BOpcodeHandler.h:7029
int const * GetStringCursors() const
Definition: BOpcodeHandler.h:6645
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1926
char * GetName()
Definition: BOpcodeHandler.h:6999
void SetColorForcedLockValue(int v)
Definition: BOpcodeHandler.h:2960
Handles the TKE_Repeat_Object opcode.
Definition: BOpcodeHandler.h:1450
void SetCutGeometryTolerance(float m)
Definition: BOpcodeHandler.h:3579
void SetHSR(int h)
Definition: BOpcodeHandler.h:2452
int GetLength()
Definition: BOpcodeHandler.h:4426
void SetName(char const *string)
Definition: BOpcodeHandler.h:6871
unsigned char m_cut_geometry_edge_weight_units
for internal use only.
Definition: BOpcodeHandler.h:2361
char * m_string
Definition: BOpcodeHandler.h:2197
int GetSimpleShadow() const
Definition: BOpcodeHandler.h:3615
void SetLodCutoffs(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3492
int m_count
Definition: BOpcodeHandler.h:5337
int const * GetSizes() const
Definition: BOpcodeHandler.h:4667
char * GetSphereTessellations()
Definition: BOpcodeHandler.h:3545
int GetColorMarkerForcedLockMask() const
Definition: BOpcodeHandler.h:3046
void SetNext(HT_NURBS_Trim *next)
Definition: BOpcodeHandler.h:5516
for further expansion
Definition: BOpcodeEnums.h:1136
char m_num_cutoffs
For internal use only.
Definition: BOpcodeHandler.h:2322
void Remember_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:685
int m_debug_length
Definition: BOpcodeHandler.h:70
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1979
Handles the TKE_NURBS_Curve opcode.
Definition: BOpcodeHandler.h:5396
void SetDiffuseTextureTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3761
char const * GetName(void) const
Definition: BOpcodeHandler.h:7878
int GetEncoding() const
Definition: BOpcodeHandler.h:6626
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:3717
Handles the TKE_Conditions opcode.
Definition: BOpcodeHandler.h:4398
int GetInternalSelectionLimit() const
Definition: BOpcodeHandler.h:3855
float m_surface_max_facet_width
For internal use only.
Definition: BOpcodeHandler.h:2336
char m_blue_mapping
Definition: BOpcodeHandler.h:6955
float * m_points
Definition: BOpcodeHandler.h:6297
void SetLodCutoff(float r)
Definition: BOpcodeHandler.h:3490
unsigned char m_optionals
Definition: BOpcodeHandler.h:5571
int GetColorTextContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3299
unsigned char m_shadow_map_samples
For internal use only.
Definition: BOpcodeHandler.h:2375
int GetTextRegionOptions() const
Definition: BOpcodeHandler.h:6635
double const * GetDMajor() const
Definition: BOpcodeHandler.h:6053
int m_value
internal use; specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4048
void SetUserData(int size, unsigned char const *bytes=0)
Definition: BOpcodeHandler.h:7626
void SetNames(char const *names)
Definition: BOpcodeHandler.h:4993
void SetDPoints(double x1, double y1, double z1, double x2, double y2, double z2)
Definition: BOpcodeHandler.h:5310
char * m_names
for internal use only
Definition: BOpcodeHandler.h:4927
void SetList(HT_NURBS_Trim *node)
Definition: BOpcodeHandler.h:5515
void SetLodNumLevels(int v)
Definition: BOpcodeHandler.h:3415
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:3865
static TK_Status GetData(BStreamFileToolkit &tk, int &i)
Definition: BOpcodeHandler.h:311
float const * GetMatrix() const
Definition: BOpcodeHandler.h:4225
////
Definition: BOpcodeEnums.h:148
int m_index
Definition: BOpcodeHandler.h:1384
int m_dleader_count
Definition: BOpcodeHandler.h:6569
float size
the size. Units are specified separately in size_units
Definition: BOpcodeHandler.h:6528
bool Tagging(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:187
void SetHlrDimFactor(float d)
Definition: BOpcodeHandler.h:3351
TK_Enumerated(unsigned char opcode)
Definition: BOpcodeHandler.h:4246
unsigned char m_buffer_options_value
For internal use only.
Definition: BOpcodeHandler.h:2272
int * GetCounts()
Definition: BOpcodeHandler.h:6513
float m_hlr_threshold
for internal use only.
Definition: BOpcodeHandler.h:2283
float * GetRadii()
Definition: BOpcodeHandler.h:6350
char const * GetXML() const
Definition: BOpcodeHandler.h:7715
int m_offset
internal use
Definition: BOpcodeHandler.h:1675
void SetStart(float const s[])
Definition: BOpcodeHandler.h:5888
char m_alpha_mapping
Definition: BOpcodeHandler.h:6956
unsigned char m_buffer_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2271
void SetBufferOptionsValue(int v)
Definition: BOpcodeHandler.h:3320
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const *s, int n)
Definition: BOpcodeHandler.h:444
float GetInner() const
Definition: BOpcodeHandler.h:5777
float m_renderer_cutoff
for internal use only
Definition: BOpcodeHandler.h:4936
char * GetStyle()
Definition: BOpcodeHandler.h:5017
int m_mask
internal use; specifies which visibility settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4047
void SetColorLineForcedLockValue(int v)
Definition: BOpcodeHandler.h:3029
char * m_comment
internal use
Definition: BOpcodeHandler.h:946
int GetSelectionCulling() const
Definition: BOpcodeHandler.h:3879
float * m_points
Definition: BOpcodeHandler.h:7448
double * m_dplanes
internal use
Definition: BOpcodeHandler.h:5800
char const * GetCylinderTessellations() const
Definition: BOpcodeHandler.h:3526
int GetExtras() const
Definition: BOpcodeHandler.h:3870
unsigned char m_greeking_mode
for internal use only
Definition: BOpcodeHandler.h:4951
static short flip(short s)
for internal use only
Definition: BOpcodeHandler.h:506
int GetFaceDisplacement() const
Definition: BOpcodeHandler.h:2484
float GetEnd() const
Definition: BOpcodeHandler.h:5451
TK_Polypoint(unsigned char opcode)
Definition: BOpcodeHandler.h:5348
void SetDepthRange(float const l[])
Definition: BOpcodeHandler.h:3711
void SetSpecularName(int length)
Definition: BOpcodeHandler.h:1818
int GetLoops() const
Definition: BOpcodeHandler.h:7568
float m_simple_reflection_opacity
For internal use only.
Definition: BOpcodeHandler.h:2379
channel m_environment
internal use; note: environment & bump are never a simple RGB type color
Definition: BOpcodeHandler.h:1740
void SetRadius(float r)
Definition: BOpcodeHandler.h:6239
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:5112
int m_maximum_extent
internal use; maximum extent
Definition: BOpcodeHandler.h:3803
int GetSelectionBias() const
Definition: BOpcodeHandler.h:3883
unsigned char m_clamp
For internal use only.
Definition: BOpcodeHandler.h:2317
int GetValue() const
Definition: BOpcodeHandler.h:4088
bool GetFollow()
Definition: BOpcodeHandler.h:1436
void SetColorWindowContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3144
float * GetKnots()
Definition: BOpcodeHandler.h:5446
char const * GetName() const
Definition: BOpcodeHandler.h:7261
void SetVisibilityForcedLockValue(int v)
Definition: BOpcodeHandler.h:2937
float const * GetOrientation() const
Definition: BOpcodeHandler.h:4023
int GetQuantization() const
Definition: BOpcodeHandler.h:2474
char * GetTransmissionName()
Definition: BOpcodeHandler.h:1854
void SetColorTextContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3305
TK_User_Value()
Definition: BOpcodeHandler.h:4686
int m_cond_length
Definition: BOpcodeHandler.h:7290
void SetColorVertexLockMask(int m)
Definition: BOpcodeHandler.h:2776
char * GetCondition()
Definition: BOpcodeHandler.h:4465
int GetColorVertexContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3276
int * GetSizes()
Definition: BOpcodeHandler.h:4670
void SetLodBounding(float const p[])
Definition: BOpcodeHandler.h:3445
//// pseudo-handler (non-zero value)
Definition: BOpcodeEnums.h:157
void SetValue(HLONG v)
Definition: BOpcodeHandler.h:4697
int const * GetLengths() const
Definition: BOpcodeHandler.h:7560
char * GetLookup()
Definition: BOpcodeHandler.h:6757
float const * GetPoints() const
Definition: BOpcodeHandler.h:5307
void SetColorEdgeForcedLockMask(int m)
Definition: BOpcodeHandler.h:2995
int m_count
Definition: BOpcodeHandler.h:7447
void SetLimits(float s, float e)
Definition: BOpcodeHandler.h:6065
void SetIndices(int count, int const indices[], POINTER_SIZED_INT const values[])
Definition: BOpcodeHandler.h:4596
unsigned char m_flags
Definition: BOpcodeHandler.h:6302
int GetAction() const
Definition: BOpcodeHandler.h:4472
float GetSimpleShadowOpacity() const
Definition: BOpcodeHandler.h:3661
void SetDMiddle(double x, double y, double z)
Definition: BOpcodeHandler.h:5941
void GetField(float f[]) const
Definition: BOpcodeHandler.h:4815
void SetRelatedSelectionLimit(int r)
Definition: BOpcodeHandler.h:3848
TK_Geometry_Attributes()
Definition: BOpcodeHandler.h:1558
int GetMaximumExtent() const
Definition: BOpcodeHandler.h:3891
Handles the TKE_Clip_Rectangle opcode.
Definition: BOpcodeHandler.h:7402
void SetLockValue(int v)
Definition: BOpcodeHandler.h:2515
void SetMaximumExtent(int c)
Definition: BOpcodeHandler.h:3889
unsigned char m_fallback
For internal use only.
Definition: BOpcodeHandler.h:2325
unsigned char m_compression
Definition: BOpcodeHandler.h:6819
char const * GetCondition() const
Definition: BOpcodeHandler.h:1357
Handles the TKE_Text_Font opcode.
Definition: BOpcodeHandler.h:4922
int GetLodOptionsMask() const
Definition: BOpcodeHandler.h:3401
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:2585
char const * GetDiffuseName() const
Definition: BOpcodeHandler.h:1807
void SetMajor(float x, float y, float z)
Definition: BOpcodeHandler.h:6019
static TK_Status GetData(BStreamFileToolkit &tk, double *d, int n)
Definition: BOpcodeHandler.h:288
float const * GetOrderedWeights() const
Definition: BOpcodeHandler.h:3950
HLONG * m_values
for internal use only
Definition: BOpcodeHandler.h:4575
int GetOptions() const
Definition: BOpcodeHandler.h:6919
static TK_Status PutData(BStreamFileToolkit &tk, double const &d)
Definition: BOpcodeHandler.h:471
float const * GetValueScale() const
Definition: BOpcodeHandler.h:7090
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4619
int m_size
Definition: BOpcodeHandler.h:7187
unsigned char * m_isoline_weights_unit
for internal use only.
Definition: BOpcodeHandler.h:2301
float const * GetValues() const
Definition: BOpcodeHandler.h:2157
void SetCollectionPart(bool n)
Definition: BOpcodeHandler.h:204
int GetParameterSource() const
Definition: BOpcodeHandler.h:7040
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:6263
void SetBytes(int size, char const *bytes=0)
Definition: BOpcodeHandler.h:6733
float * GetVKnots()
Definition: BOpcodeHandler.h:5632
BBaseOpcodeHandler(int op)
Definition: BOpcodeHandler.h:92
char const * GetOptions() const
Definition: BOpcodeHandler.h:4518
Definition: BOpcodeHandler.h:4267
float const * GetImageTintColor() const
Definition: BOpcodeHandler.h:3758
int m_name_length
Definition: BOpcodeHandler.h:7235
char const * GetCutGeometryEdgePattern() const
Definition: BOpcodeHandler.h:3598
double const * GetDPlanes() const
Definition: BOpcodeHandler.h:5845
unsigned char * m_leader_flags
Definition: BOpcodeHandler.h:6568
Handles the TKE_Dictionary opcode.
Definition: BOpcodeHandler.h:1637
float * GetLodRatios()
Definition: BOpcodeHandler.h:3465
void SetValue(int v)
Definition: BOpcodeHandler.h:4988
float const * GetPosition() const
Definition: BOpcodeHandler.h:6613
float const * GetTransmission() const
Definition: BOpcodeHandler.h:1850
int GetCaps() const
Definition: BOpcodeHandler.h:6269
int GetColorEdgeLockMask() const
Definition: BOpcodeHandler.h:2597
void SetOrientation(int count, float const o[])
Definition: BOpcodeHandler.h:4013
bool GetStreaming() const
Definition: BOpcodeHandler.h:4387
void SetLayout(int p)
Definition: BOpcodeHandler.h:7078
char m_param_function
Definition: BOpcodeHandler.h:6957
char * m_definition
Definition: BOpcodeHandler.h:7357
int m_string_length
internal use
Definition: BOpcodeHandler.h:2124
char m_num_cylinder
For internal use only.
Definition: BOpcodeHandler.h:2345
int m_surface_budget
For internal use only.
Definition: BOpcodeHandler.h:2331
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1581
float GetGloss() const
Definition: BOpcodeHandler.h:1892
HT_NURBS_Trim * GetTrims()
Definition: BOpcodeHandler.h:5642
internal use, indicates bits which require TKO_Geo_Extended
Definition: BOpcodeEnums.h:177
float * m_isoline_weights_value
for internal use only.
Definition: BOpcodeHandler.h:2300
short color_cut_edge_mask
For internal use only.
Definition: BOpcodeHandler.h:1096
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7221
int GetVisibilityLockMask() const
Definition: BOpcodeHandler.h:2528
Definition: BStream.h:272
void SetRotation(float r)
Definition: BOpcodeHandler.h:5040
int GetValue(int index=0) const
Definition: BOpcodeHandler.h:2449
int GetBufferOptionsMask() const
Definition: BOpcodeHandler.h:3318
//
Definition: BOpcodeEnums.h:142
float * m_weights
Definition: BOpcodeHandler.h:5576
void SetColorBackLockMask(int m)
Definition: BOpcodeHandler.h:2753
Handles the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes.
Definition: BOpcodeHandler.h:5216
TK_PolyCylinder()
Definition: BOpcodeHandler.h:6307
void SetRectangle(float left, float right, float bottom, float top)
Definition: BOpcodeHandler.h:7422
void SetUpVector(float const u[])
Definition: BOpcodeHandler.h:4792
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:7356
HLONG m_value
for internal use only
Definition: BOpcodeHandler.h:4682
char * GetCondition()
Definition: BOpcodeHandler.h:1362
float const * GetWindow() const
Definition: BOpcodeHandler.h:4904
unsigned char m_type
Definition: BOpcodeHandler.h:6693
void SetDMajor(double const m[])
Definition: BOpcodeHandler.h:6051
void SetScreenRange(float const l[])
Definition: BOpcodeHandler.h:3722
int GetCutGeometryLevel() const
Definition: BOpcodeHandler.h:3571
char * GetName()
Definition: BOpcodeHandler.h:4354
char * GetShape()
Definition: BOpcodeHandler.h:5008
void SetImageScale(float x, float y)
Definition: BOpcodeHandler.h:3745
float const * GetVKnots() const
Definition: BOpcodeHandler.h:5630
void SetStreaming(bool s)
Definition: BOpcodeHandler.h:4385
void SetSpace(int s)
Definition: BOpcodeHandler.h:1997
void SetEnvironmentName(int length)
Definition: BOpcodeHandler.h:1874
int GetCompression() const
Definition: BOpcodeHandler.h:6924
int const * GetRenderers() const
Definition: BOpcodeHandler.h:5098
int m_index
internal use
Definition: BOpcodeHandler.h:2022
void SetRadius(float r)
Definition: BOpcodeHandler.h:6118
HT_NURBS_Trim * m_next
Definition: BOpcodeHandler.h:5488
TK_Open_Segment()
Definition: BOpcodeHandler.h:1183
void SetLodOptionsValue(int v)
Definition: BOpcodeHandler.h:3403
void SetVector(float const v[])
Definition: BOpcodeHandler.h:3913
int GetColorTextLockMask() const
Definition: BOpcodeHandler.h:2666
extended bits for common/shared items
Definition: BOpcodeEnums.h:176
BBaseOpcodeHandler * m_complex
Definition: BOpcodeHandler.h:7450
Definition: BOpcodeHandler.h:1721
double const * GetDStart() const
Definition: BOpcodeHandler.h:5973
void SetMiddle(float x, float y, float z)
Definition: BOpcodeHandler.h:5892
int GetGeometry() const
Definition: BOpcodeHandler.h:1941
int GetRendererCutoffUnits() const
Definition: BOpcodeHandler.h:5108
short m_channels
internal use
Definition: BOpcodeHandler.h:1716
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:6905
self-explanatory
Definition: BOpcodeEnums.h:1225
float m_hlr_transparency_cutoff
For internal use only.
Definition: BOpcodeHandler.h:2278
float m_preference_cutoff
for internal use only
Definition: BOpcodeHandler.h:4937
void SetLodMinimumTriangleCount(int v)
Definition: BOpcodeHandler.h:3411
char * m_condition
Definition: BOpcodeHandler.h:1387
float m_start
Definition: BOpcodeHandler.h:5406
void SetDOrigin(double const o[])
Definition: BOpcodeHandler.h:6477
TK_Ellipse(unsigned char opcode)
Definition: BOpcodeHandler.h:5999
int GetCount() const
Definition: BOpcodeHandler.h:6377
TK_Heuristics()
Definition: BOpcodeHandler.h:3821
void SetHlrFaceDisplacement(float d)
Definition: BOpcodeHandler.h:3355
void SetPoints(float const s[], float const m[], float const e[], float const c[]=0)
Definition: BOpcodeHandler.h:5918
int GetMaskTransform() const
Definition: BOpcodeHandler.h:3560
int GetColorTextContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3310
char * GetString()
Definition: BOpcodeHandler.h:7759
void SetDStart(double x, double y, double z)
Definition: BOpcodeHandler.h:5933
void SetDiffuseTextureTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3764
void SetEmission(float const rgb[])
Definition: BOpcodeHandler.h:1859
void SetOptions(int f)
Definition: BOpcodeHandler.h:6917
unsigned char * GetBytes()
Definition: BOpcodeHandler.h:7160
void SetMask(int m)
Definition: BOpcodeHandler.h:3834
void SetConcentration(float c)
Definition: BOpcodeHandler.h:5780
char m_param_source
Definition: BOpcodeHandler.h:6950
float * GetWeights()
Definition: BOpcodeHandler.h:5551
int m_buffer_size
Definition: BOpcodeHandler.h:7601
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:3167
unsigned short m_simple_shadow_resolution
For internal use only.
Definition: BOpcodeHandler.h:2367
int const * GetCounts() const
Definition: BOpcodeHandler.h:6511
float const * GetEnd() const
Definition: BOpcodeHandler.h:6236
void SetPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:5824
int GetOrderedWeightsMask() const
Definition: BOpcodeHandler.h:3940
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:7295
Lock_Masks m_filter
for internal use only
Definition: BOpcodeHandler.h:1302
void SetColorTextForcedLockMask(int m)
Definition: BOpcodeHandler.h:3064
char * GetName(void)
Definition: BOpcodeHandler.h:7880
void SetForceDefer(int l)
Definition: BOpcodeHandler.h:3965
void SetColorLockMask(int m)
Definition: BOpcodeHandler.h:2546
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:4199
void SetWindow(float const w[], float const o[])
Definition: BOpcodeHandler.h:4896
void SetIndex(int i)
Definition: BOpcodeHandler.h:4256
void SetVertexDecimation(float f)
Definition: BOpcodeHandler.h:3774
int GetColorWindowContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3138
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:7060
////
Definition: BOpcodeEnums.h:36
char * GetCylinderTessellations()
Definition: BOpcodeHandler.h:3528
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:5754
void SetSphereTessellation(int n)
Definition: BOpcodeHandler.h:3530
void SetColorBackLockValue(int v)
Definition: BOpcodeHandler.h:2764
void SetAction(int at)
Definition: BOpcodeHandler.h:4470
float m_index
internal use
Definition: BOpcodeHandler.h:2071
void SetDAxis(double const s[], double const e[])
Definition: BOpcodeHandler.h:6250
char * GetSegment()
Definition: BOpcodeHandler.h:1214
void SetSize(int const s[])
Definition: BOpcodeHandler.h:7165
void SetColorVertexContrastLockValue(int v)
Definition: BOpcodeHandler.h:2879
int m_general_displacement
For internal use only.
Definition: BOpcodeHandler.h:2401
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1906
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:1300
char const * GetSegment() const
Definition: BOpcodeHandler.h:1336
int m_definition_length
Definition: BOpcodeHandler.h:7355
static TK_Status GetData(BStreamFileToolkit &tk, int *i, int n)
Definition: BOpcodeHandler.h:272
TK_Line(unsigned char opcode=TKE_Line)
Definition: BOpcodeHandler.h:5285
int m_stage
The writing stage.
Definition: BOpcodeHandler.h:63
void SetColorLineContrastLockMask(int m)
Definition: BOpcodeHandler.h:2822
void SetColorVertexForcedLockValue(int v)
Definition: BOpcodeHandler.h:3190
int GetNURBSOptionsValue() const
Definition: BOpcodeHandler.h:3379
float * m_planes
internal use
Definition: BOpcodeHandler.h:5799
Handles the TKE_Image_XRef opcodes.
Definition: BOpcodeHandler.h:7850
void SetTiling(int p)
Definition: BOpcodeHandler.h:7083
int GetLodFallback() const
Definition: BOpcodeHandler.h:3433
float GetCutGeometryEdgeWeight() const
Definition: BOpcodeHandler.h:3589
short color_edge_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1082
void SetDMinor(double const m[])
Definition: BOpcodeHandler.h:6060
Handles the TKE_PolyCylinder opcode.
Definition: BOpcodeHandler.h:6294
int * GetLengths()
Definition: BOpcodeHandler.h:7562
char m_type
internal use
Definition: BOpcodeHandler.h:5166
all
Definition: BOpcodeEnums.h:345
mask of bits in second byte
Definition: BOpcodeEnums.h:764
unsigned short m_shadow_map
For internal use only.
Definition: BOpcodeHandler.h:2373
void GetDPosition(double p[]) const
Definition: BOpcodeHandler.h:4766
float m_stereo_distance
For internal use only.
Definition: BOpcodeHandler.h:2342
int m_length
Definition: BOpcodeHandler.h:4489
float GetLineSpacing() const
Definition: BOpcodeHandler.h:5067
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:5535
void SetColorTextContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3294
int GetColorBackLockValue() const
Definition: BOpcodeHandler.h:2769
void SetWhenInvisible(int m)
Definition: BOpcodeHandler.h:4184
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:652
void SetKey(ID_Key k)
Definition: BOpcodeHandler.h:1596
char const * GetNames() const
Definition: BOpcodeHandler.h:4997
int GetLength() const
Definition: BOpcodeHandler.h:2161
int m_placeholder
internal use
Definition: BOpcodeHandler.h:1640
unsigned char * m_dleader_flags
Definition: BOpcodeHandler.h:6571
float m_vertex_decimation
For internal use only.
Definition: BOpcodeHandler.h:2404
double const * GetDRadii() const
Definition: BOpcodeHandler.h:6371
char * GetName()
Definition: BOpcodeHandler.h:7263
void SetColorMarkerForcedLockMask(int m)
Definition: BOpcodeHandler.h:3041
wchar_t const * GetString() const
Definition: BOpcodeHandler.h:7835
void SetInterpolation(int p)
Definition: BOpcodeHandler.h:7043
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6146
void SetDMinor(double x, double y, double z)
Definition: BOpcodeHandler.h:6056
float * GetMatrix()
Definition: BOpcodeHandler.h:4227
void SetOrigin(float x, float y, float z)
Definition: BOpcodeHandler.h:6439
int m_length
Definition: BOpcodeHandler.h:4400
int GetGeometryOptionsMask() const
Definition: BOpcodeHandler.h:3550
int m_allocated
Definition: BOpcodeHandler.h:1291
int GetCutGeometryColorMatch() const
Definition: BOpcodeHandler.h:3576
unsigned char size_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6538
Handles the TKE_External_Reference_Unicode opcodes.
Definition: BOpcodeHandler.h:7809
float m_outer
for internal use only
Definition: BOpcodeHandler.h:5720
Handles the TKE_Polyline and TKE_Polygon opcodes.
Definition: BOpcodeHandler.h:5335
char m_apply_mode
Definition: BOpcodeHandler.h:6963
int * m_cursors
Definition: BOpcodeHandler.h:6565
HLONG * GetValues()
Definition: BOpcodeHandler.h:4609
int GetHlrOptions() const
Definition: BOpcodeHandler.h:3349
int m_pixel_threshold
internal use; pixel threshold
Definition: BOpcodeHandler.h:3802
int m_count
internal use
Definition: BOpcodeHandler.h:5801
int mask
For internal use only.
Definition: BOpcodeHandler.h:1058
int m_internal_shell
internal use
Definition: BOpcodeHandler.h:3795
void SetRef1(float const r[])
Definition: BOpcodeHandler.h:6454
float const * GetLimits() const
Definition: BOpcodeHandler.h:6069
unsigned char m_type
Definition: BOpcodeHandler.h:5489
float GetConcentration() const
Definition: BOpcodeHandler.h:5782
void SetColorFaceContrastLockValue(int v)
Definition: BOpcodeHandler.h:2718
int GetColorMarkerLockMask() const
Definition: BOpcodeHandler.h:2643
Handles the TKE_Bounding and TKE_Bounding_Info opcodes.
Definition: BOpcodeHandler.h:5162
unsigned char m_projection
internal use
Definition: BOpcodeHandler.h:4719
char m_tint_effect
For internal use only.
Definition: BOpcodeHandler.h:2306
void SetColorFaceForcedLockValue(int v)
Definition: BOpcodeHandler.h:2983
TK_User_Data()
Definition: BOpcodeHandler.h:7608
int GetCount() const
Definition: BOpcodeHandler.h:5442
void SetRGB(float const rgb[])
Definition: BOpcodeHandler.h:1946
unsigned char m_degree[2]
Definition: BOpcodeHandler.h:5572
int m_force_defer
internal use; hard extent
Definition: BOpcodeHandler.h:3807
float GetOuter() const
Definition: BOpcodeHandler.h:5772
float const * GetPosition() const
Definition: BOpcodeHandler.h:5743
int m_index
Definition: BOpcodeHandler.h:1259
void SetPoint(float x, float y, float z)
Definition: BOpcodeHandler.h:5248
void SetSelectionSorting(int s)
Definition: BOpcodeHandler.h:3960
////
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:7193
Handles the TKE_Shape_Definition opcode.
Definition: BOpcodeHandler.h:7233
int GetColorForcedLockMask() const
Definition: BOpcodeHandler.h:2954
float * GetTextLeaders()
Definition: BOpcodeHandler.h:6656
double m_dradius
Definition: BOpcodeHandler.h:6207
void SetColorVertexContrastLockMask(int m)
Definition: BOpcodeHandler.h:2868
int GetColorLockMask() const
Definition: BOpcodeHandler.h:2551
void SetGreekingLimit(float s)
Definition: BOpcodeHandler.h:5075
float const * GetStart() const
Definition: BOpcodeHandler.h:6234
void SetLodAlgorithm(int v)
Definition: BOpcodeHandler.h:3407
char * GetEmissionName()
Definition: BOpcodeHandler.h:1869
int GetNURBSSurfaceBudget() const
Definition: BOpcodeHandler.h:3391
unsigned short m_tint_options
For internal use only.
Definition: BOpcodeHandler.h:2303
int m_maximum_extent_mode
internal use; maximum extent mode – int! argh...
Definition: BOpcodeHandler.h:3804
TK_Status Write(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1104
void SetWindow(float const w[])
Definition: BOpcodeHandler.h:4894
channel m_diffuse
internal use
Definition: BOpcodeHandler.h:1735
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2088
void SetRendererCutoff(float s)
Definition: BOpcodeHandler.h:5101
int GetNumSphereTessellations() const
Definition: BOpcodeHandler.h:3541
float * GetValues()
Definition: BOpcodeHandler.h:2159
float * m_radii
Definition: BOpcodeHandler.h:6300
Handles the TKE_Camera opcode.
Definition: BOpcodeHandler.h:4709
int GetTransparentStyle() const
Definition: BOpcodeHandler.h:2464
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:3253
int GetSizeUnits() const
Definition: BOpcodeHandler.h:5027
void SetLodThreshold(float r)
Definition: BOpcodeHandler.h:3472
float m_start_u
Definition: BOpcodeHandler.h:5497
int GetJoinCutoffAngle() const
Definition: BOpcodeHandler.h:2499
void SetName(int length)
Definition: BOpcodeHandler.h:7876
int GetColorWindowLockValue() const
Definition: BOpcodeHandler.h:2700
unsigned short m_transparency_options
internal use; low nibble style, next peeling flags, then zsort
Definition: BOpcodeHandler.h:2354
int m_total_size
the total size of the blind material data
Definition: BOpcodeHandler.h:7659
int m_mask
internal use
Definition: BOpcodeHandler.h:1715
char m_interpolation
Definition: BOpcodeHandler.h:6951
void SetNURBSCurveContinuedBudget(int b)
Definition: BOpcodeHandler.h:3385
char const * GetComment() const
Definition: BOpcodeHandler.h:988
void SetHlrOptions(int o)
Definition: BOpcodeHandler.h:3340
void SetStereoDistance(float d)
Definition: BOpcodeHandler.h:3334
Handles the TKE_Text and TKE_Text_With_Encoding opcodes.
Definition: BOpcodeHandler.h:6551
int GetColorBackForcedLockValue() const
Definition: BOpcodeHandler.h:3172
unsigned char m_size_units
for internal use only
Definition: BOpcodeHandler.h:4947
float const * GetWeights() const
Definition: BOpcodeHandler.h:5622
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:7772
float width_scale
adjustment to character width
Definition: BOpcodeHandler.h:6533
char m_param_offset
Definition: BOpcodeHandler.h:6964
int m_substage
Definition: BOpcodeHandler.h:5487
double * GetDRef2()
Definition: BOpcodeHandler.h:6503
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6044
float * m_weights
Definition: BOpcodeHandler.h:5495
void SetFlags(int f)
Definition: BOpcodeHandler.h:924
char * GetLoggingString()
Definition: BOpcodeHandler.h:249
void SetDebug(int d)
Definition: BOpcodeHandler.h:2477
int m_lod_options_value
For internal use only.
Definition: BOpcodeHandler.h:2309
char * GetDefinition()
Definition: BOpcodeHandler.h:7391
float * m_points
Definition: BOpcodeHandler.h:7514
unsigned char m_format
Definition: BOpcodeHandler.h:6817
int GetColorMarkerContrastLockMask() const
Definition: BOpcodeHandler.h:2850
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:5684
int m_length
Definition: BOpcodeHandler.h:6692
oblique y setting
Definition: BOpcodeEnums.h:1103
Handles the TKE_Rendering_Options opcode.
Definition: BOpcodeHandler.h:2255
void SetScreenRange(int n, float const l[])
Definition: BOpcodeHandler.h:3727
void SetMaximumExtentLevel(int c)
Definition: BOpcodeHandler.h:3899
float const * GetPoints() const
Definition: BOpcodeHandler.h:5537
int Pass(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:176
secondary extended bits
Definition: BOpcodeEnums.h:205
int GetUDegree() const
Definition: BOpcodeHandler.h:5614
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:3926
unsigned char m_units
for internal use only.
Definition: BOpcodeHandler.h:4270
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:6010
int GetMask() const
Definition: BOpcodeHandler.h:3840
void SetComment(char const *comment)
Definition: BOpcodeHandler.h:979
unsigned char m_flags
Definition: BOpcodeHandler.h:5866
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:3195
void SetColorMarkerForcedLockValue(int v)
Definition: BOpcodeHandler.h:3052
self-explanatory
Definition: BOpcodeEnums.h:1540
HT_NURBS_Trim const * GetList() const
Definition: BOpcodeHandler.h:5557
void SetDAxis(double const a[])
Definition: BOpcodeHandler.h:6252
Definition: BOpcodeHandler.h:855
short color_marker_mask
For internal use only.
Definition: BOpcodeHandler.h:1068
char * GetSegment()
Definition: BOpcodeHandler.h:7343
int m_isoline_weight_count
for internal use only.
Definition: BOpcodeHandler.h:2299
void SetParameterOffset(int p)
Definition: BOpcodeHandler.h:7098
float const * GetPoints() const
Definition: BOpcodeHandler.h:5436
float const * GetKnots() const
Definition: BOpcodeHandler.h:5553
Contains enum types which are used by BBaseOpcodeHandler.
char * m_string
Definition: BOpcodeHandler.h:7735
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:4229
float const * GetDiffuseTextureTintColor() const
Definition: BOpcodeHandler.h:3766
char * GetString()
Definition: BOpcodeHandler.h:6605
double const * GetDPoints() const
Definition: BOpcodeHandler.h:7484
int GetCount() const
Definition: BOpcodeHandler.h:5378
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:3700
int m_hlr_line_pattern
For internal use only.
Definition: BOpcodeHandler.h:2279
Handles the TKE_Material opcode.
Definition: BOpcodeHandler.h:7657
void SetStereoSeparation(float s)
Definition: BOpcodeHandler.h:3330
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:271
char const * GetCondition() const
Definition: BOpcodeHandler.h:4463
void SetCaps(int f)
Definition: BOpcodeHandler.h:6267
int GetBytesCount() const
Definition: BOpcodeHandler.h:6735
Handles the TKE_Window opcode.
Definition: BOpcodeHandler.h:4871
BBaseOpcodeHandler * m_index_data
Definition: BOpcodeHandler.h:4493
TK_Point(unsigned char opcode)
Definition: BOpcodeHandler.h:5224
int m_length
Definition: BOpcodeHandler.h:6555
BBaseOpcodeHandler * m_unicode
Definition: BOpcodeHandler.h:4492
unsigned char m_encoding
Definition: BOpcodeHandler.h:6558
TK_LOD()
Definition: BOpcodeHandler.h:1521
int GetColorEdgeContrastLockValue() const
Definition: BOpcodeHandler.h:2815
void SetColorVertexContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3271
void SetSize(float value, int units=TKO_Generic_Size_Unspecified)
Definition: BOpcodeHandler.h:4285
void SetAxis(float const s[])
Definition: BOpcodeHandler.h:6129
void SetValue(int m)
Definition: BOpcodeHandler.h:4083
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6254
Handles the TKE_Visibility opcode.
Definition: BOpcodeHandler.h:4045
unsigned short m_selection_bias
internal use; selection bias options
Definition: BOpcodeHandler.h:3801
float GetIndex() const
Definition: BOpcodeHandler.h:1896
void SetPoint(float const p[])
Definition: BOpcodeHandler.h:5250
void SetExtras(int e)
Definition: BOpcodeHandler.h:3868
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:7300
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:7148
unsigned char m_cut_geometry_match
For internal use only.
Definition: BOpcodeHandler.h:2358
char * m_string
Definition: BOpcodeHandler.h:1292
void SetPoints(float const p[])
Definition: BOpcodeHandler.h:5305
double * GetDPoints()
Definition: BOpcodeHandler.h:7551
void SetTransparentStyle(int s)
Definition: BOpcodeHandler.h:2462
float const * GetRectangle() const
Definition: BOpcodeHandler.h:7428
int m_length
Definition: BOpcodeHandler.h:1290
internal use, indicates bits which require TKO_Geo_Extended2
Definition: BOpcodeEnums.h:206
float m_contour_value_scale
for internal use only.
Definition: BOpcodeHandler.h:2290
short color_text_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1090
unsigned short value
for active settings, on or off
Definition: BOpcodeHandler.h:6536
TK_Color_RGB()
Definition: BOpcodeHandler.h:1913
unsigned char m_cut_geometry
For internal use only.
Definition: BOpcodeHandler.h:2356
char m_type
Definition: BOpcodeHandler.h:6421
void SetNeedsTag(bool n)
Definition: BOpcodeHandler.h:194
char * m_shape
for internal use only
Definition: BOpcodeHandler.h:4942
float const * GetRef2() const
Definition: BOpcodeHandler.h:6467
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4626
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:3018
char * GetView()
Definition: BOpcodeHandler.h:4862
void SetWidthScale(float s)
Definition: BOpcodeHandler.h:5050
void SetColorEdgeLockMask(int m)
Definition: BOpcodeHandler.h:2592
void SetColorFaceContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3121
unsigned char m_degree
Definition: BOpcodeHandler.h:5399
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5609
int GetDegree() const
Definition: BOpcodeHandler.h:5441
void SetFollow(bool f)
Definition: BOpcodeHandler.h:1366
char * GetSpecularName()
Definition: BOpcodeHandler.h:1824
int m_name_length
Definition: BOpcodeHandler.h:7354
Handles the TKE_NURBS_Surface opcode.
Definition: BOpcodeHandler.h:5569
int m_reference_length
Definition: BOpcodeHandler.h:6816
float const * GetUKnots() const
Definition: BOpcodeHandler.h:5626
int GetColorWindowForcedLockValue() const
Definition: BOpcodeHandler.h:3103
char * m_data
Definition: BOpcodeHandler.h:7688
float * m_points
internal use
Definition: BOpcodeHandler.h:5656
int GetShadowMapResolution() const
Definition: BOpcodeHandler.h:3672
void SetOptions(int o)
Definition: BOpcodeHandler.h:5702
int m_names_length
for internal use only
Definition: BOpcodeHandler.h:4926
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1390
void SetDField(double const f[])
Definition: BOpcodeHandler.h:4820
int GetShadowMapSamples() const
Definition: BOpcodeHandler.h:3677
double const * GetDTarget() const
Definition: BOpcodeHandler.h:4784
struct vlist_s * m_data
Definition: BOpcodeHandler.h:7663
unsigned char m_geometry_options
For internal use only.
Definition: BOpcodeHandler.h:2392
Handles the TKE_Color_By_Index and TKE_Color_By_Index_16 opcode.
Definition: BOpcodeHandler.h:2019
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2039
TK_Shape_Definition()
Definition: BOpcodeHandler.h:7242
void SetColorLineLockValue(int v)
Definition: BOpcodeHandler.h:2626
void SetIndices(int count)
Definition: BOpcodeHandler.h:4599
float const * GetSimpleReflectionPlane() const
Definition: BOpcodeHandler.h:3695
float m_vector_tolerance
internal use; culling vector tolerance
Definition: BOpcodeHandler.h:3809
int m_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2402
int GetHlrLinePattern() const
Definition: BOpcodeHandler.h:3361
float GetStereoDistance() const
Definition: BOpcodeHandler.h:3336
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:6540
int GetRenderer() const
Definition: BOpcodeHandler.h:5093
void SetCylinderTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3515
void SetNearLimit(float l)
Definition: BOpcodeHandler.h:4841
char m_contour_value_adjustment
for internal use only.
Definition: BOpcodeHandler.h:2289
void SetExtraSpace(float s)
Definition: BOpcodeHandler.h:5055
#define ID_Key
Definition: BStream.h:247
unsigned short m_value
internal use
Definition: BOpcodeHandler.h:3984
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:4769
int GetIndex() const
Definition: BOpcodeHandler.h:2059
void SetMask(int m0, int m1=0, int m2=0)
Definition: BOpcodeHandler.h:2434
int m_cond_allocated
Definition: BOpcodeHandler.h:7291
int GetColorVertexContrastLockValue() const
Definition: BOpcodeHandler.h:2884
unsigned char m_flags
Definition: BOpcodeHandler.h:6208
char * name
the font name
Definition: BOpcodeHandler.h:6525
int GetLayout() const
Definition: BOpcodeHandler.h:5134
double * GetDPoints()
Definition: BOpcodeHandler.h:7486
wchar_t * GetString()
Definition: BOpcodeHandler.h:7837
int GetColorFaceContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3115
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:5957
double * m_dradii
Definition: BOpcodeHandler.h:6301
int GetMask() const
Definition: BOpcodeHandler.h:4010
Utility class for managing HSF header information.
Definition: BOpcodeHandler.h:872
float const * GetUpVector() const
Definition: BOpcodeHandler.h:4794
unsigned short m_isoline_options
for internal use only.
Definition: BOpcodeHandler.h:2288
float GetVertexDecimation() const
Definition: BOpcodeHandler.h:3776
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:5296
int m_index
internal use
Definition: BOpcodeHandler.h:1480
float * GetPoints()
Definition: BOpcodeHandler.h:6338
int m_simple_reflection_visibility_value
For internal use only.
Definition: BOpcodeHandler.h:2384
void SetSimpleReflectionPlane(float const p[])
Definition: BOpcodeHandler.h:3693
float m_concentration
for internal use only
Definition: BOpcodeHandler.h:5722
void SetString(int length)
Definition: BOpcodeHandler.h:6601
int GetNumCylinderTessellations() const
Definition: BOpcodeHandler.h:3524
int GetChannels() const
Definition: BOpcodeHandler.h:1794
float * GetWeights()
Definition: BOpcodeHandler.h:5624
void SetTransform(int length)
Definition: BOpcodeHandler.h:7111
void SetToleranceUnits(int u)
Definition: BOpcodeHandler.h:5035
float const * GetDiffuse() const
Definition: BOpcodeHandler.h:1805
int GetOptions() const
Definition: BOpcodeHandler.h:7496
void SetColorWindowForcedLockValue(int v)
Definition: BOpcodeHandler.h:3098
void SetTransform(char const *transform)
Definition: BOpcodeHandler.h:7106
Handles the TKE_Thumbnail opcode.
Definition: BOpcodeHandler.h:7127
Handles the TKE_User_Options opcode.
Definition: BOpcodeHandler.h:4487
int m_margin_count
for internal use only
Definition: BOpcodeHandler.h:4944
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5581
int GetTransforms() const
Definition: BOpcodeHandler.h:5072
void SetForcedLockValue(int v)
Definition: BOpcodeHandler.h:2918
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:4134
Handles the TKE_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7444
void SetSegment(int length)
Definition: BOpcodeHandler.h:1332
char const * GetString() const
Definition: BOpcodeHandler.h:7796
unsigned char m_display_list_level
For internal use only.
Definition: BOpcodeHandler.h:2405
int GetVDegree() const
Definition: BOpcodeHandler.h:5616
int GetValue() const
Definition: BOpcodeHandler.h:3845
char const * GetName() const
Definition: BOpcodeHandler.h:7212
#define NS_TRIM_END
terminates an NS_TRIM_COLLECTION if one is active, otherwise terminates the list of trims ...
Definition: BOpcodeHandler.h:5466
char * GetImage()
Definition: BOpcodeHandler.h:7017
float * GetOrderedWeights()
Definition: BOpcodeHandler.h:3952
float const * GetMiddle() const
Definition: BOpcodeHandler.h:5926
TK_Color_Map()
Definition: BOpcodeHandler.h:2133
int m_size
Definition: BOpcodeHandler.h:7236
char * m_string
Definition: BOpcodeHandler.h:4401
double const * GetDPoint() const
Definition: BOpcodeHandler.h:5259
void SetDiffuse(float const rgb[])
Definition: BOpcodeHandler.h:1799
double const * GetDOrtho() const
Definition: BOpcodeHandler.h:6180
static void fix_in(double *d, int n)
for internal use only
Definition: BOpcodeHandler.h:577
int GetIndex() const
Definition: BOpcodeHandler.h:4359
void SetDepthRange(float n, float f)
Definition: BOpcodeHandler.h:3709
short color_vertex_mask
For internal use only.
Definition: BOpcodeHandler.h:1080
int GetMoveUp() const
Definition: BOpcodeHandler.h:4178
short color_face_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1075
int GetColorFaceContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3126
TK_Streaming()
Definition: BOpcodeHandler.h:4376
static void fix(short *s, int n)
for internal use only
Definition: BOpcodeHandler.h:547
float GetMaxDistance() const
Definition: BOpcodeHandler.h:3921
void GetOblique(float o[]) const
Definition: BOpcodeHandler.h:4838
void SetMoveUp(int m)
Definition: BOpcodeHandler.h:4173
int GetDecimation() const
Definition: BOpcodeHandler.h:7050
void SetRendererCutoffUnits(int u)
Definition: BOpcodeHandler.h:5106
void SetCutGeometry(int m)
Definition: BOpcodeHandler.h:3564
void SetEndNormal(int index, float const normal[]=0)
Definition: BOpcodeHandler.h:6390
TK_Bounding(unsigned char opcode, double center[], double radius)
Definition: BOpcodeHandler.h:5192
char * m_debug_string
Definition: BOpcodeHandler.h:72
char m_tiling
Definition: BOpcodeHandler.h:6959
void SetColorVertexForcedLockMask(int m)
Definition: BOpcodeHandler.h:3179
char const * GetSegment() const
Definition: BOpcodeHandler.h:1209
int m_cursor_count
Definition: BOpcodeHandler.h:6564
void SetSimpleReflection(int m)
Definition: BOpcodeHandler.h:3681
int GetGreekingLimitUnits() const
Definition: BOpcodeHandler.h:5082
Handles the TKE_Color_Map opcode.
Definition: BOpcodeHandler.h:2119
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char &b)
Definition: BOpcodeHandler.h:314
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const *i, int n)
Definition: BOpcodeHandler.h:447
char * GetBumpName()
Definition: BOpcodeHandler.h:1887
char m_num_thresholds
For internal use only.
Definition: BOpcodeHandler.h:2313
int GetNURBSSurfaceTrimBudget() const
Definition: BOpcodeHandler.h:3395
float m_contour_value_translate
for internal use only.
Definition: BOpcodeHandler.h:2291
unsigned char const * GetTextLeaderFlags() const
Definition: BOpcodeHandler.h:6658
int m_mask
internal use
Definition: BOpcodeHandler.h:1960
float const * GetLodCutoffs() const
Definition: BOpcodeHandler.h:3503
TK_Named(unsigned char opcode)
Definition: BOpcodeHandler.h:4334
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:6223
void SetEmissionName(int length)
Definition: BOpcodeHandler.h:1863
char * m_name
Definition: BOpcodeHandler.h:6687
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4574
char const * GetString() const
Definition: BOpcodeHandler.h:6603
void SetDStart(double const s[])
Definition: BOpcodeHandler.h:5937
void SetColorEdgeContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3213
float m_width_scale
for internal use only
Definition: BOpcodeHandler.h:4932
int GetColorEdgeForcedLockValue() const
Definition: BOpcodeHandler.h:3011
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:5427
char const * GetStyle() const
Definition: BOpcodeHandler.h:5015
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:7294
char * m_name
Definition: BOpcodeHandler.h:6809
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:1392
float GetSize() const
Definition: BOpcodeHandler.h:5022
int m_move_up
internal use; specifies what geometry is selectable on mouse move without buttons down...
Definition: BOpcodeHandler.h:4106
TK_Matrix(unsigned char opcode)
Definition: BOpcodeHandler.h:4206
void SetDMiddle(double const m[])
Definition: BOpcodeHandler.h:5945
unsigned short m_simple_reflection
For internal use only.
Definition: BOpcodeHandler.h:2377
float GetRadius() const
Definition: BOpcodeHandler.h:6120
float const * GetTarget() const
Definition: BOpcodeHandler.h:5759
int GetNURBSCurveContinuedBudget() const
Definition: BOpcodeHandler.h:3387
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:4372
Lock_Masks m_lock
For internal use only.
Definition: BOpcodeHandler.h:2268
unsigned char * m_data
Definition: BOpcodeHandler.h:7600
float GetSize() const
Definition: BOpcodeHandler.h:4290
void SetGreenMapping(int p)
Definition: BOpcodeHandler.h:7058
void SetLodThresholds(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3474
void SetRectangle(float const *rect)
Definition: BOpcodeHandler.h:7425
TK_Status SetDPoints(int count, double const points[]=0)
void SetOptions(int at)
Definition: BOpcodeHandler.h:4474
Base class for shell and mesh.
Definition: BPolyhedron.h:22
char const * GetName() const
Definition: BOpcodeHandler.h:6997
char m_options
Definition: BOpcodeHandler.h:7446
void ** m_values
for internal use only
Definition: BOpcodeHandler.h:4623
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:7549
TK_User_Index_Data()
Definition: BOpcodeHandler.h:4633
void SetDCenter(double const c[])
Definition: BOpcodeHandler.h:5962
void SetCompression(int c)
Definition: BOpcodeHandler.h:6922
int GetHardExtent() const
Definition: BOpcodeHandler.h:3903
TK_Color_By_Index(unsigned char opcode)
Definition: BOpcodeHandler.h:2026
char * m_reference
Definition: BOpcodeHandler.h:6810
void SetSimpleReflectionPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3686
extends font options to a second byte
Definition: BOpcodeEnums.h:1126
void SetRenderer(int r)
Definition: BOpcodeHandler.h:5091
int m_name_length
Definition: BOpcodeHandler.h:6690
Handles the TKE_Conditional_Action opcode.
Definition: BOpcodeHandler.h:4437
char const * GetName() const
Definition: BOpcodeHandler.h:4352
TK_Geometry_Options()
Definition: BOpcodeHandler.h:3993
int GetUp() const
Definition: BOpcodeHandler.h:4156
void SetEmissionName(char const *name)
Definition: BOpcodeHandler.h:1861
char * m_bytes
Definition: BOpcodeHandler.h:6689
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:3553
float m_surface_max_trim_curve_deviation
For internal use only.
Definition: BOpcodeHandler.h:2333
void SetColorEdgeContrastLockValue(int v)
Definition: BOpcodeHandler.h:2810
double const * GetDPlane() const
Definition: BOpcodeHandler.h:5840
Handles the TKE_Start_User_Data opcode.
Definition: BOpcodeHandler.h:7597
float m_size
for internal use only
Definition: BOpcodeHandler.h:4928
float * GetKnots()
Definition: BOpcodeHandler.h:5555
int m_length
internal use
Definition: BOpcodeHandler.h:2121
float const * GetPoints() const
Definition: BOpcodeHandler.h:5605
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:2126
void SetName(char const *name)
Definition: BOpcodeHandler.h:6993
TK_Status SetPoints(int count, float const points[]=0)
unsigned char const * GetDTextLeaderFlags() const
Definition: BOpcodeHandler.h:6671
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:5620
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:6688
char const * GetLookup() const
Definition: BOpcodeHandler.h:6755
TK_Window()
Definition: BOpcodeHandler.h:4878
void SetColorTextContrastLockValue(int v)
Definition: BOpcodeHandler.h:2902
int GetColorLineForcedLockValue() const
Definition: BOpcodeHandler.h:3034
TK_Linear_Pattern(unsigned char opcode)
Definition: BOpcodeHandler.h:4305
int m_radius_count
Definition: BOpcodeHandler.h:6299
void SetSimpleShadowResolution(int m)
Definition: BOpcodeHandler.h:3623
void SetIndex(int index)
Definition: BOpcodeHandler.h:1408
float GetTolerance() const
Definition: BOpcodeHandler.h:5032
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6042
void SetDRef2(double const r[])
Definition: BOpcodeHandler.h:6499
TK_Line_Style()
Definition: BOpcodeHandler.h:7361
Definition: BOpcodeHandler.h:4370
void SetDOrtho(double x, double y, double z)
Definition: BOpcodeHandler.h:6172
float * GetRef1()
Definition: BOpcodeHandler.h:6458
char m_num_ratios
For internal use only.
Definition: BOpcodeHandler.h:2311
float GetHardEdgeAngle() const
Definition: BOpcodeHandler.h:3555
void SetGreekingLimitUnits(int u)
Definition: BOpcodeHandler.h:5080
int GetParameterFunction() const
Definition: BOpcodeHandler.h:7075
unsigned char m_extras
internal use; low bit set == left handed, second bit set == spriting
Definition: BOpcodeHandler.h:3798
void SetLineSpacing(float s)
Definition: BOpcodeHandler.h:5065
float const * GetMinor() const
Definition: BOpcodeHandler.h:6034
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6624
Handles the TKE_Start_Compression and TKE_Stop_Compression opcodes.
Definition: BOpcodeHandler.h:1035
char const * GetShape() const
Definition: BOpcodeHandler.h:5006
unsigned short * m_string
Definition: BOpcodeHandler.h:4536
static void fix_out(float *f, int n)
for internal use only
Definition: BOpcodeHandler.h:592
char const * GetName() const
Definition: BOpcodeHandler.h:6875
void SetColorWindowContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3133
void SetPreferences(int r1, int r2)
Definition: BOpcodeHandler.h:5117
TK_Texture()
Definition: BOpcodeHandler.h:6975
char * m_gooch_color_map_segment
For internal use only.
Definition: BOpcodeHandler.h:2352
void SetColorEdgeContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3202
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1048
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6261
int m_allocated
Definition: BOpcodeHandler.h:7773
int GetLodThresholdType() const
Definition: BOpcodeHandler.h:3470
static TK_Status PutData(BStreamFileToolkit &tk, double const *d, int n)
Definition: BOpcodeHandler.h:418
int GetPreference() const
Definition: BOpcodeHandler.h:5114
float m_gooch_diffuse_weight
For internal use only.
Definition: BOpcodeHandler.h:2351
void SetColorEdgeContrastLockMask(int m)
Definition: BOpcodeHandler.h:2799
char const * GetName() const
Definition: BOpcodeHandler.h:7380
int GetLodNumThresholds() const
Definition: BOpcodeHandler.h:3483
void SetAmbientUpVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3737
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:7630
double const * GetDTextLeaders() const
Definition: BOpcodeHandler.h:6667
float const * GetLodRatios() const
Definition: BOpcodeHandler.h:3463
int GetColorTextContrastLockValue() const
Definition: BOpcodeHandler.h:2907
extended bits for color
Definition: BOpcodeEnums.h:191
void SetColorWindowLockMask(int m)
Definition: BOpcodeHandler.h:2684
int m_total
Definition: BOpcodeHandler.h:7512
int GetColorMarkerContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3264
HT_NURBS_Trim * GetList()
Definition: BOpcodeHandler.h:5559
void SetIndex(int i)
Definition: BOpcodeHandler.h:1494
float const * getSimpleShadowLight() const
Definition: BOpcodeHandler.h:3636
static TK_Status PutData(BStreamFileToolkit &tk, float const *f, int n)
Definition: BOpcodeHandler.h:395
float GetStereoSeparation() const
Definition: BOpcodeHandler.h:3332
char const * GetEnvironmentName() const
Definition: BOpcodeHandler.h:1876
void SetSimpleShadowOpacity(float o)
Definition: BOpcodeHandler.h:3659
void SetColorWindowContrastLockValue(int v)
Definition: BOpcodeHandler.h:2741
double const * GetDOrigin() const
Definition: BOpcodeHandler.h:6479
char * GetName()
Definition: BOpcodeHandler.h:7214
void SetStart(float x, float y, float z)
Definition: BOpcodeHandler.h:5884
void GetTarget(float t[]) const
Definition: BOpcodeHandler.h:4776
char const * GetSpecularName() const
Definition: BOpcodeHandler.h:1822
void SetIndex(int i)
Definition: BOpcodeHandler.h:2057
int m_substage
Definition: BOpcodeHandler.h:6574
float const * GetPoint() const
Definition: BOpcodeHandler.h:5252
int GetFormat() const
Definition: BOpcodeHandler.h:7172
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:5928
extra item for color; refer to ::HC_Set_Color for a description
Definition: BOpcodeEnums.h:214
void SetSimpleShadowPlane(float const p[])
Definition: BOpcodeHandler.h:3646
float const * GetFogLimits() const
Definition: BOpcodeHandler.h:2506
int GetCount() const
Definition: BOpcodeHandler.h:4601
void SetDEnd(double x, double y, double z)
Definition: BOpcodeHandler.h:5949
void SetColorForcedLockMask(int m)
Definition: BOpcodeHandler.h:2949
self-explanatory
Definition: BOpcodeEnums.h:1264
int m_lod_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2308
int GetTiling() const
Definition: BOpcodeHandler.h:7085
float * m_isoline_colors
for internal use only.
Definition: BOpcodeHandler.h:2296
void SetColorEdgeLockValue(int v)
Definition: BOpcodeHandler.h:2603
void SetDisplayListLevel(int m)
Definition: BOpcodeHandler.h:3604
TK_URL()
Definition: BOpcodeHandler.h:7739
int GetProjection() const
Definition: BOpcodeHandler.h:4852
int m_allocated
Definition: BOpcodeHandler.h:7734
void SetSphereTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3532
void SetImage(char const *image)
Definition: BOpcodeHandler.h:7011
int GetLength()
Definition: BOpcodeHandler.h:4467
float const * GetTextRegionPoints() const
Definition: BOpcodeHandler.h:6633
void SetRedMapping(int p)
Definition: BOpcodeHandler.h:7053
Handles the TKE_Delete_Object opcode.
Definition: BOpcodeHandler.h:1478
void SetMinor(float const m[])
Definition: BOpcodeHandler.h:6032
double * GetDPoints()
Definition: BOpcodeHandler.h:6361
float * GetOrigin()
Definition: BOpcodeHandler.h:6447
void SetColorMarkerContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3259
double const * GetDMinor() const
Definition: BOpcodeHandler.h:6062
TK_Default()
Definition: BOpcodeHandler.h:838
short m_fbe_mask
For internal use only.
Definition: BOpcodeHandler.h:2408
void SetColorFaceForcedLockMask(int m)
Definition: BOpcodeHandler.h:2972
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:4806
HLONG GetValue() const
Definition: BOpcodeHandler.h:4699
unsigned char m_heuristic
For internal use only.
Definition: BOpcodeHandler.h:2324
int * GetStringCursors()
Definition: BOpcodeHandler.h:6647
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1297
char * GetDefinition()
Definition: BOpcodeHandler.h:7223
int m_count
for internal use only
Definition: BOpcodeHandler.h:4621
void SetApplicationMode(int p)
Definition: BOpcodeHandler.h:7093
void SetEnvironmentName(char const *name)
Definition: BOpcodeHandler.h:1872
Handles the TKE_Spot_Light opcode.
Definition: BOpcodeHandler.h:5714
TK_Camera(unsigned char opcode=TKE_Camera)
Definition: BOpcodeHandler.h:4730
void SetRenderers(int r1, int r2)
Definition: BOpcodeHandler.h:5096
void SetMirror(float const rgb[])
Definition: BOpcodeHandler.h:1829
int GetType() const
Definition: BOpcodeHandler.h:5533
void SetSpecularName(char const *name)
Definition: BOpcodeHandler.h:1816
float const * GetPosition() const
Definition: BOpcodeHandler.h:6894
double const * GetDTarget() const
Definition: BOpcodeHandler.h:5767
float const * GetOrigin() const
Definition: BOpcodeHandler.h:6445
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:3326
void SetMirrorName(int length)
Definition: BOpcodeHandler.h:1833
char const * GetBytes() const
Definition: BOpcodeHandler.h:6737
bool GetFollow()
Definition: BOpcodeHandler.h:1368
char * m_string
Definition: BOpcodeHandler.h:6557
TK_Text_Font()
Definition: BOpcodeHandler.h:4962
int GetGeometry() const
Definition: BOpcodeHandler.h:1786
int m_length
Definition: BOpcodeHandler.h:4535
float * m_values
internal use
Definition: BOpcodeHandler.h:2123
int GetColorEdgeContrastLockMask() const
Definition: BOpcodeHandler.h:2804
void SetSize(float s)
Definition: BOpcodeHandler.h:5020
float const * GetAxis() const
Definition: BOpcodeHandler.h:6131
int m_move_down
internal use; specifies what geometry is selectable on mouse button down and move. For internal use only.
Definition: BOpcodeHandler.h:4105
void SetOptions(int length)
Definition: BOpcodeHandler.h:4516
int m_cond_length
Definition: BOpcodeHandler.h:1385
char * m_name
Definition: BOpcodeHandler.h:7237
void SetDRef1(double x, double y, double z)
Definition: BOpcodeHandler.h:6484
int GetColorWindowContrastLockValue() const
Definition: BOpcodeHandler.h:2746
int GetColorTextForcedLockValue() const
Definition: BOpcodeHandler.h:3080
void SetLodMaxDegree(int v)
Definition: BOpcodeHandler.h:3423
void SetSegment(int length)
Definition: BOpcodeHandler.h:1204
float m_simple_reflection_hither
For internal use only.
Definition: BOpcodeHandler.h:2381
void SetSimpleShadow(int m)
Definition: BOpcodeHandler.h:3609
void SetNURBSCurveBudget(int b)
Definition: BOpcodeHandler.h:3381
int GetNURBSOptionsMask() const
Definition: BOpcodeHandler.h:3375
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:3569
unsigned char m_depth_peeling_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2399
void SetIndex(int i)
Definition: BOpcodeHandler.h:4357
int m_value
internal use
Definition: BOpcodeHandler.h:3792
void SetColorMarkerLockMask(int m)
Definition: BOpcodeHandler.h:2638
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:4759
Handles the TKE_Line opcode.
Definition: BOpcodeHandler.h:5276
float m_slant
for internal use only
Definition: BOpcodeHandler.h:4931
float const * GetAxis() const
Definition: BOpcodeHandler.h:6232
int GetColorEdgeContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3218
virtual TK_Status Execute(BStreamFileToolkit &tk)
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5500
void SetDown(int m)
Definition: BOpcodeHandler.h:4140
int GetCulling() const
Definition: BOpcodeHandler.h:3875
float GetHlrFaceSortingAlgorithm() const
Definition: BOpcodeHandler.h:3365
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:7163
int GetExtraSpaceUnits() const
Definition: BOpcodeHandler.h:5062
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5438
float const * GetOrtho() const
Definition: BOpcodeHandler.h:6142
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6156
int GetLayout() const
Definition: BOpcodeHandler.h:7080
float const * GetCenter() const
Definition: BOpcodeHandler.h:6016
char * m_string
Definition: BOpcodeHandler.h:4442
int m_substage
Definition: BOpcodeHandler.h:6948
void SetColorTextForcedLockValue(int v)
Definition: BOpcodeHandler.h:3075
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:5025
void SetEmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1857
void SetLodRatio(float r)
Definition: BOpcodeHandler.h:3450
void SetDPoint(double const p[])
Definition: BOpcodeHandler.h:5257
TK_Visibility(void)
Definition: BOpcodeHandler.h:4052
int GetColorMarkerForcedLockValue() const
Definition: BOpcodeHandler.h:3057
int m_control_point_count
Definition: BOpcodeHandler.h:5400
char m_index
internal use
Definition: BOpcodeHandler.h:4242
char * GetReference()
Definition: BOpcodeHandler.h:6886
self-explanatory
Definition: BOpcodeEnums.h:268
void SetSimpleShadowColor(float const rgb[])
Definition: BOpcodeHandler.h:3654
void SetColorLineContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3225
float GetStart() const
Definition: BOpcodeHandler.h:5449
int m_related
internal use
Definition: BOpcodeHandler.h:3794
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4622
void SetUp(int m)
Definition: BOpcodeHandler.h:4151
void SetMask(int m)
Definition: BOpcodeHandler.h:4977
void SetGeometryOptionsMask(int m)
Definition: BOpcodeHandler.h:3548
float const * GetPoints() const
Definition: BOpcodeHandler.h:5365
Lock_Masks m_forced
For internal use only.
Definition: BOpcodeHandler.h:2269
int GetOptions() const
Definition: BOpcodeHandler.h:5787
int GetLength()
Definition: BOpcodeHandler.h:4522
void SetValueScale(float v1, float v2)
Definition: BOpcodeHandler.h:7088
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:5908
float const * GetLodBounding() const
Definition: BOpcodeHandler.h:3447
int GetLockMask() const
Definition: BOpcodeHandler.h:2512
char * m_camera
Definition: BOpcodeHandler.h:6942
float const * GetRadii() const
Definition: BOpcodeHandler.h:6348
int m_image_length
Definition: BOpcodeHandler.h:6945
int GetIndex() const
Definition: BOpcodeHandler.h:4258
TK_Selectability(void)
Definition: BOpcodeHandler.h:4111
void SetColorEdgeForcedLockValue(int v)
Definition: BOpcodeHandler.h:3006
float const * GetScreenRange() const
Definition: BOpcodeHandler.h:3732
char const * GetString() const
Definition: BOpcodeHandler.h:2176
int m_length
Definition: BOpcodeHandler.h:7733
float const * GetLodThresholds() const
Definition: BOpcodeHandler.h:3485
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:1639
unsigned short m_shadow_map_resolution
For internal use only.
Definition: BOpcodeHandler.h:2374
float m_hlr_face_displacement
For internal use only.
Definition: BOpcodeHandler.h:2277
int m_tmp
Definition: BOpcodeHandler.h:6575
Handles the TKE_Ellipse and TKE_Elliptical_Arc opcodes.
Definition: BOpcodeHandler.h:5991
float const * GetCenter() const
Definition: BOpcodeHandler.h:5930
short m_fbe_value
For internal use only.
Definition: BOpcodeHandler.h:2409
void SetDRef2(double x, double y, double z)
Definition: BOpcodeHandler.h:6495
int GetBufferOptionsValue() const
Definition: BOpcodeHandler.h:3322
float horizontal_offset
offset, positive or negative, from the standard position. units are specified separately in horizonta...
Definition: BOpcodeHandler.h:6530
int GetSize() const
Definition: BOpcodeHandler.h:7632
char * m_name
The name of the color channel.
Definition: BOpcodeHandler.h:1724
self-explanatory
Definition: BOpcodeEnums.h:267
Definition: BOpcodeHandler.h:6524
void SetDAxis(double x, double y, double z)
Definition: BOpcodeHandler.h:6161
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:6047
void SetForcedLockMask(int m)
Definition: BOpcodeHandler.h:2913
void SetSpecular(float r, float g, float b)
Definition: BOpcodeHandler.h:1812
void SetColorMarkerLockValue(int v)
Definition: BOpcodeHandler.h:2649
int * m_lengths
Definition: BOpcodeHandler.h:7513
void **const GetValues()
Definition: BOpcodeHandler.h:4664
int m_cond_allocated
Definition: BOpcodeHandler.h:1294
void SetTransforms(int t)
Definition: BOpcodeHandler.h:5070
Handles the TKE_Grid opcode.
Definition: BOpcodeHandler.h:6419
char * GetCamera()
Definition: BOpcodeHandler.h:7026
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:891
float color[3]
the color. RGB triplet
Definition: BOpcodeHandler.h:6527
void adjust_written(BStreamFileToolkit &tk, int count)
for internal use only
Definition: BOpcodeHandler.h:657
float const * GetPoints() const
Definition: BOpcodeHandler.h:7474
int m_size
internal use
Definition: BOpcodeHandler.h:1674
int GetColorLineForcedLockMask() const
Definition: BOpcodeHandler.h:3023
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:7296
float const * GetSimpleShadowPlane() const
Definition: BOpcodeHandler.h:3648
int m_curve_continued_budget
For internal use only.
Definition: BOpcodeHandler.h:2330
void SetCounts(int c1, int c2)
Definition: BOpcodeHandler.h:6507
int m_length
Definition: BOpcodeHandler.h:4441
indicates that the 2nd byte should be written
Definition: BOpcodeEnums.h:763
char * m_segment
Definition: BOpcodeHandler.h:7288
float GetRadius() const
Definition: BOpcodeHandler.h:6241
float const * GetPlanes() const
Definition: BOpcodeHandler.h:5843
unsigned char m_depth_peeling_layers
For internal use only.
Definition: BOpcodeHandler.h:2397
float m_cut_geometry_edge_weight
for internal use only.
Definition: BOpcodeHandler.h:2360
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:6112
int GetColorLockValue() const
Definition: BOpcodeHandler.h:2562
int GetGeometry() const
Definition: BOpcodeHandler.h:1994
virtual TK_Status Write(BStreamFileToolkit &tk)=0
void SetOptions(int opt)
Definition: BOpcodeHandler.h:4907
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:3436
int m_isoline_position_count
for internal use only.
Definition: BOpcodeHandler.h:2293
void SetDField(double w, double h)
Definition: BOpcodeHandler.h:4818
float * GetPoints()
Definition: BOpcodeHandler.h:5437
double const * GetDRef1() const
Definition: BOpcodeHandler.h:6490
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6169
Flags
Definition: BOpcodeHandler.h:6186
short color_simple_reflection_mask
For internal use only.
Definition: BOpcodeHandler.h:1092
void SetColorTextLockMask(int m)
Definition: BOpcodeHandler.h:2661
extended bit
Definition: BOpcodeEnums.h:811
void SetLodTolerance(float v)
Definition: BOpcodeHandler.h:3427
int GetTessellationMask() const
Definition: BOpcodeHandler.h:3511
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:5738
void SetOptions(int o)
Definition: BOpcodeHandler.h:5635
int m_cond_length
Definition: BOpcodeHandler.h:1293
float m_curve_max_length
For internal use only.
Definition: BOpcodeHandler.h:2339
int m_isoline_pattern_count
for internal use only.
Definition: BOpcodeHandler.h:2297
char * GetBytes()
Definition: BOpcodeHandler.h:6868
double const * GetDEnd() const
Definition: BOpcodeHandler.h:5977
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:3425
void SetDPlane(double const p[])
Definition: BOpcodeHandler.h:5835
int m_culling
internal use; culling options
Definition: BOpcodeHandler.h:3799
float * m_knots
Definition: BOpcodeHandler.h:5405
char m_options
internal use
Definition: BOpcodeHandler.h:5658
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:4749
static TK_Status GetData(BStreamFileToolkit &tk, char &c)
Definition: BOpcodeHandler.h:305
void SetFaceDisplacement(int d)
Definition: BOpcodeHandler.h:2482
char * GetBytes()
Definition: BOpcodeHandler.h:6739
Handles the TKE_User_Value opcode.
Definition: BOpcodeHandler.h:4680
void SetHlrFaceSortingAlgorithm(int a)
Definition: BOpcodeHandler.h:3363
short color_cut_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1097
int GetPixelThreshold() const
Definition: BOpcodeHandler.h:3887
void SetValues(int count, float const values[]=0)
Definition: BOpcodeHandler.h:2155
float GetStart() const
Definition: BOpcodeHandler.h:5543
extended bit for HLR suboptions; refer to ::HC_Set_Rendering_Options for description ...
Definition: BOpcodeEnums.h:651
char * m_string
Definition: BOpcodeHandler.h:4490
void SetColorTextContrastLockMask(int m)
Definition: BOpcodeHandler.h:2891
Handles the TKE_Color_By_FIndex opcode.
Definition: BOpcodeHandler.h:2068
double const * GetDCenter() const
Definition: BOpcodeHandler.h:5979
int m_mask
internal use
Definition: BOpcodeHandler.h:3791
void SetImageTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3753
unsigned char m_cut_geometry_level
For internal use only.
Definition: BOpcodeHandler.h:2357
short color_vertex_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1089
char * m_data
Definition: BOpcodeHandler.h:7189
short color_vertex_value
For internal use only.
Definition: BOpcodeHandler.h:1081
int GetColorMarkerLockValue() const
Definition: BOpcodeHandler.h:2654
unsigned char m_hlr_threshold_units
for internal use only.
Definition: BOpcodeHandler.h:2284
int GetTextRegionCount() const
Definition: BOpcodeHandler.h:6631
void SetType(int t)
Definition: BOpcodeHandler.h:6725
int GetOptions() const
Definition: BOpcodeHandler.h:4909
float m_tolerance
for internal use only
Definition: BOpcodeHandler.h:4929
void SetDOrigin(double x, double y, double z)
Definition: BOpcodeHandler.h:6473
void SetSimpleShadowPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3639
void SetFormat(int f)
Definition: BOpcodeHandler.h:2147
int GetOptions() const
Definition: BOpcodeHandler.h:5704
int GetVersion() const
Definition: BStreamFileToolkit.h:972
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:6108
int m_isoline_color_count
for internal use only.
Definition: BOpcodeHandler.h:2295
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const &s)
Definition: BOpcodeHandler.h:462
void SetDPoint(double x, double y, double z)
Definition: BOpcodeHandler.h:5255
Capping_Options
Definition: BOpcodeHandler.h:6274
char * GetOptions()
Definition: BOpcodeHandler.h:4520
char const * GetShaderSource() const
Definition: BOpcodeHandler.h:7006
char * GetMirrorName()
Definition: BOpcodeHandler.h:1839
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5373
void GetPosition(float p[]) const
Definition: BOpcodeHandler.h:4756
entity is double precision
Definition: BStream.h:350
double * GetDMatrix()
Definition: BOpcodeHandler.h:4231
float * GetLodCutoffs()
Definition: BOpcodeHandler.h:3505
bool m_jpeg_native
Definition: BOpcodeHandler.h:6826
void SetGeometry(int m)
Definition: BOpcodeHandler.h:4065
void SetColorVertexLockValue(int v)
Definition: BOpcodeHandler.h:2787
int GetColorEdgeContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3207
int m_invisible
internal use; specifies what geometry is selectable even when invisible. For internal use only...
Definition: BOpcodeHandler.h:4107
int GetColorFaceContrastLockValue() const
Definition: BOpcodeHandler.h:2723
void SetSimpleShadowColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3651
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6038
void SetMask(int m)
Definition: BOpcodeHandler.h:4008
void SetRGB(float r, float g, float b)
Definition: BOpcodeHandler.h:1944
void SetDOrtho(double const s[])
Definition: BOpcodeHandler.h:6178