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;
68 
71  char * m_debug_string;
73  char * m_ascii_buffer;
74  int m_ascii_size;
75  int m_ascii_length;
76 
77  int m_ascii_stage;
79 
80  unsigned char m_byte;
81  unsigned short m_unsigned_short;
82  int m_int;
83  char m_char;
84 
85  public:
92  : m_stage (0), m_progress (0), m_opcode ((unsigned char)op), m_general_flags(0), m_needs_tag (false),
93  m_debug_length (0), m_debug_allocated (0), m_debug_string (0),
94 
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 
207  virtual TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const {
208  *handler = 0;
209  return tk.Error();
210  }
211 
217  virtual bool NeedsContext (BStreamFileToolkit & tk) const { (void)tk; return false; }
218 
223  void SetLoggingString (char const * segment);
224 
229  void SetLoggingString (int length);
230 
234  char const * GetLoggingString () const { return m_debug_string; }
239  char * GetLoggingString () { return m_debug_string; }
240 
244  void LogDebug (BStreamFileToolkit & tk, char const * string = 0);
245 
246  protected:
247  // various means of pulling data from the toolkit buffer
248  // Note: format conversion is safe to do in output buffer
249 
251  static TK_Status GetData (BStreamFileToolkit & tk, char * b, int n) { return tk.read (b, n); }
252 
254  static TK_Status GetData (BStreamFileToolkit & tk, short * s, int n) {
255  TK_Status status;
256  if ((status = GetData (tk, (char *)s, n * (int)sizeof (short))) == TK_Normal)
257  fix (s, n);
258  return status;
259  }
260 
262  static TK_Status GetData (BStreamFileToolkit & tk, int * i, int n) {
263  TK_Status status;
264  if ((status = GetData (tk, (char *)i, n * (int)sizeof (int))) == TK_Normal)
265  fix (i, n);
266  return status;
267  }
268 
270  static TK_Status GetData (BStreamFileToolkit & tk, float * f, int n) {
271  TK_Status status;
272  if ((status = GetData (tk, (char *)f, n * (int)sizeof (float))) == TK_Normal)
273  fix_in (f, n);
274  return status;
275  }
276 
278  static TK_Status GetData (BStreamFileToolkit & tk, double * d, int n) {
279  TK_Status status;
280  if ((status = GetData (tk, (char *)d, n * (int)sizeof (double))) == TK_Normal)
281  fix_in (d, n);
282  return status;
283  }
284 
286  static TK_Status GetData (BStreamFileToolkit & tk, unsigned char * b, int n) { return GetData (tk, (char *)b, n); }
287 
289  static TK_Status GetData (BStreamFileToolkit & tk, unsigned short * s, int n) { return GetData (tk, (short *)s, n); }
290 
292  static TK_Status GetData (BStreamFileToolkit & tk, unsigned int * i, int n) { return GetData (tk, (int *)i, n); }
293 
295  static TK_Status GetData (BStreamFileToolkit & tk, char & c) { return GetData (tk, &c, 1); }
296 
298  static TK_Status GetData (BStreamFileToolkit & tk, short & s) { return GetData (tk, &s, 1); }
299 
301  static TK_Status GetData (BStreamFileToolkit & tk, int & i) { return GetData (tk, &i, 1); }
302 
304  static TK_Status GetData (BStreamFileToolkit & tk, unsigned char & b) { return GetData (tk, &b, 1); }
305 
307  static TK_Status GetData (BStreamFileToolkit & tk, unsigned short & s) { return GetData (tk, &s, 1); }
308 
310  static TK_Status GetData (BStreamFileToolkit & tk, unsigned int & i) { return GetData (tk, &i, 1); }
311 
313  static TK_Status GetData (BStreamFileToolkit & tk, float & f) { return GetData (tk, &f, 1); }
314 
316  static TK_Status GetData (BStreamFileToolkit & tk, double & d) { return GetData (tk, &d, 1); }
317 
318 
321  TK_Status status = TK_Normal;
322 
323  if (tk.GetVersion() >= 1975 &&
324  (status = GetData (tk, m_general_flags)) != TK_Normal)
325  return status;
326 
327  return status;
328  }
329 
330 
331 
332 
334  static TK_Status LookatData (BStreamFileToolkit & tk, unsigned char & b) { return tk.lookat ((char &)b); }
335 
336  // various means of putting data into the toolkit buffer
337  // Note: format conversion is NOT safe in input buffer -- use temps
338 
340  static TK_Status PutData (BStreamFileToolkit & tk, char const * b, int n) { return tk.write (b, n); }
341 
343  static TK_Status PutData (BStreamFileToolkit & tk, short const * s, int n) {
344  #ifdef STREAM_BIGENDIAN
345  short * buffer;
346  short * tmp;
347  TK_Status status;
348  int i;
349  BSTREAM_ALLOC_ARRAY(buffer, n, short);
350  tmp = buffer;
351  for (i=0; i<n; ++i)
352  *tmp++ = flip (*s++);
353  status = PutData (tk, (char const *)buffer, n * (int)sizeof (short));
354  BSTREAM_FREE_ARRAY(buffer, n, short);
355  if (status != TK_Normal)
356  return status;
357  return TK_Normal;
358  #else
359  return PutData (tk, (char const *)s, n * (int)sizeof (short));
360  #endif
361  }
362 
364  static TK_Status PutData (BStreamFileToolkit & tk, int const * i, int n) {
365  #ifdef STREAM_BIGENDIAN
366  int * buffer;
367  int * tmp;
368  TK_Status status;
369  int j;
370  BSTREAM_ALLOC_ARRAY(buffer, n, int);
371  tmp = buffer;
372  for (j=0; j<n; ++j)
373  *tmp++ = flip (*i++);
374  status = PutData (tk, (char const *)buffer, n * (int)sizeof (int));
375  BSTREAM_FREE_ARRAY(buffer, n, int);
376  if (status != TK_Normal)
377  return status;
378  return TK_Normal;
379  #else
380  return PutData (tk, (char const *)i, n * (int)sizeof (int));
381  #endif
382  }
383 
385  static TK_Status PutData (BStreamFileToolkit & tk, float const * f, int n) {
386  #if defined(NON_IEEE) || defined(STREAM_BIGENDIAN)
387  float * buffer;
388  float * tmp;
389  TK_Status status;
390  int i;
391  BSTREAM_ALLOC_ARRAY(buffer, n, float);
392  tmp = buffer;
393  for (i=0; i<n; ++i) {
394  *tmp = *f++;
395  fix_out (tmp++, 1);
396  }
397  status = PutData (tk, (char const *)buffer, n * (int)sizeof (float));
398  BSTREAM_FREE_ARRAY(buffer, n, float);
399  if (status != TK_Normal)
400  return status;
401  return TK_Normal;
402  #else
403  return PutData (tk, (char const *)f, n * (int)sizeof (float));
404  #endif
405  }
406 
408  static TK_Status PutData (BStreamFileToolkit & tk, double const * d, int n) {
409  #if defined(NON_IEEE) || defined(STREAM_BIGENDIAN)
410  double * buffer;
411  double * tmp;
412  TK_Status status;
413  int i;
414  BSTREAM_ALLOC_ARRAY(buffer, n, double);
415  tmp = buffer;
416  for (i=0; i<n; ++i) {
417  *tmp = *d++;
418  fix_out (tmp++, 1);
419  }
420  status = PutData (tk, (char const *)buffer, n * (int)sizeof (double));
421  BSTREAM_FREE_ARRAY(buffer, n, double);
422  if (status != TK_Normal)
423  return status;
424  return TK_Normal;
425  #else
426  return PutData (tk, (char const *)d, n * (int)sizeof (double));
427  #endif
428  }
429 
431  static TK_Status PutData (BStreamFileToolkit & tk, unsigned char const * b, int n) { return PutData (tk, (char const *)b, n); }
432 
434  static TK_Status PutData (BStreamFileToolkit & tk, unsigned short const * s, int n) { return PutData (tk, (short const *)s, n); }
435 
437  static TK_Status PutData (BStreamFileToolkit & tk, unsigned int const * i, int n) { return PutData (tk, (int const *)i, n); }
438 
440  static TK_Status PutData (BStreamFileToolkit & tk, char const & c) { return PutData (tk, &c, 1); }
441 
443  static TK_Status PutData (BStreamFileToolkit & tk, short const & s) { return PutData (tk, &s, 1); }
444 
446  static TK_Status PutData (BStreamFileToolkit & tk, int const & i) { return PutData (tk, &i, 1); }
447 
449  static TK_Status PutData (BStreamFileToolkit & tk, unsigned char const & b) { return PutData (tk, &b, 1); }
450 
452  static TK_Status PutData (BStreamFileToolkit & tk, unsigned short const & s) { return PutData (tk, &s, 1); }
453 
455  static TK_Status PutData (BStreamFileToolkit & tk, unsigned int const & i) { return PutData (tk, &i, 1); }
456 
458  static TK_Status PutData (BStreamFileToolkit & tk, float const & f) { return PutData (tk, &f, 1); }
459 
461  static TK_Status PutData (BStreamFileToolkit & tk, double const & d) { return PutData (tk, &d, 1); }
462 
464  TK_Status PutOpcode (BStreamFileToolkit & tk, int adjust = 1) {
465  TK_Status status;
466  unsigned int sequence;
467 
468  if ((status = PutData (tk, Opcode ())) != TK_Normal)
469  return status;
470 
471  tk.adjust_written (adjust);
472 
473  sequence = tk.NextOpcodeSequence();
474  if (tk.GetLogging())
475  log_opcode (tk, sequence, Opcode());
476 
477  return status;
478  }
479 
482  TK_Status status = TK_Normal;
483 
484  if (tk.GetTargetVersion() >= 1975 &&
485  (status = PutData (tk, General_Flags ())) != TK_Normal)
486  return status;
487 
488  return status;
489  }
490 
491 
492 
493  /* note -- fix for int types will work during read OR write phase, but floats need separate routines for native->IEEE and IEEE->native
494  */
496  static short flip (short s) {
497  return (short)(((s >> 8) & 0x00FF) | (s << 8));
498  }
500  static int flip (int i) {
501  return ((i >> 24) & 0x000000FF) | ((i >> 8) & 0x0000FF00) |
502  ((i << 8) & 0x00FF0000) | (i << 24);
503  }
504 
505  #ifdef STREAM_BIGENDIAN
506  static void flip (double * d) {
508  char b[8];
509  memcpy (b, &d, sizeof(double));
510  Swap (b[0], b[7]);
511  Swap (b[1], b[6]);
512  Swap (b[2], b[5]);
513  Swap (b[3], b[4]);
514  memcpy (&d, b, sizeof(double));
515  }
516  #endif
517 
518 #ifndef DOXYGEN_SHOULD_SKIP_THIS
519  #ifndef UNREFERENCED
520  #define UNREFERENCED(x) (void)(x)
521  #endif
522 #endif
523 
525  static void fix (int * i, int n) {
526  #ifdef STREAM_BIGENDIAN
527  while (n--){
528  *i = flip (*i);
529  i++;
530  }
531  #else
532  UNREFERENCED(i);
533  UNREFERENCED(n);
534  #endif
535  }
537  static void fix (short * s, int n) {
538  #ifdef STREAM_BIGENDIAN
539  while (n--){
540  *s = flip (*s);
541  s++;
542  }
543  #else
544  UNREFERENCED(s);
545  UNREFERENCED(n);
546  #endif
547  }
548 
550  static void fix_in (float * f, int n) {
551  #ifdef NON_IEEE
552  // need to re-interpret from IEEE to native format
553  #endif
554 
555  #ifdef STREAM_BIGENDIAN
556  int * i = (int *) f;
557  while (n--) {
558  *i = flip (*i);
559  i++;
560  }
561  #else
562  UNREFERENCED(f);
563  UNREFERENCED(n);
564  #endif
565  }
567  static void fix_in (double * d, int n) {
568  #ifdef NON_IEEE
569  // need to re-interpret from IEEE to native format
570  #endif
571 
572  #ifdef STREAM_BIGENDIAN
573  while (n--) {
574  flip (d++);
575  }
576  #else
577  UNREFERENCED(d);
578  UNREFERENCED(n);
579  #endif
580  }
582  static void fix_out (float * f, int n) {
583  #ifdef NON_IEEE
584  // need to re-interpret from native format to IEEE
585  #endif
586 
587  #ifdef STREAM_BIGENDIAN
588  int * i = (int*) f;
589  while (n--) {
590  *i = flip (*i);
591  i++;
592  }
593  #else
594  UNREFERENCED(f);
595  UNREFERENCED(n);
596  #endif
597  }
599  static void fix_out (double * d, int n) {
600  #ifdef NON_IEEE
601  // need to re-interpret from native format to IEEE
602  #endif
603 
604  #ifdef STREAM_BIGENDIAN
605  while (n--) {
606  flip (d++);
607  }
608  #else
609  UNREFERENCED(d);
610  UNREFERENCED(n);
611  #endif
612  }
613 
615  void log_opcode (BStreamFileToolkit & tk, unsigned int sequence, unsigned char opcode);
616 
617 
618  /* common conversions
619  these two are for converting between floats [0.0,1.0] and unsigned chars [0,255]
620  */
622  void floats_to_bytes (float const * in, unsigned char * out, int count) const {
623  while (count-- > 0)
624  *out++ = char (*in++ * 255.999f);
625  }
627  void bytes_to_floats (unsigned char const * in, float * out, int count) const {
628  while (count-- > 0)
629  *out++ = float (*in++) * (1.0f/255.0f);
630  }
631 
632  // access to toolkit utility functions
634  void add_segment (BStreamFileToolkit & tk, ID_Key key) { tk.add_segment (key); }
636  ID_Key remove_segment (BStreamFileToolkit & tk) { return tk.remove_segment(); }
638  void set_last_key (BStreamFileToolkit & tk, ID_Key key) { tk.set_last_key (key); }
641  if (tk.m_last_keys_used == 1)
642  return tk.m_last_keys[0];
643  else
644  return -1;
645  }
647  void adjust_written (BStreamFileToolkit & tk, int count) { tk.adjust_written (count); }
649  void increase_nesting (BStreamFileToolkit & tk, int amount=1) { tk.increase_nesting (amount); }
651  void decrease_nesting (BStreamFileToolkit & tk, int amount=1) { tk.decrease_nesting (amount); }
652 
656  void Revisit (BStreamFileToolkit & tk, float priority=0.0f, int variant=0) const { tk.revisit (Opcode(), priority, variant); }
657 
661  BBaseOpcodeHandler * Opcode_Handler (BStreamFileToolkit & tk, unsigned char op) const
662  { return tk.opcode_handler (op); }
663 
665  void Record_Instance (BStreamFileToolkit & tk, ID_Key key, int variant,
666  int val1, int val2, int val3) const {
667  tk.record_instance (key, variant, this, val1, val2, val3);
668  }
670  bool Find_Instance (BStreamFileToolkit & tk, int val1, int val2, int val3) {
671  return tk.find_instance (this, val1, val2, val3);
672  }
673 
675  void Remember_Item (BStreamFileToolkit & tk, ID_Key key) const { tk.remember_item(key); }
677  bool Find_Item (BStreamFileToolkit & tk, ID_Key key) const { return tk.find_item(key); }
678 
680  bool validate_count (int count, int limit = 1<<24) const { return 0 <= count && count <= limit; }
681 
685  static float read_float (char const *cp, char const ** newcpp = 0);
687  static float read_float (char const *cp, char ** newcpp)
688  { return read_float (cp, (char const **)newcpp); }
690  static char * write_float (char * buffer, double f);
691 
692 
693 
695  TK_Status SkipNewlineAndTabs(BStreamFileToolkit & tk, unsigned int* readSize=0);
697  TK_Status ReadAsciiLine(BStreamFileToolkit & tk, unsigned int* readSize=0);
699  TK_Status ReadAsciiWord(BStreamFileToolkit & tk, unsigned int* readSize=0);
701  TK_Status ReadEndOpcode(BStreamFileToolkit & tk);
703  bool RemoveAngularBrackets(char* string);
705  bool RemoveQuotes(char* string);
707  TK_Status Read_Referenced_Segment(BStreamFileToolkit & tk, int &i_progress);
708 
709  //TK_Status GetAsciiData(BStreamFileToolkit & tk, float * rFloats, unsigned int n);
710 
712  TK_Status GetAsciiData(BStreamFileToolkit & tk, int * rInts, unsigned int n);
713  //TK_Status GetAsciiData(BStreamFileToolkit & tk, short * rShorts, unsigned int n);
714 
716  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned char& value);
718  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, char& value);
720  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned short& value);
722  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, short& value);
724  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, int& value);
726  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, float& value);
728  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, float * rFloats, unsigned int n);
730  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, char * m_string, unsigned int n);
732  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned char * m_string, unsigned int n);
734  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, int * rInts, unsigned int n);
736  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, short * rShorts, unsigned int n);
738  TK_Status GetAsciiData(BStreamFileToolkit & tk, const char * tag, unsigned short * rShorts, unsigned int n);
740  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, unsigned char &value);
742  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, int &value);
744  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, char &value);
746  TK_Status GetAsciiHex(BStreamFileToolkit & tk, const char * tag, unsigned short &value);
748  TK_Status GetAsciiImageData(BStreamFileToolkit & tk, const char * tag, unsigned char * rValues, unsigned int n);
749 
751  TK_Status PutAsciiOpcode (BStreamFileToolkit & tk, int adjust = 1, bool is_end = false, bool want_newline = true);
752  // TK_Status PutAsciiOpcode (BStreamFileToolkit & tk, int adjust = 1);
753 
755  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, char const * b, int n);
757  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, short const * s, int n);
759  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, int const * i, int n);
761  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, float const * f, int n);
763  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned char const * b, int n);
765  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned short const * s, int n);
767  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned int const * i, int n);
769  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, char const & c);
771  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, short const & s);
773  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, int const & i);
775  TK_Status PutAsciiFlag (BStreamFileToolkit & tk, char const *tag, int const & i);
777  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned char const & b);
779  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned short const & s);
781  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, unsigned int const & i);
783  TK_Status PutAsciiData (BStreamFileToolkit & tk, char const *tag, float const & f);
785  TK_Status PutAsciiMask (BStreamFileToolkit & tk,char const *tag, int const & i);
787  TK_Status PutAsciiHex (BStreamFileToolkit & tk, char const *tag, int const & i);
789  TK_Status PutStartXMLTag (BStreamFileToolkit & tk, char const *tag);
791  TK_Status PutEndXMLTag (BStreamFileToolkit & tk, char const *tag);
792 };
793 
795 #define IMPLEMENT_CLONE(class_name) \
796  TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
797  *newhandler = BSTREAM_NEW(class_name); \
798  if (*newhandler != null) \
799  return TK_Normal; \
800  else \
801  return tk.Error ("memory allocation in" #class_name "::clone failed"); \
802  } //
803 #define IMPLEMENT_CLONE_OPCODE(class_name) \
805  TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
806  *newhandler = BSTREAM_NEW(class_name)(Opcode()); \
807  if (*newhandler != null) \
808  return TK_Normal; \
809  else \
810  return tk.Error ("memory allocation in" #class_name "::clone failed"); \
811 } //
812 
814 
820 class BBINFILETK_API TK_Default : public BBaseOpcodeHandler {
821 
822  protected:
823  char * m_opcode_buffer;
824  int m_buffer_count;
825 
826  public:
828  TK_Default () : BBaseOpcodeHandler (TKE_Pseudo_Handler) {m_opcode_buffer = 0, m_buffer_count = 0;}
829 
831 
833 
834 
835  TK_Status ReadAscii (BStreamFileToolkit & tk);
836  TK_Status WriteAscii (BStreamFileToolkit & tk);
837 
838 };
839 
845 class BBINFILETK_API TK_Unavailable : public BBaseOpcodeHandler {
846  public:
848  TK_Unavailable (char opcode) : BBaseOpcodeHandler (opcode) {}
849 
852 };
853 
856 
862 class BBINFILETK_API TK_Header : public BBaseOpcodeHandler {
863  protected:
866 
867  public:
869  TK_Header () : BBaseOpcodeHandler (TKE_Pseudo_Handler), m_current_object (0) {}
870  ~TK_Header();
871 
874 
875 
876  TK_Status ReadAscii (BStreamFileToolkit & tk);
877  TK_Status WriteAscii (BStreamFileToolkit & tk);
878 
879 
880  void Reset ();
881 };
882 
883 
885 
891 class BBINFILETK_API TK_File_Info : public BBaseOpcodeHandler {
892  protected:
894  int m_flags;
895 
896  public:
898  TK_File_Info () : BBaseOpcodeHandler (TKE_File_Info), m_flags (0) {}
899 
900 
904  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
905  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
906  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
907 
908 
909  TK_Status ReadAscii (BStreamFileToolkit & tk);
910  TK_Status WriteAscii (BStreamFileToolkit & tk);
911 
912 
914  void SetFlags (int f) { m_flags = f; }
916  int GetFlags () { return m_flags; }
917 };
918 
919 
921 
929 class BBINFILETK_API TK_Comment : public BBaseOpcodeHandler {
930  protected:
932  int m_length;
936  char * m_comment;
937 
939  void set_comment (char const * comment);
941  void set_comment (int length);
942 
943  public:
945  TK_Comment (char const * comment = 0);
946  ~TK_Comment();
947 
951 
952  TK_Status ReadAscii (BStreamFileToolkit & tk);
953  TK_Status WriteAscii (BStreamFileToolkit & tk);
954  TK_Status ExecuteAscii (BStreamFileToolkit & tk);
957  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant) {
958  (void)tk; (void)key; (void)variant;
959  return TK_Normal;
960  }
961  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
962  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
963  void Reset ();
964 
969  void SetComment (char const * comment) { set_comment (comment); }
974  void SetComment (int length) { set_comment (length); }
978  char const * GetComment () const { return m_comment; }
983  char * GetComment () { return m_comment; }
984 };
985 
986 
988 
996 class BBINFILETK_API TK_Terminator : public BBaseOpcodeHandler {
997  public:
999  TK_Terminator (char opcode, bool is_file_terminator = true) : BBaseOpcodeHandler (opcode),
1000  m_terminate_file(is_file_terminator) {}
1001 
1005 
1006 
1007  TK_Status ReadAscii (BStreamFileToolkit & tk);
1008  TK_Status WriteAscii (BStreamFileToolkit & tk);
1009 
1010  protected:
1012  // meant to terminate the file or something else (viz. LOD collection)
1014 };
1015 
1016 
1018 
1025 class BBINFILETK_API TK_Compression : public BBaseOpcodeHandler {
1026  public:
1028  TK_Compression (char opcode) : BBaseOpcodeHandler (opcode) {}
1029 
1032 
1033  TK_Status ReadAscii (BStreamFileToolkit & tk);
1034  TK_Status WriteAscii (BStreamFileToolkit & tk);
1036  TK_Status ExecuteAscii (BStreamFileToolkit & tk);
1037  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
1038  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1039  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1040 };
1041 
1043 
1044 
1045 // this should be based off a "data handling" interface class broken out from BBaseOpcodeHandler
1046 class BBINFILETK_API Lock_Masks : public BBaseOpcodeHandler {
1047  public:
1048  int mask;
1049  int value;
1090 
1091 
1092  Lock_Masks () : BBaseOpcodeHandler (0) {}
1094  TK_Status Write (BStreamFileToolkit &) { return TK_Error; } //-V524
1095 
1096  TK_Status Read (BStreamFileToolkit & tk, bool mask_only);
1097  TK_Status Write (BStreamFileToolkit & tk, bool mask_only);
1098 
1099  void init() {
1100  mask = value = 0;
1101  color_mask = color_value = 0;
1102  color_face_mask = color_face_value =
1103  color_edge_mask = color_edge_value =
1104  color_line_mask = color_line_value =
1105  color_marker_mask = color_marker_value =
1106  color_text_mask = color_text_value =
1107  color_window_mask = color_window_value =
1108  color_face_contrast_mask = color_face_contrast_value =
1109  color_window_contrast_mask = color_window_contrast_value =
1110  color_back_mask = color_back_value =
1111  color_vertex_mask = color_vertex_value =
1112  color_edge_contrast_mask = color_edge_contrast_value =
1113  color_line_contrast_mask = color_line_contrast_value =
1114  color_marker_contrast_mask = color_marker_contrast_value =
1115  color_vertex_contrast_mask = color_vertex_contrast_value =
1116  color_text_contrast_mask = color_text_contrast_value = 0;
1117  color_simple_reflection_mask = color_simple_reflection_value = 0;
1118  color_cut_face_mask = color_cut_face_value = 0;
1119  color_cut_edge_mask = color_cut_edge_value = 0;
1120  visibility_mask = visibility_value = 0;
1121  }
1122 
1123  void set_color() {
1124  color_mask = color_value = TKO_Geo_All_Colors;
1125  color_face_mask = color_face_value =
1126  color_edge_mask = color_edge_value =
1127  color_line_mask = color_line_value =
1128  color_marker_mask = color_marker_value =
1129  color_text_mask = color_text_value =
1130  color_window_mask = color_window_value =
1131  color_face_contrast_mask = color_face_contrast_value =
1132  color_window_contrast_mask = color_window_contrast_value =
1133  color_back_mask = color_back_value =
1134  color_vertex_mask = color_vertex_value =
1135  color_edge_contrast_mask = color_edge_contrast_value =
1136  color_line_contrast_mask = color_line_contrast_value =
1137  color_marker_contrast_mask = color_marker_contrast_value =
1138  color_vertex_contrast_mask = color_vertex_contrast_value =
1139  color_text_contrast_mask = color_text_contrast_value =
1140  color_simple_reflection_mask = color_simple_reflection_value =
1141  color_cut_face_mask = color_cut_face_value =
1142  color_cut_edge_mask = color_cut_edge_value =
1144  }
1145 };
1146 
1148 
1150 
1160 class BBINFILETK_API TK_Open_Segment : public BBaseOpcodeHandler {
1161  protected:
1162  int m_length;
1164  char * m_string;
1166  void set_segment (char const * segment);
1169  void set_segment (int length);
1170 
1171  public:
1173  TK_Open_Segment () : BBaseOpcodeHandler (TKE_Open_Segment), m_length (0), m_allocated (0), m_string (0) {}
1174  ~TK_Open_Segment();
1175 
1178  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1179 
1180  TK_Status ReadAscii (BStreamFileToolkit & tk);
1181  TK_Status WriteAscii (BStreamFileToolkit & tk);
1182  void Reset ();
1183 
1188  void SetSegment (char const * segment) { set_segment (segment); }
1189 
1194  void SetSegment (int length) { set_segment (length); }
1195 
1199  char const * GetSegment () const { return m_string; }
1204  char * GetSegment () { return m_string; }
1205 
1206 };
1207 
1208 
1210 
1219 class BBINFILETK_API TK_Close_Segment : public BBaseOpcodeHandler {
1220  public:
1222  TK_Close_Segment () : BBaseOpcodeHandler (TKE_Close_Segment) {}
1223 
1226  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1227 
1228  TK_Status ReadAscii (BStreamFileToolkit & tk);
1229  TK_Status WriteAscii (BStreamFileToolkit & tk);
1230 };
1231 
1232 
1233 
1235 
1247 class BBINFILETK_API TK_Reopen_Segment : public BBaseOpcodeHandler {
1248  protected:
1249  int m_index;
1251  public:
1253  TK_Reopen_Segment () : BBaseOpcodeHandler (TKE_Reopen_Segment), m_index (-1) {}
1254 
1257  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1258 
1259  TK_Status ReadAscii (BStreamFileToolkit & tk);
1260  TK_Status WriteAscii (BStreamFileToolkit & tk);
1261 
1263  void SetIndex (int i) { m_index = i; }
1265  int GetIndex () const { return m_index; }
1266 };
1267 
1268 
1270 
1278 class BBINFILETK_API TK_Referenced_Segment : public BBaseOpcodeHandler {
1279  protected:
1280  int m_length;
1282  char * m_string;
1285  char * m_condition;
1289  unsigned char m_renumbered_scope;
1291  bool m_follow;
1293 
1294  bool m_referee_has_priority;
1295  int m_referee_priority;
1296 
1297  void set_segment (char const * segment);
1298  void set_segment (int length);
1299 
1300  public:
1302  TK_Referenced_Segment (unsigned char opcode);
1304 
1307  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1308 
1309  TK_Status ReadAscii (BStreamFileToolkit & tk);
1310  TK_Status WriteAscii (BStreamFileToolkit & tk);
1311  void Reset ();
1312 
1317  void SetSegment (char const * segment) { set_segment (segment); }
1322  void SetSegment (int length) { set_segment (length); }
1326  char const * GetSegment () const { return m_string; }
1331  char * GetSegment () { return m_string; }
1332 
1333 
1338  void SetCondition (char const * condition);
1343  void SetCondition (int length);
1347  char const * GetCondition () const { return m_condition; }
1352  char * GetCondition () { return m_condition; }
1353 
1354 
1356  void SetFollow (bool f) { m_follow = f; }
1358  bool GetFollow () { return m_follow; }
1359 
1360 };
1361 
1362 
1364 
1372 class BBINFILETK_API TK_Reference : public BBaseOpcodeHandler {
1373  protected:
1374  int m_index;
1377  char * m_condition;
1382  bool m_follow;
1383 
1384  public:
1386  TK_Reference ();
1387  ~TK_Reference();
1388 
1391  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1392 
1393  TK_Status ReadAscii (BStreamFileToolkit & tk);
1394  TK_Status WriteAscii (BStreamFileToolkit & tk);
1395  void Reset ();
1396 
1398  void SetIndex (int index) { m_index = index; }
1400  ID_Key GetIndex () { return m_index; }
1401 
1406  void SetCondition (char const * condition);
1411  void SetCondition (int length);
1415  char const * GetCondition () const { return m_condition; }
1420  char * GetCondition () { return m_condition; }
1421 
1422 
1424  void SetFollow (bool f) { m_follow = f; }
1426  bool GetFollow () { return m_follow; }
1427 };
1428 
1430 
1432 
1440 class BBINFILETK_API TK_Instance : public BBaseOpcodeHandler {
1441  protected:
1447  float m_matrix[16];
1448 
1449  public:
1451  TK_Instance (int from_index=0, int from_variant=0, int to_index=0, int to_variant=0,
1452  int options=0, float const xform[]=0);
1453 
1456  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1457 
1458  TK_Status ReadAscii (BStreamFileToolkit & tk);
1459  TK_Status WriteAscii (BStreamFileToolkit & tk);
1460 
1461  void Reset ();
1462 };
1463 
1465 
1468 class BBINFILETK_API TK_Delete_Object : public BBaseOpcodeHandler {
1469  protected:
1470  int m_index;
1471 
1472  public:
1475 
1478  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1479 
1480  TK_Status ReadAscii (BStreamFileToolkit & tk);
1481  TK_Status WriteAscii (BStreamFileToolkit & tk);
1482 
1484  void SetIndex (int i) { m_index = i; }
1486  int GetIndex () { return m_index; }
1487 };
1488 
1489 
1491 
1492 
1494 
1497 class BBINFILETK_API TK_LOD : public BBaseOpcodeHandler {
1498  protected:
1504  struct vlist_s *m_current_working;
1506 
1507  TK_Status ReadOneList (BStreamFileToolkit & tk);
1508 
1509  public:
1511  TK_LOD () : BBaseOpcodeHandler (TKE_LOD) {
1512  m_num_primitives = 0;
1513  m_primitives = 0;
1514  m_highest_level = 0;
1515  m_levels_allocated = 0;
1516  m_substage = 0;
1517  m_current_working = 0;
1518  m_current_level = 0;
1519  }
1520  ~TK_LOD();
1521 
1524  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1525 
1526  TK_Status ReadAscii (BStreamFileToolkit & tk);
1527  TK_Status WriteAscii (BStreamFileToolkit & tk);
1528 
1529  void Reset ();
1530 };
1532 #define TKLOD_ESCAPE 255
1533 
1534 
1536 
1538 
1543 class BBINFILETK_API TK_Geometry_Attributes : public BBaseOpcodeHandler {
1544  protected:
1545 
1546  public:
1548  TK_Geometry_Attributes () : BBaseOpcodeHandler (TKE_Geometry_Attributes) {}
1549 
1552 
1553  TK_Status ReadAscii (BStreamFileToolkit & tk);
1554  TK_Status WriteAscii (BStreamFileToolkit & tk);
1556 };
1557 
1559 
1569 class BBINFILETK_API TK_Renumber : public BBaseOpcodeHandler {
1570  protected:
1572 
1573  public:
1577  TK_Renumber (unsigned char opcode, ID_Key key = 0) : BBaseOpcodeHandler (opcode), m_key (key) {}
1578 
1581  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1582 
1583  TK_Status ReadAscii (BStreamFileToolkit & tk);
1584  TK_Status WriteAscii (BStreamFileToolkit & tk);
1585 
1586  void SetKey (ID_Key k) { m_key = k; }
1588  ID_Key GetKey () const { return m_key; }
1589 };
1590 
1591 
1593 
1598 class BBINFILETK_API TK_Tag : public BBaseOpcodeHandler {
1599  protected:
1600 
1601  public:
1603  TK_Tag (unsigned char opcode = TKE_Tag) : BBaseOpcodeHandler (opcode) {}
1604 
1607 
1608  TK_Status ReadAscii (BStreamFileToolkit & tk);
1609  TK_Status WriteAscii (BStreamFileToolkit & tk);
1610 
1612  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1613  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1614  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1615 };
1616 
1618 
1625 // Note: unlike most opcode handlers, this one does not contain its own data, it is primarily a
1626 // wrapper around the key <-> index translation table in the toolkit.
1627 class BBINFILETK_API TK_Dictionary : public BBaseOpcodeHandler {
1628  protected:
1629  unsigned char m_format;
1631  unsigned char m_present;
1633 
1634  Internal_Translator::Index_Key_Pair * m_item;
1635 
1636  public:
1638  TK_Dictionary () : BBaseOpcodeHandler (TKE_Dictionary), m_format (0) {}
1639 
1642 
1643  TK_Status ReadAscii (BStreamFileToolkit & tk);
1644  TK_Status WriteAscii (BStreamFileToolkit & tk);
1645 
1647  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1648  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1649  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1650  void Reset ();
1651 };
1652 
1653 
1655 
1662 class BBINFILETK_API TK_Dictionary_Locater : public BBaseOpcodeHandler {
1663  protected:
1664  int m_size;
1665  int m_offset;
1666 
1667  public:
1669  TK_Dictionary_Locater () : BBaseOpcodeHandler (TKE_Dictionary_Locater), m_offset (0) {}
1670 
1673 
1674  TK_Status ReadAscii (BStreamFileToolkit & tk);
1675  TK_Status WriteAscii (BStreamFileToolkit & tk);
1676 
1678  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant=0);
1679  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
1680  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
1681  void Reset ();
1682 
1684  void SetSize (int size) { m_size = size; }
1686  int GetSize () const { return m_size; }
1688  void SetOffset (int offset) { m_offset = offset; }
1690  int GetOffset () const { return m_offset; }
1691 };
1692 
1693 
1695 
1696 
1698 
1703 class BBINFILETK_API TK_Color : public BBaseOpcodeHandler {
1704  protected:
1705  int m_mask;
1706  short m_channels;
1707 
1711  class BBINFILETK_API channel {
1712  public:
1713  float m_rgb[3];
1714  char * m_name;
1715 
1716  channel() : m_name (0) {}
1717  ~channel() { Reset(); }
1718  void Reset () {
1719  if (m_name)
1720  BSTREAM_FREE_ARRAY(m_name, (int)(strlen(m_name) + 1), char);
1721  m_name = 0;
1722  }
1723  };
1724 
1732  float m_gloss;
1733  float m_index;
1735 
1737  void set_channel_rgb (channel & c, float r, float g, float b, int which_channel = -1) {
1738  c.m_rgb[0] = r; c.m_rgb[1] = g; c.m_rgb[2] = b;
1739  if (which_channel != -1) {
1740  m_channels |= (1 << which_channel);
1741  if (which_channel > TKO_Channel_Extended)
1742  m_channels |= (1 << TKO_Channel_Extended);
1743  }
1744  }
1746  void set_channel_name (channel & c, char const * name, int which_channel = -1);
1748  void set_channel_name (channel & c, int length, int which_channel = -1);
1749 
1750  public:
1751  TK_Color ();
1752  ~TK_Color ();
1753 
1754  TK_Status Read (BStreamFileToolkit & tk);
1755  TK_Status Write (BStreamFileToolkit & tk);
1756  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1757 
1758  TK_Status ReadAscii (BStreamFileToolkit & tk);
1759  TK_Status WriteAscii (BStreamFileToolkit & tk);
1760 
1761  void Reset ();
1762 
1764  void SetGeometry (int m) {
1765  m_mask = m & TKO_Geo_All_Colors;
1766  if ((m & TKO_Geo_Extended_Mask) != 0) {
1767  m_mask |= TKO_Geo_Extended;
1768  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1769  m_mask |= TKO_Geo_Extended_Colors;
1770  if ((m & TKO_Geo_Extended2_Mask) != 0)
1771  m_mask |= TKO_Geo_Extended2;
1772  }
1773  }
1774  }
1776  int GetGeometry () const { return m_mask; }
1778  void SetChannels (int c) {
1779  m_channels = (short)c;
1780  if ((c & (((unsigned int)~0) << (TKO_Channel_Extended_Shift))) != 0)
1781  m_channels |= (1 << TKO_Channel_Extended);
1782  }
1784  int GetChannels () const { return (int)m_channels; }
1785 
1787  void SetDiffuse (float r, float g, float b) { set_channel_rgb (m_diffuse, r, g, b, TKO_Channel_Diffuse); }
1789  void SetDiffuse (float const rgb[]) { SetDiffuse (rgb[0], rgb[1], rgb[2]); }
1791  void SetDiffuseName (char const * name) { set_channel_name (m_diffuse, name, TKO_Channel_Diffuse); }
1793  void SetDiffuseName (int length) { set_channel_name (m_diffuse, length, TKO_Channel_Diffuse); }
1795  float const * GetDiffuse () const { return m_diffuse.m_rgb; }
1797  char const * GetDiffuseName () const { return m_diffuse.m_name; }
1799  char * GetDiffuseName () { return m_diffuse.m_name; }
1800 
1802  void SetSpecular (float r, float g, float b) { set_channel_rgb (m_specular, r, g, b, TKO_Channel_Specular);}
1804  void SetSpecular (float const rgb[]) { SetSpecular (rgb[0], rgb[1], rgb[2]); }
1806  void SetSpecularName (char const * name) { set_channel_name (m_specular, name, TKO_Channel_Specular); }
1808  void SetSpecularName (int length) { set_channel_name (m_specular, length, TKO_Channel_Specular);}
1810  float const * GetSpecular () const { return m_specular.m_rgb; }
1812  char const * GetSpecularName () const { return m_specular.m_name; }
1814  char * GetSpecularName () { return m_specular.m_name; }
1815 
1817  void SetMirror (float r, float g, float b) { set_channel_rgb (m_mirror, r, g, b, TKO_Channel_Mirror); }
1819  void SetMirror (float const rgb[]) { SetMirror (rgb[0], rgb[1], rgb[2]); }
1821  void SetMirrorName (char const * name) { set_channel_name (m_mirror, name, TKO_Channel_Mirror); }
1823  void SetMirrorName (int length) { set_channel_name (m_mirror, length, TKO_Channel_Mirror); }
1825  float const * GetMirror () const { return m_mirror.m_rgb; }
1827  char const * GetMirrorName () const { return m_mirror.m_name; }
1829  char * GetMirrorName () { return m_mirror.m_name; }
1830 
1832  void SetTransmission (float r, float g, float b) { set_channel_rgb (m_transmission, r, g, b, TKO_Channel_Transmission); }
1834  void SetTransmission (float const rgb[]) { SetTransmission (rgb[0], rgb[1], rgb[2]); }
1836  void SetTransmissionName (char const * name) { set_channel_name (m_transmission, name, TKO_Channel_Transmission); }
1838  void SetTransmissionName (int length) { set_channel_name (m_transmission, length, TKO_Channel_Transmission); }
1840  float const * GetTransmission () const { return m_transmission.m_rgb; }
1842  char const * GetTransmissionName () const { return m_transmission.m_name; }
1844  char * GetTransmissionName () { return m_transmission.m_name; }
1845 
1847  void SetEmission (float r, float g, float b) { set_channel_rgb (m_emission, r, g, b, TKO_Channel_Emission);}
1849  void SetEmission (float const rgb[]) { SetEmission (rgb[0], rgb[1], rgb[2]); }
1851  void SetEmissionName (char const * name) { set_channel_name (m_emission, name, TKO_Channel_Emission); }
1853  void SetEmissionName (int length) { set_channel_name (m_emission, length, TKO_Channel_Emission);}
1855  float const * GetEmission () const { return m_emission.m_rgb; }
1857  char const * GetEmissionName () const { return m_emission.m_name; }
1859  char * GetEmissionName () { return m_emission.m_name; }
1860 
1862  void SetEnvironmentName (char const * name) { set_channel_name (m_environment, name, TKO_Channel_Environment); }
1864  void SetEnvironmentName (int length) { set_channel_name (m_environment, length, TKO_Channel_Environment); }
1866  char const * GetEnvironmentName () const { return m_environment.m_name; }
1868  char * GetEnvironmentName () { return m_environment.m_name; }
1869 
1871  void SetBumpName (char const * name) { set_channel_name (m_bump, name, TKO_Channel_Bump); }
1873  void SetBumpName (int length) { set_channel_name (m_bump, length, TKO_Channel_Bump); }
1875  char const * GetBumpName () const { return m_bump.m_name; }
1877  char * GetBumpName () { return m_bump.m_name; }
1878 
1880  void SetGloss (float g) { m_gloss = g; m_channels |= (1<<TKO_Channel_Gloss); }
1882  float GetGloss () const { return m_gloss; }
1884  void SetIndex (float i) { m_index = i; m_channels |= (1<<TKO_Channel_Index); }
1886  float GetIndex () const { return m_index; }
1887 };
1888 
1889 
1891 
1896 class BBINFILETK_API TK_Color_RGB : public BBaseOpcodeHandler {
1897  protected:
1898  int m_mask;
1899  float m_rgb[3];
1900 
1901  public:
1903  TK_Color_RGB () : BBaseOpcodeHandler (TKE_Color_RGB), m_mask (0) {}
1904 
1907  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1908 
1909  TK_Status ReadAscii (BStreamFileToolkit & tk);
1910  TK_Status WriteAscii (BStreamFileToolkit & tk);
1911 
1916  void SetGeometry (int m) {
1917  m_mask = m & TKO_Geo_All_Colors;
1918  if ((m & TKO_Geo_Extended_Mask) != 0) {
1919  m_mask |= TKO_Geo_Extended;
1920  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1921  m_mask |= TKO_Geo_Extended_Colors;
1922  if ((m & TKO_Geo_Extended2_Mask) != 0)
1923  m_mask |= TKO_Geo_Extended2;
1924  }
1925  }
1926  }
1931  int GetGeometry () const { return m_mask; }
1932 
1934  void SetRGB (float r, float g, float b) { m_rgb[0] = r; m_rgb[1] = g; m_rgb[2] = b; }
1936  void SetRGB (float const rgb[]) { SetRGB (rgb[0], rgb[1], rgb[2]); }
1938  float const * GetRGB () const { return m_rgb; }
1939 };
1940 
1941 
1943 
1948 class BBINFILETK_API TK_Color_By_Value : public BBaseOpcodeHandler {
1949  protected:
1950  int m_mask;
1951  float m_value[3];
1952  char m_space;
1953 
1954  public:
1956  TK_Color_By_Value () : BBaseOpcodeHandler (TKE_Color_By_Value), m_mask (0) {}
1957 
1960  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
1961 
1962  TK_Status ReadAscii (BStreamFileToolkit & tk);
1963  TK_Status WriteAscii (BStreamFileToolkit & tk);
1964 
1969  void SetGeometry (int m) {
1970  m_mask = m & TKO_Geo_All_Colors;
1971  if ((m & TKO_Geo_Extended_Mask) != 0) {
1972  m_mask |= TKO_Geo_Extended;
1973  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
1974  m_mask |= TKO_Geo_Extended_Colors;
1975  if ((m & TKO_Geo_Extended2_Mask) != 0)
1976  m_mask |= TKO_Geo_Extended2;
1977  }
1978  }
1979  }
1984  int GetGeometry () const { return m_mask; }
1985 
1987  void SetSpace (int s) { m_space = (char)s; }
1989  int GetSpace () const { return (int)m_space; }
1990 
1992  void SetValue (float a, float b, float c) {
1993  m_value[0] = a; m_value[1] = b; m_value[2] = c;
1994  }
1996  void SetValue (float const triple[]) { SetValue (triple[0], triple[1], triple[2]); }
1998  float const * GetValue () const { return m_value; }
1999 };
2000 
2001 
2003 
2009 class BBINFILETK_API TK_Color_By_Index : public BBaseOpcodeHandler {
2010  protected:
2011  int m_mask;
2012  int m_index;
2013 
2014  public:
2016  TK_Color_By_Index (unsigned char opcode) : BBaseOpcodeHandler (opcode), m_mask (0), m_index (-1) {}
2017 
2020  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2021 
2022  TK_Status ReadAscii (BStreamFileToolkit & tk);
2023  TK_Status WriteAscii (BStreamFileToolkit & tk);
2024 
2029  void SetGeometry (int m) {
2030  m_mask = m & TKO_Geo_All_Colors;
2031  if ((m & TKO_Geo_Extended_Mask) != 0) {
2032  m_mask |= TKO_Geo_Extended;
2033  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
2034  m_mask |= TKO_Geo_Extended_Colors;
2035  if ((m & TKO_Geo_Extended2_Mask) != 0)
2036  m_mask |= TKO_Geo_Extended2;
2037  }
2038  }
2039  }
2044  int GetGeometry () const { return m_mask; }
2045 
2047  void SetIndex (int i) { m_index = i; }
2049  int GetIndex () const { return m_index; }
2050 };
2051 
2053 
2058 class BBINFILETK_API TK_Color_By_FIndex : public BBaseOpcodeHandler {
2059  protected:
2060  int m_mask;
2061  float m_index;
2062 
2063  public:
2065  TK_Color_By_FIndex () : BBaseOpcodeHandler (TKE_Color_By_FIndex), m_mask (0), m_index (-1.0f) {}
2066 
2069  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2070 
2071  TK_Status ReadAscii (BStreamFileToolkit & tk);
2072  TK_Status WriteAscii (BStreamFileToolkit & tk);
2073 
2078  void SetGeometry (int m) {
2079  m_mask = m & TKO_Geo_All_Colors;
2080  if ((m & TKO_Geo_Extended_Mask) != 0) {
2081  m_mask |= TKO_Geo_Extended;
2082  if ((m & TKO_Geo_Extended_Colors_Mask) != 0) {
2083  m_mask |= TKO_Geo_Extended_Colors;
2084  if ((m & TKO_Geo_Extended2_Mask) != 0)
2085  m_mask |= TKO_Geo_Extended2;
2086  }
2087  }
2088  }
2093  int GetGeometry () const { return m_mask; }
2094 
2096  void SetIndex (float val) { m_index = val; }
2098  float GetIndex () const { return m_index; }
2099 };
2100 
2101 
2104 
2109 class BBINFILETK_API TK_Color_Map : public BBaseOpcodeHandler {
2110  protected:
2111  int m_length;
2113  float * m_values;
2115  char * m_string;
2116  unsigned char m_format;
2117 
2119  void set_values (int length, float const values[] = 0);
2120 
2121  public:
2124  : 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) {}
2125  ~TK_Color_Map();
2126 
2129  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2130 
2131  TK_Status ReadAscii (BStreamFileToolkit & tk);
2132  TK_Status WriteAscii (BStreamFileToolkit & tk);
2133 
2134  void Reset ();
2135 
2137  void SetFormat (int f) { m_format = (unsigned char)f; }
2139  int GetFormat () const { return (int)m_format; }
2140 
2145  void SetValues (int count, float const values[] = 0) { set_values (count, values); }
2147  float const * GetValues () const { return m_values; }
2149  float * GetValues () { return m_values; }
2151  int GetLength () const { return m_length; }
2152 
2157  void SetString (char const * string);
2162  void SetString (int length);
2166  char const * GetString () const { return m_string; }
2171  char * GetString () { return m_string; }
2172 };
2173 
2175 
2178 
2184 class BBINFILETK_API TK_Callback : public BBaseOpcodeHandler {
2185  protected:
2186  int m_length;
2187  char * m_string;
2190  void set_callback (char const * callback);
2191 
2192  void set_callback (int length);
2193 
2194  public:
2196  TK_Callback () : BBaseOpcodeHandler (TKE_Callback), m_length (0), m_string (0) {}
2197  ~TK_Callback();
2198 
2201  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2202 
2203  TK_Status ReadAscii (BStreamFileToolkit & tk);
2204  TK_Status WriteAscii (BStreamFileToolkit & tk);
2205 
2206  void Reset ();
2207 
2209  void SetCallback (char const * callback) { set_callback (callback); }
2211  void SetCallback (int length) { set_callback (length); }
2213  char const * GetCallback () const { return m_string; }
2215  char * GetCallback () { return m_string; }
2216 };
2217 
2219 
2220 
2221 #if 0
2222 class BBINFILETK_API TK_Radiosity_RayTrace_Options : public BBaseOpcodeHandler {
2223  protected:
2224 
2225  public:
2226  TK_Radiosity_RayTrace_Options () : BBaseOpcodeHandler (TKE_Radiosity_RayTrace_Options) {}
2227  ~TK_Radiosity_RayTrace_Options () {}
2228 
2231 
2232  TK_Status ReadAscii (BStreamFileToolkit & tk);
2233  TK_Status WriteAscii (BStreamFileToolkit & tk);
2234 };
2235 #endif
2236 
2237 
2239 
2245 class BBINFILETK_API TK_Rendering_Options : public BBaseOpcodeHandler {
2246  protected:
2247  int m_mask[3];
2248  int m_value[3];
2249 
2250  unsigned char m_hsr;
2251  unsigned char m_tq;
2252  int m_debug;
2255 
2256  float m_fog_limits[2];
2257 
2260 
2261  unsigned char m_buffer_options_mask;
2262  unsigned char m_buffer_options_value;
2264 
2270  float m_hlr_color[3];
2272  unsigned char m_hlr_weight_units;
2273  unsigned char m_hlr_hsr_algorithm;
2274 
2275  unsigned short m_contour_options;
2276  unsigned short m_isoline_options;
2289  unsigned char * m_isoline_weights_unit;
2290 
2291  unsigned short m_tint_options;
2292  float m_tint_color[3];
2293  float m_tint_range[2];
2295 
2300  float m_ratio[8];
2302  float m_threshold[8];
2305  unsigned char m_clamp;
2306  unsigned char m_num_levels;
2308  float m_tolerance;
2309  float m_bounding[6];
2311  float m_cutoff[8];
2312  unsigned char m_heuristic;
2313  unsigned char m_fallback;
2314 
2328 
2331 
2332  unsigned char m_tessellations;
2334  char m_cylinder[8];
2336  char m_sphere[8];
2337 
2338  float m_gooch_color_range[2];
2342  unsigned short m_transparency_options;
2343 
2344  unsigned char m_cut_geometry;
2345  unsigned char m_cut_geometry_level;
2346  unsigned char m_cut_geometry_match;
2352 
2353  unsigned short m_simple_shadow;
2354  unsigned char m_simple_shadow_blur;
2356  float m_simple_shadow_plane[4];
2357  float m_simple_shadow_light[3];
2358  float m_simple_shadow_color[3];
2359  float m_simple_shadow_opacity;
2360 
2361  unsigned short m_shadow_map;
2362  unsigned short m_shadow_map_resolution;
2363  unsigned char m_shadow_map_samples;
2364 
2365  unsigned short m_simple_reflection;
2366  float m_simple_reflection_plane[4];
2373 
2374  float m_depth_range[2];
2375  float m_screen_range[8];
2376  float m_ambient_up_vector[3];
2377  float m_image_scale[2];
2378  unsigned short m_mask_transform;
2379 
2380  unsigned char m_geometry_options;
2381  float m_dihedral;
2382 
2383  float m_image_tint_color[3];
2384  float m_texture_tint_color[3];
2385  unsigned char m_depth_peeling_layers;
2388 
2393  unsigned char m_display_list_level;
2394  unsigned char m_antialias;
2395 
2396  short m_fbe_mask;
2397  short m_fbe_value;
2398 
2399  int m_extra;
2400 
2401 #if 0
2402  TK_Radiosity_RayTrace_Options *m_rrt;
2403 #endif
2404 
2405  public:
2409 
2412  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
2413 
2414  TK_Status ReadAscii (BStreamFileToolkit & tk);
2415  TK_Status WriteAscii (BStreamFileToolkit & tk);
2416 
2417  void Reset ();
2418 
2420  void SetMask (int m0, int m1=0, int m2=0) {
2421  m_mask[0] = m0;
2422  m_mask[1] = m1;
2423  m_mask[2] = m2;
2424  if (m2 != 0)
2425  m_mask[1] |= TKO_Rendo_Extended;
2426  if (m1 != 0)
2427  m_mask[0] |= TKO_Rendo_Extended;
2428  }
2430  int GetMask (int index=0) const { return m_mask[index]; }
2431 
2433  void SetValue (int v0, int v1=0, int v2=0) { m_value[0] = v0; m_value[1] = v1; m_value[2] = v2; }
2435  int GetValue (int index=0) const { return m_value[index]; }
2436 
2438  void SetHSR (int h) { m_hsr &= 0xF0; m_hsr |= (unsigned char)h & 0x0F; }
2440  int GetHSR () const { return (int)(m_hsr & 0x0F); }
2441 
2443  void SetTransparentHSR (int t) { m_hsr &= 0x0F; m_hsr |= (unsigned char)t << 4; }
2445  int GetTransparentHSR () const { return (int)(m_hsr >> 4); }
2446 
2448  void SetTransparentStyle (int s) { m_transparency_options = (unsigned short)s; }
2450  int GetTransparentStyle () const { return (int)m_transparency_options; }
2451 
2453  void SetTechnology (int t) { m_tq &= 0xF0; m_tq |= (unsigned char)t & 0x0F; }
2455  int GetTechnology () const { return (int)(m_tq & 0x0F); }
2456 
2458  void SetQuantization (int q) { m_tq &= 0x0F; m_tq |= (unsigned char)q << 4; }
2460  int GetQuantization () const { return (int)(m_tq >> 4); }
2461 
2463  void SetDebug (int d) { m_debug = d; }
2465  int GetDebug () const { return m_debug; }
2466 
2468  void SetFaceDisplacement (int d) { m_face_displacement = d; }
2470  int GetFaceDisplacement () const { return m_face_displacement; }
2471 
2473  void SetVertexDisplacement (int d) { m_vertex_displacement = d; }
2475  int GetVertexDisplacement () const { return m_vertex_displacement; }
2476 
2478  void SetGeneralDisplacement (int d) { m_general_displacement = d; }
2480  int GetGeneralDisplacement () const { return m_general_displacement; }
2481 
2483  void SetJoinCutoffAngle (int d) { m_join_cutoff_angle = d; }
2485  int GetJoinCutoffAngle () const { return m_join_cutoff_angle; }
2486 
2488  void SetFogLimits (float n, float f) { m_fog_limits[0] = n; m_fog_limits[1] = f; }
2490  void SetFogLimits (float const l[]) { SetFogLimits (l[0], l[1]); }
2492  float const * GetFogLimits () const { return m_fog_limits; }
2493 
2494 
2496  void SetLockMask (int m) { m_lock.mask = m; }
2498  int GetLockMask () const { return m_lock.mask; }
2499 
2501  void SetLockValue (int v) { m_lock.value = v; }
2503  int GetLockValue () const { return m_lock.value; }
2504 
2509  void SetVisibilityLockMask (int m) { m_lock.visibility_mask = m; }
2514  int GetVisibilityLockMask () const { return m_lock.visibility_mask; }
2515 
2520  void SetVisibilityLockValue (int v) { m_lock.visibility_value = v; }
2525  int GetVisibilityLockValue () const { return m_lock.visibility_value; }
2526 
2527 
2532  void SetColorLockMask (int m) { m_lock.color_mask = m; }
2537  int GetColorLockMask () const { return m_lock.color_mask; }
2538 
2543  void SetColorLockValue (int v) { m_lock.color_value = v; }
2548  int GetColorLockValue () const { return m_lock.color_value; }
2549 
2550 
2555  void SetColorFaceLockMask (int m) { m_lock.color_face_mask = (short)m; }
2560  int GetColorFaceLockMask () const { return m_lock.color_face_mask; }
2561 
2566  void SetColorFaceLockValue (int v) { m_lock.color_face_value = (short)v; }
2571  int GetColorFaceLockValue () const { return m_lock.color_face_value; }
2572 
2573 
2578  void SetColorEdgeLockMask (int m) { m_lock.color_edge_mask = (short)m; }
2583  int GetColorEdgeLockMask () const { return m_lock.color_edge_mask; }
2584 
2589  void SetColorEdgeLockValue (int v) { m_lock.color_edge_value = (short)v; }
2594  int GetColorEdgeLockValue () const { return m_lock.color_edge_value; }
2595 
2596 
2601  void SetColorLineLockMask (int m) { m_lock.color_line_mask = (short)m; }
2606  int GetColorLineLockMask () const { return m_lock.color_line_mask; }
2607 
2612  void SetColorLineLockValue (int v) { m_lock.color_line_value = (short)v; }
2617  int GetColorLineLockValue () const { return m_lock.color_line_value; }
2618 
2619 
2624  void SetColorMarkerLockMask (int m) { m_lock.color_marker_mask = (short)m; }
2629  int GetColorMarkerLockMask () const { return m_lock.color_marker_mask; }
2630 
2635  void SetColorMarkerLockValue (int v) { m_lock.color_marker_value = (short)v; }
2640  int GetColorMarkerLockValue () const { return m_lock.color_marker_value; }
2641 
2642 
2647  void SetColorTextLockMask (int m) { m_lock.color_text_mask = (short)m; }
2652  int GetColorTextLockMask () const { return m_lock.color_text_mask; }
2653 
2658  void SetColorTextLockValue (int v) { m_lock.color_text_value = (short)v; }
2663  int GetColorTextLockValue () const { return m_lock.color_text_value; }
2664 
2665 
2670  void SetColorWindowLockMask (int m) { m_lock.color_window_mask = (short)m; }
2675  int GetColorWindowLockMask () const { return m_lock.color_window_mask; }
2676 
2681  void SetColorWindowLockValue (int v) { m_lock.color_window_value = (short)v; }
2686  int GetColorWindowLockValue () const { return m_lock.color_window_value; }
2687 
2688 
2693  void SetColorFaceContrastLockMask (int m) { m_lock.color_face_contrast_mask = (short)m; }
2698  int GetColorFaceContrastLockMask () const { return m_lock.color_face_contrast_mask; }
2699 
2704  void SetColorFaceContrastLockValue (int v) { m_lock.color_face_contrast_value = (short)v; }
2709  int GetColorFaceContrastLockValue () const { return m_lock.color_face_contrast_value; }
2710 
2711 
2716  void SetColorWindowContrastLockMask (int m) { m_lock.color_window_contrast_mask = (short)m; }
2721  int GetColorWindowContrastLockMask () const { return m_lock.color_window_contrast_mask; }
2722 
2727  void SetColorWindowContrastLockValue (int v) { m_lock.color_window_contrast_value = (short)v; }
2732  int GetColorWindowContrastLockValue () const { return m_lock.color_window_contrast_value; }
2733 
2734 
2739  void SetColorBackLockMask (int m) { m_lock.color_back_mask = (short)m; }
2744  int GetColorBackLockMask () const { return m_lock.color_back_mask; }
2745 
2750  void SetColorBackLockValue (int v) { m_lock.color_back_value = (short)v; }
2755  int GetColorBackLockValue () const { return m_lock.color_back_value; }
2756 
2757 
2762  void SetColorVertexLockMask (int m) { m_lock.color_vertex_mask = (short)m; }
2767  int GetColorVertexLockMask () const { return m_lock.color_vertex_mask; }
2768 
2773  void SetColorVertexLockValue (int v) { m_lock.color_vertex_value = (short)v; }
2778  int GetColorVertexLockValue () const { return m_lock.color_vertex_value; }
2779 
2780 
2785  void SetColorEdgeContrastLockMask (int m) { m_lock.color_edge_contrast_mask = (short)m; }
2790  int GetColorEdgeContrastLockMask () const { return m_lock.color_edge_contrast_mask; }
2791 
2796  void SetColorEdgeContrastLockValue (int v) { m_lock.color_edge_contrast_value = (short)v; }
2801  int GetColorEdgeContrastLockValue () const { return m_lock.color_edge_contrast_value; }
2802 
2803 
2808  void SetColorLineContrastLockMask (int m) { m_lock.color_line_contrast_mask = (short)m; }
2813  int GetColorLineContrastLockMask () const { return m_lock.color_line_contrast_mask; }
2814 
2819  void SetColorLineContrastLockValue (int v) { m_lock.color_line_contrast_value = (short)v; }
2824  int GetColorLineContrastLockValue () const { return m_lock.color_line_contrast_value; }
2825 
2826 
2831  void SetColorMarkerContrastLockMask (int m) { m_lock.color_marker_contrast_mask = (short)m; }
2836  int GetColorMarkerContrastLockMask () const { return m_lock.color_marker_contrast_mask; }
2837 
2842  void SetColorMarkerContrastLockValue (int v) { m_lock.color_marker_contrast_value = (short)v; }
2847  int GetColorMarkerContrastLockValue () const { return m_lock.color_marker_contrast_value; }
2848 
2849 
2854  void SetColorVertexContrastLockMask (int m) { m_lock.color_vertex_contrast_mask = (short)m; }
2859  int GetColorVertexContrastLockMask () const { return m_lock.color_vertex_contrast_mask; }
2860 
2865  void SetColorVertexContrastLockValue (int v) { m_lock.color_vertex_contrast_value = (short)v; }
2870  int GetColorVertexContrastLockValue () const { return m_lock.color_vertex_contrast_value; }
2871 
2872 
2877  void SetColorTextContrastLockMask (int m) { m_lock.color_text_contrast_mask = (short)m; }
2882  int GetColorTextContrastLockMask () const { return m_lock.color_text_contrast_mask; }
2883 
2888  void SetColorTextContrastLockValue (int v) { m_lock.color_text_contrast_value = (short)v; }
2893  int GetColorTextContrastLockValue () const { return m_lock.color_text_contrast_value; }
2894 
2895 
2896 
2897 
2899  void SetForcedLockMask (int m) { m_forced.mask = m; }
2901  int GetForcedLockMask () const { return m_forced.mask; }
2902 
2904  void SetForcedLockValue (int v) { m_forced.value = v; }
2906  int GetForcedLockValue () const { return m_forced.value; }
2907 
2912  void SetVisibilityForcedLockMask (int m) { m_forced.visibility_mask = m; }
2917  int GetVisibilityForcedLockMask () const { return m_forced.visibility_mask; }
2918 
2923  void SetVisibilityForcedLockValue (int v) { m_forced.visibility_value = v; }
2928  int GetVisibilityForcedLockValue () const { return m_forced.visibility_value; }
2929 
2930 
2935  void SetColorForcedLockMask (int m) { m_forced.color_mask = m; }
2940  int GetColorForcedLockMask () const { return m_forced.color_mask; }
2941 
2946  void SetColorForcedLockValue (int v) { m_forced.color_value = v; }
2951  int GetColorForcedLockValue () const { return m_forced.color_value; }
2952 
2953 
2958  void SetColorFaceForcedLockMask (int m) { m_forced.color_face_mask = (short)m; }
2963  int GetColorFaceForcedLockMask () const { return m_forced.color_face_mask; }
2964 
2969  void SetColorFaceForcedLockValue (int v) { m_forced.color_face_value = (short)v; }
2974  int GetColorFaceForcedLockValue () const { return m_forced.color_face_value; }
2975 
2976 
2981  void SetColorEdgeForcedLockMask (int m) { m_forced.color_edge_mask = (short)m; }
2986  int GetColorEdgeForcedLockMask () const { return m_forced.color_edge_mask; }
2987 
2992  void SetColorEdgeForcedLockValue (int v) { m_forced.color_edge_value = (short)v; }
2997  int GetColorEdgeForcedLockValue () const { return m_forced.color_edge_value; }
2998 
2999 
3004  void SetColorLineForcedLockMask (int m) { m_forced.color_line_mask = (short)m; }
3009  int GetColorLineForcedLockMask () const { return m_forced.color_line_mask; }
3010 
3015  void SetColorLineForcedLockValue (int v) { m_forced.color_line_value = (short)v; }
3020  int GetColorLineForcedLockValue () const { return m_forced.color_line_value; }
3021 
3022 
3027  void SetColorMarkerForcedLockMask (int m) { m_forced.color_marker_mask = (short)m; }
3032  int GetColorMarkerForcedLockMask () const { return m_forced.color_marker_mask; }
3033 
3038  void SetColorMarkerForcedLockValue (int v) { m_forced.color_marker_value = (short)v; }
3043  int GetColorMarkerForcedLockValue () const { return m_forced.color_marker_value; }
3044 
3045 
3050  void SetColorTextForcedLockMask (int m) { m_forced.color_text_mask = (short)m; }
3055  int GetColorTextForcedLockMask () const { return m_forced.color_text_mask; }
3056 
3061  void SetColorTextForcedLockValue (int v) { m_forced.color_text_value = (short)v; }
3066  int GetColorTextForcedLockValue () const { return m_forced.color_text_value; }
3067 
3068 
3073  void SetColorWindowForcedLockMask (int m) { m_forced.color_window_mask = (short)m; }
3078  int GetColorWindowForcedLockMask () const { return m_forced.color_window_mask; }
3079 
3084  void SetColorWindowForcedLockValue (int v) { m_forced.color_window_value = (short)v; }
3089  int GetColorWindowForcedLockValue () const { return m_forced.color_window_value; }
3090 
3091 
3096  void SetColorFaceContrastForcedLockMask (int m) { m_forced.color_face_contrast_mask = (short)m; }
3101  int GetColorFaceContrastForcedLockMask () const { return m_forced.color_face_contrast_mask; }
3102 
3107  void SetColorFaceContrastForcedLockValue (int v) { m_forced.color_face_contrast_value = (short)v; }
3112  int GetColorFaceContrastForcedLockValue () const { return m_forced.color_face_contrast_value; }
3113 
3114 
3119  void SetColorWindowContrastForcedLockMask (int m) { m_forced.color_window_contrast_mask = (short)m; }
3124  int GetColorWindowContrastForcedLockMask () const { return m_forced.color_window_contrast_mask; }
3125 
3130  void SetColorWindowContrastForcedLockValue (int v) { m_forced.color_window_contrast_value = (short)v; }
3135  int GetColorWindowContrastForcedLockValue () const { return m_forced.color_window_contrast_value; }
3136 
3137 
3142  void SetColorBackForcedLockMask (int m) { m_forced.color_back_mask = (short)m; }
3147  int GetColorBackForcedLockMask () const { return m_forced.color_back_mask; }
3148 
3153  void SetColorBackForcedLockValue (int v) { m_forced.color_back_value = (short)v; }
3158  int GetColorBackForcedLockValue () const { return m_forced.color_back_value; }
3159 
3160 
3165  void SetColorVertexForcedLockMask (int m) { m_forced.color_vertex_mask = (short)m; }
3170  int GetColorVertexForcedLockMask () const { return m_forced.color_vertex_mask; }
3171 
3176  void SetColorVertexForcedLockValue (int v) { m_forced.color_vertex_value = (short)v; }
3181  int GetColorVertexForcedLockValue () const { return m_forced.color_vertex_value; }
3182 
3183 
3188  void SetColorEdgeContrastForcedLockMask (int m) { m_forced.color_edge_contrast_mask = (short)m; }
3193  int GetColorEdgeContrastForcedLockMask () const { return m_forced.color_edge_contrast_mask; }
3194 
3199  void SetColorEdgeContrastForcedLockValue (int v) { m_forced.color_edge_contrast_value = (short)v; }
3204  int GetColorEdgeContrastForcedLockValue () const { return m_forced.color_edge_contrast_value; }
3205 
3206 
3211  void SetColorLineContrastForcedLockMask (int m) { m_forced.color_line_contrast_mask = (short)m; }
3216  int GetColorLineContrastForcedLockMask () const { return m_forced.color_line_contrast_mask; }
3217 
3222  void SetColorLineContrastForcedLockValue (int v) { m_forced.color_line_contrast_value = (short)v; }
3227  int GetColorLineContrastForcedLockValue () const { return m_forced.color_line_contrast_value; }
3228 
3229 
3234  void SetColorMarkerContrastForcedLockMask (int m) { m_forced.color_marker_contrast_mask = (short)m; }
3239  int GetColorMarkerContrastForcedLockMask () const { return m_forced.color_marker_contrast_mask; }
3240 
3245  void SetColorMarkerContrastForcedLockValue (int v) { m_forced.color_marker_contrast_value = (short)v; }
3250  int GetColorMarkerContrastForcedLockValue () const { return m_forced.color_marker_contrast_value; }
3251 
3252 
3257  void SetColorVertexContrastForcedLockMask (int m) { m_forced.color_vertex_contrast_mask = (short)m; }
3262  int GetColorVertexContrastForcedLockMask () const { return m_forced.color_vertex_contrast_mask; }
3263 
3268  void SetColorVertexContrastForcedLockValue (int v) { m_forced.color_vertex_contrast_value = (short)v; }
3273  int GetColorVertexContrastForcedLockValue () const { return m_forced.color_vertex_contrast_value; }
3274 
3275 
3280  void SetColorTextContrastForcedLockMask (int m) { m_forced.color_text_contrast_mask = (short)m; }
3285  int GetColorTextContrastForcedLockMask () const { return m_forced.color_text_contrast_mask; }
3286 
3291  void SetColorTextContrastForcedLockValue (int v) { m_forced.color_text_contrast_value = (short)v; }
3296  int GetColorTextContrastForcedLockValue () const { return m_forced.color_text_contrast_value; }
3297 
3298 
3299 
3300 
3302  void SetBufferOptionsMask (int v) { m_buffer_options_mask = (unsigned char)v; }
3304  int GetBufferOptionsMask () const { return m_buffer_options_mask; }
3306  void SetBufferOptionsValue (int v) { m_buffer_options_value = (unsigned char) v; }
3308  int GetBufferOptionsValue () const { return m_buffer_options_value; }
3310  void SetBufferSizeLimit (int l) { m_buffer_size_limit = l; }
3312  int GetBufferSizeLimit () const { return m_buffer_size_limit; }
3313 
3314 
3316  void SetStereoSeparation (float s) { m_stereo_separation = s; }
3318  float GetStereoSeparation () const { return m_stereo_separation; }
3320  void SetStereoDistance (float d) { m_stereo_distance = d; }
3322  float GetStereoDistance () const { return m_stereo_distance; }
3323 
3324 
3326  void SetHlrOptions (int o) {
3327  m_hlr_options = o;
3328  if ((o & TKO_Hidden_Line_Extended_Mask) != 0) {
3329  m_hlr_options |= TKO_Hidden_Line_Extended;
3330  if ((o & TKO_Hidden_Line_Extended2_Mask) != 0)
3331  m_hlr_options |= TKO_Hidden_Line_Extended2;
3332  }
3333  }
3335  int GetHlrOptions () const { return m_hlr_options; }
3337  void SetHlrDimFactor (float d) { m_hlr_dim_factor = d; }
3339  float GetHlrDimFactor () const { return m_hlr_dim_factor; }
3341  void SetHlrFaceDisplacement (float d) { m_hlr_face_displacement = d; }
3343  float GetHlrFaceDisplacement () const { return m_hlr_face_displacement; }
3345  void SetHlrLinePattern (int p) { m_hlr_line_pattern = p; }
3347  int GetHlrLinePattern () const { return m_hlr_line_pattern; }
3349  void SetHlrFaceSortingAlgorithm (int a) { m_hlr_hsr_algorithm = (unsigned char)a; }
3351  float GetHlrFaceSortingAlgorithm () const { return m_hlr_hsr_algorithm; }
3352 
3353 
3355  void SetNURBSOptionsMask (int m) {
3356  m_nurbs_options_mask = m;
3357  if ((m & TKO_NURBS_Extended_Mask) != 0)
3358  m_nurbs_options_mask |= TKO_NURBS_Extended;
3359  }
3361  int GetNURBSOptionsMask () const { return m_nurbs_options_mask; }
3363  void SetNURBSOptionsValue (int v) { m_nurbs_options_value = v; }
3365  int GetNURBSOptionsValue () const { return m_nurbs_options_value; }
3367  void SetNURBSCurveBudget (int b) { m_curve_budget = b; }
3369  int GetNURBSCurveBudget () const { return m_curve_budget; }
3371  void SetNURBSCurveContinuedBudget (int b) { m_curve_continued_budget = b; }
3373  int GetNURBSCurveContinuedBudget () const { return m_curve_continued_budget; }
3375  void SetNURBSSurfaceBudget (int b) { m_surface_budget = b; }
3377  int GetNURBSSurfaceBudget () const { return m_surface_budget; }
3379  void SetNURBSSurfaceTrimBudget (int b) { m_surface_trim_budget = b; }
3381  int GetNURBSSurfaceTrimBudget () const { return m_surface_trim_budget; }
3382 
3383 
3385  void SetLodOptionsMask (int v) { m_lod_options_mask = v; }
3387  int GetLodOptionsMask () const { return m_lod_options_mask; }
3389  void SetLodOptionsValue (int v) { m_lod_options_value = v; }
3391  int GetLodOptionsValue () const { return m_lod_options_value; }
3393  void SetLodAlgorithm (int v) { m_lod_algorithm = (char)v; }
3395  int GetLodAlgorithm () const { return m_lod_algorithm; }
3397  void SetLodMinimumTriangleCount (int v) { m_min_triangle_count = v; }
3399  int GetLodMinimumTriangleCount () const { return m_min_triangle_count; }
3401  void SetLodNumLevels (int v) { m_num_levels = (unsigned char)v; }
3403  int GetLodNumLevels () const { return m_num_levels; }
3405  void SetLodClamp (int v) { m_clamp = (unsigned char)v; }
3407  int GetLodClamp () const { return m_clamp; }
3409  void SetLodMaxDegree (int v) { m_max_degree = v; }
3411  int GetLodMaxDegree () const { return m_max_degree; }
3413  void SetLodTolerance (float v) { m_tolerance = v; }
3415  float GetLodTolerance () const { return m_tolerance; }
3417  void SetLodFallback (int v) { m_fallback = (char)v; }
3419  int GetLodFallback () const { return m_fallback; }
3420 
3422  void SetLodBounding (float x1, float y1, float z1, float x2, float y2, float z2) {
3423  m_bounding[0] = x1; m_bounding[1] = y1; m_bounding[2] = z1;
3424  m_bounding[3] = x2; m_bounding[4] = y2; m_bounding[5] = z2;
3425  }
3427  void SetLodBounding (float const s[], float const e[]) {
3428  SetLodBounding (s[0], s[1], s[2], e[0], e[1], e[2]);
3429  }
3431  void SetLodBounding (float const p[]) { SetLodBounding (&p[0], &p[3]); }
3433  float const * GetLodBounding () const { return m_bounding; }
3434 
3436  void SetLodRatio (float r) { m_num_ratios = 1; m_ratio[0] = r; }
3438  void SetLodRatios (int c, float const r[] = 0) {
3439  m_num_ratios = (char)c;
3440  if (r != 0) {
3441  int i;
3442  for (i=0; i<c; ++i)
3443  m_ratio[i] = r[i];
3444  }
3445  }
3447  int GetLodNumRatios () const { return m_num_ratios; }
3449  float const * GetLodRatios () const { return m_ratio; }
3451  float * GetLodRatios () { return m_ratio; }
3452 
3454  void SetLodThresholdType (int v) { m_threshold_type = (char)v; }
3456  int GetLodThresholdType () const { return m_threshold_type; }
3458  void SetLodThreshold (float r) { m_num_thresholds = 1; m_threshold[0] = r; }
3460  void SetLodThresholds (int c, float const r[] = 0) {
3461  m_num_thresholds = (char)c;
3462  if (r != 0) {
3463  int i;
3464  for (i=0; i<c; ++i)
3465  m_threshold[i] = r[i];
3466  }
3467  }
3469  int GetLodNumThresholds () const { return m_num_thresholds; }
3471  float const * GetLodThresholds () const { return m_threshold; }
3473  float * GetLodThresholds () { return m_threshold; }
3474 
3476  void SetLodCutoff (float r) { m_num_cutoffs = 1; m_cutoff[0] = r; }
3478  void SetLodCutoffs (int c, float const r[] = 0) {
3479  m_num_cutoffs = (char)c;
3480  if (r != 0) {
3481  int i;
3482  for (i=0; i<c; ++i)
3483  m_cutoff[i] = r[i];
3484  }
3485  }
3487  int GetLodNumCutoffs () const { return m_num_cutoffs; }
3489  float const * GetLodCutoffs () const { return m_cutoff; }
3491  float * GetLodCutoffs () { return m_cutoff; }
3492 
3493 
3495  void SetTessellationMask (int m) { m_tessellations = (unsigned char)m; }
3497  int GetTessellationMask () const { return m_tessellations; }
3499  void SetCylinderTessellation (int n) { m_num_cylinder = (char)1; m_cylinder[0] = (char)n; }
3501  void SetCylinderTessellations (int c, char const * n = 0) {
3502  m_num_cylinder = (char)c;
3503  if (n != 0) {
3504  int i;
3505  for (i=0; i<c; ++i)
3506  m_cylinder[i] = n[i];
3507  }
3508  }
3510  int GetNumCylinderTessellations () const { return m_num_cylinder; }
3512  char const * GetCylinderTessellations () const { return m_cylinder; }
3514  char * GetCylinderTessellations () { return m_cylinder; }
3516  void SetSphereTessellation (int n) { m_num_sphere = (char)1; m_sphere[0] = (char)n; }
3518  void SetSphereTessellations (int c, char const * n = 0) {
3519  m_num_sphere = (char)c;
3520  if (n != 0) {
3521  int i;
3522  for (i=0; i<c; ++i)
3523  m_sphere[i] = n[i];
3524  }
3525  }
3527  int GetNumSphereTessellations () const { return m_num_sphere; }
3529  char const * GetSphereTessellations () const { return m_sphere; }
3531  char * GetSphereTessellations () { return m_sphere; }
3532 
3534  void SetGeometryOptionsMask (int m) { m_geometry_options = (unsigned char)m; }
3536  int GetGeometryOptionsMask () const { return m_geometry_options; }
3537 
3539  void SetHardEdgeAngle (int m) { m_dihedral = (unsigned char)m; }
3541  float GetHardEdgeAngle () const { return m_dihedral; }
3542 
3544  void SetMaskTransform (int m) { m_mask_transform = (unsigned short)m; }
3546  int GetMaskTransform () const { return (int)m_mask_transform; }
3547 
3548 
3550  void SetCutGeometry (int m) { m_cut_geometry = (unsigned char)m; }
3552  int GetCutGeometry () const { return (int)m_cut_geometry; }
3553 
3555  void SetCutGeometryLevel (int m) { m_cut_geometry_level = (unsigned char)m; }
3557  int GetCutGeometryLevel () const { return (int)m_cut_geometry_level; }
3558 
3560  void SetCutGeometryColorMatch (int m) { m_cut_geometry_match = (unsigned char)m; }
3562  int GetCutGeometryColorMatch () const { return (int)m_cut_geometry_match; }
3563 
3565  void SetCutGeometryTolerance (float m) { m_cut_geometry_tolerance = m; }
3567  float GetCutGeometryTolerance () const { return m_cut_geometry_tolerance; }
3568 
3570  void SetCutGeometryEdgeWeight (float value, int units = TKO_Generic_Size_Unspecified) {
3571  m_cut_geometry_edge_weight = (value > 0.0f) ? value : -1.0f;
3572  m_cut_geometry_edge_weight_units = (value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
3573  }
3575  float GetCutGeometryEdgeWeight () const { return m_cut_geometry_edge_weight; }
3577  int GetCutGeometryEdgeWeightUnits () const { return m_cut_geometry_edge_weight_units; }
3578 
3580  void SetCutGeometryEdgePattern (char const * pattern);
3582  void SetCutGeometryEdgePattern (int length);
3584  char const * GetCutGeometryEdgePattern () const { return m_cut_geometry_edge_pattern; }
3586  char * GetCutGeometryEdgePattern () { return m_cut_geometry_edge_pattern; }
3587 
3588 
3590  void SetDisplayListLevel (int m) { m_display_list_level = (unsigned char)m; }
3592  int GetDisplayListLevel () const { return (int)m_display_list_level; }
3593 
3595  void SetSimpleShadow (int m) {
3596  m_simple_shadow = (unsigned short)m;
3597  if ((m & TKO_Simple_Shadow_Extended_Mask) != 0)
3598  m_simple_shadow |= TKO_Simple_Shadow_Extended;
3599  }
3601  int GetSimpleShadow () const { return (int)m_simple_shadow; }
3602 
3604  void SetSimpleShadowBlur (int m) { m_simple_shadow_blur = (unsigned char)m; }
3606  int GetSimpleShadowBlur () const { return (int)m_simple_shadow_blur; }
3607 
3609  void SetSimpleShadowResolution (int m) { m_simple_shadow_resolution = (unsigned short)m; }
3611  int GetSimpleShadowResolution () const { return (int)m_simple_shadow_resolution; }
3612 
3614  void SetSimpleShadowLight (float x, float y, float z) {
3615  m_simple_shadow_light[0] = x;
3616  m_simple_shadow_light[1] = y;
3617  m_simple_shadow_light[2] = z;
3618  }
3620  void SetSimpleShadowLight (float const l[]) { SetSimpleShadowLight (l[0], l[1], l[2]); }
3622  float const * getSimpleShadowLight () const { return m_simple_shadow_light; }
3623 
3625  void SetSimpleShadowPlane (float a, float b, float c, float d) {
3626  m_simple_shadow_plane[0] = a;
3627  m_simple_shadow_plane[1] = b;
3628  m_simple_shadow_plane[2] = c;
3629  m_simple_shadow_plane[3] = d;
3630  }
3632  void SetSimpleShadowPlane (float const p[]) { SetSimpleShadowPlane (p[0], p[1], p[2], p[3]); }
3634  float const * GetSimpleShadowPlane () const { return m_simple_shadow_plane; }
3635 
3637  void SetSimpleShadowColor (float r, float g, float b)
3638  { m_simple_shadow_color[0] = r; m_simple_shadow_color[1] = g; m_simple_shadow_color[2] = b; }
3640  void SetSimpleShadowColor (float const rgb[]) { SetSimpleShadowColor (rgb[0], rgb[1], rgb[2]); }
3642  float const * GetSimpleShadowColor () const { return m_simple_shadow_color; }
3643 
3645  void SetSimpleShadowOpacity (float o) { m_simple_shadow_opacity = o; }
3647  float GetSimpleShadowOpacity () const { return m_simple_shadow_opacity; }
3648 
3649 
3651  void SetShadowMap (int m) { m_shadow_map = (unsigned char)m; }
3653  int GetShadowMap () const { return (int)m_shadow_map; }
3654 
3656  void SetShadowMapResolution (int m) { m_shadow_map_resolution = (unsigned short)m; }
3658  int GetShadowMapResolution () const { return (int)m_shadow_map_resolution; }
3659 
3661  void SetShadowMapSamples (int m) { m_shadow_map_samples = (unsigned char)m; }
3663  int GetShadowMapSamples () const { return (int)m_shadow_map_samples; }
3664 
3665 
3667  void SetSimpleReflection (int m) { m_simple_reflection = (unsigned short)m; }
3669  int GetSimpleReflection () const { return (int)m_simple_reflection; }
3670 
3672  void SetSimpleReflectionPlane (float a, float b, float c, float d) {
3673  m_simple_reflection_plane[0] = a;
3674  m_simple_reflection_plane[1] = b;
3675  m_simple_reflection_plane[2] = c;
3676  m_simple_reflection_plane[3] = d;
3677  }
3679  void SetSimpleReflectionPlane (float const p[]) { SetSimpleReflectionPlane (p[0], p[1], p[2], p[3]); }
3681  float const * GetSimpleReflectionPlane () const { return m_simple_reflection_plane; }
3682 
3684  void SetSimpleReflectionOpacity (float o) { m_simple_reflection_opacity = o; }
3686  float GetSimpleReflectionOpacity () const { return m_simple_reflection_opacity; }
3687 
3689  void SetSimpleReflectionVisibilityMask (int m) { m_simple_reflection_visibility_mask = m; }
3691  int GetSimpleReflectionVisibilityValue () const { return m_simple_reflection_visibility_value; }
3692 
3693 
3695  void SetDepthRange (float n, float f) { m_depth_range[0] = n; m_depth_range[1] = f; }
3697  void SetDepthRange (float const l[]) { SetDepthRange (l[0], l[1]); }
3699  float const * GetDepthRange () const { return m_depth_range; }
3700 
3701 
3703  void SetScreenRange (float l, float r, float b, float t,
3704  float lo = 0, float ro = 0, float bo = 0, float to = 0)
3705  { m_screen_range[0] = l; m_screen_range[1] = r; m_screen_range[2] = b; m_screen_range[3] = t;
3706  m_screen_range[4] = lo; m_screen_range[5] = ro; m_screen_range[6] = bo; m_screen_range[7] = to; }
3708  void SetScreenRange (float const l[]) { SetScreenRange (l[0], l[1], l[2], l[3]); }
3710  void SetScreenRange (float const l[], float const o[])
3711  { SetScreenRange (l[0], l[1], l[2], l[3], o[0], o[1], o[2], o[3]); }
3713  void SetScreenRange (int n, float const l[])
3714  { if (n == 8) SetScreenRange (l[0], l[1], l[2], l[4], l[5], l[6], l[7], l[8]);
3715  else SetScreenRange (l[0], l[1], l[2], l[3]);
3716  }
3718  float const * GetScreenRange () const { return m_screen_range; }
3719 
3723  void SetAmbientUpVector (float x, float y, float z)
3724  { m_ambient_up_vector[0] = x; m_ambient_up_vector[1] = y; m_ambient_up_vector[2] = z; }
3726  void SetAmbientUpVector (float const v[]) { SetAmbientUpVector (v[0], v[1], v[2]); }
3728  float const * GetAmbientUpVector () const { return m_ambient_up_vector; }
3729 
3731  void SetImageScale (float x, float y) { m_image_scale[0] = x; m_image_scale[1] = y; }
3733  void SetImageScale (float const s[]) { SetImageScale (s[0], s[1]); }
3735  float const * GetImageScale () const { return m_image_scale; }
3736 
3737 
3739  void SetImageTintColor (float r, float g, float b)
3740  { m_image_tint_color[0] = r; m_image_tint_color[1] = g; m_image_tint_color[2] = b; }
3742  void SetImageTintColor (float const rgb[]) { SetImageTintColor (rgb[0], rgb[1], rgb[2]); }
3744  float const * GetImageTintColor () const { return m_image_tint_color; }
3745 
3747  void SetDiffuseTextureTintColor (float r, float g, float b)
3748  { m_texture_tint_color[0] = r; m_texture_tint_color[1] = g; m_texture_tint_color[2] = b; }
3750  void SetDiffuseTextureTintColor (float const rgb[]) { SetDiffuseTextureTintColor (rgb[0], rgb[1], rgb[2]); }
3752  float const * GetDiffuseTextureTintColor () const { return m_texture_tint_color; }
3753 
3755  void SetAntiAlias (int m) { m_antialias = (unsigned char)m; }
3757  int GetAntiAlias () const { return (int)m_antialias; }
3758 
3760  void SetVertexDecimation (float f) { m_vertex_decimation = f; }
3762  float GetVertexDecimation () const { return m_vertex_decimation; }
3763 };
3764 
3766 
3767 
3769 
3775 class BBINFILETK_API TK_Heuristics : public BBaseOpcodeHandler {
3776  protected:
3777  int m_mask;
3778  int m_value;
3779 
3783 
3784  unsigned char m_extras;
3787  unsigned short m_selection_bias;
3794  float m_vector[3];
3797  float m_view_volume[6];
3798 
3799  unsigned char m_ordered_weights_mask;
3800  float m_ordered_weights[TKO_Heur_Order_Count];
3801  unsigned char m_selection_level;
3802  unsigned char m_model_type;
3803 
3804  public:
3806  TK_Heuristics () : BBaseOpcodeHandler (TKE_Heuristics),
3807  m_mask (0), m_value (0), m_culling(0), m_selection_culling(0), m_selection_bias(0),
3808  m_pixel_threshold (0), m_maximum_extent (0), m_maximum_extent_mode(0) {}
3809  ~TK_Heuristics ();
3810 
3813  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
3814 
3815  TK_Status ReadAscii (BStreamFileToolkit & tk);
3816  TK_Status WriteAscii (BStreamFileToolkit & tk);
3817 
3819  void SetMask (int m) {
3820  m_mask = m;
3821  if ((m & TKO_Heuristic_Extended_Mask) != 0)
3822  m_mask |= TKO_Heuristic_Extended;
3823  }
3825  int GetMask () const { return m_mask; }
3826 
3828  void SetValue (int v) { m_value = v; }
3830  int GetValue () const { return m_value; }
3831 
3833  void SetRelatedSelectionLimit (int r) { m_related = r; }
3835  int GetRelatedSelectionLimit () const { return m_related; }
3836 
3838  void SetInternalSelectionLimit (int i) { m_internal_shell = m_internal_polyline = i; }
3840  int GetInternalSelectionLimit () const { return m_internal_shell; }
3841 
3843  void SetInternalShellSelectionLimit (int i) { m_internal_shell = i; }
3845  int GetInternalShellSelectionLimit () const { return m_internal_shell; }
3846 
3848  void SetInternalPolylineSelectionLimit (int i) { m_internal_polyline = i; }
3850  int GetInternalPolylineSelectionLimit () const { return m_internal_polyline; }
3851 
3853  void SetExtras (int e) { m_extras = (unsigned char)e; }
3855  int GetExtras () const { return (int)m_extras; }
3856 
3858  void SetCulling (int c) { m_culling = (unsigned short)c; }
3860  int GetCulling () const { return (int)m_culling; }
3862  void SetSelectionCulling (int c) { m_selection_culling = (unsigned short)c; }
3864  int GetSelectionCulling () const { return (int)m_selection_culling; }
3866  void SetSelectionBias (int c) { m_selection_bias = (unsigned short)c; }
3868  int GetSelectionBias () const { return (int)m_selection_bias; }
3870  void SetPixelThreshold (int c) { m_pixel_threshold = c; }
3872  int GetPixelThreshold () const { return m_pixel_threshold; }
3874  void SetMaximumExtent (int c) { m_maximum_extent = c; }
3876  int GetMaximumExtent () const { return m_maximum_extent; }
3878  int GetMaximumExtentMode () const { return m_maximum_extent_mode; }
3880  void SetMaximumExtentMode (int c) { m_maximum_extent_mode = c; }
3882  int GetMaximumExtentLevel () const { return m_maximum_extent_level; }
3884  void SetMaximumExtentLevel (int c) { m_maximum_extent_level = (unsigned char)c; }
3886  void SetHardExtent (int c) { m_hard_extent = c; }
3888  int GetHardExtent () const { return m_hard_extent; }
3890  float const * GetVector () const { return m_vector; }
3892  void SetVector (float x, float y, float z) {
3893  m_vector[0] = x;
3894  m_vector[1] = y;
3895  m_vector[2] = z;
3896  }
3898  void SetVector (float const v[]) { SetVector(v[0], v[1], v[2]); }
3900  float GetVectorTolerance () const { return m_vector_tolerance; }
3902  void SetVectorTolerance (float tol) { m_vector_tolerance = tol; }
3903 
3904  void SetMaxDistance (float m) { m_max_distance = m; }
3906  float GetMaxDistance () const { return m_max_distance; }
3907 
3909  float const * GetViewVolume () const { return m_view_volume; }
3911  void SetViewVolume (float ax, float ay, float az, float bx, float by, float bz) {
3912  m_view_volume[0] = ax;
3913  m_view_volume[1] = ay;
3914  m_view_volume[2] = az;
3915  m_view_volume[3] = bx;
3916  m_view_volume[4] = by;
3917  m_view_volume[5] = bz;
3918  }
3920  void SetViewVolume (float const v[]) { SetViewVolume(v[0], v[1], v[2], v[3], v[4], v[5]); }
3921 
3923  void SetOrderedWeightsMask (int c) { m_ordered_weights_mask = (unsigned char)c; }
3925  int GetOrderedWeightsMask () const { return (int)m_ordered_weights_mask; }
3926 
3928  void SetOrderedWeight (int index, float weight) {
3929  m_ordered_weights[index] = weight;
3930  m_ordered_weights_mask |= 1<<index;
3931  }
3933  float GetOrderedWeight (int index) const { return m_ordered_weights[index]; }
3935  float const * GetOrderedWeights () const { return m_ordered_weights; }
3937  float * GetOrderedWeights () { return m_ordered_weights; }
3938 
3940  void SetSelectionLevel (int l) { m_selection_level = (unsigned char)l; }
3942  int GetSelectionLevel () const { return (int)m_selection_level; }
3943 
3945  void SetForceDefer (int l) { m_force_defer = l; }
3947  int GetForceDefer () const { return m_force_defer; }
3948 
3949 };
3950 
3952 
3953 
3955 
3961 class BBINFILETK_API TK_Geometry_Options : public BBaseOpcodeHandler {
3962  protected:
3963  unsigned short m_mask;
3964  unsigned short m_value;
3965 
3967  float m_orientation[6];
3968 
3969  public:
3971  TK_Geometry_Options () : BBaseOpcodeHandler (TKE_Geometry_Options),
3972  m_mask (0), m_value (0), m_orientation_count (0) {}
3973  ~TK_Geometry_Options ();
3974 
3977  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
3978 
3979  TK_Status ReadAscii (BStreamFileToolkit & tk);
3980  TK_Status WriteAscii (BStreamFileToolkit & tk);
3981 
3983  void SetMask (int m) { m_mask = (unsigned short)m; }
3985  int GetMask () const { return (int)m_mask; }
3986 
3988  void SetOrientation (int count, float const o[]) {
3989  if (count != 3 && count != 6)
3990  return;
3991  m_orientation_count = (unsigned char)count;
3992  while (count-- > 0)
3993  m_orientation[count] = o[count];
3994  }
3996  int GetOrientationCount () const { return (int) m_orientation_count; }
3998  float const * GetOrientation () const { return m_orientation; }
3999 };
4000 
4003 
4008 class BBINFILETK_API TK_Visibility : public BBaseOpcodeHandler {
4009  protected:
4010  int m_mask;
4011  int m_value;
4012 
4013  public:
4016  : BBaseOpcodeHandler (TKE_Visibility), m_mask (0), m_value (0) {}
4017 
4020  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4021 
4022  TK_Status ReadAscii (BStreamFileToolkit & tk);
4023  TK_Status WriteAscii (BStreamFileToolkit & tk);
4024 
4028  void SetGeometry (int m) {
4029  m_mask = m & TKO_Geo_All_Visibles;
4030  if ((m & TKO_Geo_Extended_Mask) != 0) {
4031  m_mask |= TKO_Geo_Extended;
4032  if ((m & TKO_Geo_Extended2_Mask) != 0)
4033  m_mask |= TKO_Geo_Extended2;
4034  }
4035  }
4040  int GetGeometry () const { return m_mask; }
4041 
4046  void SetValue (int m) { m_value = m; }
4051  int GetValue () const { return m_value; }
4052 };
4053 
4056 
4063 class BBINFILETK_API TK_Selectability : public BBaseOpcodeHandler {
4064  protected:
4065  int m_mask;
4066  int m_down;
4067  int m_up;
4071 
4072  public:
4075  : BBaseOpcodeHandler (TKE_Selectability),
4076  m_mask (0), m_down (0), m_up (0), m_move_down (0), m_move_up (0), m_invisible (0) {}
4077 
4080  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4081 
4082  TK_Status ReadAscii (BStreamFileToolkit & tk);
4083  TK_Status WriteAscii (BStreamFileToolkit & tk);
4084 
4088  void SetGeometry (int m) {
4089  m_mask = m & TKO_Geo_All_Selects;
4090  if ((m & TKO_Geo_Extended_Mask) != 0)
4091  m_mask |= TKO_Geo_Extended;
4092  }
4097  int GetGeometry () const { return m_mask; }
4098 
4103  void SetDown (int m) { m_down = m; }
4108  int GetDown () const { return m_down; }
4109 
4114  void SetUp (int m) { m_up = m; }
4119  int GetUp () const { return m_up; }
4120 
4125  void SetMoveDown (int m) { m_move_down = m; }
4130  int GetMoveDown () const { return m_move_down; }
4131 
4136  void SetMoveUp (int m) { m_move_up = m; }
4141  int GetMoveUp () const { return m_move_up; }
4142 
4147  void SetWhenInvisible (int m) { m_invisible = m; }
4152  int GetWhenInvisible () const { return m_invisible; }
4153 };
4154 
4156 
4162 class BBINFILETK_API TK_Matrix : public BBaseOpcodeHandler {
4163  protected:
4164  float m_matrix[16];
4165  double m_dmatrix[16];
4166 
4167  public:
4169  TK_Matrix (unsigned char opcode)
4170  : BBaseOpcodeHandler (opcode) {}
4171 
4174  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4175 
4176  TK_Status ReadAscii (BStreamFileToolkit & tk);
4177  TK_Status WriteAscii (BStreamFileToolkit & tk);
4178 
4180  void SetMatrix (float const m[]) {
4181  int i; for (i=0; i<16; i++) m_matrix[i] = m[i];
4182  }
4184  void SetDMatrix (double const m[]) {
4185  int i; for (i=0; i<16; i++) m_dmatrix[i] = m[i];
4186  }
4188  float const * GetMatrix () const { return m_matrix; }
4190  float * GetMatrix () { return m_matrix; }
4192  double const * GetDMatrix () const { return m_dmatrix; }
4194  double * GetDMatrix () { return m_dmatrix; }
4195 };
4196 
4197 
4203 class BBINFILETK_API TK_Enumerated : public BBaseOpcodeHandler {
4204  protected:
4205  char m_index;
4206 
4207  public:
4209  TK_Enumerated (unsigned char opcode)
4210  : BBaseOpcodeHandler (opcode), m_index (0) {}
4211 
4214  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4215 
4216  TK_Status ReadAscii (BStreamFileToolkit & tk);
4217  TK_Status WriteAscii (BStreamFileToolkit & tk);
4218 
4219  void SetIndex (int i) { m_index = (char)i; }
4221  int GetIndex () const { return (int)m_index; }
4222 };
4223 
4224 
4230 class BBINFILETK_API TK_Size : public BBaseOpcodeHandler {
4231  protected:
4232  float m_value;
4233  unsigned char m_units;
4234 
4235  public:
4237  TK_Size (unsigned char opcode)
4238  : BBaseOpcodeHandler (opcode), m_value (0.0f), m_units (TKO_Generic_Size_Unspecified) {}
4239 
4242  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4243 
4244  TK_Status ReadAscii (BStreamFileToolkit & tk);
4245  TK_Status WriteAscii (BStreamFileToolkit & tk);
4246 
4248  void SetSize (float value, int units = TKO_Generic_Size_Unspecified) {
4249  m_value = (value > 0.0f) ? value : 0.0f;
4250  m_units = (m_value > 0.0f) ? (unsigned char) units : (unsigned char) TKO_Generic_Size_Unspecified;
4251  }
4253  float GetSize () const { return m_value; }
4255  int GetUnits () const { return m_units; }
4256 };
4257 
4262 class BBINFILETK_API TK_Linear_Pattern : public BBaseOpcodeHandler {
4263  protected:
4264  unsigned short m_pattern;
4265 
4266  public:
4268  TK_Linear_Pattern (unsigned char opcode)
4269  : BBaseOpcodeHandler (opcode), m_pattern (0) {}
4270 
4273  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4274 
4275  TK_Status ReadAscii (BStreamFileToolkit & tk);
4276  TK_Status WriteAscii (BStreamFileToolkit & tk);
4277 
4279  void SetPattern (int p) { m_pattern = (unsigned short)p; }
4281  int GetPattern () const { return (int)m_pattern; }
4282 };
4283 
4289 class BBINFILETK_API TK_Named : public BBaseOpcodeHandler {
4290  protected:
4292  char * m_name;
4293  int m_index;
4294 
4295  public:
4297  TK_Named (unsigned char opcode)
4298  : BBaseOpcodeHandler (opcode), m_name_length (0), m_name (0), m_index (0) {}
4299  ~TK_Named();
4300 
4303  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4304 
4305  TK_Status ReadAscii (BStreamFileToolkit & tk);
4306  TK_Status WriteAscii (BStreamFileToolkit & tk);
4307 
4308  void Reset ();
4309 
4311  void SetName (char const * name);
4313  void SetName (int length);
4315  char const * GetName () const { return m_name; }
4317  char * GetName () { return m_name; }
4318 
4320  void SetIndex (int i) { Reset(); m_index = i; }
4322  int GetIndex () const { return (int)m_index; }
4323 };
4324 
4325 
4326 
4333 class BBINFILETK_API TK_Streaming : public BBaseOpcodeHandler {
4334  protected:
4335  bool m_flag;
4336 
4337  public:
4340 
4343  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4344 
4345  TK_Status ReadAscii (BStreamFileToolkit & tk);
4346  TK_Status WriteAscii (BStreamFileToolkit & tk);
4347 
4348  void SetStreaming (bool s) { m_flag = s; }
4350  bool GetStreaming () const { return m_flag; }
4351 };
4352 
4355 
4361 class BBINFILETK_API TK_Conditions : public BBaseOpcodeHandler {
4362  protected:
4363  int m_length;
4364  char * m_string;
4366  public:
4368  TK_Conditions () : BBaseOpcodeHandler (TKE_Conditions), m_length (0), m_string (0) {}
4369  ~TK_Conditions();
4370 
4373  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4374 
4375  TK_Status ReadAscii (BStreamFileToolkit & tk);
4376  TK_Status WriteAscii (BStreamFileToolkit & tk);
4377 
4378  void Reset ();
4379 
4381  void SetConditions (char const * options);
4383  void SetConditions (int length);
4385  char const * GetConditions () const { return m_string; }
4387  char * GetConditions () { return m_string; }
4389  int GetLength() { return m_length; }
4390 };
4391 
4392 
4395 
4400 class BBINFILETK_API TK_Conditional_Action : public BBaseOpcodeHandler {
4401  protected:
4402  short m_type;
4403  short m_options;
4404  int m_length;
4405  char * m_string;
4407  public:
4409  TK_Conditional_Action () : BBaseOpcodeHandler (TKE_Conditional_Action), m_length (0), m_string (0) {}
4411 
4414  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4415 
4416  TK_Status ReadAscii (BStreamFileToolkit & tk);
4417  TK_Status WriteAscii (BStreamFileToolkit & tk);
4418 
4419  void Reset ();
4420 
4422  void SetCondition (char const * options);
4424  void SetCondition (int length);
4426  char const * GetCondition () const { return m_string; }
4428  char * GetCondition () { return m_string; }
4430  int GetLength() { return m_length; }
4431 
4433  void SetAction (int at) { m_type = (short)at; }
4435  int GetAction () const { return (int)m_type; }
4437  void SetOptions (int at) { m_options = (short)at; }
4439  int GetOptions () const { return (int)m_options; }
4440 };
4441 
4444 
4450 class BBINFILETK_API TK_User_Options : public BBaseOpcodeHandler {
4451  protected:
4452  int m_length;
4453  char * m_string;
4458  void set_options (char const * options);
4459  void set_options (int length);
4460 
4461  public:
4463  TK_User_Options () : BBaseOpcodeHandler (TKE_User_Options), m_length (0), m_string (0),
4464  m_indices (0), m_unicode (0), m_index_data(0) {}
4465  ~TK_User_Options();
4466 
4469  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4470 
4471  TK_Status ReadAscii (BStreamFileToolkit & tk);
4472  TK_Status WriteAscii (BStreamFileToolkit & tk);
4473 
4474  void Reset ();
4475 
4477  void SetOptions (char const * options) { set_options (options); }
4479  void SetOptions (int length) { set_options (length); }
4481  char const * GetOptions () const { return m_string; }
4483  char * GetOptions () { return m_string; }
4485  int GetLength() { return m_length; }
4486 };
4487 
4490 
4496 class BBINFILETK_API TK_Unicode_Options : public BBaseOpcodeHandler {
4497  protected:
4498  int m_length;
4499  unsigned short * m_string;
4501  public:
4503  TK_Unicode_Options () : BBaseOpcodeHandler (TKE_Unicode_Options), m_length (0), m_string (0) {}
4504  ~TK_Unicode_Options();
4505 
4508  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4509 
4510  TK_Status ReadAscii (BStreamFileToolkit & tk);
4511  TK_Status WriteAscii (BStreamFileToolkit & tk);
4512 
4513  void Reset ();
4514 
4516  void SetOptions (unsigned short const * options);
4518  void SetOptions (int length);
4520  unsigned short const * GetOptions () const { return m_string; }
4522  unsigned short * GetOptions () { return m_string; }
4524  int GetLength() { return m_length; }
4525 };
4526 
4528 
4534 class BBINFILETK_API TK_User_Index : public BBaseOpcodeHandler {
4535  protected:
4536  int m_count;
4537  int * m_indices;
4538  HLONG * m_values;
4540  void set_indices (int count, int const indices[], POINTER_SIZED_INT const values[]);
4541  void set_indices (int count);
4542 
4543  public:
4546  : BBaseOpcodeHandler (TKE_User_Index), m_count (0), m_indices (0), m_values (0), m_current_value(0) {}
4547  ~TK_User_Index();
4548 
4551  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4552 
4553  TK_Status ReadAscii (BStreamFileToolkit & tk);
4554  TK_Status WriteAscii (BStreamFileToolkit & tk);
4555 
4556  void Reset ();
4557 
4559  void SetIndices (int count, int const indices[], POINTER_SIZED_INT const values[])
4560  { set_indices (count, indices, values); }
4562  void SetIndices (int count) { set_indices (count); }
4564  int GetCount () const { return m_count; }
4566  int const * GetIndices () const { return m_indices; }
4568  int * GetIndices () { return m_indices; }
4570  HLONG const * GetValues () const { return m_values; }
4572  HLONG * GetValues () { return m_values; }
4573 };
4574 
4576 
4582 class BBINFILETK_API TK_User_Index_Data : public BBaseOpcodeHandler {
4583 protected:
4584  int m_count;
4585  int * m_indices;
4586  void ** m_values;
4587  int * m_sizes;
4588 
4590  void set_indices (int count, int const indices[], void const * values[], int const sizes[]);
4591  void set_indices (int count);
4592  void FreeMem ();
4593 
4594 public:
4597  : BBaseOpcodeHandler (TKE_User_Index_Data), m_count (0), m_indices (0), m_values (0), m_sizes(0), m_current_value(0) {}
4598  ~TK_User_Index_Data();
4599 
4602  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4603 
4604  void Reset ();
4605 
4607  void SetIndices (int count, int const indices[], void const * values[], int const sizes[]) {
4608  set_indices (count, indices, values, sizes);
4609  }
4610 
4612  void SetIndices (int count) { set_indices (count);}
4613 
4615  int GetCount () const { return m_count;}
4616 
4618  int const * GetIndices () const { return m_indices;}
4619 
4621  int * GetIndices () { return m_indices;}
4622 
4624  void ** const GetValues () const { return m_values;}
4625 
4627  void ** const GetValues () { return m_values;}
4628 
4630  int const * GetSizes () const { return m_sizes;}
4631 
4633  int * GetSizes () { return m_sizes;}
4634 };
4635 
4636 
4638 
4643 class BBINFILETK_API TK_User_Value : public BBaseOpcodeHandler {
4644  protected:
4645  HLONG m_value;
4646 
4647  public:
4650  : BBaseOpcodeHandler (TKE_User_Value), m_value (0) {}
4651 
4654  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4655 
4656  TK_Status ReadAscii (BStreamFileToolkit & tk);
4657  TK_Status WriteAscii (BStreamFileToolkit & tk);
4658 
4660  void SetValue (HLONG v) { m_value = v; }
4662  HLONG GetValue () const { return m_value; }
4663 };
4664 
4665 
4667 
4672 class BBINFILETK_API2 TK_Camera : public BBaseOpcodeHandler {
4673  protected:
4677  float m_settings[14];
4679  double m_dsettings[14];
4681  float m_details[3];
4682  unsigned char m_projection;
4683  int m_length;
4684  char * m_name;
4687  void set_name (char const * name);
4688 
4689  void set_name (int length);
4690 
4691  public:
4693  TK_Camera (unsigned char opcode = TKE_Camera)
4694  : BBaseOpcodeHandler (opcode), m_length (0), m_name (0) {
4695  int i;
4696  int count = (int)(sizeof(m_settings) / sizeof(m_settings[0]));
4697  for (i = 0; i < count; i++) {
4698  m_settings[i] = 0;
4699  m_dsettings[i] = 0;
4700  }
4701  }
4702  ~TK_Camera();
4703 
4706  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4707 
4708  TK_Status ReadAscii (BStreamFileToolkit & tk);
4709  TK_Status WriteAscii (BStreamFileToolkit & tk);
4710 
4712  void SetPosition (float x, float y, float z)
4713  { m_settings[0] = x; m_settings[1] = y; m_settings[2] = z; }
4715  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
4717  float const * GetPosition () const { return &m_settings[0]; }
4719  void GetPosition (float p[]) const { memcpy(p, GetPosition(), 3*sizeof(float)); }
4720 
4722  void SetDPosition (double x, double y, double z)
4723  { m_dsettings[0] = x; m_dsettings[1] = y; m_dsettings[2] = z; }
4725  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
4727  double const * GetDPosition () const { return &m_dsettings[0]; }
4729  void GetDPosition (double p[]) const { memcpy(p, GetDPosition(), 3*sizeof(double)); }
4730 
4732  void SetTarget (float x, float y, float z)
4733  { m_settings[3] = x; m_settings[4] = y; m_settings[5] = z; }
4735  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
4737  float const * GetTarget () const { return &m_settings[3]; }
4739  void GetTarget (float t[]) const { memcpy(t, GetTarget(), 3*sizeof(float)); }
4740 
4742  void SetDTarget (double x, double y, double z)
4743  { m_dsettings[3] = x; m_dsettings[4] = y; m_dsettings[5] = z; }
4745  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
4747  double const * GetDTarget () const { return &m_dsettings[3]; }
4749  void GetDTarget (double t[]) const { memcpy(t, GetDTarget(), 3*sizeof(double)); }
4750 
4752  void SetUpVector (float x, float y, float z)
4753  { m_settings[6] = x; m_settings[7] = y; m_settings[8] = z; }
4755  void SetUpVector (float const u[]) { SetUpVector (u[0], u[1], u[2]); }
4757  float const * GetUpVector () const { return &m_settings[6]; }
4759  void GetUpVector (float u[]) const { memcpy(u,GetUpVector(),3*sizeof(float)); }
4760 
4762  void SetDUpVector (double x, double y, double z)
4763  { m_dsettings[6] = x; m_dsettings[7] = y; m_dsettings[8] = z; }
4765  void SetDUpVector (double const u[]) { SetDUpVector (u[0], u[1], u[2]); }
4767  double const * GetDUpVector () const { return &m_dsettings[6]; }
4769  void GetDUpVector (double u[]) const { memcpy(u, GetDUpVector(), 3*sizeof(double)); }
4770 
4772  void SetField (float w, float h) { m_settings[9] = w; m_settings[10] = h; }
4774  void SetField (float const f[]) { SetField (f[0], f[1]); }
4776  float const * GetField () const { return &m_settings[9]; }
4778  void GetField (float f[]) const { memcpy(f,GetField(),2*sizeof(float)); }
4779 
4781  void SetDField (double w, double h) { m_dsettings[9] = w; m_dsettings[10] = h; }
4783  void SetDField (double const f[]) { SetDField (f[0], f[1]); }
4785  double const * GetDField () const { return &m_dsettings[9]; }
4787  void GetDField (double f[]) const { memcpy(f, GetDField(), 2*sizeof(double)); }
4788 
4789 
4791  void SetOblique (float h, float v) { m_details[0] = h; m_details[1] = v;
4792  m_projection &= ~TKO_Camera_Oblique_Mask;
4793  if (h != 0.0f) m_projection |= TKO_Camera_Oblique_Y;
4794  if (v != 0.0f) m_projection |= TKO_Camera_Oblique_Mask;
4795  }
4797  void SetOblique (float const o[]) { SetOblique (o[0], o[1]); }
4799  float const * GetOblique () const { return m_details; }
4801  void GetOblique (float o[]) const { memcpy(o, GetOblique(), 2*sizeof(float)); }
4802 
4804  void SetNearLimit (float l) { m_details[2] = l;
4805  m_projection &= ~TKO_Camera_Near_Limit;
4806  if (l != 0.0f) m_projection |= TKO_Camera_Near_Limit;
4807  }
4809  float GetNearLimit () const { return m_details[2]; }
4810 
4811 
4813  void SetProjection (int p) { m_projection = (char)p; }
4815  int GetProjection () const { return (int)m_projection; }
4816 
4817 
4819  void SetView (char const * name) { set_name (name); }
4821  void SetView (int length) { set_name (length); }
4823  char const * GetView () const { return m_name; }
4825  char * GetView () { return m_name; }
4826 };
4827 
4829 
4834 class BBINFILETK_API TK_Window : public BBaseOpcodeHandler {
4835  protected:
4836  float m_window[8];
4837  unsigned char m_options;
4838 
4839  public:
4842  : BBaseOpcodeHandler (TKE_Window), m_options (0) {}
4843 
4846  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4847 
4848  TK_Status ReadAscii (BStreamFileToolkit & tk);
4849  TK_Status WriteAscii (BStreamFileToolkit & tk);
4850 
4852  void SetWindow (float l, float r, float b, float t,
4853  float lo = 0, float ro = 0, float bo = 0, float to = 0)
4854  { m_window[0] = l; m_window[1] = r; m_window[2] = b; m_window[3] = t;
4855  m_window[4] = lo; m_window[5] = ro; m_window[6] = bo; m_window[7] = to; }
4857  void SetWindow (float const w[]) { SetWindow (w[0], w[1], w[2], w[3]); }
4859  void SetWindow (float const w[], float const o[])
4860  { SetWindow (w[0], w[1], w[2], w[3], o[0], o[1], o[2], o[3]); }
4862  void SetWindow (int n, float const w[])
4863  { if (n == 8) SetWindow (w[0], w[1], w[2], w[4], w[5], w[6], w[7], w[8]);
4864  else SetWindow (w[0], w[1], w[2], w[3]);
4865  }
4867  float const * GetWindow () const { return m_window; }
4868 
4870  void SetOptions (int opt) { m_options = (unsigned char)opt; }
4872  int GetOptions () const { return m_options; }
4873 };
4874 
4875 
4876 
4878 
4885 class BBINFILETK_API TK_Text_Font : public BBaseOpcodeHandler {
4886  protected:
4887  int m_mask;
4888  int m_value;
4890  char * m_names;
4891  float m_size;
4892  float m_tolerance;
4893  float m_rotation;
4894  float m_slant;
4901  int m_renderers[2];
4902  int m_preferences[2];
4905  char * m_shape;
4906  char * m_style;
4908  float m_margins[4];
4909  unsigned char m_margin_units[4];
4910  unsigned char m_size_units;
4911  unsigned char m_tolerance_units;
4912  unsigned char m_space_units;
4913  unsigned char m_greeking_units;
4914  unsigned char m_greeking_mode;
4915  unsigned char m_transforms;
4916  unsigned char m_renderer_cutoff_units;
4918  unsigned char m_layout;
4919 
4920  void set_names (int length);
4921  void set_names (char const * names);
4922 
4923  public:
4926  : BBaseOpcodeHandler (TKE_Text_Font), m_names_length (0), m_names (0)
4927  , m_shape_length (0), m_style_length (0), m_shape (0), m_style (0) {}
4928  ~TK_Text_Font ();
4929 
4932  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
4933 
4934  TK_Status ReadAscii (BStreamFileToolkit & tk);
4935  TK_Status WriteAscii (BStreamFileToolkit & tk);
4936 
4937  void Reset ();
4938 
4940  void SetMask (int m) {
4941  m_mask = m;
4942  if ((m & TKO_Font_Extended2_Mask) != 0)
4943  m_mask |= TKO_Font_Extended2;
4944  if ((m & TKO_Font_Extended_Mask) != 0)
4945  m_mask |= TKO_Font_Extended;
4946  }
4948  int GetMask () const { return m_mask; }
4949 
4951  void SetValue (int v) { m_value = v; }
4953  int GetValue () const { return m_value; }
4954 
4956  void SetNames (char const * names) { set_names (names); }
4958  void SetNames (int length) { set_names (length); }
4960  char const * GetNames () const { return m_names; }
4962  char * GetNames () { return m_names; }
4963 
4965  void SetShape (char const * shape);
4967  void SetShape (int length);
4969  char const * GetShape () const { return m_shape; }
4971  char * GetShape () { return m_shape; }
4972 
4974  void SetStyle (char const * shape);
4976  void SetStyle (int length);
4978  char const * GetStyle () const { return m_style; }
4980  char * GetStyle () { return m_style; }
4981 
4983  void SetSize (float s) { m_size = s; }
4985  float GetSize () const { return m_size; }
4986 
4988  void SetSizeUnits (int u) { m_size_units = (unsigned char)u; }
4990  int GetSizeUnits () const { return (int)m_size_units; }
4991 
4993  void SetTolerance (float t) { m_tolerance = t; }
4995  float GetTolerance () const { return m_tolerance; }
4996 
4998  void SetToleranceUnits (int u) { m_tolerance_units = (unsigned char)u; }
5000  int GetToleranceUnits () const { return (int)m_tolerance_units; }
5001 
5003  void SetRotation (float r) { m_rotation = r; }
5005  float GetRotation () const { return m_rotation; }
5006 
5008  void SetSlant (float s) { m_slant = s; }
5010  float GetSlant () const { return m_slant; }
5011 
5013  void SetWidthScale (float s) { m_width_scale = s; }
5015  float GetWidthScale () const { return m_width_scale; }
5016 
5018  void SetExtraSpace (float s) { m_extra_space = s; }
5020  float GetExtraSpace () const { return m_extra_space; }
5021 
5023  void SetExtraSpaceUnits (int u) { m_space_units = (unsigned char)u; }
5025  int GetExtraSpaceUnits () const { return (int)m_space_units; }
5026 
5028  void SetLineSpacing (float s) { m_line_spacing = s; }
5030  float GetLineSpacing () const { return m_line_spacing; }
5031 
5033  void SetTransforms (int t) { m_transforms = (unsigned char)t; }
5035  int GetTransforms () const { return (int)m_transforms; }
5036 
5038  void SetGreekingLimit (float s) { m_greeking_limit = s; }
5040  float GetGreekingLimit () const { return m_greeking_limit; }
5041 
5043  void SetGreekingLimitUnits (int u) { m_greeking_units = (unsigned char)u; }
5045  int GetGreekingLimitUnits () const { return (int)m_greeking_units; }
5046 
5048  void SetGreekingMode (int m) { m_greeking_mode = (unsigned char)m; }
5050  int GetGreekingMode () const { return (int)m_greeking_mode; }
5051 
5052 
5054  void SetRenderer (int r) { m_renderers[0] = m_renderers[1] = r; }
5056  int GetRenderer () const { return m_renderers[0]; }
5057 
5059  void SetRenderers (int r1, int r2) { m_renderers[0] = r1; m_renderers[1] = r2; }
5061  int const * GetRenderers () const { return m_renderers; }
5062 
5064  void SetRendererCutoff (float s) { m_renderer_cutoff = s; }
5066  float GetRendererCutoff () const { return m_renderer_cutoff; }
5067 
5069  void SetRendererCutoffUnits (int u) { m_renderer_cutoff_units = (unsigned char)u; }
5071  int GetRendererCutoffUnits () const { return (int)m_renderer_cutoff_units; }
5072 
5073 
5075  void SetPreference (int r) { m_preferences[0] = m_preferences[1] = r; }
5077  int GetPreference () const { return m_preferences[0]; }
5078 
5080  void SetPreferences (int r1, int r2) { m_preferences[0] = r1; m_preferences[1] = r2; }
5082  int const * GetPreferences () const { return m_preferences; }
5083 
5085  void SetPreferenceCutoff (float s) { m_preference_cutoff = s; }
5087  float GetPreferenceCutoff () const { return m_preference_cutoff; }
5088 
5090  void SetPreferenceCutoffUnits (int u) { m_preference_cutoff_units = (unsigned char)u; }
5092  int GetPreferenceCutoffUnits () const { return (int)m_preference_cutoff_units; }
5093 
5095  void SetLayout (int l) {m_layout = (unsigned char)l;}
5097  int GetLayout () const {return (int)m_layout;}
5098 };
5099 
5101 
5103 
5113 
5125 class BBINFILETK_API2 TK_Bounding : public BBaseOpcodeHandler {
5126  protected:
5127  double m_dvalues[6];
5128  float m_values[6];
5129  char m_type;
5130  bool m_is_valid;
5131  public:
5133  TK_Bounding (unsigned char opcode)
5134  : BBaseOpcodeHandler (opcode) {}
5136  TK_Bounding (unsigned char opcode, float min[], float max[])
5137  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5138  m_values[0] = min[0]; m_values[1] = min[1]; m_values[2] = min[2];
5139  m_values[3] = max[0]; m_values[4] = max[1]; m_values[5] = max[2];
5140  }
5142  TK_Bounding (unsigned char opcode, float center[], float radius)
5143  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5144  m_values[0] = center[0]; m_values[1] = center[1]; m_values[2] = center[2];
5145  m_values[3] = radius;
5146  }
5148  TK_Bounding (unsigned char opcode, double min[], double max[])
5149  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Cuboid), m_is_valid (true) {
5150  m_dvalues[0] = min[0]; m_dvalues[1] = min[1]; m_dvalues[2] = min[2];
5151  m_dvalues[3] = max[0]; m_dvalues[4] = max[1]; m_dvalues[5] = max[2];
5153  }
5155  TK_Bounding (unsigned char opcode, double center[], double radius)
5156  : BBaseOpcodeHandler (opcode), m_type (TKO_Bounding_Type_Sphere), m_is_valid (true) {
5157  m_dvalues[0] = center[0]; m_dvalues[1] = center[1]; m_dvalues[2] = center[2];
5158  m_dvalues[3] = radius;
5160  }
5161 
5164  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5165 
5166  TK_Status ReadAscii (BStreamFileToolkit & tk);
5167  TK_Status WriteAscii (BStreamFileToolkit & tk);
5168 };
5169 
5171 
5173 
5179 class BBINFILETK_API TK_Point : public BBaseOpcodeHandler {
5180  protected:
5181  float m_point[3];
5182  double m_dpoint[3];
5183  char m_options;
5184 
5185  public:
5187  TK_Point (unsigned char opcode)
5188  : BBaseOpcodeHandler (opcode) {
5189  m_point[0] = m_point[1] = m_point[2] = 0;
5190  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5191  m_options = 0;
5192  };
5193 
5196  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5197 
5198  TK_Status ReadAscii (BStreamFileToolkit & tk);
5199  TK_Status WriteAscii (BStreamFileToolkit & tk);
5200 
5201  void Reset(void) {
5202  m_point[0] = m_point[1] = m_point[2] = 0;
5203  m_dpoint[0] = m_dpoint[1] = m_dpoint[2] = 0;
5204  m_options = 0;
5206  };
5207 
5208 
5209 
5211  void SetPoint (float x, float y, float z) { m_point[0] = x; m_point[1] = y; m_point[2] = z; }
5213  void SetPoint (float const p[]) { SetPoint (p[0], p[1], p[2]); }
5215  float const * GetPoint () const { return m_point; }
5216 
5218  void SetDPoint (double x, double y, double z) { m_dpoint[0] = x; m_dpoint[1] = y; m_dpoint[2] = z; }
5220  void SetDPoint (double const p[]) { SetDPoint (p[0], p[1], p[2]); }
5222  double const * GetDPoint () const { return m_dpoint; }
5223 
5225  void SetOptions (int o) { m_options = (char)o; }
5227  int GetOptions () const { return (int)m_options; }
5228 
5229 };
5230 
5231 
5232 
5234 
5239 class BBINFILETK_API TK_Line : public BBaseOpcodeHandler {
5240  protected:
5242  float m_points[6];
5244  double m_dpoints[6];
5245 
5246  public:
5248  TK_Line (unsigned char opcode = TKE_Line)
5249  : BBaseOpcodeHandler (opcode) {}
5250 
5253  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5254 
5255  TK_Status ReadAscii (BStreamFileToolkit & tk);
5256  TK_Status WriteAscii (BStreamFileToolkit & tk);
5257 
5259  void SetPoints (float x1, float y1, float z1, float x2, float y2, float z2) {
5260  m_points[0] = x1; m_points[1] = y1; m_points[2] = z1;
5261  m_points[3] = x2; m_points[4] = y2; m_points[5] = z2;
5262  }
5264  void SetPoints (float const s[], float const e[]) {
5265  SetPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5266  }
5268  void SetPoints (float const p[]) { SetPoints (&p[0], &p[3]); }
5270  float const * GetPoints () const { return m_points; }
5271 
5273  void SetDPoints (double x1, double y1, double z1, double x2, double y2, double z2) {
5274  m_dpoints[0] = x1; m_dpoints[1] = y1; m_dpoints[2] = z1;
5275  m_dpoints[3] = x2; m_dpoints[4] = y2; m_dpoints[5] = z2;
5276  }
5278  void SetDPoints (double const s[], double const e[]) {
5279  SetDPoints (s[0], s[1], s[2], e[0], e[1], e[2]);
5280  }
5282  void SetDPoints (double const p[]) { SetDPoints (&p[0], &p[3]); }
5284  double const * GetDPoints () const { return m_dpoints; }
5285 
5286 };
5287 
5288 
5289 
5291 
5298 class BBINFILETK_API TK_Polypoint : public BBaseOpcodeHandler {
5299  protected:
5300  int m_count;
5302  float * m_points;
5303  double * m_dpoints;
5306  void set_points (int count, float const points[] = 0) { SetPoints (count, points); }
5307  public:
5311  TK_Polypoint (unsigned char opcode)
5312  : BBaseOpcodeHandler (opcode), m_count (0), m_allocated (0), m_points (0), m_dpoints (0) {}
5313  ~TK_Polypoint();
5314 
5317  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5318 
5319  TK_Status ReadAscii (BStreamFileToolkit & tk);
5320  TK_Status WriteAscii (BStreamFileToolkit & tk);
5321 
5322  void Reset ();
5323 
5326  void SetPoints (int count, float const points[] = 0);
5328  float const * GetPoints () const { return m_points; }
5330  float * GetPoints () { return m_points; }
5331 
5334  void SetDPoints (int count, double const points[] = 0);
5336  double const * GetDPoints () const { return m_dpoints; }
5338  double * GetDPoints () { return m_dpoints; }
5339 
5341  int GetCount () const { return m_count; }
5342 
5343 };
5344 
5345 
5346 
5347 
5348 #define NC_HAS_WEIGHTS 0x01
5349 #define NC_HAS_KNOTS 0x02
5350 #define NC_HAS_START 0x04
5351 #define NC_HAS_END 0x08
5352 
5353 
5359 class BBINFILETK_API TK_NURBS_Curve : public BBaseOpcodeHandler {
5360  protected:
5361  unsigned char m_optionals;
5362  unsigned char m_degree;
5367  float *m_weights;
5368  float *m_knots;
5369  float m_start;
5370  float m_end;
5372  void set_curve (int degree, int control_count, float const points[] = 0,
5374  float const weights[] = 0, float const knots[] = 0,
5375  float start = 0.0f, float end = 1.0f);
5376  public:
5377  TK_NURBS_Curve();
5378  ~TK_NURBS_Curve();
5379 
5382  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5383 
5384  TK_Status ReadAscii (BStreamFileToolkit & tk);
5385  TK_Status WriteAscii (BStreamFileToolkit & tk);
5386 
5387  void Reset ();
5388 
5390  void SetCurve (int degree, int control_count, float const points[] = 0,
5391  float const weights[] = 0, float const knots[] = 0,
5392  float start = 0.0f, float end = 1.0f) {
5393  set_curve (degree, control_count, points, weights, knots, start, end);
5394  }
5395  void SetDCurve (int degree, int control_count, double const points[] = 0,
5396  float const weights[] = 0, float const knots[] = 0,
5397  float start = 0.0f, float end = 1.0f);
5398 
5399  float const * GetPoints () const { return m_control_points; }
5400  float * GetPoints () { return m_control_points; }
5401  double const * GetDPoints () const { return m_dcontrol_points; }
5402  double * GetDPoints () { return m_dcontrol_points; }
5404  int GetDegree () const { return m_degree; }
5405  int GetCount () const { return m_control_point_count; }
5406  float const * GetWeights () const { return m_weights; }
5407  float * GetWeights () { return m_weights; }
5408  float const * GetKnots () const { return m_knots; }
5409  float * GetKnots () { return m_knots; }
5411  void SetStart (float s) { m_start = s; }
5412  float GetStart () const { return m_start; }
5413  void SetEnd (float e) { m_end = e; }
5414  float GetEnd () const { return m_end; }
5416  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5417  int GetOptions () const { return m_optionals; }
5419 };
5420 
5421 
5422 
5423 
5424 
5425 #define NS_HAS_WEIGHTS 0x01
5426 #define NS_HAS_KNOTS 0x02
5427 #define NS_HAS_TRIMS 0x04
5428 
5429 #define NS_TRIM_END 0
5430 #define NS_TRIM_POLY 1
5431 #define NS_TRIM_CURVE 2
5432 #define NS_TRIM_COLLECTION 3
5433 #define NS_TRIM_LAST_KNOWN_TYPE 3
5434 
5435 #define NS_TRIM_KEEP 0x01
5436 #define NS_TRIM_HAS_WEIGHTS 0x02
5437 #define NS_TRIM_HAS_KNOTS 0x04
5438 
5439 
5446 class BBINFILETK_API HT_NURBS_Trim : public BBaseOpcodeHandler {
5447  friend class TK_NURBS_Surface;
5448  protected:
5449  //first 5 are relevant to polys and curves
5452  unsigned char m_type;
5453  int m_count;
5454  float * m_points;
5455  //next 6 are specific to curves
5456  unsigned char m_degree;
5457  unsigned char m_options;
5458  float * m_weights;
5459  float * m_knots;
5460  float m_start_u;
5461  float m_end_u;
5465  HT_NURBS_Trim();
5466  TK_Status read_collection(BStreamFileToolkit & tk);
5467  TK_Status write_collection(BStreamFileToolkit & tk);
5470  public:
5471  ~HT_NURBS_Trim();
5472  void SetPoly (int count, float const points[] = 0);
5473  void SetCurve (int degree, int control_count, float const points[] = 0,
5474  float const weights[] = 0, float const knots[] = 0, float start_u = 0, float end_u = 1);
5475  void SetCollection ();
5476  HT_NURBS_Trim * PrependCollection();
5477  void SetOptions (int o) { m_options = (unsigned char)o; }
5478  void SetList (HT_NURBS_Trim *node) { m_list = node; }
5479  void SetNext (HT_NURBS_Trim *next) { m_next = next; }
5480  void SetStart(float start) { m_start_u = start; }
5481  void SetEnd(float end) { m_end_u = end; }
5482 
5485 
5488 
5489  TK_Status read_collection_ascii(BStreamFileToolkit & tk);
5490  TK_Status write_collection_ascii(BStreamFileToolkit & tk);
5491 
5493  HT_NURBS_Trim * GetNext (void) { return m_next; }
5494  HT_NURBS_Trim const * GetNext (void) const { return m_next; }
5496  int GetType () const { return m_type; }
5498  int GetCount () const { return m_count; }
5500  float const * GetPoints () const { return m_points; }
5502  float * GetPoints () { return m_points; }
5504  int GetDegree () const { return m_degree; }
5506  float GetStart() const { return m_start_u; }
5508  float GetEnd() const { return m_end_u; }
5510  int GetOptions () const { return m_options; }
5512  float const * GetWeights () const { return m_weights; }
5514  float * GetWeights () { return m_weights; }
5516  float const * GetKnots () const { return m_knots; }
5518  float * GetKnots () { return m_knots; }
5520  HT_NURBS_Trim const *GetList () const { return m_list; }
5522  HT_NURBS_Trim * GetList () { return m_list; }
5523 
5524 };
5525 
5527 
5532 class BBINFILETK_API TK_NURBS_Surface : public BBaseOpcodeHandler {
5533  protected:
5534  unsigned char m_optionals;
5535  unsigned char m_degree[2];
5536  int m_size[2];
5539  float * m_weights;
5540  float * m_u_knots;
5541  float * m_v_knots;
5547  public:
5548  TK_NURBS_Surface();
5549  ~TK_NURBS_Surface();
5550 
5553  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5554 
5555  TK_Status ReadAscii (BStreamFileToolkit & tk);
5556  TK_Status WriteAscii (BStreamFileToolkit & tk);
5557 
5558  void Reset ();
5560  void SetSurface (int u_degree, int v_degree, int u_size, int v_size,
5561  float const points[] = 0, float const weights[] = 0,
5562  float const u_knots[] = 0, float const v_knots[] = 0);
5563  void SetDSurface (int u_degree, int v_degree, int u_size, int v_size,
5564  double const points[] = 0, float const weights[] = 0,
5565  float const u_knots[] = 0, float const v_knots[] = 0);
5568  float const * GetPoints () const { return m_control_points; }
5570  float * GetPoints () { return m_control_points; }
5572  double const * GetDPoints () const { return m_dcontrol_points; }
5574  double * GetDPoints () { return m_dcontrol_points; }
5575 
5577  int GetUDegree () const { return m_degree[0]; }
5579  int GetVDegree () const { return m_degree[1]; }
5581  int GetUSize () const { return m_size[0]; }
5583  int GetVSize () const { return m_size[1]; }
5585  float const * GetWeights () const { return m_weights; }
5587  float * GetWeights () { return m_weights; }
5589  float const * GetUKnots () const { return m_u_knots; }
5591  float * GetUKnots () { return m_u_knots; }
5593  float const * GetVKnots () const { return m_v_knots; }
5595  float * GetVKnots () { return m_v_knots; }
5596 
5598  void SetOptions (int o) { m_optionals = (unsigned char)o; }
5600  int GetOptions () const { return m_optionals; }
5601 
5603  HT_NURBS_Trim * NewTrim (int type = NS_TRIM_END);
5605  HT_NURBS_Trim * GetTrims () { return m_trims; }
5606 
5607 
5608 };
5609 
5611 
5616 class BBINFILETK_API TK_Area_Light : public BBaseOpcodeHandler {
5617  protected:
5618  int m_count;
5619  float * m_points;
5620  double * m_dpoints;
5621  char m_options;
5622 
5624  void set_points (int count, float const points[] = 0);
5625 
5626  public:
5629  : BBaseOpcodeHandler (TKE_Area_Light), m_count (0), m_points (0), m_dpoints (0), m_options (0) {}
5630  ~TK_Area_Light();
5631 
5634  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5635 
5636  TK_Status ReadAscii (BStreamFileToolkit & tk);
5637  TK_Status WriteAscii (BStreamFileToolkit & tk);
5638 
5639  void Reset ();
5640 
5645  void SetPoints (int count, float const points[] = 0) { set_points (count, points); }
5647  float const * GetPoints () const { return m_points; }
5649  float * GetPoints () { return m_points; }
5650 
5655  void SetDPoints (int count, double const points[] = 0) ;
5657  double const * GetDPoints () const { return m_dpoints; }
5659  double * GetDPoints () { return m_dpoints; }
5660 
5662  int GetCount () const { return m_count; }
5663 
5665  void SetOptions (int o) { m_options = (char)o; }
5667  int GetOptions () const { return (int)m_options; }
5668 };
5669 
5670 
5672 
5677 class BBINFILETK_API TK_Spot_Light : public BBaseOpcodeHandler {
5678  protected:
5679  float m_position[3];
5680  float m_target[3];
5681  double m_dposition[3];
5682  double m_dtarget[3];
5683  float m_outer;
5684  float m_inner;
5686  char m_options;
5687 
5688  public:
5691  : BBaseOpcodeHandler (TKE_Spot_Light), m_options (0) {}
5692 
5695  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5696 
5697  TK_Status ReadAscii (BStreamFileToolkit & tk);
5698  TK_Status WriteAscii (BStreamFileToolkit & tk);
5699 
5701  void SetPosition (float x, float y, float z)
5702  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
5704  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
5706  float const * GetPosition () const { return m_position; }
5707 
5709  void SetDPosition (double x, double y, double z)
5710  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
5712  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
5714  double const * GetDPosition () const { return m_dposition; }
5715 
5717  void SetTarget (float x, float y, float z)
5718  { m_target[0] = x; m_target[1] = y; m_target[2] = z; }
5720  void SetTarget (float const t[]) { SetTarget (t[0], t[1], t[2]); }
5722  float const * GetTarget () const { return m_target; }
5723 
5725  void SetDTarget (double x, double y, double z)
5726  { m_dtarget[0] = x; m_dtarget[1] = y; m_dtarget[2] = z; }
5728  void SetDTarget (double const t[]) { SetDTarget (t[0], t[1], t[2]); }
5730  double const * GetDTarget () const { return m_dtarget; }
5731 
5733  void SetOuter (float o) { m_outer = o; }
5735  float GetOuter () const { return m_outer; }
5736 
5738  void SetInner (float i) { m_inner = i; }
5740  float GetInner () const { return m_inner; }
5741 
5743  void SetConcentration (float c) { m_concentration = c; }
5745  float GetConcentration () const { return m_concentration; }
5746 
5748  void SetOptions (int o) { m_options = (char)o; }
5750  int GetOptions () const { return (int)m_options; }
5751 };
5752 
5753 
5755 
5760 class BBINFILETK_API TK_Cutting_Plane : public BBaseOpcodeHandler {
5761  protected:
5762  float * m_planes;
5763  double * m_dplanes;
5764  int m_count;
5765 
5766  public:
5769  : BBaseOpcodeHandler (TKE_Cutting_Plane), m_planes (0), m_dplanes (0), m_count (0) {}
5770  ~TK_Cutting_Plane ();
5771 
5774  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5775 
5776  TK_Status ReadAscii (BStreamFileToolkit & tk);
5777  TK_Status WriteAscii (BStreamFileToolkit & tk);
5778 
5779  void Reset ();
5780 
5782  void SetPlanes (int count, float const p[]=0);
5784  void SetDPlanes (int count, double const p[]=0);
5785 
5787  void SetPlane (float a, float b, float c, float d)
5788  { SetPlanes(1);
5789  m_planes[0] = a; m_planes[1] = b; m_planes[2] = c; m_planes[3] = d; }
5791  void SetDPlane (double a, double b, double c, double d)
5792  { SetDPlanes(1);
5793  m_dplanes[0] = a; m_dplanes[1] = b; m_dplanes[2] = c; m_dplanes[3] = d; }
5794 
5796  void SetPlane (float const p[]) { SetPlanes (1, p); }
5798  void SetDPlane (double const p[]) { SetDPlanes (1, p); }
5799 
5801  float const * GetPlane () const { return m_planes; }
5803  double const * GetDPlane () const { return m_dplanes; }
5804 
5806  float const * GetPlanes () const { return m_planes; }
5808  double const * GetDPlanes () const { return m_dplanes; }
5809 
5811  int GetCount () const { return m_count; }
5812 };
5813 
5814 
5816 
5823 class BBINFILETK_API TK_Circle : public BBaseOpcodeHandler {
5824  protected:
5825  float m_points[9];
5826  float m_center[3];
5827  double m_dpoints[9];
5828  double m_dcenter[3];
5829  unsigned char m_flags;
5832  public:
5834  TK_Circle (unsigned char opcode)
5835  : BBaseOpcodeHandler (opcode), m_flags (0) {}
5836 
5839  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5840 
5841  TK_Status ReadAscii (BStreamFileToolkit & tk);
5842  TK_Status WriteAscii (BStreamFileToolkit & tk);
5843 
5844  void Reset ();
5845 
5847  void SetStart (float x, float y, float z) {
5848  m_points[0] = x; m_points[1] = y; m_points[2] = z;
5849  }
5851  void SetStart (float const s[]) {
5852  SetStart (s[0], s[1], s[2]);
5853  }
5855  void SetMiddle (float x, float y, float z) {
5856  m_points[3] = x; m_points[4] = y; m_points[5] = z;
5857  }
5859  void SetMiddle (float const m[]) {
5860  SetMiddle (m[0], m[1], m[2]);
5861  }
5863  void SetEnd (float x, float y, float z) {
5864  m_points[6] = x; m_points[7] = y; m_points[8] = z;
5865  }
5867  void SetEnd (float const e[]) {
5868  SetEnd (e[0], e[1], e[2]);
5869  }
5871  void SetCenter (float x, float y, float z) {
5872  m_center[0] = x; m_center[1] = y; m_center[2] = z;
5873  m_flags = TKO_Circular_Center;
5874  }
5876  void SetCenter (float const c[]) {
5877  if (c) SetCenter (c[0], c[1], c[2]);
5878  else m_flags = 0;
5879  }
5881  void SetPoints (float const s[], float const m[], float const e[],
5882  float const c[] = 0) {
5883  SetStart (s); SetMiddle (m); SetEnd (e); SetCenter (c);
5884  }
5885 
5887  float const * GetStart () const { return &m_points[0]; }
5889  float const * GetMiddle () const { return &m_points[3]; }
5891  float const * GetEnd () const { return &m_points[6]; }
5893  float const * GetCenter () const { return (m_flags & TKO_Circular_Center) ? m_center : 0; }
5894 
5896  void SetDStart (double x, double y, double z) {
5897  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
5898  }
5900  void SetDStart (double const s[]) {
5901  SetDStart (s[0], s[1], s[2]);
5902  }
5904  void SetDMiddle (double x, double y, double z) {
5905  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
5906  }
5908  void SetDMiddle (double const m[]) {
5909  SetDMiddle (m[0], m[1], m[2]);
5910  }
5912  void SetDEnd (double x, double y, double z) {
5913  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
5914  }
5916  void SetDEnd (double const e[]) {
5917  SetDEnd (e[0], e[1], e[2]);
5918  }
5920  void SetDCenter (double x, double y, double z) {
5921  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
5922  m_flags = TKO_Circular_Center;
5923  }
5925  void SetDCenter (double const c[]) {
5926  if (c) SetDCenter (c[0], c[1], c[2]);
5927  else m_flags = 0;
5928  }
5930  void SetDPoints (double const s[], double const m[], double const e[],
5931  double const c[] = 0) {
5932  SetDStart (s); SetDMiddle (m); SetDEnd (e); SetDCenter (c);
5933  }
5934 
5936  double const * GetDStart () const { return &m_dpoints[0]; }
5938  double const * GetDMiddle () const { return &m_dpoints[3]; }
5940  double const * GetDEnd () const { return &m_dpoints[6]; }
5942  double const * GetDCenter () const { return (m_flags & TKO_Circular_Center) ? m_dcenter : 0; }
5943 };
5944 
5945 
5947 
5954 class BBINFILETK_API TK_Ellipse : public BBaseOpcodeHandler {
5955  protected:
5956  float m_points[9];
5957  double m_dpoints[9];
5958  float m_limits[2];
5960  public:
5962  TK_Ellipse (unsigned char opcode)
5963  : BBaseOpcodeHandler (opcode) {}
5964 
5967  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
5968 
5969  TK_Status ReadAscii (BStreamFileToolkit & tk);
5970  TK_Status WriteAscii (BStreamFileToolkit & tk);
5971 
5973  void SetCenter (float x, float y, float z) {
5974  m_points[0] = x; m_points[1] = y; m_points[2] = z;
5975  }
5977  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
5979  float const * GetCenter () const { return &m_points[0]; }
5980 
5982  void SetMajor (float x, float y, float z) {
5983  m_points[3] = x; m_points[4] = y; m_points[5] = z;
5984  }
5986  void SetMajor (float const m[]) { SetMajor (m[0], m[1], m[2]); }
5988  float const * GetMajor () const { return &m_points[3]; }
5989 
5991  void SetMinor (float x, float y, float z) {
5992  m_points[6] = x; m_points[7] = y; m_points[8] = z;
5993  }
5995  void SetMinor (float const m[]) { SetMinor (m[0], m[1], m[2]); }
5997  float const * GetMinor () const { return &m_points[6]; }
5998 
5999 
6001  void SetDCenter (double x, double y, double z) {
6002  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6003  }
6005  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6007  double const * GetDCenter () const { return &m_dpoints[0]; }
6008 
6010  void SetDMajor (double x, double y, double z) {
6011  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6012  }
6014  void SetDMajor (double const m[]) { SetDMajor (m[0], m[1], m[2]); }
6016  double const * GetDMajor () const { return &m_dpoints[3]; }
6017 
6019  void SetDMinor (double x, double y, double z) {
6020  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6021  }
6023  void SetDMinor (double const m[]) { SetDMinor (m[0], m[1], m[2]); }
6025  double const * GetDMinor () const { return &m_dpoints[6]; }
6026 
6028  void SetLimits (float s, float e) {
6029  m_limits[0] = s; m_limits[1] = e;
6030  }
6032  float const * GetLimits () const { return m_limits; }
6033 };
6034 
6035 
6037 
6044 class BBINFILETK_API TK_Sphere : public BBaseOpcodeHandler {
6045  protected:
6046  unsigned char m_flags;
6047  float m_center[3];
6048  float m_radius;
6049  float m_axis[3];
6050  float m_ortho[3];
6051  double m_dcenter[3];
6052  double m_dradius;
6053  double m_daxis[3];
6054  double m_dortho[3];
6056  public:
6059  : BBaseOpcodeHandler (TKE_Sphere) { Reset(); }
6060 
6063  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6064 
6065  TK_Status ReadAscii (BStreamFileToolkit & tk);
6066  TK_Status WriteAscii (BStreamFileToolkit & tk);
6067 
6068  void Reset ();
6069 
6071  void SetCenter (float x, float y, float z) {
6072  m_center[0] = x; m_center[1] = y; m_center[2] = z;
6073  }
6075  void SetCenter (float const s[]) { SetCenter (s[0], s[1], s[2]); }
6077  float const * GetCenter () const { return m_center; }
6078 
6079 
6081  void SetRadius (float r) { m_radius = r; }
6083  float GetRadius () const { return m_radius; }
6084 
6086  void SetAxis (float x, float y, float z) {
6087  m_axis[0] = x; m_axis[1] = y; m_axis[2] = z;
6088  if (x != 0.0f || y != 1.0f || z != 0.0f)
6089  m_flags &= ~TKSPH_NULL_AXIS;
6090  }
6092  void SetAxis (float const s[]) { SetAxis (s[0], s[1], s[2]); }
6094  float const * GetAxis () const { return m_axis; }
6095 
6097  void SetOrtho (float x, float y, float z) {
6098  m_ortho[0] = x; m_ortho[1] = y; m_ortho[2] = z;
6099  if (x != 1.0f || y != 0.0f || z != 0.0f)
6100  m_flags &= ~TKSPH_NULL_AXIS;
6101  }
6103  void SetOrtho (float const s[]) { SetOrtho (s[0], s[1], s[2]); }
6105  float const * GetOrtho () const { return m_ortho; }
6106 
6107 
6109  void SetDCenter (double x, double y, double z) {
6110  m_dcenter[0] = x; m_dcenter[1] = y; m_dcenter[2] = z;
6111  }
6113  void SetDCenter (double const s[]) { SetDCenter (s[0], s[1], s[2]);}
6115  double const * GetDCenter () const { return m_dcenter; }
6116 
6117 
6119  void SetDRadius (double r) { m_dradius = r; }
6121  double GetDRadius () const { return m_dradius; }
6122 
6124  void SetDAxis (double x, double y, double z) {
6125  m_daxis[0] = x; m_daxis[1] = y; m_daxis[2] = z;
6126  if (x != 0.0f || y != 1.0f || z != 0.0f)
6127  m_flags &= ~TKSPH_NULL_AXIS;
6128  }
6130  void SetDAxis (double const s[]) { SetDAxis (s[0], s[1], s[2]); }
6132  double const * GetDAxis () const { return m_daxis; }
6133 
6135  void SetDOrtho (double x, double y, double z) {
6136  m_dortho[0] = x; m_dortho[1] = y; m_dortho[2] = z;
6137  if (x != 1.0f || y != 0.0f || z != 0.0f)
6138  m_flags &= ~TKSPH_NULL_AXIS;
6139  }
6141  void SetDOrtho (double const s[]) { SetDOrtho (s[0], s[1], s[2]); }
6143  double const * GetDOrtho () const { return m_dortho; }
6144 
6145 
6149  enum Flags {
6150  TKSPH_NONE = 0x0,
6151  TKSPH_NULL_AXIS = 0x1
6152  };
6153 
6154 };
6155 
6156 
6158 
6165 class BBINFILETK_API TK_Cylinder : public BBaseOpcodeHandler {
6166  protected:
6167  float m_axis[6];
6168  float m_radius;
6169  double m_daxis[6];
6170  double m_dradius;
6171  unsigned char m_flags;
6173  public:
6176  : BBaseOpcodeHandler (TKE_Cylinder) {}
6177 
6180  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6181 
6182  TK_Status ReadAscii (BStreamFileToolkit & tk);
6183  TK_Status WriteAscii (BStreamFileToolkit & tk);
6184 
6186  void SetAxis (float x1, float y1, float z1, float x2, float y2, float z2) {
6187  m_axis[0] = x1; m_axis[1] = y1; m_axis[2] = z1;
6188  m_axis[3] = x2; m_axis[4] = y2; m_axis[5] = z2;
6189  }
6191  void SetAxis (float const s[], float const e[]) { SetAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6193  void SetAxis (float const a[]) { SetAxis (&a[0], &a[3]); }
6195  float const * GetAxis () const { return m_axis; }
6197  float const * GetStart () const { return &m_axis[0]; }
6199  float const * GetEnd () const { return &m_axis[3]; }
6200 
6202  void SetRadius (float r) { m_radius = r; }
6204  float GetRadius () const { return m_radius; }
6205 
6206 
6208  void SetDAxis (double x1, double y1, double z1, double x2, double y2, double z2) {
6209  m_daxis[0] = x1; m_daxis[1] = y1; m_daxis[2] = z1;
6210  m_daxis[3] = x2; m_daxis[4] = y2; m_daxis[5] = z2;
6211  }
6213  void SetDAxis (double const s[], double const e[]) { SetDAxis (s[0], s[1], s[2], e[0], e[1], e[2]); }
6215  void SetDAxis (double const a[]) { SetDAxis (&a[0], &a[3]); }
6217  double const * GetDAxis () const { return m_daxis; }
6219  double const * GetDStart () const { return &m_daxis[0]; }
6221  double const * GetDEnd () const { return &m_daxis[3]; }
6222 
6224  void SetDRadius (double r) { m_dradius = r; }
6226  double GetDRadius () const { return m_dradius; }
6227 
6228 
6230  void SetCaps (int f) { m_flags = (unsigned char)f; }
6232  int GetCaps () const { return m_flags; }
6233 
6238  TKCYL_NONE = 0,
6239  TKCYL_FIRST = 1,
6240  TKCYL_SECOND = 2,
6241  TKCYL_BOTH = 3
6242  };
6243 
6244 };
6245 
6246 
6248 
6255 #include "BPolyhedron.h"
6256 
6257 class BBINFILETK_API TK_PolyCylinder : public TK_Polyhedron {
6258  protected:
6259  int m_count;
6260  float * m_points;
6261  double * m_dpoints;
6263  float * m_radii;
6264  double * m_dradii;
6265  unsigned char m_flags;
6266  float m_normals[6];
6268  public:
6271  : TK_Polyhedron (TKE_PolyCylinder), m_count (0), m_points (0), m_dpoints (0),
6272  m_radius_count (0), m_radii (0), m_dradii (0) {}
6273  ~TK_PolyCylinder();
6274 
6277  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6278 
6279  TK_Status ReadAscii (BStreamFileToolkit & tk);
6280  TK_Status WriteAscii (BStreamFileToolkit & tk);
6281 
6282  virtual void Reset ();
6283 
6288  TKCYL_NORMAL_FIRST = 0x04,
6289  TKCYL_NORMAL_SECOND = 0x08,
6290  TKCYL_OPTIONALS = 0x10
6291  };
6292 
6297  void SetPoints (int count, float const points[] = 0);
6299  float const * GetPoints () const { return m_points; }
6301  float * GetPoints () { return m_points; }
6302 
6307  void SetRadii (int count, float const radii[] = 0);
6309  void SetRadius (float radius) { SetRadii (1, &radius); }
6311  float const * GetRadii () const { return m_radii; }
6313  float * GetRadii () { return m_radii; }
6314 
6315 
6320  void SetDPoints (int count, double const points[] = 0);
6322  double const * GetDPoints () const { return m_dpoints; }
6324  double * GetDPoints () { return m_dpoints; }
6325 
6330  void SetDRadii (int count, double const radii[] = 0);
6332  void SetDRadius (double radius) { SetDRadii (1, &radius); }
6334  double const * GetDRadii () const { return m_dradii; }
6336  double * GetDRadii () { return m_dradii; }
6337 
6338 
6340  int GetCount () const { return m_count; }
6342  int GetRadiusCount () const { return m_radius_count; }
6343 
6344 
6345 
6346 
6348  void SetCaps (int f) { m_flags &= ~0x03; m_flags |= f; }
6350  int GetCaps () const { return m_flags & 0x03; }
6351 
6353  void SetEndNormal (int index, float const normal[] = 0) {
6354  int mask = 0x40 << index;
6355  if (normal == 0)
6356  m_flags &= ~mask;
6357  else {
6358  m_flags |= mask;
6359  m_normals[3*index+0] = normal[0];
6360  m_normals[3*index+1] = normal[1];
6361  m_normals[3*index+2] = normal[2];
6362  }
6363  }
6365  float const * GetEndNormal (int index) const {
6366  int mask = 0x40 << index;
6367  if (m_flags & mask)
6368  return &m_normals[3*index];
6369  else
6370  return 0;
6371  }
6372 };
6373 
6374 
6376 
6382 class BBINFILETK_API TK_Grid : public BBaseOpcodeHandler {
6383  protected:
6384  char m_type;
6385  float m_points[9];
6386  double m_dpoints[9];
6387  int m_counts[2];
6389  public:
6392  : BBaseOpcodeHandler (TKE_Grid) {}
6393 
6396  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6397 
6398  TK_Status ReadAscii (BStreamFileToolkit & tk);
6399  TK_Status WriteAscii (BStreamFileToolkit & tk);
6400 
6402  void SetOrigin (float x, float y, float z) {
6403  m_points[0] = x; m_points[1] = y; m_points[2] = z;
6404  }
6406  void SetOrigin (float const o[]) { SetOrigin (o[0], o[1], o[2]); }
6408  float const * GetOrigin () const { return &m_points[0]; }
6410  float * GetOrigin () { return &m_points[0]; }
6411 
6413  void SetRef1 (float x, float y, float z) {
6414  m_points[3] = x; m_points[4] = y; m_points[5] = z;
6415  }
6417  void SetRef1 (float const r[]) { SetRef1 (r[0], r[1], r[2]); }
6419  float const * GetRef1 () const { return &m_points[3]; }
6421  float * GetRef1 () { return &m_points[3]; }
6422 
6424  void SetRef2 (float x, float y, float z) {
6425  m_points[6] = x; m_points[7] = y; m_points[8] = z;
6426  }
6428  void SetRef2 (float const r[]) { SetRef2 (r[0], r[1], r[2]); }
6430  float const * GetRef2 () const { return &m_points[6]; }
6432  float * GetRef2 () { return &m_points[6]; }
6433 
6434 
6436  void SetDOrigin (double x, double y, double z) {
6437  m_dpoints[0] = x; m_dpoints[1] = y; m_dpoints[2] = z;
6438  }
6440  void SetDOrigin (double const o[]) { SetDOrigin (o[0], o[1], o[2]);}
6442  double const * GetDOrigin () const { return &m_dpoints[0]; }
6444  double * GetDOrigin () { return &m_dpoints[0]; }
6445 
6447  void SetDRef1 (double x, double y, double z) {
6448  m_dpoints[3] = x; m_dpoints[4] = y; m_dpoints[5] = z;
6449  }
6451  void SetDRef1 (double const r[]) { SetDRef1 (r[0], r[1], r[2]); }
6453  double const * GetDRef1 () const { return &m_dpoints[3]; }
6455  double * GetDRef1 () { return &m_dpoints[3]; }
6456 
6458  void SetDRef2 (double x, double y, double z) {
6459  m_dpoints[6] = x; m_dpoints[7] = y; m_dpoints[8] = z;
6460  }
6462  void SetDRef2 (double const r[]) { SetDRef2 (r[0], r[1], r[2]); }
6464  double const * GetDRef2 () const { return &m_dpoints[6]; }
6466  double * GetDRef2 () { return &m_dpoints[6]; }
6467 
6468 
6470  void SetCounts (int c1, int c2) {
6471  m_counts[0] = c1; m_counts[1] = c2;
6472  }
6474  int const * GetCounts () const { return m_counts; }
6476  int * GetCounts () { return m_counts; }
6477 
6479  void SetType (int t) { m_type = (char)t; }
6481  int GetType () const { return (int)m_type; }
6482 };
6483 
6485 
6488  char * name;
6489 
6490  float color[3];
6491  float size;
6494  float slant;
6495  float rotation;
6496  float width_scale;
6497 
6498  unsigned short mask;
6499  unsigned short value;
6500 
6501  unsigned char size_units;
6502  unsigned char vertical_offset_units;
6503  unsigned char horizontal_offset_units;
6504 };
6505 
6506 
6508 
6514 class BBINFILETK_API TK_Text : public BBaseOpcodeHandler {
6515  protected:
6516  float m_position[3];
6517  double m_dposition[3];
6518  int m_length;
6520  char * m_string;
6521  unsigned char m_encoding;
6522  unsigned char m_options;
6523  unsigned char m_region_options;
6524  unsigned char m_region_fit;
6525  unsigned char m_region_count;
6526  float m_region[4*3];
6528  int * m_cursors;
6530  float * m_leaders;
6531  unsigned char * m_leader_flags;
6533  double * m_dleaders;
6534  unsigned char * m_dleader_flags;
6535  int m_count;
6538  int m_tmp;
6540  void set_string (char const * string);
6541  void set_string (int length);
6542 
6543  public:
6545  TK_Text (unsigned char opcode);
6546  ~TK_Text();
6547 
6550  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6551 
6552  TK_Status ReadAscii (BStreamFileToolkit & tk);
6553  TK_Status WriteAscii (BStreamFileToolkit & tk);
6554 
6555  void Reset ();
6556 
6558  void SetString (char const * string) { set_string (string); }
6560  void SetString (unsigned short const * string);
6562  void SetString (unsigned int const * string);
6564  void SetString (int length) { set_string (length); }
6566  char const * GetString () const { return m_string; }
6568  char * GetString () { return m_string; }
6569 
6571  void SetPosition (float x, float y, float z)
6572  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6574  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6576  float const * GetPosition () const { return &m_position[0]; }
6577 
6579  void SetDPosition (double x, double y, double z)
6580  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6582  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6584  double const * GetDPosition () const { return &m_dposition[0]; }
6585 
6587  void SetEncoding (int e) { m_encoding = (unsigned char)e; }
6589  int GetEncoding () const { return (int)m_encoding; }
6590 
6592  void SetTextRegion (int c, float const p[], int o=0, int f=0);
6594  int GetTextRegionCount () const { return (int)m_region_count; }
6596  float const * GetTextRegionPoints () const { return m_region; }
6598  int GetTextRegionOptions () const { return (int)m_region_options; }
6600  int GetTextRegionFitting () const { return (int)m_region_fit; }
6601 
6602 
6604  void SetStringCursors (int length, int * locations = 0);
6606  int GetStringCursorCount () const { return m_cursor_count; }
6608  int const * GetStringCursors () const { return m_cursors; }
6610  int * GetStringCursors () { return m_cursors; }
6611 
6613  void SetTextLeaders (int length, float * locations = 0, unsigned char * flags = 0);
6615  int GetTextLeaderCount () const { return m_leader_count; }
6617  float const * GetTextLeaders () const { return m_leaders; }
6619  float * GetTextLeaders () { return m_leaders; }
6621  unsigned char const * GetTextLeaderFlags () const { return m_leader_flags; }
6623  unsigned char * GetTextLeaderFlags () { return m_leader_flags; }
6624 
6626  void SetDTextLeaders (int length, double * locations = 0, unsigned char * flags = 0);
6628  int GetDTextLeaderCount () const { return m_dleader_count; }
6630  double const * GetDTextLeaders () const { return m_dleaders; }
6632  double * GetDTextLeaders () { return m_dleaders; }
6634  unsigned char const * GetDTextLeaderFlags () const { return m_dleader_flags; }
6636  unsigned char * GetDTextLeaderFlags () { return m_dleader_flags; }
6637 };
6638 
6640 
6642 
6648 class BBINFILETK_API TK_Font : public BBaseOpcodeHandler {
6649  protected:
6650  char * m_name;
6651  char * m_lookup;
6652  char * m_bytes;
6655  int m_length;
6656  unsigned char m_type;
6657  unsigned char m_encoding;
6659  void set_bytes (int size, char const * bytes = 0);
6662  void set_name (char const * string);
6664  void set_name (int length);
6666  void set_lookup (char const * string);
6668  void set_lookup (int length);
6669 
6670  public:
6672  TK_Font () : BBaseOpcodeHandler (TKE_Font),
6673  m_name (0), m_lookup (0), m_bytes (0), m_name_length (0), m_lookup_length (0), m_length (0),
6674  m_type (0), m_encoding (0) {}
6675  ~TK_Font();
6676 
6679  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6680 
6681  TK_Status ReadAscii (BStreamFileToolkit & tk);
6682  TK_Status WriteAscii (BStreamFileToolkit & tk);
6683 
6684  void Reset ();
6685 
6686 
6688  void SetType (int t) { m_type = (unsigned char)t;}
6690  int GetType () const { return (int)m_type; }
6691 
6696  void SetBytes (int size, char const * bytes = 0) { set_bytes (size, bytes); }
6698  int GetBytesCount () const { return m_length; }
6700  char const * GetBytes () const { return m_bytes; }
6702  char * GetBytes () { return m_bytes; }
6703 
6705  void SetName (char const * string) { set_name (string); }
6707  void SetName (int length) { set_name (length); }
6709  char const * GetName () const { return m_name; }
6711  char * GetName () { return m_name; }
6712 
6714  void SetLookup (char const * string) { set_lookup (string); }
6716  void SetLookup (int length) { set_lookup (length); }
6718  char const * GetLookup () const { return m_lookup; }
6720  char * GetLookup () { return m_lookup; }
6721 
6723  void SetEncoding (int e) { m_encoding = (unsigned char)e;}
6725  int GetEncoding () const { return (int)m_encoding; }
6726 };
6727 
6729 
6730 
6732 extern const int TK_Image_Bytes_Per_Pixel[];
6733 
6734 #ifndef DOXYGEN_SHOULD_SKIP_THIS
6735 
6736 class BBINFILETK_API2 TK_Image_Data_Buffer {
6737  protected:
6738  unsigned char * m_buffer;
6739  unsigned int m_allocated;
6740  unsigned int m_used;
6741 
6742  public:
6744  TK_Image_Data_Buffer() : m_buffer (0), m_allocated (0), m_used (0) {}
6745  ~TK_Image_Data_Buffer();
6746 
6747  void Resize (unsigned int size);
6748  void Expand (unsigned int size) { Resize (Size() + size); }
6749  void Reset ();
6750 
6751  unsigned int const & Size () const { return m_allocated; }
6752  unsigned int const & Used () const { return m_used; }
6753  unsigned int & Used () { return m_used; }
6754  unsigned char const * Buffer () const { return m_buffer; }
6755  unsigned char * Buffer () { return m_buffer; }
6756 };
6757 
6758 
6759 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
6760 
6761 
6763 
6769 class BBINFILETK_API2 TK_Image : public BBaseOpcodeHandler {
6770  protected:
6771  char * m_bytes;
6772  char * m_name;
6773  char * m_reference;
6774  float m_position[3];
6775  double m_dposition[3];
6776  int m_size[2];
6780  unsigned char m_format;
6781  unsigned int m_options;
6782  unsigned char m_compression;
6783  unsigned char m_bytes_format;
6784  float m_explicit_size[2];
6785  unsigned char m_explicit_units[2];
6786  TK_Image_Data_Buffer m_work_area[2];
6791  void set_data (int size, char const * bytes = 0, unsigned char data_format = TKO_Compression_None);
6794  void set_name (char const * string);
6796  void set_name (int length);
6797 
6799  TK_Status compress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6801  TK_Status decompress_image (BStreamFileToolkit & tk, int active_work_area = 0);
6803  TK_Status read_jpeg_header ();
6804 
6805  public:
6807  TK_Image ();
6808  ~TK_Image();
6809 
6812  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6813 
6814  TK_Status ReadAscii (BStreamFileToolkit & tk);
6815  TK_Status WriteAscii (BStreamFileToolkit & tk);
6816  TK_Status compress_image_ascii (BStreamFileToolkit & tk);
6817 
6818 
6819  void Reset ();
6820 
6825  void SetBytes (int size, char const * bytes = 0,
6826  unsigned char data_format = TKO_Compression_None)
6827  { set_data (size, bytes, data_format); }
6829  char const * GetBytes () const { return m_bytes; }
6831  char * GetBytes () { return m_bytes; }
6832 
6834  void SetName (char const * string) { set_name (string); }
6836  void SetName (int length) { set_name (length); }
6838  char const * GetName () const { return m_name; }
6840  char * GetName () { return m_name; }
6841 
6843  void SetReference (char const * string);
6845  void SetReference (int length);
6847  char const * GetReference () const { return m_reference; }
6849  char * GetReference () { return m_reference; }
6850 
6852  void SetPosition (float x, float y, float z)
6853  { m_position[0] = x; m_position[1] = y; m_position[2] = z; }
6855  void SetPosition (float const p[]) { SetPosition (p[0], p[1], p[2]); }
6857  float const * GetPosition () const { return &m_position[0]; }
6858 
6860  void SetDPosition (double x, double y, double z)
6861  { m_dposition[0] = x; m_dposition[1] = y; m_dposition[2] = z; }
6863  void SetDPosition (double const p[]) { SetDPosition (p[0], p[1], p[2]); }
6865  double const * GetDPosition () const { return &m_dposition[0]; }
6866 
6868  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
6870  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
6872  int const * GetSize () const { return m_size; }
6873 
6875  void SetFormat (int f) { m_format = (unsigned char)(f & TKO_Image_Format_Mask); }
6877  int GetFormat () const { return (int)m_format; }
6878 
6880  void SetOptions (int f) { m_options = (unsigned char)(f & TKO_Image_Options_Mask); }
6882  int GetOptions () const { return (int)m_options; }
6883 
6885  void SetCompression (int c) { m_compression = (unsigned char)c; }
6887  int GetCompression () const { return (int)m_compression; }
6888 };
6889 
6890 
6892 
6894 
6900 class BBINFILETK_API2 TK_Texture : public BBaseOpcodeHandler {
6901  protected:
6902  char * m_name;
6904  char * m_image;
6905  char * m_camera;
6910  int m_flags;
6921  char m_layout;
6922  char m_tiling;
6923  float m_value_scale[2];
6924  int m_source_dimensions[3];
6925  char * m_transform;
6929  void set_name (int length);
6930  void set_name (char const * name);
6931  void set_image (int length);
6932  void set_image (char const * image);
6933  void set_transform (int length);
6934  void set_transform (char const * transform);
6935 
6936  public:
6938  TK_Texture () : BBaseOpcodeHandler (TKE_Texture),
6939  m_name (0), m_shader_source(0), m_image (0), m_camera (0),
6940  m_name_length (0), m_shader_source_length(0), m_image_length (0), m_camera_length (0),
6941  m_transform (0) {
6942  Reset();
6943  }
6944  ~TK_Texture();
6945 
6948  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
6949 
6950  TK_Status ReadAscii (BStreamFileToolkit & tk);
6951  TK_Status WriteAscii (BStreamFileToolkit & tk);
6952 
6953  void Reset ();
6954 
6956  void SetName (char const * name) { set_name (name); }
6958  void SetName (int length) { set_name (length); }
6960  char const * GetName () const { return m_name; }
6962  char * GetName () { return m_name; }
6963 
6965  void SetShaderSource (char const * shader_source);
6967  void SetShaderSource (int length);
6969  char const * GetShaderSource () const { return m_shader_source; }
6971  char * GetShaderSource () { return m_shader_source; }
6972 
6974  void SetImage (char const * image) { set_image (image); }
6976  void SetImage (int length) { set_image (length); }
6978  char const * GetImage () const { return m_image; }
6980  char * GetImage () { return m_image; }
6981 
6983  void SetCamera (char const * camera);
6985  void SetCamera (int length);
6987  char const * GetCamera () const { return m_camera; }
6989  char * GetCamera () { return m_camera; }
6990 
6992  void SetFlags (int f) {
6993  m_flags = f;
6994  if ((f & TKO_Texture_Extended_Mask) != 0)
6995  m_flags |= TKO_Texture_Extended;
6996  }
6998  int GetFlags () const { return m_flags; }
6999 
7001  void SetParameterSource (int p) { m_param_source = (char)p; }
7003  int GetParameterSource () const { return (int)m_param_source; }
7004 
7006  void SetInterpolation (int p) { m_interpolation = (char)p; }
7008  int GetInterpolation () const { return (int)m_interpolation; }
7009 
7011  void SetDecimation (int p) { m_decimation = (char)p; }
7013  int GetDecimation () const { return (int)m_decimation; }
7014 
7016  void SetRedMapping (int p) { m_red_mapping = (char)p; }
7018  int GetRedMapping () const { return (int)m_red_mapping; }
7019 
7021  void SetGreenMapping (int p) { m_green_mapping = (char)p; }
7023  int GetGreenMapping () const { return (int)m_green_mapping; }
7024 
7026  void SetBlueMapping (int p) { m_blue_mapping = (char)p; }
7028  int GetBlueMapping () const { return (int)m_blue_mapping; }
7029 
7031  void SetAlphaMapping (int p) { m_alpha_mapping = (char)p; }
7033  int GetAlphaMapping () const { return (int)m_alpha_mapping; }
7034 
7036  void SetParameterFunction (int p) { m_param_function = (char)p; }
7038  int GetParameterFunction () const { return (int)m_param_function; }
7039 
7041  void SetLayout (int p) { m_layout = (char)p; }
7043  int GetLayout () const { return (int)m_layout; }
7044 
7046  void SetTiling (int p) { m_tiling = (char)p; }
7048  int GetTiling () const { return (int)m_tiling; }
7049 
7051  void SetValueScale (float v1, float v2) { m_value_scale[0] = v1; m_value_scale[1] = v2; }
7053  float const * GetValueScale () const { return m_value_scale; }
7054 
7056  void SetApplicationMode (int p) { m_apply_mode = (char)p; }
7058  int GetApplicationMode () const { return (int)m_apply_mode; }
7059 
7061  void SetParameterOffset (int p) { m_param_offset = (char)p; }
7063  int GetParameterOffset () const { return (int)m_param_offset; }
7064 
7069  void SetTransform (char const * transform) { set_transform (transform); }
7074  void SetTransform (int length) { set_transform (length); }
7076  char const * GetTransform () const { return m_transform; }
7078  char * GetTransform () { return m_transform; }
7079 };
7080 
7082 
7084 
7090 class BBINFILETK_API2 TK_Thumbnail : public BBaseOpcodeHandler {
7091  protected:
7092  unsigned char * m_bytes;
7094  int m_size[2];
7095  unsigned char m_format;
7097  public:
7099  TK_Thumbnail() : BBaseOpcodeHandler (TKE_Thumbnail), m_bytes (0), m_allocated (0), m_format (TKO_Thumbnail_Invalid) {}
7100  ~TK_Thumbnail();
7101 
7104  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7105 
7106  TK_Status ReadAscii (BStreamFileToolkit & tk);
7107  TK_Status WriteAscii (BStreamFileToolkit & tk);
7108 
7110  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, int variant);
7111  TK_Status Interpret (BStreamFileToolkit & tk, ID_Key key, char const * special)
7112  { return BBaseOpcodeHandler::Interpret(tk, key, special); }
7113  void Reset ();
7114 
7119  void SetBytes (int size, unsigned char const * bytes = 0);
7121  unsigned char const * GetBytes () const { return m_bytes; }
7123  unsigned char * GetBytes () { return m_bytes; }
7124 
7126  void SetSize (int w, int h) { m_size[0] = w; m_size[1] = h; }
7128  void SetSize (int const s[]) { m_size[0] = s[0]; m_size[1] = s[1]; }
7130  int const * GetSize () const { return m_size; }
7131 
7133  void SetFormat (int f) { m_format = (unsigned char)f; }
7135  int GetFormat () const { return (int)m_format; }
7136 };
7137 
7138 
7140 
7142 
7147 class BBINFILETK_API2 TK_Glyph_Definition : public BBaseOpcodeHandler {
7148  protected:
7150  int m_size;
7151  char * m_name;
7152  char * m_data;
7154  public:
7156  TK_Glyph_Definition () : BBaseOpcodeHandler (TKE_Glyph_Definition),
7157  m_name_length (0), m_size (0),
7158  m_name (0), m_data (0) {}
7160 
7163  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7164 
7165  TK_Status ReadAscii (BStreamFileToolkit & tk);
7166  TK_Status WriteAscii (BStreamFileToolkit & tk);
7167 
7168  void Reset ();
7169 
7171  void SetName (char const * name);
7173  void SetName (int length);
7175  char const * GetName () const { return m_name; }
7177  char * GetName () { return m_name; }
7178 
7180  void SetDefinition (int size, char const * data = 0);
7182  int GetDefinitionSize () const { return m_size; }
7184  char const * GetDefinition () const { return m_data; }
7186  char * GetDefinition () { return m_data; }
7187 };
7188 
7189 
7191 
7196 class BBINFILETK_API2 TK_Shape_Definition : public BBaseOpcodeHandler {
7197  protected:
7199  int m_size;
7200  char * m_name;
7201  float * m_data;
7203  public:
7205  TK_Shape_Definition () : BBaseOpcodeHandler (TKE_Shape_Definition),
7206  m_name_length (0), m_size (0),
7207  m_name (0), m_data (0) {}
7209 
7212  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7213 
7214  TK_Status ReadAscii (BStreamFileToolkit & tk);
7215  TK_Status WriteAscii (BStreamFileToolkit & tk);
7216 
7217  void Reset ();
7218 
7220  void SetName (char const * name);
7222  void SetName (int length);
7224  char const * GetName () const { return m_name; }
7226  char * GetName () { return m_name; }
7227 
7229  void SetDefinition (int size, float const * data = 0);
7231  int GetDefinitionSize () const { return m_size; }
7233  float const * GetDefinition () const { return m_data; }
7235  float * GetDefinition () { return m_data; }
7236 };
7237 
7238 
7240 
7245 class BBINFILETK_API2 TK_Named_Style_Def : public BBaseOpcodeHandler {
7246  protected:
7248  char * m_name;
7251  char * m_segment;
7255  char * m_condition;
7259  bool m_follow;
7260 
7261  public:
7264  m_name_length (0), m_name (0),
7265  m_segment_length (0), m_segment (0) ,
7266  m_cond_length (0), m_cond_allocated (0), m_condition (0),
7267  m_key(-1), m_referee(0), m_follow(true) {}
7268  ~TK_Named_Style_Def();
7269 
7272  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7273 
7274  TK_Status ReadAscii (BStreamFileToolkit & tk);
7275  TK_Status WriteAscii (BStreamFileToolkit & tk);
7276 
7277  void Reset ();
7278 
7280  void SetName (char const * name);
7282  void SetName (int length);
7284  char const * GetName () const { return m_name; }
7286  char * GetName () { return m_name; }
7287 
7292  void SetSegment (char const * segment);
7297  void SetSegment (int length);
7301  char const * GetSegment () const { return m_segment; }
7306  char * GetSegment () { return m_segment; }
7307 };
7308 
7310 
7315 class BBINFILETK_API2 TK_Line_Style : public BBaseOpcodeHandler {
7316  protected:
7319  char * m_name;
7320  char * m_definition;
7322  public:
7324  TK_Line_Style () : BBaseOpcodeHandler (TKE_Line_Style),
7325  m_name_length (0), m_definition_length (0),
7326  m_name (0), m_definition (0) {}
7327  ~TK_Line_Style();
7328 
7331  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7332 
7333  TK_Status ReadAscii (BStreamFileToolkit & tk);
7334  TK_Status WriteAscii (BStreamFileToolkit & tk);
7335 
7336  void Reset ();
7337 
7339  void SetName (char const * name);
7341  void SetName (int length);
7343  char const * GetName () const { return m_name; }
7345  char * GetName () { return m_name; }
7346 
7348  void SetDefinition (char const * def);
7350  void SetDefinition (int length);
7352  char const * GetDefinition () const { return m_definition; }
7354  char * GetDefinition () { return m_definition; }
7355 };
7356 
7358 
7360 
7365 class BBINFILETK_API TK_Clip_Rectangle : public BBaseOpcodeHandler {
7366  protected:
7367  char m_options;
7368  float m_rect[4];
7370  public:
7373  : BBaseOpcodeHandler (TKE_Clip_Rectangle), m_options (0) {}
7374 
7377  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7378 
7379  TK_Status ReadAscii (BStreamFileToolkit & tk);
7380  TK_Status WriteAscii (BStreamFileToolkit & tk);
7381 
7382  void Reset ();
7383 
7385  void SetRectangle (float left, float right, float bottom, float top)
7386  { m_rect[0] = left; m_rect[1] = right; m_rect[2] = bottom; m_rect[3] = top; }
7388  void SetRectangle (float const * rect)
7389  { SetRectangle (rect[0], rect[1], rect[2], rect[3]); }
7391  float const * GetRectangle () const { return m_rect; }
7392 
7394  void SetOptions (int o) { m_options = (char)o; }
7396  int GetOptions () const { return (int)m_options; }
7397 };
7398 
7400 
7402 
7407 class BBINFILETK_API TK_Clip_Region : public BBaseOpcodeHandler {
7408  protected:
7409  char m_options;
7410  int m_count;
7411  float * m_points;
7412  double * m_dpoints;
7416  public:
7419  : BBaseOpcodeHandler (TKE_Clip_Region), m_options (0), m_count (0), m_points (0), m_dpoints (0), m_complex (0) {}
7420  ~TK_Clip_Region();
7421 
7424  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7425 
7426  TK_Status ReadAscii (BStreamFileToolkit & tk);
7427  TK_Status WriteAscii (BStreamFileToolkit & tk);
7428 
7429  void Reset ();
7430 
7435  void SetPoints (int count, float const points[] = 0);
7437  float const * GetPoints () const { return m_points; }
7439  float * GetPoints () { return m_points; }
7440 
7445  void SetDPoints (int count, double const points[] = 0);
7447  double const * GetDPoints () const { return m_dpoints; }
7449  double * GetDPoints () { return m_dpoints; }
7450 
7451 
7453  int GetCount () const { return m_count; }
7454 
7455 
7457  void SetOptions (int o) { m_options = (char)o; }
7459  int GetOptions () const { return (int)m_options; }
7460 };
7461 
7462 
7464 
7466 
7471 class BBINFILETK_API TK_Complex_Clip_Region : public BBaseOpcodeHandler {
7472  protected:
7473  char m_options;
7474  int m_loops;
7475  int m_total;
7476  int * m_lengths;
7477  float * m_points;
7478  double * m_dpoints;
7480  public:
7483  : BBaseOpcodeHandler (TKE_Complex_Clip_Region), m_options (0), m_loops (0), m_total (0),
7484  m_lengths (0), m_points (0), m_dpoints (0) {}
7486 
7489  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7490 
7491  TK_Status ReadAscii (BStreamFileToolkit & tk);
7492  TK_Status WriteAscii (BStreamFileToolkit & tk);
7493 
7494  void Reset ();
7495 
7500  void SetPoints (int count, float const points[] = 0);
7502  float const * GetPoints () const { return m_points; }
7504  float * GetPoints () { return m_points; }
7505 
7510  void SetDPoints (int count, double const points[] = 0);
7512  double const * GetDPoints () const { return m_dpoints; }
7514  double * GetDPoints () { return m_dpoints; }
7515 
7516 
7521  void SetLengths (int count, int const lengths[] = 0);
7523  int const * GetLengths () const { return m_lengths; }
7525  int * GetLengths () { return m_lengths; }
7526 
7527 
7529  int GetTotal () const { return m_total; }
7531  int GetLoops () const { return m_loops; }
7532 
7533 
7535  void SetOptions (int o) { m_options = (char)o; }
7537  int GetOptions () const { return (int)m_options; }
7538 };
7539 
7540 
7542 
7544 
7560 class BBINFILETK_API2 TK_User_Data : public BBaseOpcodeHandler {
7561  protected:
7562  int m_size;
7563  unsigned char * m_data;
7566  void set_data (int size, unsigned char const * bytes = 0);
7568 
7569  public:
7572  : BBaseOpcodeHandler (TKE_Start_User_Data), m_size (0), m_data (0), m_buffer_size(0) {}
7573  ~TK_User_Data();
7574 
7577  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7578 
7579  TK_Status ReadAscii (BStreamFileToolkit & tk);
7580  TK_Status WriteAscii (BStreamFileToolkit & tk);
7581 
7583  void Reset ();
7584 
7589  void SetUserData (int size, unsigned char const * bytes = 0) { set_data (size, bytes); }
7591  unsigned char const * GetUserData () const { return m_data; }
7593  unsigned char * GetUserData () { return m_data; }
7595  int GetSize () const { return m_size; }
7596 
7598  void Resize (int size);
7599 
7601  void SetSize (int size);
7602 };
7603 
7604 
7606 
7608 
7620 class BBINFILETK_API2 TK_Material : public BBaseOpcodeHandler {
7621  protected:
7623 
7626  struct vlist_s *m_data;
7627 
7628  public:
7630  TK_Material () : BBaseOpcodeHandler (TKE_Material), m_total_size(0), m_data(0) {}
7631  ~TK_Material();
7632 
7635  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7636  void Reset ();
7637 
7638  TK_Status PushUserData (char const *buffer, int buffer_size, bool tally_total_size = true);
7639  TK_Status GetBlock (char const **ptr, int *buffer_size);
7640 };
7641 
7643 
7648 class BBINFILETK_API TK_XML : public BBaseOpcodeHandler {
7649  protected:
7650  int m_size;
7651  char * m_data;
7653  public:
7655  TK_XML (): BBaseOpcodeHandler (TKE_XML), m_size (0), m_data (0) {}
7656  ~TK_XML();
7657 
7660  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7661 
7662  TK_Status ReadAscii (BStreamFileToolkit & tk);
7663  TK_Status WriteAscii (BStreamFileToolkit & tk);
7664 
7666  void Reset ();
7667 
7672  void SetXML (int size, char const * data = 0);
7676  void AppendXML (int size, char const * data = 0);
7678  char const * GetXML () const { return m_data; }
7680  char * GetXML () { return m_data; }
7682  int GetSize () const { return m_size; }
7683 };
7684 
7685 
7686 
7688 
7694 class BBINFILETK_API TK_URL : public BBaseOpcodeHandler {
7695  protected:
7696  int m_length;
7698  char * m_string;
7700  public:
7703  m_length (0), m_allocated (0), m_string (0) {}
7704  ~TK_URL();
7705 
7708  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7709 
7710  TK_Status ReadAscii (BStreamFileToolkit & tk);
7711  TK_Status WriteAscii (BStreamFileToolkit & tk);
7712 
7713  void Reset ();
7714 
7716  void SetString (char const * string);
7718  void SetString (int length);
7720  char const * GetString () const { return m_string; }
7722  char * GetString () { return m_string; }
7723 };
7724 
7725 
7727 
7733 class BBINFILETK_API TK_External_Reference : public BBaseOpcodeHandler {
7734  protected:
7735  int m_length;
7737  char * m_string;
7739  public:
7740  TK_External_Reference () : BBaseOpcodeHandler (TKE_External_Reference),
7741  m_length (0), m_allocated (0), m_string (0) {}
7743 
7746  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7747 
7748  TK_Status ReadAscii (BStreamFileToolkit & tk);
7749  TK_Status WriteAscii (BStreamFileToolkit & tk);
7750 
7752  void Reset ();
7753 
7755  void SetString (char const * string);
7757  void SetString (int length);
7759  char const * GetString () const { return m_string; }
7761  char * GetString () { return m_string; }
7762 };
7763 
7764 
7766 
7772 class BBINFILETK_API TK_External_Reference_Unicode : public BBaseOpcodeHandler {
7773  protected:
7774  int m_length;
7776  wchar_t * m_string;
7778  public:
7779  TK_External_Reference_Unicode () : BBaseOpcodeHandler (TKE_External_Reference_Unicode),
7780  m_length (0), m_allocated (0), m_string (0) {}
7782 
7785  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7786 
7788  void Reset ();
7789 
7791  void SetString (__wchar_t const * string);
7792 #ifdef _MSC_VER
7793  void SetString (unsigned short const * string);
7794 #endif
7795 
7796  void SetString (int length);
7798  wchar_t const * GetString () const { return m_string; }
7800  wchar_t * GetString () { return m_string; }
7801 };
7802 
7803 
7804 
7805 
7807 
7813 class BBINFILETK_API TK_Image_XRef : public BBaseOpcodeHandler {
7814  protected:
7815  char * m_name;
7817  int m_size[2];
7818  char m_bpp;
7819 
7821  void set_name (char const * string);
7823  void set_name (int length);
7824 
7825  public:
7826  TK_Image_XRef () : BBaseOpcodeHandler (TKE_Image_XRef), m_name (0), m_name_length (0), m_bpp(0)
7827  { m_size[0] = m_size[1] = 0; }
7828  ~TK_Image_XRef();
7829 
7832  TK_Status Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **handler) const;
7834  void Reset (void);
7835 
7837  void SetName (char const * string) { set_name (string);}
7839  void SetName (int length) { set_name (length);}
7841  char const * GetName (void) const { return m_name;}
7843  char * GetName (void) { return m_name;}
7844 
7845  void SetSize (int x, int y ) { m_size[0] = x; m_size[1] = y;}
7846  int const* GetSize (void) const { return m_size;}
7847  int * GetSize (void) { return m_size;}
7848 
7849  void SetBitDepth( char bpp ) { m_bpp = bpp;}
7850  char const GetBitDepth (void) const { return m_bpp;}
7851  char GetBitDepth (void) { return m_bpp;}
7852 };
7853 
7854 
7855 #endif //BOPCODE_HANDLER
7856 
void SetOptions(int o)
Definition: BOpcodeHandler.h:5477
void SetAxis(float const s[], float const e[])
Definition: BOpcodeHandler.h:6191
char ** m_isoline_patterns
for internal use only.
Definition: BOpcodeHandler.h:2286
float GetPreferenceCutoff() const
Definition: BOpcodeHandler.h:5087
char * GetString()
Definition: BOpcodeHandler.h:2171
void SetColorMarkerContrastLockMask(int m)
Definition: BOpcodeHandler.h:2831
float * m_control_points
Definition: BOpcodeHandler.h:5365
float const * GetRGB() const
Definition: BOpcodeHandler.h:1938
int m_nurbs_options_value
For internal use only.
Definition: BOpcodeHandler.h:2316
static TK_Status PutData(BStreamFileToolkit &tk, short const *s, int n)
Definition: BOpcodeHandler.h:343
shift corresponding to extended bit
Definition: BOpcodeEnums.h:279
int GetMask(int index=0) const
Definition: BOpcodeHandler.h:2430
int GetTechnology() const
Definition: BOpcodeHandler.h:2455
char m_isoline_position_type
for internal use only.
Definition: BOpcodeHandler.h:2280
BBaseOpcodeHandler * m_indices
Definition: BOpcodeHandler.h:4454
int GetOptions() const
Definition: BOpcodeHandler.h:5227
for further expansion
Definition: BOpcodeEnums.h:1127
void SetPoints(float const s[], float const e[])
Definition: BOpcodeHandler.h:5264
ID_Key last_key(BStreamFileToolkit &tk) const
obsolete
Definition: BOpcodeHandler.h:640
int value
For internal use only.
Definition: BOpcodeHandler.h:1049
int GetSelectionLevel() const
Definition: BOpcodeHandler.h:3942
int GetFlags() const
Definition: BOpcodeHandler.h:6998
void SetType(int t)
Definition: BOpcodeHandler.h:6479
virtual bool NeedsContext(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:217
unsigned char const * GetUserData() const
Definition: BOpcodeHandler.h:7591
int GetMaximumExtentMode() const
Definition: BOpcodeHandler.h:3878
TK_Clip_Rectangle()
Definition: BOpcodeHandler.h:7372
int m_name_length
Definition: BOpcodeHandler.h:7149
TK_Grid()
Definition: BOpcodeHandler.h:6391
int m_name_length
Definition: BOpcodeHandler.h:6778
char m_maximum_extent_level
internal use; maximum extent level
Definition: BOpcodeHandler.h:3791
char * GetName()
Definition: BOpcodeHandler.h:6711
void SetJoinCutoffAngle(int d)
Definition: BOpcodeHandler.h:2483
int GetLodMinimumTriangleCount() const
Definition: BOpcodeHandler.h:3399
int GetFormat() const
Definition: BOpcodeHandler.h:6877
void SetPixelThreshold(int c)
Definition: BOpcodeHandler.h:3870
float GetCutGeometryTolerance() const
Definition: BOpcodeHandler.h:3567
void SetDUpVector(double const u[])
Definition: BOpcodeHandler.h:4765
void SetVisibilityLockValue(int v)
Definition: BOpcodeHandler.h:2520
int const * GetSize() const
Definition: BOpcodeHandler.h:7130
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:646
int GetToleranceUnits() const
Definition: BOpcodeHandler.h:5000
float const * GetDefinition() const
Definition: BOpcodeHandler.h:7233
bool GetLogging() const
Definition: BStreamFileToolkit.h:1005
float * m_v_knots
Definition: BOpcodeHandler.h:5541
void SetPattern(int p)
Definition: BOpcodeHandler.h:4279
int color_value
For internal use only.
Definition: BOpcodeHandler.h:1051
channel m_bump
internal use
Definition: BOpcodeHandler.h:1731
short color_text_mask
For internal use only.
Definition: BOpcodeHandler.h:1060
unsigned short m_unsigned_short
temporary
Definition: BOpcodeHandler.h:81
char m_space
internal use
Definition: BOpcodeHandler.h:1952
int GetOffset() const
Definition: BOpcodeHandler.h:1690
int m_allocated
Definition: BOpcodeHandler.h:7093
void SetTransmissionName(int length)
Definition: BOpcodeHandler.h:1838
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5366
ID_Key GetIndex()
Definition: BOpcodeHandler.h:1400
void SetDUpVector(double x, double y, double z)
Definition: BOpcodeHandler.h:4762
void SetTransmission(float const rgb[])
Definition: BOpcodeHandler.h:1834
float const * GetField() const
Definition: BOpcodeHandler.h:4776
void SetLodFallback(int v)
Definition: BOpcodeHandler.h:3417
double * m_dpoints
Definition: BOpcodeHandler.h:6261
int GetCount() const
Definition: BOpcodeHandler.h:5662
char * GetCondition()
Definition: BOpcodeHandler.h:1420
static TK_Status GetData(BStreamFileToolkit &tk, short &s)
Definition: BOpcodeHandler.h:298
void SetComment(int length)
Definition: BOpcodeHandler.h:974
char const * GetCamera() const
Definition: BOpcodeHandler.h:6987
void SetColorMarkerContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3234
float * m_leaders
Definition: BOpcodeHandler.h:6530
void SetOptions(int o)
Definition: BOpcodeHandler.h:7394
char * m_name
Definition: BOpcodeHandler.h:7815
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char *b, int n)
Definition: BOpcodeHandler.h:286
int GetRadiusCount() const
Definition: BOpcodeHandler.h:6342
int const * GetIndices() const
Definition: BOpcodeHandler.h:4618
void SetColorLockValue(int v)
Definition: BOpcodeHandler.h:2543
static TK_Status PutData(BStreamFileToolkit &tk, char const *b, int n)
Definition: BOpcodeHandler.h:340
char const * GetTransmissionName() const
Definition: BOpcodeHandler.h:1842
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:6855
int GetForcedLockValue() const
Definition: BOpcodeHandler.h:2906
void SetInternalSelectionLimit(int i)
Definition: BOpcodeHandler.h:3838
int m_count
internal use
Definition: BOpcodeHandler.h:5618
int m_lookup_length
Definition: BOpcodeHandler.h:6654
int m_shader_source_length
Definition: BOpcodeHandler.h:6907
void SetDRef1(double const r[])
Definition: BOpcodeHandler.h:6451
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:5709
void SetGeneralDisplacement(int d)
Definition: BOpcodeHandler.h:2478
unsigned short mask
specifies which settings are active (i.e. the attributes for which we have an opinion at this point) ...
Definition: BOpcodeHandler.h:6498
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4539
bool NeedsTag() const
Definition: BOpcodeHandler.h:199
unsigned int NextOpcodeSequence()
Definition: BStreamFileToolkit.h:1036
int GetColorVertexLockMask() const
Definition: BOpcodeHandler.h:2767
TK_Header()
Definition: BOpcodeHandler.h:869
int m_values_length
internal use
Definition: BOpcodeHandler.h:2112
float const * GetWeights() const
Definition: BOpcodeHandler.h:5512
unsigned char m_degree
Definition: BOpcodeHandler.h:5456
int GetColorWindowForcedLockMask() const
Definition: BOpcodeHandler.h:3078
void SetAmbientUpVector(float const v[])
Definition: BOpcodeHandler.h:3726
Capping_Options
Definition: BOpcodeHandler.h:6287
int m_simple_reflection_blur
For internal use only.
Definition: BOpcodeHandler.h:2368
char const * GetView() const
Definition: BOpcodeHandler.h:4823
int m_shape_length
for internal use only
Definition: BOpcodeHandler.h:4903
unsigned char m_tolerance_units
for internal use only
Definition: BOpcodeHandler.h:4911
int GetColorLineContrastLockValue() const
Definition: BOpcodeHandler.h:2824
unsigned char m_opcode
The opcode being handled by this particular object.
Definition: BOpcodeHandler.h:65
float const * GetPlane() const
Definition: BOpcodeHandler.h:5801
int GetTextRegionFitting() const
Definition: BOpcodeHandler.h:6600
int GetStringCursorCount() const
Definition: BOpcodeHandler.h:6606
float GetHlrFaceDisplacement() const
Definition: BOpcodeHandler.h:3343
float * GetDefinition()
Definition: BOpcodeHandler.h:7235
int GetDebug() const
Definition: BOpcodeHandler.h:2465
int GetNURBSCurveBudget() const
Definition: BOpcodeHandler.h:3369
float const * GetAmbientUpVector() const
Definition: BOpcodeHandler.h:3728
char m_char
temporary
Definition: BOpcodeHandler.h:83
TK_Status PutGeneral(BStreamFileToolkit &tk)
Definition: BOpcodeHandler.h:481
int GetColorTextContrastLockMask() const
Definition: BOpcodeHandler.h:2882
static TK_Status GetData(BStreamFileToolkit &tk, short *s, int n)
Definition: BOpcodeHandler.h:254
float const * GetTextLeaders() const
Definition: BOpcodeHandler.h:6617
int GetGeometry() const
Definition: BOpcodeHandler.h:2093
void SetVertexDisplacement(int d)
Definition: BOpcodeHandler.h:2473
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5284
int m_size
Definition: BOpcodeHandler.h:7562
self-explanatory; (internal note: keep this listed last)
Definition: BOpcodeEnums.h:1064
void SetFormat(int f)
Definition: BOpcodeHandler.h:6875
int GetLodAlgorithm() const
Definition: BOpcodeHandler.h:3395
void SetOblique(float h, float v)
Definition: BOpcodeHandler.h:4791
void SetColorTextLockValue(int v)
Definition: BOpcodeHandler.h:2658
unsigned short m_pattern
internal use
Definition: BOpcodeHandler.h:4264
double * m_dpoints
Definition: BOpcodeHandler.h:7412
channel m_specular
internal use
Definition: BOpcodeHandler.h:1726
unsigned char const * GetBytes() const
Definition: BOpcodeHandler.h:7121
float vertical_offset
offset, positive or negative, from the standard position. units are specified separately in vertical_...
Definition: BOpcodeHandler.h:6492
self-explanatory
Definition: BOpcodeEnums.h:266
char * m_shader_source
Definition: BOpcodeHandler.h:6903
int m_length
internal use
Definition: BOpcodeHandler.h:932
////
Definition: BOpcodeEnums.h:133
short color_face_value
For internal use only.
Definition: BOpcodeHandler.h:1053
void SetColorWindowForcedLockMask(int m)
Definition: BOpcodeHandler.h:3073
TK_Status ReadAscii(BStreamFileToolkit &tk)
Deprecated.
void SetBufferSizeLimit(int l)
Definition: BOpcodeHandler.h:3310
float * GetPoints()
Definition: BOpcodeHandler.h:5570
short m_type
Definition: BOpcodeHandler.h:4402
unsigned char Opcode() const
Definition: BOpcodeHandler.h:164
void SetTechnology(int t)
Definition: BOpcodeHandler.h:2453
int m_surface_trim_budget
For internal use only.
Definition: BOpcodeHandler.h:2320
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:4745
Handles the TKE_Reopen_Segment opcode.
Definition: BOpcodeHandler.h:1247
int m_current_level
the index of the level currently in progress.
Definition: BOpcodeHandler.h:1505
void SetScreenRange(float const l[], float const o[])
Definition: BOpcodeHandler.h:3710
char m_options
for internal use only
Definition: BOpcodeHandler.h:5686
void SetPreferenceCutoffUnits(int u)
Definition: BOpcodeHandler.h:5090
void increase_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:649
HT_NURBS_Trim * m_list
Definition: BOpcodeHandler.h:5462
void SetDPoints(double const p[])
Definition: BOpcodeHandler.h:5282
void SetTolerance(float t)
Definition: BOpcodeHandler.h:4993
int m_highest_level
keeps track of highest level lod that has been seen so far
Definition: BOpcodeHandler.h:1501
char * GetTransform()
Definition: BOpcodeHandler.h:7078
void SetSimpleShadowBlur(int m)
Definition: BOpcodeHandler.h:3604
float m_surface_max_facet_angle
For internal use only.
Definition: BOpcodeHandler.h:2322
unsigned short m_mask
internal use
Definition: BOpcodeHandler.h:3963
float m_radius
Definition: BOpcodeHandler.h:6168
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:4735
int GetColorForcedLockValue() const
Definition: BOpcodeHandler.h:2951
int GetColorLineContrastLockMask() const
Definition: BOpcodeHandler.h:2813
char const * GetName() const
Definition: BOpcodeHandler.h:7284
void SetLodBounding(float const s[], float const e[])
Definition: BOpcodeHandler.h:3427
float m_hlr_weight
for internal use only.
Definition: BOpcodeHandler.h:2271
double * GetDTextLeaders()
Definition: BOpcodeHandler.h:6632
char * m_name
Definition: BOpcodeHandler.h:7248
void SetBufferOptionsMask(int v)
Definition: BOpcodeHandler.h:3302
int m_nurbs_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2315
float * m_control_points
Definition: BOpcodeHandler.h:5537
int m_loops
Definition: BOpcodeHandler.h:7474
void SetImage(int length)
Definition: BOpcodeHandler.h:6976
short color_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1055
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6723
Handles the TKE_Close_Segment opcode.
Definition: BOpcodeHandler.h:1219
int GetPattern() const
Definition: BOpcodeHandler.h:4281
Handles the TKE_Geometry_Options opcode.
Definition: BOpcodeHandler.h:3961
float const * GetCenter() const
Definition: BOpcodeHandler.h:6077
int m_up
internal use; specifies what geometry is selectable on mouse button up. For internal use only...
Definition: BOpcodeHandler.h:4067
int m_debug_allocated
Definition: BOpcodeHandler.h:70
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5657
int GetOrientationCount() const
Definition: BOpcodeHandler.h:3996
float const * GetPoints() const
Definition: BOpcodeHandler.h:7502
void SetDEnd(double const e[])
Definition: BOpcodeHandler.h:5916
int GetColorVertexLockValue() const
Definition: BOpcodeHandler.h:2778
TK_Unavailable(char opcode)
Definition: BOpcodeHandler.h:848
void SetOptions(char const *options)
Definition: BOpcodeHandler.h:4477
static TK_Status GetData(BStreamFileToolkit &tk, float *f, int n)
Definition: BOpcodeHandler.h:270
void SetColorFaceLockMask(int m)
Definition: BOpcodeHandler.h:2555
int GetUSize() const
Definition: BOpcodeHandler.h:5581
short color_window_mask
For internal use only.
Definition: BOpcodeHandler.h:1062
int m_allocated
Definition: BOpcodeHandler.h:7775
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1613
void SetSelectionCulling(int c)
Definition: BOpcodeHandler.h:3862
void SetAxis(float x, float y, float z)
Definition: BOpcodeHandler.h:6086
float m_max_distance
internal use; max distance
Definition: BOpcodeHandler.h:3796
void SetDPoints(double const s[], double const m[], double const e[], double const c[]=0)
Definition: BOpcodeHandler.h:5930
channel m_transmission
internal use
Definition: BOpcodeHandler.h:1728
Handles the TKE_Cylinder opcode.
Definition: BOpcodeHandler.h:6165
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:5977
float m_radius
Definition: BOpcodeHandler.h:6048
void Reset(void)
Definition: BOpcodeHandler.h:5201
char const * GetBytes() const
Definition: BOpcodeHandler.h:6829
Handles the TKE_Color_By_Value opcode.
Definition: BOpcodeHandler.h:1948
unsigned char m_flags
Definition: BOpcodeHandler.h:6046
char * m_string
internal use
Definition: BOpcodeHandler.h:2115
TK_Sphere()
Definition: BOpcodeHandler.h:6058
int GetTotal() const
Definition: BOpcodeHandler.h:7529
HLONG const * GetValues() const
Definition: BOpcodeHandler.h:4570
double * GetDRadii()
Definition: BOpcodeHandler.h:6336
////
Definition: BOpcodeEnums.h:49
double * m_dpoints
Definition: BOpcodeHandler.h:7478
float GetGreekingLimit() const
Definition: BOpcodeHandler.h:5040
void SetShadowMapResolution(int m)
Definition: BOpcodeHandler.h:3656
double * GetDOrigin()
Definition: BOpcodeHandler.h:6444
void SetInner(float i)
Definition: BOpcodeHandler.h:5738
unsigned char m_region_count
Definition: BOpcodeHandler.h:6525
TK_Conditional_Action()
Definition: BOpcodeHandler.h:4409
char const * GetImage() const
Definition: BOpcodeHandler.h:6978
void SetDPlane(double a, double b, double c, double d)
Definition: BOpcodeHandler.h:5791
options mask (unsigned char if file version is < 1805)
Definition: BOpcodeEnums.h:1368
void SetColorBackForcedLockMask(int m)
Definition: BOpcodeHandler.h:3142
int GetCount() const
Definition: BOpcodeHandler.h:5811
Handles the TKE_Termination and TKE_Pause opcodes.
Definition: BOpcodeHandler.h:996
unsigned short m_contour_options
for internal use only.
Definition: BOpcodeHandler.h:2275
char * m_condition
Definition: BOpcodeHandler.h:7255
double * m_dpoints
internal use
Definition: BOpcodeHandler.h:5620
int GetMaximumExtentLevel() const
Definition: BOpcodeHandler.h:3882
TK_Thumbnail()
Definition: BOpcodeHandler.h:7099
void GetDTarget(double t[]) const
Definition: BOpcodeHandler.h:4749
void decrease_nesting(BStreamFileToolkit &tk, int amount=1)
for internal use only
Definition: BOpcodeHandler.h:651
int GetLodNumCutoffs() const
Definition: BOpcodeHandler.h:3487
char m_options
relevant to TKE_Distant_Light and TKE_Local_Light only. See TKO_Light_Options.
Definition: BOpcodeHandler.h:5183
short color_vertex_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1078
int GetLodClamp() const
Definition: BOpcodeHandler.h:3407
int GetTransparentHSR() const
Definition: BOpcodeHandler.h:2445
int GetHSR() const
Definition: BOpcodeHandler.h:2440
void SetLookup(int length)
Definition: BOpcodeHandler.h:6716
void SetChannels(int c)
Definition: BOpcodeHandler.h:1778
near limit setting
Definition: BOpcodeEnums.h:1097
float m_end_u
Definition: BOpcodeHandler.h:5461
void SetName(int length)
Definition: BOpcodeHandler.h:6707
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:5704
short color_window_value
For internal use only.
Definition: BOpcodeHandler.h:1063
float m_cut_geometry_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2347
float * m_points
Definition: BOpcodeHandler.h:5454
type for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:645
bool validate_count(int count, int limit=1<< 24) const
Definition: BOpcodeHandler.h:680
void SetShadowMap(int m)
Definition: BOpcodeHandler.h:3651
void SetEnd(float x, float y, float z)
Definition: BOpcodeHandler.h:5863
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6582
double * GetDPoints()
Definition: BOpcodeHandler.h:5574
int m_cond_allocated
Definition: BOpcodeHandler.h:1376
void Revisit(BStreamFileToolkit &tk, float priority=0.0f, int variant=0) const
Definition: BOpcodeHandler.h:656
char * m_name
Definition: BOpcodeHandler.h:6902
char m_green_mapping
Definition: BOpcodeHandler.h:6917
char * GetSegment()
Definition: BOpcodeHandler.h:1331
int GetLockValue() const
Definition: BOpcodeHandler.h:2503
char * GetString()
Definition: BOpcodeHandler.h:7761
unsigned char m_encoding
Definition: BOpcodeHandler.h:6657
Handles the TKE_Comment opcode.
Definition: BOpcodeHandler.h:929
void SetSegment(char const *segment)
Definition: BOpcodeHandler.h:1188
TK_Bounding(unsigned char opcode, double min[], double max[])
Definition: BOpcodeHandler.h:5148
Definition: BOpcodeHandler.h:4289
void SetBumpName(char const *name)
Definition: BOpcodeHandler.h:1871
void SetImageScale(float const s[])
Definition: BOpcodeHandler.h:3733
char * m_style
for internal use only
Definition: BOpcodeHandler.h:4906
void SetOrtho(float const s[])
Definition: BOpcodeHandler.h:6103
int GetColorTextLockValue() const
Definition: BOpcodeHandler.h:2663
int m_from_variant
internal use
Definition: BOpcodeHandler.h:1443
float const * GetDepthRange() const
Definition: BOpcodeHandler.h:3699
int m_mask
specifies which rendering options are active (and hence, which are valid). For internal use only...
Definition: BOpcodeHandler.h:4887
void SetTarget(float const t[])
Definition: BOpcodeHandler.h:5720
virtual void Reset()
int m_mask
internal use; specifies which selectability settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4065
void SetGloss(float g)
Definition: BOpcodeHandler.h:1880
char const * GetTransform() const
Definition: BOpcodeHandler.h:7076
TK_Delete_Object()
Definition: BOpcodeHandler.h:1474
TK_Cutting_Plane()
Definition: BOpcodeHandler.h:5768
void SetCallback(int length)
Definition: BOpcodeHandler.h:2211
void SetMaximumExtentMode(int c)
Definition: BOpcodeHandler.h:3880
int m_hard_extent
internal use; hard extent
Definition: BOpcodeHandler.h:3792
static TK_Status PutData(BStreamFileToolkit &tk, char const &c)
Definition: BOpcodeHandler.h:440
void SetMoveDown(int m)
Definition: BOpcodeHandler.h:4125
void SetAxis(float const a[])
Definition: BOpcodeHandler.h:6193
void SetValue(float const triple[])
Definition: BOpcodeHandler.h:1996
int m_style_length
for internal use only
Definition: BOpcodeHandler.h:4904
wchar_t * m_string
Definition: BOpcodeHandler.h:7776
int m_internal_polyline
internal use
Definition: BOpcodeHandler.h:3782
int GetColorFaceForcedLockMask() const
Definition: BOpcodeHandler.h:2963
int m_min_triangle_count
For internal use only.
Definition: BOpcodeHandler.h:2304
short color_line_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1075
Handles the TKE_Reference opcodes.
Definition: BOpcodeHandler.h:1372
short color_cut_face_value
For internal use only.
Definition: BOpcodeHandler.h:1085
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition: BStreamFileToolkit.h:367
void SetDAxis(double const s[])
Definition: BOpcodeHandler.h:6130
TK_Circle(unsigned char opcode)
Definition: BOpcodeHandler.h:5834
void SetOrderedWeight(int index, float weight)
Definition: BOpcodeHandler.h:3928
int m_flags
Definition: BOpcodeHandler.h:6910
char m_orientation_count
internal use
Definition: BOpcodeHandler.h:3966
int GetType() const
Definition: BOpcodeHandler.h:6690
static TK_Status GetData(BStreamFileToolkit &tk, float &f)
Definition: BOpcodeHandler.h:313
char m_layout
Definition: BOpcodeHandler.h:6921
static int flip(int i)
for internal use only
Definition: BOpcodeHandler.h:500
int GetColorLineLockMask() const
Definition: BOpcodeHandler.h:2606
int GetForceDefer() const
Definition: BOpcodeHandler.h:3947
char * GetXML()
Definition: BOpcodeHandler.h:7680
int m_leader_count
Definition: BOpcodeHandler.h:6529
int GetColorLineContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3216
double const * GetDPosition() const
Definition: BOpcodeHandler.h:4727
Handles the TKE_Selectability opcode.
Definition: BOpcodeHandler.h:4063
float * m_points
Definition: BOpcodeHandler.h:5302
int GetOptions() const
Definition: BOpcodeHandler.h:7396
void SetTransparentHSR(int t)
Definition: BOpcodeHandler.h:2443
int GetMoveDown() const
Definition: BOpcodeHandler.h:4130
Definition: BOpcodeEnums.h:363
double const * GetDField() const
Definition: BOpcodeHandler.h:4785
void SetSimpleReflectionVisibilityMask(int m)
Definition: BOpcodeHandler.h:3689
unsigned char m_format
Definition: BOpcodeHandler.h:7095
static TK_Status PutData(BStreamFileToolkit &tk, int const *i, int n)
Definition: BOpcodeHandler.h:364
unsigned char General_Flags() const
Definition: BOpcodeHandler.h:167
void SetRadius(float radius)
Definition: BOpcodeHandler.h:6309
int m_count
Definition: BOpcodeHandler.h:6535
int m_count
Definition: BOpcodeHandler.h:5453
void SetInternalShellSelectionLimit(int i)
Definition: BOpcodeHandler.h:3843
int GetDegree() const
Definition: BOpcodeHandler.h:5504
Handles the TKE_Glyph_Definition opcode.
Definition: BOpcodeHandler.h:7147
static void fix(int *i, int n)
for internal use only
Definition: BOpcodeHandler.h:525
int m_size
Definition: BOpcodeHandler.h:7650
void SetColorVertexContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3268
void SetView(char const *name)
Definition: BOpcodeHandler.h:4819
int m_edge_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2391
int m_knot_count_implicit
Definition: BOpcodeHandler.h:5364
int m_progress
Tracks the amount of data that has been read/written so far.
Definition: BOpcodeHandler.h:64
self-explanatory
Definition: BOpcodeEnums.h:1213
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:4715
short color_marker_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1077
int GetCaps() const
Definition: BOpcodeHandler.h:6350
int m_allocated
Definition: BOpcodeHandler.h:6519
void SetIndex(float val)
Definition: BOpcodeHandler.h:2096
int GetRelatedSelectionLimit() const
Definition: BOpcodeHandler.h:3835
unsigned char m_bytes_format
Definition: BOpcodeHandler.h:6783
void SetCylinderTessellation(int n)
Definition: BOpcodeHandler.h:3499
void SetRef2(float x, float y, float z)
Definition: BOpcodeHandler.h:6424
Handles the TKE_Dictionary_Locater opcode.
Definition: BOpcodeHandler.h:1662
void SetEnd(float const e[])
Definition: BOpcodeHandler.h:5867
char m_num_sphere
For internal use only.
Definition: BOpcodeHandler.h:2335
char m_options
Definition: BOpcodeHandler.h:7473
Handles the TKE_Tag opcode.
Definition: BOpcodeHandler.h:1598
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int *i, int n)
Definition: BOpcodeHandler.h:292
Definition: BStreamFileToolkit.h:34
float m_dihedral
For internal use only.
Definition: BOpcodeHandler.h:2381
int GetVisibilityLockValue() const
Definition: BOpcodeHandler.h:2525
float * m_u_knots
Definition: BOpcodeHandler.h:5540
int GetUnits() const
Definition: BOpcodeHandler.h:4255
extra item for selectability; refer to ::HC_Set_Selectability for a description
Definition: BOpcodeEnums.h:223
unsigned char * m_bytes
Definition: BOpcodeHandler.h:7092
int m_count
Definition: BOpcodeHandler.h:6259
void SetIndex(int i)
Definition: BOpcodeHandler.h:1263
void SetOrderedWeightsMask(int c)
Definition: BOpcodeHandler.h:3923
unsigned int m_options
Definition: BOpcodeHandler.h:6781
unsigned char m_hlr_hsr_algorithm
for internal use only.
Definition: BOpcodeHandler.h:2273
void SetAntiAlias(int m)
Definition: BOpcodeHandler.h:3755
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:6863
float const * GetWeights() const
Definition: BOpcodeHandler.h:5406
float m_depth_peeling_min_area
For internal use only.
Definition: BOpcodeHandler.h:2386
int GetColorFaceForcedLockValue() const
Definition: BOpcodeHandler.h:2974
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1648
void SetLockMask(int m)
Definition: BOpcodeHandler.h:2496
void SetParameterSource(int p)
Definition: BOpcodeHandler.h:7001
extended bit
Definition: BOpcodeEnums.h:1408
char const * GetName() const
Definition: BOpcodeHandler.h:6709
void SetValue(int v)
Definition: BOpcodeHandler.h:3828
char * m_image
Definition: BOpcodeHandler.h:6904
unsigned char m_transforms
for internal use only
Definition: BOpcodeHandler.h:4915
Handles the TKE_Line_Style opcode.
Definition: BOpcodeHandler.h:7315
char m_options
Definition: BOpcodeHandler.h:7367
int GetApplicationMode() const
Definition: BOpcodeHandler.h:7058
int m_curve_budget
For internal use only.
Definition: BOpcodeHandler.h:2317
float * GetRef2()
Definition: BOpcodeHandler.h:6432
int GetColorWindowLockMask() const
Definition: BOpcodeHandler.h:2675
bool m_is_valid
internal use
Definition: BOpcodeHandler.h:5130
int m_name_length
Definition: BOpcodeHandler.h:7247
int GetLength()
Definition: BOpcodeHandler.h:4524
float m_value
for internal use only.
Definition: BOpcodeHandler.h:4232
char * m_name
internal use: name
Definition: BOpcodeHandler.h:4292
void SetCaps(int f)
Definition: BOpcodeHandler.h:6348
void SetLodOptionsMask(int v)
Definition: BOpcodeHandler.h:3385
void SetPreferenceCutoff(float s)
Definition: BOpcodeHandler.h:5085
void SetNames(int length)
Definition: BOpcodeHandler.h:4958
void SetNURBSSurfaceBudget(int b)
Definition: BOpcodeHandler.h:3375
TK_Tag(unsigned char opcode=TKE_Tag)
Definition: BOpcodeHandler.h:1603
int GetOptions() const
Definition: BOpcodeHandler.h:5600
int m_count
for internal use only
Definition: BOpcodeHandler.h:4536
char * m_transform
Definition: BOpcodeHandler.h:6925
char * m_name
Definition: BOpcodeHandler.h:4684
char const * GetEmissionName() const
Definition: BOpcodeHandler.h:1857
char const * GetSegment() const
Definition: BOpcodeHandler.h:7301
void SetOblique(float const o[])
Definition: BOpcodeHandler.h:4797
void SetSize(int const s[])
Definition: BOpcodeHandler.h:6870
short color_marker_value
For internal use only.
Definition: BOpcodeHandler.h:1059
int GetDTextLeaderCount() const
Definition: BOpcodeHandler.h:6628
int GetVisibilityForcedLockValue() const
Definition: BOpcodeHandler.h:2928
void SetColorFaceLockValue(int v)
Definition: BOpcodeHandler.h:2566
unsigned char m_renumbered_scope
for internal use only
Definition: BOpcodeHandler.h:1289
int m_int
temporary
Definition: BOpcodeHandler.h:82
short color_line_value
For internal use only.
Definition: BOpcodeHandler.h:1057
TK_Status Tag(BStreamFileToolkit &tk, int variant=-1) const
Definition: BOpcodeHandler.h:182
int GetSize() const
Definition: BOpcodeHandler.h:7682
int visibility_value
For internal use only.
Definition: BOpcodeHandler.h:1089
float * m_isoline_positions
for internal use only.
Definition: BOpcodeHandler.h:2282
int m_to_index
internal use
Definition: BOpcodeHandler.h:1444
void SetDPoints(double const s[], double const e[])
Definition: BOpcodeHandler.h:5278
int GetEncoding() const
Definition: BOpcodeHandler.h:6725
static TK_Status GetData(BStreamFileToolkit &tk, unsigned int &i)
Definition: BOpcodeHandler.h:310
int GetAntiAlias() const
Definition: BOpcodeHandler.h:3757
char const * GetReference() const
Definition: BOpcodeHandler.h:6847
int GetSimpleShadowResolution() const
Definition: BOpcodeHandler.h:3611
char m_red_mapping
Definition: BOpcodeHandler.h:6916
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6852
int m_segment_length
Definition: BOpcodeHandler.h:7250
static TK_Status PutData(BStreamFileToolkit &tk, float const &f)
Definition: BOpcodeHandler.h:458
int GetLodNumRatios() const
Definition: BOpcodeHandler.h:3447
Handles the TKE_Texture opcode.
Definition: BOpcodeHandler.h:6900
int m_allocated
Definition: BOpcodeHandler.h:1163
TK_Status WriteAscii(BStreamFileToolkit &tk)
Deprecated.
unsigned char m_options
Definition: BOpcodeHandler.h:5457
Handles the TKE_Inlude_Segment TKE_Named_Style and TKE_Style_Segment opcodes.
Definition: BOpcodeHandler.h:1278
TK_Clip_Region()
Definition: BOpcodeHandler.h:7418
int GetColorFaceLockMask() const
Definition: BOpcodeHandler.h:2560
void SetNURBSOptionsValue(int v)
Definition: BOpcodeHandler.h:3363
void SetColorWindowContrastLockMask(int m)
Definition: BOpcodeHandler.h:2716
void SetMirror(float r, float g, float b)
Definition: BOpcodeHandler.h:1817
int m_length
Definition: BOpcodeHandler.h:4683
int GetVisibilityForcedLockMask() const
Definition: BOpcodeHandler.h:2917
void SetFogLimits(float const l[])
Definition: BOpcodeHandler.h:2490
float const * GetTarget() const
Definition: BOpcodeHandler.h:4737
void SetValue(int v0, int v1=0, int v2=0)
Definition: BOpcodeHandler.h:2433
int m_cut_geometry_edge_pattern_length
for internal use only.
Definition: BOpcodeHandler.h:2351
void SetRef1(float x, float y, float z)
Definition: BOpcodeHandler.h:6413
TK_Close_Segment()
Definition: BOpcodeHandler.h:1222
int GetColorTextForcedLockMask() const
Definition: BOpcodeHandler.h:3055
int GetColorWindowContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3135
char * GetCutGeometryEdgePattern()
Definition: BOpcodeHandler.h:3586
TK_Unicode_Options()
Definition: BOpcodeHandler.h:4503
self-explanatory
Definition: BOpcodeEnums.h:1377
float const * GetValue() const
Definition: BOpcodeHandler.h:1998
void SetSelectionBias(int c)
Definition: BOpcodeHandler.h:3866
float const * GetViewVolume() const
Definition: BOpcodeHandler.h:3909
char const * GetLoggingString() const
Definition: BOpcodeHandler.h:234
short color_edge_mask
For internal use only.
Definition: BOpcodeHandler.h:1054
void SetGeometry(int m)
Definition: BOpcodeHandler.h:4088
HT_NURBS_Trim * GetNext(void)
Definition: BOpcodeHandler.h:5493
float * GetLodThresholds()
Definition: BOpcodeHandler.h:3473
void SetColorLineContrastLockValue(int v)
Definition: BOpcodeHandler.h:2819
int m_index
internal use: simple value for recognised old forms
Definition: BOpcodeHandler.h:4293
void Set_General_Flags(int f)
Definition: BOpcodeHandler.h:170
float const * GetOblique() const
Definition: BOpcodeHandler.h:4799
color by index
Definition: BOpcodeEnums.h:271
int m_mask
internal use
Definition: BOpcodeHandler.h:1898
void SetDAxis(double x1, double y1, double z1, double x2, double y2, double z2)
Definition: BOpcodeHandler.h:6208
int GetColorVertexForcedLockMask() const
Definition: BOpcodeHandler.h:3170
float m_gloss
internal use
Definition: BOpcodeHandler.h:1732
Handles the TKE_LOD opcode.
Definition: BOpcodeHandler.h:1497
double const * GetDPosition() const
Definition: BOpcodeHandler.h:5714
void SetColorFaceContrastLockMask(int m)
Definition: BOpcodeHandler.h:2693
char const * GetBumpName() const
Definition: BOpcodeHandler.h:1875
int GetGeneralDisplacement() const
Definition: BOpcodeHandler.h:2480
int GetGreekingMode() const
Definition: BOpcodeHandler.h:5050
unsigned char m_layout
for internal use only
Definition: BOpcodeHandler.h:4918
short color_edge_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1073
float * GetPoints()
Definition: BOpcodeHandler.h:7439
void SetString(char const *string)
Definition: BOpcodeHandler.h:6558
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6579
TK_Bounding(unsigned char opcode, float min[], float max[])
Definition: BOpcodeHandler.h:5136
void SetOptions(int o)
Definition: BOpcodeHandler.h:5748
void SetWindow(int n, float const w[])
Definition: BOpcodeHandler.h:4862
int m_max_degree
For internal use only.
Definition: BOpcodeHandler.h:2307
void SetLodRatios(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3438
float GetNearLimit() const
Definition: BOpcodeHandler.h:4809
TK_Font()
Definition: BOpcodeHandler.h:6672
float m_simple_reflection_yon
For internal use only.
Definition: BOpcodeHandler.h:2370
char * GetEnvironmentName()
Definition: BOpcodeHandler.h:1868
float const * GetStart() const
Definition: BOpcodeHandler.h:5887
float * GetPoints()
Definition: BOpcodeHandler.h:5330
int GetValue() const
Definition: BOpcodeHandler.h:4953
float const * GetPoints() const
Definition: BOpcodeHandler.h:6299
Does not handle any top level opcodes, but rather only the trim types allowable on nurbs surfaces...
Definition: BOpcodeHandler.h:5446
int GetColorLineContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3227
void SetColorLineLockMask(int m)
Definition: BOpcodeHandler.h:2601
void SetValue(float a, float b, float c)
Definition: BOpcodeHandler.h:1992
void SetLayout(int l)
Definition: BOpcodeHandler.h:5095
float * GetPoints()
Definition: BOpcodeHandler.h:5649
TK_Conditions()
Definition: BOpcodeHandler.h:4368
double GetDRadius() const
Definition: BOpcodeHandler.h:6121
unsigned char m_tessellations
For internal use only.
Definition: BOpcodeHandler.h:2332
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:4742
void SetNURBSOptionsMask(int m)
Definition: BOpcodeHandler.h:3355
channel m_mirror
internal use
Definition: BOpcodeHandler.h:1727
int GetOptions() const
Definition: BOpcodeHandler.h:5510
void SetColorLineContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3222
double const * GetDPoints() const
Definition: BOpcodeHandler.h:6322
char const * GetMirrorName() const
Definition: BOpcodeHandler.h:1827
int GetLodNumLevels() const
Definition: BOpcodeHandler.h:3403
float m_curve_max_angle
For internal use only.
Definition: BOpcodeHandler.h:2325
float GetWidthScale() const
Definition: BOpcodeHandler.h:5015
void SetMajor(float const m[])
Definition: BOpcodeHandler.h:5986
void GetUpVector(float u[]) const
Definition: BOpcodeHandler.h:4759
float * m_knots
Definition: BOpcodeHandler.h:5459
unsigned short m_mask_transform
For internal use only.
Definition: BOpcodeHandler.h:2378
double * m_dcontrol_points
Definition: BOpcodeHandler.h:5538
void SetOrtho(float x, float y, float z)
Definition: BOpcodeHandler.h:6097
void SetDTarget(double const t[])
Definition: BOpcodeHandler.h:5728
TK_Color_By_Value()
Definition: BOpcodeHandler.h:1956
void SetEnd(float e)
Definition: BOpcodeHandler.h:5413
float const * GetSimpleShadowColor() const
Definition: BOpcodeHandler.h:3642
ID_Key m_this_key
for internal use only
Definition: BOpcodeHandler.h:1379
Handles the TKE_Callback opcode.
Definition: BOpcodeHandler.h:2184
char const * GetString() const
Definition: BOpcodeHandler.h:7720
int GetPreferenceCutoffUnits() const
Definition: BOpcodeHandler.h:5092
void SetDRadius(double radius)
Definition: BOpcodeHandler.h:6332
void SetMiddle(float const m[])
Definition: BOpcodeHandler.h:5859
char * GetName()
Definition: BOpcodeHandler.h:7345
void SetCulling(int c)
Definition: BOpcodeHandler.h:3858
float * m_data
Definition: BOpcodeHandler.h:7201
TK_File_Info()
Definition: BOpcodeHandler.h:898
unsigned char m_space_units
for internal use only
Definition: BOpcodeHandler.h:4912
void GetDField(double f[]) const
Definition: BOpcodeHandler.h:4787
float GetRotation() const
Definition: BOpcodeHandler.h:5005
char * m_name
Definition: BOpcodeHandler.h:7151
void SetTransmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1832
HT_NURBS_Trim * m_trims
Definition: BOpcodeHandler.h:5543
unsigned char m_region_options
Definition: BOpcodeHandler.h:6523
self-explanatory
Definition: BOpcodeEnums.h:270
void SetVisibilityLockMask(int m)
Definition: BOpcodeHandler.h:2509
double const * GetDUpVector() const
Definition: BOpcodeHandler.h:4767
Handles the TKE_Open_Segment opcode.
Definition: BOpcodeHandler.h:1160
unsigned char m_antialias
For internal use only.
Definition: BOpcodeHandler.h:2394
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:4852
int GetColorEdgeLockValue() const
Definition: BOpcodeHandler.h:2594
float m_stereo_separation
For internal use only.
Definition: BOpcodeHandler.h:2329
int m_name_length
internal use: length of name
Definition: BOpcodeHandler.h:4291
double m_dradius
Definition: BOpcodeHandler.h:6052
int GetType() const
Definition: BOpcodeHandler.h:6481
int m_debug
For internal use only.
Definition: BOpcodeHandler.h:2252
float m_extra_space
for internal use only
Definition: BOpcodeHandler.h:4896
void SetLookup(char const *string)
Definition: BOpcodeHandler.h:6714
double * GetDPoints()
Definition: BOpcodeHandler.h:5338
void SetIndices(int count)
Definition: BOpcodeHandler.h:4612
void SetOptions(int o)
Definition: BOpcodeHandler.h:7535
void SetMinor(float x, float y, float z)
Definition: BOpcodeHandler.h:5991
float GetExtraSpace() const
Definition: BOpcodeHandler.h:5020
int GetTextLeaderCount() const
Definition: BOpcodeHandler.h:6615
void SetMaskTransform(int m)
Definition: BOpcodeHandler.h:3544
void SetOptions(int o)
Definition: BOpcodeHandler.h:5416
float * GetWeights()
Definition: BOpcodeHandler.h:5407
static TK_Status PutData(BStreamFileToolkit &tk, unsigned char const &b)
Definition: BOpcodeHandler.h:449
int GetFlags()
Definition: BOpcodeHandler.h:916
char * GetDiffuseName()
Definition: BOpcodeHandler.h:1799
float GetOrderedWeight(int index) const
Definition: BOpcodeHandler.h:3933
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7231
void SetStart(float s)
Definition: BOpcodeHandler.h:5411
TK_Character_Attribute * m_character_attributes
Definition: BOpcodeHandler.h:6536
bump map
Definition: BOpcodeEnums.h:274
int GetDefinitionSize() const
Definition: BOpcodeHandler.h:7182
TK_Reopen_Segment()
Definition: BOpcodeHandler.h:1253
void SetAlphaMapping(int p)
Definition: BOpcodeHandler.h:7031
short color_marker_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1076
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:905
TK_Area_Light()
Definition: BOpcodeHandler.h:5628
int m_simple_reflection_visibility_mask
For internal use only.
Definition: BOpcodeHandler.h:2371
TK_Cylinder()
Definition: BOpcodeHandler.h:6175
int GetColorMarkerContrastLockValue() const
Definition: BOpcodeHandler.h:2847
float const * GetMirror() const
Definition: BOpcodeHandler.h:1825
Handles the TKE_Geometry_Attributes opcode.
Definition: BOpcodeHandler.h:1543
int m_length
Definition: BOpcodeHandler.h:7774
unsigned char m_optionals
Definition: BOpcodeHandler.h:5361
int m_gooch_color_map_segment_length
Definition: BOpcodeHandler.h:2341
format mask
Definition: BOpcodeEnums.h:1360
Handles the TKE_Sphere opcode.
Definition: BOpcodeHandler.h:6044
channel m_emission
internal use
Definition: BOpcodeHandler.h:1729
static TK_Status GetData(BStreamFileToolkit &tk, double &d)
Definition: BOpcodeHandler.h:316
float m_curve_max_deviation
For internal use only.
Definition: BOpcodeHandler.h:2326
int m_name_length
Definition: BOpcodeHandler.h:6906
void SetRef2(float const r[])
Definition: BOpcodeHandler.h:6428
float const * GetSpecular() const
Definition: BOpcodeHandler.h:1810
void SetOptions(int o)
Definition: BOpcodeHandler.h:7457
TK_User_Index()
Definition: BOpcodeHandler.h:4545
unsigned char m_renderer_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4916
float const * GetMajor() const
Definition: BOpcodeHandler.h:5988
short m_options
Definition: BOpcodeHandler.h:4403
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4534
short color_simple_reflection_value
For internal use only.
Definition: BOpcodeHandler.h:1083
void SetCutGeometryEdgeWeight(float value, int units=TKO_Generic_Size_Unspecified)
Definition: BOpcodeHandler.h:3570
int GetOptions() const
Definition: BOpcodeHandler.h:5417
short color_window_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1066
unsigned char m_num_levels
For internal use only.
Definition: BOpcodeHandler.h:2306
TK_Renumber(unsigned char opcode, ID_Key key=0)
Definition: BOpcodeHandler.h:1577
double * GetDPoints()
Definition: BOpcodeHandler.h:5402
void SetExtraSpaceUnits(int u)
Definition: BOpcodeHandler.h:5023
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:6860
int m_mask
internal use
Definition: BOpcodeHandler.h:2060
double const * GetDStart() const
Definition: BOpcodeHandler.h:6219
float m_tolerance
For internal use only.
Definition: BOpcodeHandler.h:2308
Definition: BStream.h:285
void SetGreekingMode(int m)
Definition: BOpcodeHandler.h:5048
mask of bits requiring extended
Definition: BOpcodeEnums.h:808
//// Default reader provided for "W3D Image XRef"
Definition: BOpcodeEnums.h:155
double const * GetDEnd() const
Definition: BOpcodeHandler.h:6221
int m_data_size
Definition: BOpcodeHandler.h:6777
int GetCutGeometry() const
Definition: BOpcodeHandler.h:3552
unsigned char vertical_offset_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6502
int m_name_length
Definition: BOpcodeHandler.h:7816
void SetColorMarkerContrastLockValue(int v)
Definition: BOpcodeHandler.h:2842
int GetOptions() const
Definition: BOpcodeHandler.h:4439
static TK_Status GetData(BStreamFileToolkit &tk, unsigned short *s, int n)
Definition: BOpcodeHandler.h:289
void SetDMatrix(double const m[])
Definition: BOpcodeHandler.h:4184
unsigned char m_options
Definition: BOpcodeHandler.h:6522
Definition: BOpcodeHandler.h:820
char * m_condition
Definition: BOpcodeHandler.h:1285
Handles the TKE_Image opcode.
Definition: BOpcodeHandler.h:6769
void SetPlane(float const p[])
Definition: BOpcodeHandler.h:5796
int GetSimpleShadowBlur() const
Definition: BOpcodeHandler.h:3606
void SetInternalPolylineSelectionLimit(int i)
Definition: BOpcodeHandler.h:3848
float * GetPoints()
Definition: BOpcodeHandler.h:7504
Handles the TKE_Font opcode.
Definition: BOpcodeHandler.h:6648
virtual TK_Status Read(BStreamFileToolkit &tk)=0
void SetName(char const *string)
Definition: BOpcodeHandler.h:7837
Handles the TKE_Unicode_Options opcode.
Definition: BOpcodeHandler.h:4496
int * GetIndices()
Definition: BOpcodeHandler.h:4568
void SetView(int length)
Definition: BOpcodeHandler.h:4821
int GetShadowMap() const
Definition: BOpcodeHandler.h:3653
Internal_Translator::Index_Key_Pair * m_item
internal use; cache lookup in Pending cases
Definition: BOpcodeHandler.h:1634
unsigned char * GetTextLeaderFlags()
Definition: BOpcodeHandler.h:6623
float m_inner
for internal use only
Definition: BOpcodeHandler.h:5684
TK_Status Read(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1093
float * m_weights
Definition: BOpcodeHandler.h:5367
void SetCenter(float const c[])
Definition: BOpcodeHandler.h:5876
int GetCutGeometryEdgeWeightUnits() const
Definition: BOpcodeHandler.h:3577
void SetCutGeometryColorMatch(int m)
Definition: BOpcodeHandler.h:3560
void SetPoints(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5645
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6113
void SetDTarget(double x, double y, double z)
Definition: BOpcodeHandler.h:5725
int const * GetIndices() const
Definition: BOpcodeHandler.h:4566
int GetInternalShellSelectionLimit() const
Definition: BOpcodeHandler.h:3845
void SetProjection(int p)
Definition: BOpcodeHandler.h:4813
int GetAlphaMapping() const
Definition: BOpcodeHandler.h:7033
Handles the TKE_File_Info opcode.
Definition: BOpcodeHandler.h:891
TK_Status PutOpcode(BStreamFileToolkit &tk, int adjust=1)
Definition: BOpcodeHandler.h:464
BBaseOpcodeHandler * m_current_object
internal use
Definition: BOpcodeHandler.h:865
float m_end
Definition: BOpcodeHandler.h:5370
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6584
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1703
double * GetDPoints()
Definition: BOpcodeHandler.h:5659
void SetColorWindowLockValue(int v)
Definition: BOpcodeHandler.h:2681
Handles the TKE_Heuristics opcode.
Definition: BOpcodeHandler.h:3775
int m_value
specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4888
Definition: BOpcodeHandler.h:1046
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6115
void SetSimpleShadowLight(float x, float y, float z)
Definition: BOpcodeHandler.h:3614
unsigned char m_simple_shadow_blur
For internal use only.
Definition: BOpcodeHandler.h:2354
char m_decimation
Definition: BOpcodeHandler.h:6915
void SetTessellationMask(int m)
Definition: BOpcodeHandler.h:3495
void SetFormat(int f)
Definition: BOpcodeHandler.h:7133
int GetSimpleReflectionVisibilityValue() const
Definition: BOpcodeHandler.h:3691
char m_threshold_type
For internal use only.
Definition: BOpcodeHandler.h:2303
Handles the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE_Circular_Wedge opcodes...
Definition: BOpcodeHandler.h:5823
int GetForcedLockMask() const
Definition: BOpcodeHandler.h:2901
int GetColorWindowContrastLockMask() const
Definition: BOpcodeHandler.h:2721
int GetBlueMapping() const
Definition: BOpcodeHandler.h:7028
int const * GetSize() const
Definition: BOpcodeHandler.h:6872
int * GetIndices()
Definition: BOpcodeHandler.h:4621
void SetHlrLinePattern(int p)
Definition: BOpcodeHandler.h:3345
short color_window_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1067
int GetColorEdgeForcedLockMask() const
Definition: BOpcodeHandler.h:2986
void SetSlant(float s)
Definition: BOpcodeHandler.h:5008
void SetViewVolume(float const v[])
Definition: BOpcodeHandler.h:3920
void SetVectorTolerance(float tol)
Definition: BOpcodeHandler.h:3902
void SetVisibilityForcedLockMask(int m)
Definition: BOpcodeHandler.h:2912
int GetCount() const
Definition: BOpcodeHandler.h:7453
char * GetName()
Definition: BOpcodeHandler.h:6840
float GetSlant() const
Definition: BOpcodeHandler.h:5010
void SetSimpleShadowLight(float const l[])
Definition: BOpcodeHandler.h:3620
void set_points(int count, float const points[]=0)
Definition: BOpcodeHandler.h:5306
double * m_dleaders
Definition: BOpcodeHandler.h:6533
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:5712
int GetColorBackForcedLockMask() const
Definition: BOpcodeHandler.h:3147
short color_face_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1064
Definition: BStream.h:259
TK_Bounding(unsigned char opcode)
Definition: BOpcodeHandler.h:5133
int GetWhenInvisible() const
Definition: BOpcodeHandler.h:4152
TK_Compression(char opcode)
Definition: BOpcodeHandler.h:1028
void SetColorFaceContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3096
Definition: BOpcodeHandler.h:4262
float * GetPoints()
Definition: BOpcodeHandler.h:5502
float m_rotation
for internal use only
Definition: BOpcodeHandler.h:4893
char * GetNames()
Definition: BOpcodeHandler.h:4962
unsigned char m_greeking_units
for internal use only
Definition: BOpcodeHandler.h:4913
TK_Size(unsigned char opcode)
Definition: BOpcodeHandler.h:4237
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:4607
TK_XML()
Definition: BOpcodeHandler.h:7655
void SetLodClamp(int v)
Definition: BOpcodeHandler.h:3405
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const &i)
Definition: BOpcodeHandler.h:455
void SetFogLimits(float n, float f)
Definition: BOpcodeHandler.h:2488
void SetQuantization(int q)
Definition: BOpcodeHandler.h:2458
double const * GetDMiddle() const
Definition: BOpcodeHandler.h:5938
char m_lod_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2298
void SetMirrorName(char const *name)
Definition: BOpcodeHandler.h:1821
char * m_cut_geometry_edge_pattern
for internal use only.
Definition: BOpcodeHandler.h:2350
Handles the TKE_URL opcodes.
Definition: BOpcodeHandler.h:7694
Handles the TKE_Area_Light opcode.
Definition: BOpcodeHandler.h:5616
int GetMask() const
Definition: BOpcodeHandler.h:4948
float const * GetImageScale() const
Definition: BOpcodeHandler.h:3735
void SetOrigin(float const o[])
Definition: BOpcodeHandler.h:6406
void SetSimpleReflectionOpacity(float o)
Definition: BOpcodeHandler.h:3684
int GetIndex()
Definition: BOpcodeHandler.h:1486
char * GetShaderSource()
Definition: BOpcodeHandler.h:6971
double const * GetDRef2() const
Definition: BOpcodeHandler.h:6464
void SetNURBSSurfaceTrimBudget(int b)
Definition: BOpcodeHandler.h:3379
int GetVertexDisplacement() const
Definition: BOpcodeHandler.h:2475
unsigned char * GetDTextLeaderFlags()
Definition: BOpcodeHandler.h:6636
Handles the TKE_Cutting_Plane opcode.
Definition: BOpcodeHandler.h:5760
float const * GetPosition() const
Definition: BOpcodeHandler.h:4717
int GetColorLineLockValue() const
Definition: BOpcodeHandler.h:2617
float * GetUKnots()
Definition: BOpcodeHandler.h:5591
void SetSelectionLevel(int l)
Definition: BOpcodeHandler.h:3940
int GetRedMapping() const
Definition: BOpcodeHandler.h:7018
int GetDisplayListLevel() const
Definition: BOpcodeHandler.h:3592
virtual TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant=0)
int GetColorVertexContrastLockMask() const
Definition: BOpcodeHandler.h:2859
void SetDPosition(double const p[])
Definition: BOpcodeHandler.h:4725
int GetOptions() const
Definition: BOpcodeHandler.h:7537
void SetLodThresholdType(int v)
Definition: BOpcodeHandler.h:3454
self-explanatory
Definition: BOpcodeEnums.h:269
void SetName(int length)
Definition: BOpcodeHandler.h:6958
TK_Callback()
Definition: BOpcodeHandler.h:2196
int const * GetPreferences() const
Definition: BOpcodeHandler.h:5082
float const * GetKnots() const
Definition: BOpcodeHandler.h:5408
TK_Complex_Clip_Region()
Definition: BOpcodeHandler.h:7482
void SetBlueMapping(int p)
Definition: BOpcodeHandler.h:7026
int GetParameterOffset() const
Definition: BOpcodeHandler.h:7063
Handles the TKE_Named_Style_Def opcode.
Definition: BOpcodeHandler.h:7245
double * GetDRef1()
Definition: BOpcodeHandler.h:6455
void **const GetValues() const
Definition: BOpcodeHandler.h:4624
int GetLodOptionsValue() const
Definition: BOpcodeHandler.h:3391
int GetColorVertexContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3273
float m_surface_max_facet_deviation
For internal use only.
Definition: BOpcodeHandler.h:2323
int GetTargetVersion() const
Definition: BStreamFileToolkit.h:986
int m_allocated
internal use
Definition: BOpcodeHandler.h:934
float const * GetRef1() const
Definition: BOpcodeHandler.h:6419
float GetRendererCutoff() const
Definition: BOpcodeHandler.h:5066
float GetLodTolerance() const
Definition: BOpcodeHandler.h:3415
float m_greeking_limit
for internal use only
Definition: BOpcodeHandler.h:4898
//– would like this to be obsolete, but...
Definition: BOpcodeEnums.h:151
int GetColorBackLockMask() const
Definition: BOpcodeHandler.h:2744
int GetColorFaceContrastLockMask() const
Definition: BOpcodeHandler.h:2698
float GetVectorTolerance() const
Definition: BOpcodeHandler.h:3900
float const * GetEndNormal(int index) const
Definition: BOpcodeHandler.h:6365
void SetField(float const f[])
Definition: BOpcodeHandler.h:4774
int GetIndex() const
Definition: BOpcodeHandler.h:1265
void SetBytes(int size, char const *bytes=0, unsigned char data_format=TKO_Compression_None)
Definition: BOpcodeHandler.h:6825
char const * GetConditions() const
Definition: BOpcodeHandler.h:4385
unsigned short const * GetOptions() const
Definition: BOpcodeHandler.h:4520
void SetIndex(float i)
Definition: BOpcodeHandler.h:1884
char * GetConditions()
Definition: BOpcodeHandler.h:4387
void SetMatrix(float const m[])
Definition: BOpcodeHandler.h:4180
self-explanatory
Definition: BOpcodeEnums.h:1095
Handles the TKE_Renumber_Key_Global, TKE_Renumber_Key_Local, and TKE_Priority opcodes.
Definition: BOpcodeHandler.h:1569
float slant
the angle (in degrees) that text is slanted (e.g. for italic). Positive numbers correspond to clockwi...
Definition: BOpcodeHandler.h:6494
Handles the TKE_Complex_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7471
void SetShadowMapSamples(int m)
Definition: BOpcodeHandler.h:3661
void SetOptions(int o)
Definition: BOpcodeHandler.h:5225
char * m_string
Definition: BOpcodeHandler.h:7737
short color_back_value
For internal use only.
Definition: BOpcodeHandler.h:1069
unsigned char m_present
internal use
Definition: BOpcodeHandler.h:1631
void SetDecimation(int p)
Definition: BOpcodeHandler.h:7011
void SetName(int length)
Definition: BOpcodeHandler.h:6836
void SetName(char const *string)
Definition: BOpcodeHandler.h:6705
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7352
int GetInterpolation() const
Definition: BOpcodeHandler.h:7008
unsigned char m_preference_cutoff_units
for internal use only
Definition: BOpcodeHandler.h:4917
char const * GetCallback() const
Definition: BOpcodeHandler.h:2213
TK_User_Options()
Definition: BOpcodeHandler.h:4463
unsigned char m_region_fit
Definition: BOpcodeHandler.h:6524
double * m_dpoints
Definition: BOpcodeHandler.h:5303
int m_selection_culling
internal use; selection culling options
Definition: BOpcodeHandler.h:3786
float m_line_spacing
for internal use only
Definition: BOpcodeHandler.h:4897
TK_Color_By_FIndex()
Definition: BOpcodeHandler.h:2065
char * GetName()
Definition: BOpcodeHandler.h:7286
float rotation
the angle (in degrees) that text is rotated
Definition: BOpcodeHandler.h:6495
void SetField(float w, float h)
Definition: BOpcodeHandler.h:4772
int GetCount() const
Definition: BOpcodeHandler.h:4615
int m_down
internal use; specifies what geometry is selectable on mouse button down. For internal use only...
Definition: BOpcodeHandler.h:4066
unsigned short * GetOptions()
Definition: BOpcodeHandler.h:4522
char * GetCallback()
Definition: BOpcodeHandler.h:2215
float const * GetVector() const
Definition: BOpcodeHandler.h:3890
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:6571
int GetSize() const
Definition: BOpcodeHandler.h:1686
int GetDown() const
Definition: BOpcodeHandler.h:4108
bool Find_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:677
void SetHardExtent(int c)
Definition: BOpcodeHandler.h:3886
char const * GetSphereTessellations() const
Definition: BOpcodeHandler.h:3529
static void fix_in(float *f, int n)
for internal use only
Definition: BOpcodeHandler.h:550
float m_rgb[3]
The RGB value of the color for this channel.
Definition: BOpcodeHandler.h:1713
int GetGeometry() const
Definition: BOpcodeHandler.h:4040
TK_Spot_Light()
Definition: BOpcodeHandler.h:5690
void SetImageTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3742
void SetOuter(float o)
Definition: BOpcodeHandler.h:5733
void SetSize(int size)
Definition: BOpcodeHandler.h:1684
void SetVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3892
float GetHlrDimFactor() const
Definition: BOpcodeHandler.h:3339
float m_compression_quality
Definition: BOpcodeHandler.h:6787
void SetPosition(float const p[])
Definition: BOpcodeHandler.h:6574
short color_face_mask
For internal use only.
Definition: BOpcodeHandler.h:1052
void SetParameterFunction(int p)
Definition: BOpcodeHandler.h:7036
BBaseOpcodeHandler *** m_primitives
for each level, an array of opcode handler pointers that store the primitives
Definition: BOpcodeHandler.h:1500
void SetUpVector(float x, float y, float z)
Definition: BOpcodeHandler.h:4752
int m_camera_length
Definition: BOpcodeHandler.h:6909
int m_to_variant
internal use
Definition: BOpcodeHandler.h:1445
Handles the TKE_XML opcode.
Definition: BOpcodeHandler.h:7648
double const * GetDPosition() const
Definition: BOpcodeHandler.h:6865
ID_Key remove_segment(BStreamFileToolkit &tk)
for internal use only
Definition: BOpcodeHandler.h:636
TK_Terminator(char opcode, bool is_file_terminator=true)
Definition: BOpcodeHandler.h:999
extended bit
Definition: BOpcodeEnums.h:272
short color_line_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1074
char * m_bytes
Definition: BOpcodeHandler.h:6771
Handles the TKE_External_Reference opcodes.
Definition: BOpcodeHandler.h:7733
Definition: BOpcodeHandler.h:4203
TK_Material()
Definition: BOpcodeHandler.h:7630
int GetSimpleReflection() const
Definition: BOpcodeHandler.h:3669
virtual TK_Status Error(char const *msg=0) const
int m_allocated
Definition: BOpcodeHandler.h:5301
TK_Bounding(unsigned char opcode, float center[], float radius)
Definition: BOpcodeHandler.h:5142
unsigned short m_simple_shadow
For internal use only.
Definition: BOpcodeHandler.h:2353
void SetFlags(int f)
Definition: BOpcodeHandler.h:6992
int const * GetStringCursors() const
Definition: BOpcodeHandler.h:6608
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1916
char * GetName()
Definition: BOpcodeHandler.h:6962
void SetColorForcedLockValue(int v)
Definition: BOpcodeHandler.h:2946
Handles the TKE_Repeat_Object opcode.
Definition: BOpcodeHandler.h:1440
void SetCutGeometryTolerance(float m)
Definition: BOpcodeHandler.h:3565
void SetHSR(int h)
Definition: BOpcodeHandler.h:2438
int GetLength()
Definition: BOpcodeHandler.h:4389
void SetName(char const *string)
Definition: BOpcodeHandler.h:6834
unsigned char m_cut_geometry_edge_weight_units
for internal use only.
Definition: BOpcodeHandler.h:2349
char * m_string
Definition: BOpcodeHandler.h:2187
int GetSimpleShadow() const
Definition: BOpcodeHandler.h:3601
void SetLodCutoffs(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3478
int m_count
Definition: BOpcodeHandler.h:5300
int const * GetSizes() const
Definition: BOpcodeHandler.h:4630
char * GetSphereTessellations()
Definition: BOpcodeHandler.h:3531
int GetColorMarkerForcedLockMask() const
Definition: BOpcodeHandler.h:3032
void SetNext(HT_NURBS_Trim *next)
Definition: BOpcodeHandler.h:5479
for further expansion
Definition: BOpcodeEnums.h:1126
char m_num_cutoffs
For internal use only.
Definition: BOpcodeHandler.h:2310
void Remember_Item(BStreamFileToolkit &tk, ID_Key key) const
Definition: BOpcodeHandler.h:675
int m_debug_length
Definition: BOpcodeHandler.h:69
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1969
Handles the TKE_NURBS_Curve opcode.
Definition: BOpcodeHandler.h:5359
void SetDiffuseTextureTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3747
char const * GetName(void) const
Definition: BOpcodeHandler.h:7841
int GetEncoding() const
Definition: BOpcodeHandler.h:6589
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:3703
Handles the TKE_Conditions opcode.
Definition: BOpcodeHandler.h:4361
int GetInternalSelectionLimit() const
Definition: BOpcodeHandler.h:3840
float m_surface_max_facet_width
For internal use only.
Definition: BOpcodeHandler.h:2324
char m_blue_mapping
Definition: BOpcodeHandler.h:6918
float * m_points
Definition: BOpcodeHandler.h:6260
void SetLodCutoff(float r)
Definition: BOpcodeHandler.h:3476
unsigned char m_optionals
Definition: BOpcodeHandler.h:5534
int GetColorTextContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3285
unsigned char m_shadow_map_samples
For internal use only.
Definition: BOpcodeHandler.h:2363
int GetTextRegionOptions() const
Definition: BOpcodeHandler.h:6598
double const * GetDMajor() const
Definition: BOpcodeHandler.h:6016
int m_value
internal use; specifies what values to set for boolean options. For internal use only.
Definition: BOpcodeHandler.h:4011
void SetUserData(int size, unsigned char const *bytes=0)
Definition: BOpcodeHandler.h:7589
void SetNames(char const *names)
Definition: BOpcodeHandler.h:4956
void SetDPoints(double x1, double y1, double z1, double x2, double y2, double z2)
Definition: BOpcodeHandler.h:5273
char * m_names
for internal use only
Definition: BOpcodeHandler.h:4890
void SetList(HT_NURBS_Trim *node)
Definition: BOpcodeHandler.h:5478
void SetLodNumLevels(int v)
Definition: BOpcodeHandler.h:3401
int GetGeometry() const
Definition: BOpcodeHandler.h:2044
TK_Dictionary_Locater()
Definition: BOpcodeHandler.h:1669
env map
Definition: BOpcodeEnums.h:273
int GetInternalPolylineSelectionLimit() const
Definition: BOpcodeHandler.h:3850
static TK_Status GetData(BStreamFileToolkit &tk, int &i)
Definition: BOpcodeHandler.h:301
float const * GetMatrix() const
Definition: BOpcodeHandler.h:4188
////
Definition: BOpcodeEnums.h:148
int m_index
Definition: BOpcodeHandler.h:1374
int m_dleader_count
Definition: BOpcodeHandler.h:6532
float size
the size. Units are specified separately in size_units
Definition: BOpcodeHandler.h:6491
bool Tagging(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:187
void SetHlrDimFactor(float d)
Definition: BOpcodeHandler.h:3337
TK_Enumerated(unsigned char opcode)
Definition: BOpcodeHandler.h:4209
unsigned char m_buffer_options_value
For internal use only.
Definition: BOpcodeHandler.h:2262
int * GetCounts()
Definition: BOpcodeHandler.h:6476
float * GetRadii()
Definition: BOpcodeHandler.h:6313
char const * GetXML() const
Definition: BOpcodeHandler.h:7678
int m_offset
internal use
Definition: BOpcodeHandler.h:1665
void SetStart(float const s[])
Definition: BOpcodeHandler.h:5851
char m_alpha_mapping
Definition: BOpcodeHandler.h:6919
unsigned char m_buffer_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2261
void SetBufferOptionsValue(int v)
Definition: BOpcodeHandler.h:3306
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const *s, int n)
Definition: BOpcodeHandler.h:434
float GetInner() const
Definition: BOpcodeHandler.h:5740
float m_renderer_cutoff
for internal use only
Definition: BOpcodeHandler.h:4899
char * GetStyle()
Definition: BOpcodeHandler.h:4980
int m_mask
internal use; specifies which visibility settings are active (and hence, which are valid)...
Definition: BOpcodeHandler.h:4010
void SetColorLineForcedLockValue(int v)
Definition: BOpcodeHandler.h:3015
char * m_comment
internal use
Definition: BOpcodeHandler.h:936
int GetSelectionCulling() const
Definition: BOpcodeHandler.h:3864
float * m_points
Definition: BOpcodeHandler.h:7411
double * m_dplanes
internal use
Definition: BOpcodeHandler.h:5763
char const * GetCylinderTessellations() const
Definition: BOpcodeHandler.h:3512
int GetExtras() const
Definition: BOpcodeHandler.h:3855
unsigned char m_greeking_mode
for internal use only
Definition: BOpcodeHandler.h:4914
static short flip(short s)
for internal use only
Definition: BOpcodeHandler.h:496
int GetFaceDisplacement() const
Definition: BOpcodeHandler.h:2470
float GetEnd() const
Definition: BOpcodeHandler.h:5414
TK_Polypoint(unsigned char opcode)
Definition: BOpcodeHandler.h:5311
void SetDepthRange(float const l[])
Definition: BOpcodeHandler.h:3697
void SetSpecularName(int length)
Definition: BOpcodeHandler.h:1808
int GetLoops() const
Definition: BOpcodeHandler.h:7531
float m_simple_reflection_opacity
For internal use only.
Definition: BOpcodeHandler.h:2367
channel m_environment
internal use; note: environment & bump are never a simple RGB type color
Definition: BOpcodeHandler.h:1730
void SetRadius(float r)
Definition: BOpcodeHandler.h:6202
short color_text_value
For internal use only.
Definition: BOpcodeHandler.h:1061
void SetOffset(int offset)
Definition: BOpcodeHandler.h:1688
void SetPreference(int r)
Definition: BOpcodeHandler.h:5075
int m_maximum_extent
internal use; maximum extent
Definition: BOpcodeHandler.h:3789
int GetSelectionBias() const
Definition: BOpcodeHandler.h:3868
unsigned char m_clamp
For internal use only.
Definition: BOpcodeHandler.h:2305
int GetValue() const
Definition: BOpcodeHandler.h:4051
bool GetFollow()
Definition: BOpcodeHandler.h:1426
void SetColorWindowContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3130
float * GetKnots()
Definition: BOpcodeHandler.h:5409
char const * GetName() const
Definition: BOpcodeHandler.h:7224
void SetVisibilityForcedLockValue(int v)
Definition: BOpcodeHandler.h:2923
float const * GetOrientation() const
Definition: BOpcodeHandler.h:3998
int GetQuantization() const
Definition: BOpcodeHandler.h:2460
char * GetTransmissionName()
Definition: BOpcodeHandler.h:1844
void SetColorTextContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3291
TK_User_Value()
Definition: BOpcodeHandler.h:4649
int m_cond_length
Definition: BOpcodeHandler.h:7253
void SetColorVertexLockMask(int m)
Definition: BOpcodeHandler.h:2762
char * GetCondition()
Definition: BOpcodeHandler.h:4428
int GetColorVertexContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3262
int * GetSizes()
Definition: BOpcodeHandler.h:4633
void SetLodBounding(float const p[])
Definition: BOpcodeHandler.h:3431
//// pseudo-handler (non-zero value)
Definition: BOpcodeEnums.h:157
void SetValue(HLONG v)
Definition: BOpcodeHandler.h:4660
int const * GetLengths() const
Definition: BOpcodeHandler.h:7523
char * GetLookup()
Definition: BOpcodeHandler.h:6720
float const * GetPoints() const
Definition: BOpcodeHandler.h:5270
void SetColorEdgeForcedLockMask(int m)
Definition: BOpcodeHandler.h:2981
int m_count
Definition: BOpcodeHandler.h:7410
void SetLimits(float s, float e)
Definition: BOpcodeHandler.h:6028
void SetIndices(int count, int const indices[], POINTER_SIZED_INT const values[])
Definition: BOpcodeHandler.h:4559
unsigned char m_flags
Definition: BOpcodeHandler.h:6265
int GetAction() const
Definition: BOpcodeHandler.h:4435
float GetSimpleShadowOpacity() const
Definition: BOpcodeHandler.h:3647
void SetDMiddle(double x, double y, double z)
Definition: BOpcodeHandler.h:5904
void GetField(float f[]) const
Definition: BOpcodeHandler.h:4778
void SetRelatedSelectionLimit(int r)
Definition: BOpcodeHandler.h:3833
TK_Geometry_Attributes()
Definition: BOpcodeHandler.h:1548
int GetMaximumExtent() const
Definition: BOpcodeHandler.h:3876
Handles the TKE_Clip_Rectangle opcode.
Definition: BOpcodeHandler.h:7365
void SetLockValue(int v)
Definition: BOpcodeHandler.h:2501
void SetMaximumExtent(int c)
Definition: BOpcodeHandler.h:3874
unsigned char m_fallback
For internal use only.
Definition: BOpcodeHandler.h:2313
unsigned char m_compression
Definition: BOpcodeHandler.h:6782
char const * GetCondition() const
Definition: BOpcodeHandler.h:1347
Handles the TKE_Text_Font opcode.
Definition: BOpcodeHandler.h:4885
int GetLodOptionsMask() const
Definition: BOpcodeHandler.h:3387
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:1504
int m_flags
internal use
Definition: BOpcodeHandler.h:894
void SetDiffuse(float r, float g, float b)
Definition: BOpcodeHandler.h:1787
bool m_needs_tag
Indicate if this object explicitly needs tagging.
Definition: BOpcodeHandler.h:67
int GetColorFaceLockValue() const
Definition: BOpcodeHandler.h:2571
char const * GetDiffuseName() const
Definition: BOpcodeHandler.h:1797
void SetMajor(float x, float y, float z)
Definition: BOpcodeHandler.h:5982
static TK_Status GetData(BStreamFileToolkit &tk, double *d, int n)
Definition: BOpcodeHandler.h:278
float const * GetOrderedWeights() const
Definition: BOpcodeHandler.h:3935
HLONG * m_values
for internal use only
Definition: BOpcodeHandler.h:4538
int GetOptions() const
Definition: BOpcodeHandler.h:6882
static TK_Status PutData(BStreamFileToolkit &tk, double const &d)
Definition: BOpcodeHandler.h:461
float const * GetValueScale() const
Definition: BOpcodeHandler.h:7053
Handles the TKE_User_Index opcode.
Definition: BOpcodeHandler.h:4582
int m_size
Definition: BOpcodeHandler.h:7150
unsigned char * m_isoline_weights_unit
for internal use only.
Definition: BOpcodeHandler.h:2289
float const * GetValues() const
Definition: BOpcodeHandler.h:2147
int GetParameterSource() const
Definition: BOpcodeHandler.h:7003
void floats_to_bytes(float const *in, unsigned char *out, int count) const
for internal use only
Definition: BOpcodeHandler.h:622
double GetDRadius() const
Definition: BOpcodeHandler.h:6226
void SetBytes(int size, char const *bytes=0)
Definition: BOpcodeHandler.h:6696
float * GetVKnots()
Definition: BOpcodeHandler.h:5595
BBaseOpcodeHandler(int op)
Definition: BOpcodeHandler.h:91
char const * GetOptions() const
Definition: BOpcodeHandler.h:4481
Definition: BOpcodeHandler.h:4230
float const * GetImageTintColor() const
Definition: BOpcodeHandler.h:3744
int m_name_length
Definition: BOpcodeHandler.h:7198
char const * GetCutGeometryEdgePattern() const
Definition: BOpcodeHandler.h:3584
double const * GetDPlanes() const
Definition: BOpcodeHandler.h:5808
unsigned char * m_leader_flags
Definition: BOpcodeHandler.h:6531
Handles the TKE_Dictionary opcode.
Definition: BOpcodeHandler.h:1627
float * GetLodRatios()
Definition: BOpcodeHandler.h:3451
void SetValue(int v)
Definition: BOpcodeHandler.h:4951
float const * GetPosition() const
Definition: BOpcodeHandler.h:6576
float const * GetTransmission() const
Definition: BOpcodeHandler.h:1840
int GetCaps() const
Definition: BOpcodeHandler.h:6232
int GetColorEdgeLockMask() const
Definition: BOpcodeHandler.h:2583
void SetOrientation(int count, float const o[])
Definition: BOpcodeHandler.h:3988
bool GetStreaming() const
Definition: BOpcodeHandler.h:4350
void SetLayout(int p)
Definition: BOpcodeHandler.h:7041
char m_param_function
Definition: BOpcodeHandler.h:6920
char * m_definition
Definition: BOpcodeHandler.h:7320
int m_string_length
internal use
Definition: BOpcodeHandler.h:2114
char m_num_cylinder
For internal use only.
Definition: BOpcodeHandler.h:2333
int m_surface_budget
For internal use only.
Definition: BOpcodeHandler.h:2319
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1571
float GetGloss() const
Definition: BOpcodeHandler.h:1882
HT_NURBS_Trim * GetTrims()
Definition: BOpcodeHandler.h:5605
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:2288
short color_cut_edge_mask
For internal use only.
Definition: BOpcodeHandler.h:1086
char const * GetDefinition() const
Definition: BOpcodeHandler.h:7184
int GetVisibilityLockMask() const
Definition: BOpcodeHandler.h:2514
Definition: BStream.h:258
void SetRotation(float r)
Definition: BOpcodeHandler.h:5003
int GetValue(int index=0) const
Definition: BOpcodeHandler.h:2435
int GetBufferOptionsMask() const
Definition: BOpcodeHandler.h:3304
//
Definition: BOpcodeEnums.h:142
float * m_weights
Definition: BOpcodeHandler.h:5539
void SetColorBackLockMask(int m)
Definition: BOpcodeHandler.h:2739
Handles the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes.
Definition: BOpcodeHandler.h:5179
TK_PolyCylinder()
Definition: BOpcodeHandler.h:6270
void SetRectangle(float left, float right, float bottom, float top)
Definition: BOpcodeHandler.h:7385
void SetUpVector(float const u[])
Definition: BOpcodeHandler.h:4755
unsigned char m_tq
internal use; low half technology, high half quantization. For internal use only. ...
Definition: BOpcodeHandler.h:2251
unsigned char m_general_flags
Basic flags common to many handlers.
Definition: BOpcodeHandler.h:66
char * m_name
Definition: BOpcodeHandler.h:7319
HLONG m_value
for internal use only
Definition: BOpcodeHandler.h:4645
char * GetCondition()
Definition: BOpcodeHandler.h:1352
float const * GetWindow() const
Definition: BOpcodeHandler.h:4867
unsigned char m_type
Definition: BOpcodeHandler.h:6656
void SetDMajor(double const m[])
Definition: BOpcodeHandler.h:6014
void SetScreenRange(float const l[])
Definition: BOpcodeHandler.h:3708
int GetCutGeometryLevel() const
Definition: BOpcodeHandler.h:3557
char * GetName()
Definition: BOpcodeHandler.h:4317
char * GetShape()
Definition: BOpcodeHandler.h:4971
void SetImageScale(float x, float y)
Definition: BOpcodeHandler.h:3731
float const * GetVKnots() const
Definition: BOpcodeHandler.h:5593
void SetStreaming(bool s)
Definition: BOpcodeHandler.h:4348
void SetSpace(int s)
Definition: BOpcodeHandler.h:1987
void SetEnvironmentName(int length)
Definition: BOpcodeHandler.h:1864
int GetCompression() const
Definition: BOpcodeHandler.h:6887
int const * GetRenderers() const
Definition: BOpcodeHandler.h:5061
int m_index
internal use
Definition: BOpcodeHandler.h:2012
void SetRadius(float r)
Definition: BOpcodeHandler.h:6081
HT_NURBS_Trim * m_next
Definition: BOpcodeHandler.h:5451
TK_Open_Segment()
Definition: BOpcodeHandler.h:1173
void SetLodOptionsValue(int v)
Definition: BOpcodeHandler.h:3389
void SetVector(float const v[])
Definition: BOpcodeHandler.h:3898
int GetColorTextLockMask() const
Definition: BOpcodeHandler.h:2652
extended bits for common/shared items
Definition: BOpcodeEnums.h:176
BBaseOpcodeHandler * m_complex
Definition: BOpcodeHandler.h:7413
Definition: BOpcodeHandler.h:1711
double const * GetDStart() const
Definition: BOpcodeHandler.h:5936
void SetMiddle(float x, float y, float z)
Definition: BOpcodeHandler.h:5855
int GetGeometry() const
Definition: BOpcodeHandler.h:1931
int GetRendererCutoffUnits() const
Definition: BOpcodeHandler.h:5071
short m_channels
internal use
Definition: BOpcodeHandler.h:1706
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:6868
self-explanatory
Definition: BOpcodeEnums.h:1214
float m_hlr_transparency_cutoff
For internal use only.
Definition: BOpcodeHandler.h:2268
float m_preference_cutoff
for internal use only
Definition: BOpcodeHandler.h:4900
void SetLodMinimumTriangleCount(int v)
Definition: BOpcodeHandler.h:3397
char * m_condition
Definition: BOpcodeHandler.h:1377
float m_start
Definition: BOpcodeHandler.h:5369
void SetDOrigin(double const o[])
Definition: BOpcodeHandler.h:6440
TK_Ellipse(unsigned char opcode)
Definition: BOpcodeHandler.h:5962
int GetCount() const
Definition: BOpcodeHandler.h:6340
TK_Heuristics()
Definition: BOpcodeHandler.h:3806
void SetHlrFaceDisplacement(float d)
Definition: BOpcodeHandler.h:3341
void SetPoints(float const s[], float const m[], float const e[], float const c[]=0)
Definition: BOpcodeHandler.h:5881
int GetMaskTransform() const
Definition: BOpcodeHandler.h:3546
int GetColorTextContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3296
char * GetString()
Definition: BOpcodeHandler.h:7722
void SetDStart(double x, double y, double z)
Definition: BOpcodeHandler.h:5896
void SetDiffuseTextureTintColor(float const rgb[])
Definition: BOpcodeHandler.h:3750
void SetEmission(float const rgb[])
Definition: BOpcodeHandler.h:1849
void SetOptions(int f)
Definition: BOpcodeHandler.h:6880
unsigned char * GetBytes()
Definition: BOpcodeHandler.h:7123
void SetMask(int m)
Definition: BOpcodeHandler.h:3819
void SetConcentration(float c)
Definition: BOpcodeHandler.h:5743
char m_param_source
Definition: BOpcodeHandler.h:6913
float * GetWeights()
Definition: BOpcodeHandler.h:5514
int m_buffer_size
Definition: BOpcodeHandler.h:7564
ID_Key GetKey() const
Definition: BOpcodeHandler.h:1588
static void fix_out(double *d, int n)
for internal use only
Definition: BOpcodeHandler.h:599
void SetColorBackForcedLockValue(int v)
Definition: BOpcodeHandler.h:3153
unsigned short m_simple_shadow_resolution
For internal use only.
Definition: BOpcodeHandler.h:2355
int const * GetCounts() const
Definition: BOpcodeHandler.h:6474
float const * GetEnd() const
Definition: BOpcodeHandler.h:6199
void SetPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:5787
int GetOrderedWeightsMask() const
Definition: BOpcodeHandler.h:3925
void add_segment(BStreamFileToolkit &tk, ID_Key key)
for internal use only
Definition: BOpcodeHandler.h:634
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:7258
Lock_Masks m_filter
for internal use only
Definition: BOpcodeHandler.h:1292
void SetColorTextForcedLockMask(int m)
Definition: BOpcodeHandler.h:3050
char * GetName(void)
Definition: BOpcodeHandler.h:7843
void SetForceDefer(int l)
Definition: BOpcodeHandler.h:3945
void SetColorLockMask(int m)
Definition: BOpcodeHandler.h:2532
ID_Key m_renumbered_key
for internal use only
Definition: BOpcodeHandler.h:1288
Handles the TKE_Modelling_Matrix and TKE_Texture_Matrix opcodes.
Definition: BOpcodeHandler.h:4162
void SetWindow(float const w[], float const o[])
Definition: BOpcodeHandler.h:4859
void SetIndex(int i)
Definition: BOpcodeHandler.h:4219
void SetVertexDecimation(float f)
Definition: BOpcodeHandler.h:3760
int GetColorWindowContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3124
void SetDiffuseName(int length)
Definition: BOpcodeHandler.h:1793
void Reset()
internal use
Definition: BOpcodeHandler.h:1718
int m_number_of_items
internal use
Definition: BOpcodeHandler.h:1632
int GetGreenMapping() const
Definition: BOpcodeHandler.h:7023
////
Definition: BOpcodeEnums.h:36
char * GetCylinderTessellations()
Definition: BOpcodeHandler.h:3514
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:5717
void SetSphereTessellation(int n)
Definition: BOpcodeHandler.h:3516
void SetColorBackLockValue(int v)
Definition: BOpcodeHandler.h:2750
void SetAction(int at)
Definition: BOpcodeHandler.h:4433
float m_index
internal use
Definition: BOpcodeHandler.h:2061
void SetDAxis(double const s[], double const e[])
Definition: BOpcodeHandler.h:6213
char * GetSegment()
Definition: BOpcodeHandler.h:1204
void SetSize(int const s[])
Definition: BOpcodeHandler.h:7128
void SetColorVertexContrastLockValue(int v)
Definition: BOpcodeHandler.h:2865
int m_general_displacement
For internal use only.
Definition: BOpcodeHandler.h:2389
Handles the TKE_Color opcode.
Definition: BOpcodeHandler.h:1896
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:1290
char const * GetSegment() const
Definition: BOpcodeHandler.h:1326
int m_definition_length
Definition: BOpcodeHandler.h:7318
static TK_Status GetData(BStreamFileToolkit &tk, int *i, int n)
Definition: BOpcodeHandler.h:262
TK_Line(unsigned char opcode=TKE_Line)
Definition: BOpcodeHandler.h:5248
int m_stage
The writing stage.
Definition: BOpcodeHandler.h:63
void SetColorLineContrastLockMask(int m)
Definition: BOpcodeHandler.h:2808
void SetColorVertexForcedLockValue(int v)
Definition: BOpcodeHandler.h:3176
int GetNURBSOptionsValue() const
Definition: BOpcodeHandler.h:3365
float * m_planes
internal use
Definition: BOpcodeHandler.h:5762
Handles the TKE_Image_XRef opcodes.
Definition: BOpcodeHandler.h:7813
void SetTiling(int p)
Definition: BOpcodeHandler.h:7046
int GetLodFallback() const
Definition: BOpcodeHandler.h:3419
float GetCutGeometryEdgeWeight() const
Definition: BOpcodeHandler.h:3575
short color_edge_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1072
void SetDMinor(double const m[])
Definition: BOpcodeHandler.h:6023
Handles the TKE_PolyCylinder opcode.
Definition: BOpcodeHandler.h:6257
int * GetLengths()
Definition: BOpcodeHandler.h:7525
char m_type
internal use
Definition: BOpcodeHandler.h:5129
all
Definition: BOpcodeEnums.h:345
mask of bits in second byte
Definition: BOpcodeEnums.h:760
unsigned short m_shadow_map
For internal use only.
Definition: BOpcodeHandler.h:2361
void GetDPosition(double p[]) const
Definition: BOpcodeHandler.h:4729
float m_stereo_distance
For internal use only.
Definition: BOpcodeHandler.h:2330
int m_length
Definition: BOpcodeHandler.h:4452
float GetLineSpacing() const
Definition: BOpcodeHandler.h:5030
static TK_Status LookatData(BStreamFileToolkit &tk, unsigned char &b)
Definition: BOpcodeHandler.h:334
int m_length
Definition: BOpcodeHandler.h:2186
int visibility_mask
For internal use only.
Definition: BOpcodeHandler.h:1088
int GetCount() const
Definition: BOpcodeHandler.h:5498
void SetColorTextContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3280
int GetColorBackLockValue() const
Definition: BOpcodeHandler.h:2755
void SetWhenInvisible(int m)
Definition: BOpcodeHandler.h:4147
mask for HLR suboptions; refer to ::HC_Set_Rendering_Options for description
Definition: BOpcodeEnums.h:651
void SetKey(ID_Key k)
Definition: BOpcodeHandler.h:1586
char const * GetNames() const
Definition: BOpcodeHandler.h:4960
int GetLength() const
Definition: BOpcodeHandler.h:2151
int m_placeholder
internal use
Definition: BOpcodeHandler.h:1630
unsigned char * m_dleader_flags
Definition: BOpcodeHandler.h:6534
float m_vertex_decimation
For internal use only.
Definition: BOpcodeHandler.h:2392
double const * GetDRadii() const
Definition: BOpcodeHandler.h:6334
char * GetName()
Definition: BOpcodeHandler.h:7226
void SetColorMarkerForcedLockMask(int m)
Definition: BOpcodeHandler.h:3027
wchar_t const * GetString() const
Definition: BOpcodeHandler.h:7798
void SetInterpolation(int p)
Definition: BOpcodeHandler.h:7006
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6109
void SetDMinor(double x, double y, double z)
Definition: BOpcodeHandler.h:6019
float * GetMatrix()
Definition: BOpcodeHandler.h:4190
void SetOrigin(float x, float y, float z)
Definition: BOpcodeHandler.h:6402
int m_length
Definition: BOpcodeHandler.h:4363
int GetGeometryOptionsMask() const
Definition: BOpcodeHandler.h:3536
int m_allocated
Definition: BOpcodeHandler.h:1281
int GetCutGeometryColorMatch() const
Definition: BOpcodeHandler.h:3562
unsigned char size_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6501
Handles the TKE_External_Reference_Unicode opcodes.
Definition: BOpcodeHandler.h:7772
float m_outer
for internal use only
Definition: BOpcodeHandler.h:5683
Handles the TKE_Polyline and TKE_Polygon opcodes.
Definition: BOpcodeHandler.h:5298
char m_apply_mode
Definition: BOpcodeHandler.h:6926
int * m_cursors
Definition: BOpcodeHandler.h:6528
HLONG * GetValues()
Definition: BOpcodeHandler.h:4572
int GetHlrOptions() const
Definition: BOpcodeHandler.h:3335
int m_pixel_threshold
internal use; pixel threshold
Definition: BOpcodeHandler.h:3788
int m_count
internal use
Definition: BOpcodeHandler.h:5764
int mask
For internal use only.
Definition: BOpcodeHandler.h:1048
int m_internal_shell
internal use
Definition: BOpcodeHandler.h:3781
void SetRef1(float const r[])
Definition: BOpcodeHandler.h:6417
float const * GetLimits() const
Definition: BOpcodeHandler.h:6032
unsigned char m_type
Definition: BOpcodeHandler.h:5452
float GetConcentration() const
Definition: BOpcodeHandler.h:5745
void SetColorFaceContrastLockValue(int v)
Definition: BOpcodeHandler.h:2704
int GetColorMarkerLockMask() const
Definition: BOpcodeHandler.h:2629
Handles the TKE_Bounding and TKE_Bounding_Info opcodes.
Definition: BOpcodeHandler.h:5125
unsigned char m_projection
internal use
Definition: BOpcodeHandler.h:4682
char m_tint_effect
For internal use only.
Definition: BOpcodeHandler.h:2294
void SetColorFaceForcedLockValue(int v)
Definition: BOpcodeHandler.h:2969
TK_User_Data()
Definition: BOpcodeHandler.h:7571
int GetCount() const
Definition: BOpcodeHandler.h:5405
void SetRGB(float const rgb[])
Definition: BOpcodeHandler.h:1936
unsigned char m_degree[2]
Definition: BOpcodeHandler.h:5535
int m_force_defer
internal use; hard extent
Definition: BOpcodeHandler.h:3793
float GetOuter() const
Definition: BOpcodeHandler.h:5735
float const * GetPosition() const
Definition: BOpcodeHandler.h:5706
int m_index
Definition: BOpcodeHandler.h:1249
void SetPoint(float x, float y, float z)
Definition: BOpcodeHandler.h:5211
////
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:7156
Handles the TKE_Shape_Definition opcode.
Definition: BOpcodeHandler.h:7196
int GetColorForcedLockMask() const
Definition: BOpcodeHandler.h:2940
float * GetTextLeaders()
Definition: BOpcodeHandler.h:6619
double m_dradius
Definition: BOpcodeHandler.h:6170
void SetColorVertexContrastLockMask(int m)
Definition: BOpcodeHandler.h:2854
int GetColorLockMask() const
Definition: BOpcodeHandler.h:2537
void SetGreekingLimit(float s)
Definition: BOpcodeHandler.h:5038
float const * GetStart() const
Definition: BOpcodeHandler.h:6197
void SetLodAlgorithm(int v)
Definition: BOpcodeHandler.h:3393
char * GetEmissionName()
Definition: BOpcodeHandler.h:1859
int GetNURBSSurfaceBudget() const
Definition: BOpcodeHandler.h:3377
unsigned short m_tint_options
For internal use only.
Definition: BOpcodeHandler.h:2291
int m_maximum_extent_mode
internal use; maximum extent mode – int! argh...
Definition: BOpcodeHandler.h:3790
TK_Status Write(BStreamFileToolkit &)
Definition: BOpcodeHandler.h:1094
void SetWindow(float const w[])
Definition: BOpcodeHandler.h:4857
channel m_diffuse
internal use
Definition: BOpcodeHandler.h:1725
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2078
void SetRendererCutoff(float s)
Definition: BOpcodeHandler.h:5064
int GetNumSphereTessellations() const
Definition: BOpcodeHandler.h:3527
float * GetValues()
Definition: BOpcodeHandler.h:2149
float * m_radii
Definition: BOpcodeHandler.h:6263
Handles the TKE_Camera opcode.
Definition: BOpcodeHandler.h:4672
int GetTransparentStyle() const
Definition: BOpcodeHandler.h:2450
int m_mask
internal use
Definition: BOpcodeHandler.h:2011
int GetSpace() const
Definition: BOpcodeHandler.h:1989
float m_index
internal use
Definition: BOpcodeHandler.h:1733
int GetColorMarkerContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3239
int GetSizeUnits() const
Definition: BOpcodeHandler.h:4990
void SetLodThreshold(float r)
Definition: BOpcodeHandler.h:3458
float m_start_u
Definition: BOpcodeHandler.h:5460
int GetJoinCutoffAngle() const
Definition: BOpcodeHandler.h:2485
void SetName(int length)
Definition: BOpcodeHandler.h:7839
int GetColorWindowLockValue() const
Definition: BOpcodeHandler.h:2686
unsigned short m_transparency_options
internal use; low nibble style, next peeling flags, then zsort
Definition: BOpcodeHandler.h:2342
int m_total_size
the total size of the blind material data
Definition: BOpcodeHandler.h:7622
int m_mask
internal use
Definition: BOpcodeHandler.h:1705
char m_interpolation
Definition: BOpcodeHandler.h:6914
void SetNURBSCurveContinuedBudget(int b)
Definition: BOpcodeHandler.h:3371
char const * GetComment() const
Definition: BOpcodeHandler.h:978
void SetHlrOptions(int o)
Definition: BOpcodeHandler.h:3326
void SetStereoDistance(float d)
Definition: BOpcodeHandler.h:3320
Handles the TKE_Text and TKE_Text_With_Encoding opcodes.
Definition: BOpcodeHandler.h:6514
int GetColorBackForcedLockValue() const
Definition: BOpcodeHandler.h:3158
unsigned char m_size_units
for internal use only
Definition: BOpcodeHandler.h:4910
float const * GetWeights() const
Definition: BOpcodeHandler.h:5585
short color_back_mask
For internal use only.
Definition: BOpcodeHandler.h:1068
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:638
int m_length
Definition: BOpcodeHandler.h:7735
float width_scale
adjustment to character width
Definition: BOpcodeHandler.h:6496
char m_param_offset
Definition: BOpcodeHandler.h:6927
int m_substage
Definition: BOpcodeHandler.h:5450
double * GetDRef2()
Definition: BOpcodeHandler.h:6466
double const * GetDCenter() const
Definition: BOpcodeHandler.h:6007
float * m_weights
Definition: BOpcodeHandler.h:5458
void SetFlags(int f)
Definition: BOpcodeHandler.h:914
char * GetLoggingString()
Definition: BOpcodeHandler.h:239
void SetDebug(int d)
Definition: BOpcodeHandler.h:2463
int m_lod_options_value
For internal use only.
Definition: BOpcodeHandler.h:2297
char * GetDefinition()
Definition: BOpcodeHandler.h:7354
float * m_points
Definition: BOpcodeHandler.h:7477
unsigned char m_format
Definition: BOpcodeHandler.h:6780
int GetColorMarkerContrastLockMask() const
Definition: BOpcodeHandler.h:2836
int color_mask
For internal use only.
Definition: BOpcodeHandler.h:1050
float const * GetPoints() const
Definition: BOpcodeHandler.h:5647
int m_length
Definition: BOpcodeHandler.h:6655
oblique y setting
Definition: BOpcodeEnums.h:1093
Handles the TKE_Rendering_Options opcode.
Definition: BOpcodeHandler.h:2245
void SetScreenRange(int n, float const l[])
Definition: BOpcodeHandler.h:3713
void SetMaximumExtentLevel(int c)
Definition: BOpcodeHandler.h:3884
float const * GetPoints() const
Definition: BOpcodeHandler.h:5500
int Pass(BStreamFileToolkit &tk) const
Definition: BOpcodeHandler.h:176
secondary extended bits
Definition: BOpcodeEnums.h:205
int GetUDegree() const
Definition: BOpcodeHandler.h:5577
BBaseOpcodeHandler * Opcode_Handler(BStreamFileToolkit &tk, unsigned char op) const
Definition: BOpcodeHandler.h:661
void SetViewVolume(float ax, float ay, float az, float bx, float by, float bz)
Definition: BOpcodeHandler.h:3911
unsigned char m_units
for internal use only.
Definition: BOpcodeHandler.h:4233
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:5973
int GetMask() const
Definition: BOpcodeHandler.h:3825
void SetComment(char const *comment)
Definition: BOpcodeHandler.h:969
unsigned char m_flags
Definition: BOpcodeHandler.h:5829
bool m_terminate_file
internal use for hsx read-write only. This indicates if the TKE_Terminate is
Definition: BOpcodeHandler.h:1013
int GetColorVertexForcedLockValue() const
Definition: BOpcodeHandler.h:3181
void SetColorMarkerForcedLockValue(int v)
Definition: BOpcodeHandler.h:3038
self-explanatory
Definition: BOpcodeEnums.h:1526
HT_NURBS_Trim const * GetList() const
Definition: BOpcodeHandler.h:5520
void SetDAxis(double const a[])
Definition: BOpcodeHandler.h:6215
Definition: BOpcodeHandler.h:845
short color_marker_mask
For internal use only.
Definition: BOpcodeHandler.h:1058
char * GetSegment()
Definition: BOpcodeHandler.h:7306
int m_isoline_weight_count
for internal use only.
Definition: BOpcodeHandler.h:2287
void SetParameterOffset(int p)
Definition: BOpcodeHandler.h:7061
float const * GetPoints() const
Definition: BOpcodeHandler.h:5399
float const * GetKnots() const
Definition: BOpcodeHandler.h:5516
Contains enum types which are used by BBaseOpcodeHandler.
char * m_string
Definition: BOpcodeHandler.h:7698
float const * GetEmission() const
Definition: BOpcodeHandler.h:1855
int m_buffer_size_limit
For internal use only.
Definition: BOpcodeHandler.h:2263
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:4192
float const * GetDiffuseTextureTintColor() const
Definition: BOpcodeHandler.h:3752
char * GetString()
Definition: BOpcodeHandler.h:6568
double const * GetDPoints() const
Definition: BOpcodeHandler.h:7447
int GetCount() const
Definition: BOpcodeHandler.h:5341
unsigned char m_hsr
internal use; low half hsr, high half thsr. For internal use only.
Definition: BOpcodeHandler.h:2250
void SetDiffuseName(char const *name)
Definition: BOpcodeHandler.h:1791
char const * GetCondition() const
Definition: BOpcodeHandler.h:1415
float GetSimpleReflectionOpacity() const
Definition: BOpcodeHandler.h:3686
int m_hlr_line_pattern
For internal use only.
Definition: BOpcodeHandler.h:2269
Handles the TKE_Material opcode.
Definition: BOpcodeHandler.h:7620
void SetStereoSeparation(float s)
Definition: BOpcodeHandler.h:3316
void SetCallback(char const *callback)
Definition: BOpcodeHandler.h:2209
static TK_Status GetData(BStreamFileToolkit &tk, unsigned short &s)
Definition: BOpcodeHandler.h:307
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition: BStream.h:257
char const * GetCondition() const
Definition: BOpcodeHandler.h:4426
void SetCaps(int f)
Definition: BOpcodeHandler.h:6230
int GetBytesCount() const
Definition: BOpcodeHandler.h:6698
Handles the TKE_Window opcode.
Definition: BOpcodeHandler.h:4834
BBaseOpcodeHandler * m_index_data
Definition: BOpcodeHandler.h:4456
TK_Point(unsigned char opcode)
Definition: BOpcodeHandler.h:5187
int m_length
Definition: BOpcodeHandler.h:6518
BBaseOpcodeHandler * m_unicode
Definition: BOpcodeHandler.h:4455
unsigned char m_encoding
Definition: BOpcodeHandler.h:6521
TK_LOD()
Definition: BOpcodeHandler.h:1511
int GetColorEdgeContrastLockValue() const
Definition: BOpcodeHandler.h:2801
void SetColorVertexContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3257
void SetSize(float value, int units=TKO_Generic_Size_Unspecified)
Definition: BOpcodeHandler.h:4248
void SetAxis(float const s[])
Definition: BOpcodeHandler.h:6092
void SetValue(int m)
Definition: BOpcodeHandler.h:4046
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6217
Handles the TKE_Visibility opcode.
Definition: BOpcodeHandler.h:4008
unsigned short m_selection_bias
internal use; selection bias options
Definition: BOpcodeHandler.h:3787
float GetIndex() const
Definition: BOpcodeHandler.h:1886
void SetPoint(float const p[])
Definition: BOpcodeHandler.h:5213
void SetExtras(int e)
Definition: BOpcodeHandler.h:3853
void SetFollow(bool f)
Definition: BOpcodeHandler.h:1424
unsigned char m_hlr_weight_units
for internal use only.
Definition: BOpcodeHandler.h:2272
TK_Named_Style_Def()
Definition: BOpcodeHandler.h:7263
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:7111
unsigned char m_cut_geometry_match
For internal use only.
Definition: BOpcodeHandler.h:2346
char * m_string
Definition: BOpcodeHandler.h:1282
void SetPoints(float const p[])
Definition: BOpcodeHandler.h:5268
double * GetDPoints()
Definition: BOpcodeHandler.h:7514
void SetTransparentStyle(int s)
Definition: BOpcodeHandler.h:2448
float const * GetRectangle() const
Definition: BOpcodeHandler.h:7391
int m_length
Definition: BOpcodeHandler.h:1280
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:2278
short color_text_contrast_mask
For internal use only.
Definition: BOpcodeHandler.h:1080
unsigned short value
for active settings, on or off
Definition: BOpcodeHandler.h:6499
TK_Color_RGB()
Definition: BOpcodeHandler.h:1903
unsigned char m_cut_geometry
For internal use only.
Definition: BOpcodeHandler.h:2344
char m_type
Definition: BOpcodeHandler.h:6384
void SetNeedsTag(bool n)
Definition: BOpcodeHandler.h:194
char * m_shape
for internal use only
Definition: BOpcodeHandler.h:4905
float const * GetRef2() const
Definition: BOpcodeHandler.h:6430
int m_current_value
for internal use only
Definition: BOpcodeHandler.h:4589
int m_ascii_progress
Tracks the amount of data that has been read/written so far by GetAscii functions.
Definition: BOpcodeHandler.h:78
void SetColorLineForcedLockMask(int m)
Definition: BOpcodeHandler.h:3004
char * GetView()
Definition: BOpcodeHandler.h:4825
void SetWidthScale(float s)
Definition: BOpcodeHandler.h:5013
void SetColorEdgeLockMask(int m)
Definition: BOpcodeHandler.h:2578
void SetColorFaceContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3107
unsigned char m_degree
Definition: BOpcodeHandler.h:5362
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5572
int GetDegree() const
Definition: BOpcodeHandler.h:5404
void SetFollow(bool f)
Definition: BOpcodeHandler.h:1356
char * GetSpecularName()
Definition: BOpcodeHandler.h:1814
int m_name_length
Definition: BOpcodeHandler.h:7317
Handles the TKE_NURBS_Surface opcode.
Definition: BOpcodeHandler.h:5532
int m_reference_length
Definition: BOpcodeHandler.h:6779
float const * GetUKnots() const
Definition: BOpcodeHandler.h:5589
int GetColorWindowForcedLockValue() const
Definition: BOpcodeHandler.h:3089
char * m_data
Definition: BOpcodeHandler.h:7651
float * m_points
internal use
Definition: BOpcodeHandler.h:5619
int GetShadowMapResolution() const
Definition: BOpcodeHandler.h:3658
void SetOptions(int o)
Definition: BOpcodeHandler.h:5665
int m_names_length
for internal use only
Definition: BOpcodeHandler.h:4889
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1380
void SetDField(double const f[])
Definition: BOpcodeHandler.h:4783
int GetShadowMapSamples() const
Definition: BOpcodeHandler.h:3663
double const * GetDTarget() const
Definition: BOpcodeHandler.h:4747
struct vlist_s * m_data
Definition: BOpcodeHandler.h:7626
unsigned char m_geometry_options
For internal use only.
Definition: BOpcodeHandler.h:2380
Handles the TKE_Color_By_Index and TKE_Color_By_Index_16 opcode.
Definition: BOpcodeHandler.h:2009
void SetGeometry(int m)
Definition: BOpcodeHandler.h:2029
TK_Shape_Definition()
Definition: BOpcodeHandler.h:7205
void SetColorLineLockValue(int v)
Definition: BOpcodeHandler.h:2612
void SetIndices(int count)
Definition: BOpcodeHandler.h:4562
float const * GetSimpleReflectionPlane() const
Definition: BOpcodeHandler.h:3681
float m_vector_tolerance
internal use; culling vector tolerance
Definition: BOpcodeHandler.h:3795
int m_join_cutoff_angle
For internal use only.
Definition: BOpcodeHandler.h:2390
int GetHlrLinePattern() const
Definition: BOpcodeHandler.h:3347
float GetStereoDistance() const
Definition: BOpcodeHandler.h:3322
int m_levels_allocated
the number of entries allocated in m_num_primitives and m_primitives
Definition: BOpcodeHandler.h:1502
unsigned char horizontal_offset_units
specified with enum TKO_Font_Size_Units
Definition: BOpcodeHandler.h:6503
int GetRenderer() const
Definition: BOpcodeHandler.h:5056
void SetCylinderTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3501
void SetNearLimit(float l)
Definition: BOpcodeHandler.h:4804
char m_contour_value_adjustment
for internal use only.
Definition: BOpcodeHandler.h:2277
void SetExtraSpace(float s)
Definition: BOpcodeHandler.h:5018
#define ID_Key
Definition: BStream.h:233
unsigned short m_value
internal use
Definition: BOpcodeHandler.h:3964
void SetTarget(float x, float y, float z)
Definition: BOpcodeHandler.h:4732
int GetIndex() const
Definition: BOpcodeHandler.h:2049
void SetMask(int m0, int m1=0, int m2=0)
Definition: BOpcodeHandler.h:2420
int m_cond_allocated
Definition: BOpcodeHandler.h:7254
int GetColorVertexContrastLockValue() const
Definition: BOpcodeHandler.h:2870
unsigned char m_flags
Definition: BOpcodeHandler.h:6171
char * name
the font name
Definition: BOpcodeHandler.h:6488
int GetLayout() const
Definition: BOpcodeHandler.h:5097
double * GetDPoints()
Definition: BOpcodeHandler.h:7449
wchar_t * GetString()
Definition: BOpcodeHandler.h:7800
int GetColorFaceContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3101
void SetTransmissionName(char const *name)
Definition: BOpcodeHandler.h:1836
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, int variant)
Definition: BOpcodeHandler.h:957
#define TKO_Rendo_Extended
Definition: BOpcodeEnums.h:436
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:5920
double * m_dradii
Definition: BOpcodeHandler.h:6264
int GetMask() const
Definition: BOpcodeHandler.h:3985
Utility class for managing HSF header information.
Definition: BOpcodeHandler.h:862
float const * GetUpVector() const
Definition: BOpcodeHandler.h:4757
unsigned short m_isoline_options
for internal use only.
Definition: BOpcodeHandler.h:2276
float GetVertexDecimation() const
Definition: BOpcodeHandler.h:3762
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:5259
int m_index
internal use
Definition: BOpcodeHandler.h:1470
float * GetPoints()
Definition: BOpcodeHandler.h:6301
int m_simple_reflection_visibility_value
For internal use only.
Definition: BOpcodeHandler.h:2372
void SetSimpleReflectionPlane(float const p[])
Definition: BOpcodeHandler.h:3679
float m_concentration
for internal use only
Definition: BOpcodeHandler.h:5685
void SetString(int length)
Definition: BOpcodeHandler.h:6564
int GetNumCylinderTessellations() const
Definition: BOpcodeHandler.h:3510
int GetChannels() const
Definition: BOpcodeHandler.h:1784
float * GetWeights()
Definition: BOpcodeHandler.h:5587
void SetTransform(int length)
Definition: BOpcodeHandler.h:7074
void SetToleranceUnits(int u)
Definition: BOpcodeHandler.h:4998
float const * GetDiffuse() const
Definition: BOpcodeHandler.h:1795
int GetOptions() const
Definition: BOpcodeHandler.h:7459
void SetColorWindowForcedLockValue(int v)
Definition: BOpcodeHandler.h:3084
void SetTransform(char const *transform)
Definition: BOpcodeHandler.h:7069
Handles the TKE_Thumbnail opcode.
Definition: BOpcodeHandler.h:7090
Handles the TKE_User_Options opcode.
Definition: BOpcodeHandler.h:4450
int m_margin_count
for internal use only
Definition: BOpcodeHandler.h:4907
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5544
int GetTransforms() const
Definition: BOpcodeHandler.h:5035
void SetForcedLockValue(int v)
Definition: BOpcodeHandler.h:2904
int m_face_displacement
For internal use only.
Definition: BOpcodeHandler.h:2253
TK_Dictionary()
Definition: BOpcodeHandler.h:1638
unsigned char m_byte
temporary
Definition: BOpcodeHandler.h:80
int GetGeometry() const
Definition: BOpcodeHandler.h:4097
Handles the TKE_Clip_Region opcodes.
Definition: BOpcodeHandler.h:7407
void SetSegment(int length)
Definition: BOpcodeHandler.h:1322
char const * GetString() const
Definition: BOpcodeHandler.h:7759
unsigned char m_display_list_level
For internal use only.
Definition: BOpcodeHandler.h:2393
int GetVDegree() const
Definition: BOpcodeHandler.h:5579
int GetValue() const
Definition: BOpcodeHandler.h:3830
char const * GetName() const
Definition: BOpcodeHandler.h:7175
#define NS_TRIM_END
terminates an NS_TRIM_COLLECTION if one is active, otherwise terminates the list of trims ...
Definition: BOpcodeHandler.h:5429
char * GetImage()
Definition: BOpcodeHandler.h:6980
float * GetOrderedWeights()
Definition: BOpcodeHandler.h:3937
float const * GetMiddle() const
Definition: BOpcodeHandler.h:5889
TK_Color_Map()
Definition: BOpcodeHandler.h:2123
int m_size
Definition: BOpcodeHandler.h:7199
char * m_string
Definition: BOpcodeHandler.h:4364
double const * GetDPoint() const
Definition: BOpcodeHandler.h:5222
void SetDiffuse(float const rgb[])
Definition: BOpcodeHandler.h:1789
double const * GetDOrtho() const
Definition: BOpcodeHandler.h:6143
static void fix_in(double *d, int n)
for internal use only
Definition: BOpcodeHandler.h:567
int GetIndex() const
Definition: BOpcodeHandler.h:4322
void SetDepthRange(float n, float f)
Definition: BOpcodeHandler.h:3695
short color_vertex_mask
For internal use only.
Definition: BOpcodeHandler.h:1070
int GetMoveUp() const
Definition: BOpcodeHandler.h:4141
short color_face_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1065
int GetColorFaceContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3112
TK_Streaming()
Definition: BOpcodeHandler.h:4339
static void fix(short *s, int n)
for internal use only
Definition: BOpcodeHandler.h:537
float GetMaxDistance() const
Definition: BOpcodeHandler.h:3906
void GetOblique(float o[]) const
Definition: BOpcodeHandler.h:4801
void SetMoveUp(int m)
Definition: BOpcodeHandler.h:4136
int GetDecimation() const
Definition: BOpcodeHandler.h:7013
void SetRendererCutoffUnits(int u)
Definition: BOpcodeHandler.h:5069
void SetCutGeometry(int m)
Definition: BOpcodeHandler.h:3550
void SetEndNormal(int index, float const normal[]=0)
Definition: BOpcodeHandler.h:6353
TK_Bounding(unsigned char opcode, double center[], double radius)
Definition: BOpcodeHandler.h:5155
char * m_debug_string
Definition: BOpcodeHandler.h:71
char m_tiling
Definition: BOpcodeHandler.h:6922
void SetColorVertexForcedLockMask(int m)
Definition: BOpcodeHandler.h:3165
char const * GetSegment() const
Definition: BOpcodeHandler.h:1199
int m_cursor_count
Definition: BOpcodeHandler.h:6527
void SetSimpleReflection(int m)
Definition: BOpcodeHandler.h:3667
int GetGreekingLimitUnits() const
Definition: BOpcodeHandler.h:5045
Handles the TKE_Color_Map opcode.
Definition: BOpcodeHandler.h:2109
static TK_Status GetData(BStreamFileToolkit &tk, unsigned char &b)
Definition: BOpcodeHandler.h:304
static TK_Status PutData(BStreamFileToolkit &tk, unsigned int const *i, int n)
Definition: BOpcodeHandler.h:437
char * GetBumpName()
Definition: BOpcodeHandler.h:1877
char m_num_thresholds
For internal use only.
Definition: BOpcodeHandler.h:2301
int GetNURBSSurfaceTrimBudget() const
Definition: BOpcodeHandler.h:3381
float m_contour_value_translate
for internal use only.
Definition: BOpcodeHandler.h:2279
unsigned char const * GetTextLeaderFlags() const
Definition: BOpcodeHandler.h:6621
int m_mask
internal use
Definition: BOpcodeHandler.h:1950
float const * GetLodCutoffs() const
Definition: BOpcodeHandler.h:3489
TK_Named(unsigned char opcode)
Definition: BOpcodeHandler.h:4297
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:1291
void SetAxis(float x1, float y1, float z1, float x2, float y2, float z2)
Definition: BOpcodeHandler.h:6186
void SetEmissionName(int length)
Definition: BOpcodeHandler.h:1853
char * m_name
Definition: BOpcodeHandler.h:6650
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4537
char const * GetString() const
Definition: BOpcodeHandler.h:6566
void SetDStart(double const s[])
Definition: BOpcodeHandler.h:5900
void SetColorEdgeContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3199
float m_width_scale
for internal use only
Definition: BOpcodeHandler.h:4895
int GetColorEdgeForcedLockValue() const
Definition: BOpcodeHandler.h:2997
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:5390
char const * GetStyle() const
Definition: BOpcodeHandler.h:4978
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:7257
char * m_name
Definition: BOpcodeHandler.h:6772
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:1382
float GetSize() const
Definition: BOpcodeHandler.h:4985
int m_move_up
internal use; specifies what geometry is selectable on mouse move without buttons down...
Definition: BOpcodeHandler.h:4069
TK_Matrix(unsigned char opcode)
Definition: BOpcodeHandler.h:4169
void SetDMiddle(double const m[])
Definition: BOpcodeHandler.h:5908
unsigned short m_simple_reflection
For internal use only.
Definition: BOpcodeHandler.h:2365
float GetRadius() const
Definition: BOpcodeHandler.h:6083
float const * GetTarget() const
Definition: BOpcodeHandler.h:5722
int GetNURBSCurveContinuedBudget() const
Definition: BOpcodeHandler.h:3373
static float read_float(char const *cp, char **newcpp)
for internal use only
Definition: BOpcodeHandler.h:687
static TK_Status GetData(BStreamFileToolkit &tk, char *b, int n)
Definition: BOpcodeHandler.h:251
int * m_num_primitives
an array of ints to indicate the length of each row in m_primitives
Definition: BOpcodeHandler.h:1499
bool m_flag
for internal use only
Definition: BOpcodeHandler.h:4335
Lock_Masks m_lock
For internal use only.
Definition: BOpcodeHandler.h:2258
unsigned char * m_data
Definition: BOpcodeHandler.h:7563
float GetSize() const
Definition: BOpcodeHandler.h:4253
void SetGreenMapping(int p)
Definition: BOpcodeHandler.h:7021
void SetLodThresholds(int c, float const r[]=0)
Definition: BOpcodeHandler.h:3460
void SetRectangle(float const *rect)
Definition: BOpcodeHandler.h:7388
TK_Status SetDPoints(int count, double const points[]=0)
void SetOptions(int at)
Definition: BOpcodeHandler.h:4437
Base class for shell and mesh.
Definition: BPolyhedron.h:22
char const * GetName() const
Definition: BOpcodeHandler.h:6960
char m_options
Definition: BOpcodeHandler.h:7409
void ** m_values
for internal use only
Definition: BOpcodeHandler.h:4586
char * m_string
Definition: BOpcodeHandler.h:1164
int m_hlr_options
For internal use only.
Definition: BOpcodeHandler.h:2265
double const * GetDPoints() const
Definition: BOpcodeHandler.h:7512
TK_User_Index_Data()
Definition: BOpcodeHandler.h:4596
void SetDCenter(double const c[])
Definition: BOpcodeHandler.h:5925
void SetCompression(int c)
Definition: BOpcodeHandler.h:6885
int GetHardExtent() const
Definition: BOpcodeHandler.h:3888
TK_Color_By_Index(unsigned char opcode)
Definition: BOpcodeHandler.h:2016
char * m_reference
Definition: BOpcodeHandler.h:6773
void SetSimpleReflectionPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3672
extends font options to a second byte
Definition: BOpcodeEnums.h:1116
void SetRenderer(int r)
Definition: BOpcodeHandler.h:5054
int m_name_length
Definition: BOpcodeHandler.h:6653
Handles the TKE_Conditional_Action opcode.
Definition: BOpcodeHandler.h:4400
char const * GetName() const
Definition: BOpcodeHandler.h:4315
TK_Geometry_Options()
Definition: BOpcodeHandler.h:3971
int GetUp() const
Definition: BOpcodeHandler.h:4119
void SetEmissionName(char const *name)
Definition: BOpcodeHandler.h:1851
char * m_bytes
Definition: BOpcodeHandler.h:6652
int m_vertex_displacement
For internal use only.
Definition: BOpcodeHandler.h:2254
float GetIndex() const
Definition: BOpcodeHandler.h:2098
void SetHardEdgeAngle(int m)
Definition: BOpcodeHandler.h:3539
float m_surface_max_trim_curve_deviation
For internal use only.
Definition: BOpcodeHandler.h:2321
void SetColorEdgeContrastLockValue(int v)
Definition: BOpcodeHandler.h:2796
double const * GetDPlane() const
Definition: BOpcodeHandler.h:5803
Handles the TKE_Start_User_Data opcode.
Definition: BOpcodeHandler.h:7560
float m_size
for internal use only
Definition: BOpcodeHandler.h:4891
float * GetKnots()
Definition: BOpcodeHandler.h:5518
int m_length
internal use
Definition: BOpcodeHandler.h:2111
float const * GetPoints() const
Definition: BOpcodeHandler.h:5568
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:2116
void SetName(char const *name)
Definition: BOpcodeHandler.h:6956
TK_Status SetPoints(int count, float const points[]=0)
unsigned char const * GetDTextLeaderFlags() const
Definition: BOpcodeHandler.h:6634
virtual TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
Definition: BOpcodeHandler.h:207
void bytes_to_floats(unsigned char const *in, float *out, int count) const
for internal use only
Definition: BOpcodeHandler.h:627
int GetVSize() const
Definition: BOpcodeHandler.h:5583
void set_channel_rgb(channel &c, float r, float g, float b, int which_channel=-1)
internal use
Definition: BOpcodeHandler.h:1737
char * m_lookup
Definition: BOpcodeHandler.h:6651
char const * GetLookup() const
Definition: BOpcodeHandler.h:6718
TK_Window()
Definition: BOpcodeHandler.h:4841
void SetColorTextContrastLockValue(int v)
Definition: BOpcodeHandler.h:2888
int GetColorLineForcedLockValue() const
Definition: BOpcodeHandler.h:3020
TK_Linear_Pattern(unsigned char opcode)
Definition: BOpcodeHandler.h:4268
int m_radius_count
Definition: BOpcodeHandler.h:6262
void SetSimpleShadowResolution(int m)
Definition: BOpcodeHandler.h:3609
void SetIndex(int index)
Definition: BOpcodeHandler.h:1398
float GetTolerance() const
Definition: BOpcodeHandler.h:4995
void SetDCenter(double const s[])
Definition: BOpcodeHandler.h:6005
void SetDRef2(double const r[])
Definition: BOpcodeHandler.h:6462
TK_Line_Style()
Definition: BOpcodeHandler.h:7324
Definition: BOpcodeHandler.h:4333
void SetDOrtho(double x, double y, double z)
Definition: BOpcodeHandler.h:6135
float * GetRef1()
Definition: BOpcodeHandler.h:6421
char m_num_ratios
For internal use only.
Definition: BOpcodeHandler.h:2299
float GetHardEdgeAngle() const
Definition: BOpcodeHandler.h:3541
void SetGreekingLimitUnits(int u)
Definition: BOpcodeHandler.h:5043
int GetParameterFunction() const
Definition: BOpcodeHandler.h:7038
unsigned char m_extras
internal use; low bit set == left handed, second bit set == spriting
Definition: BOpcodeHandler.h:3784
void SetLineSpacing(float s)
Definition: BOpcodeHandler.h:5028
float const * GetMinor() const
Definition: BOpcodeHandler.h:5997
void SetEncoding(int e)
Definition: BOpcodeHandler.h:6587
Handles the TKE_Start_Compression and TKE_Stop_Compression opcodes.
Definition: BOpcodeHandler.h:1025
char const * GetShape() const
Definition: BOpcodeHandler.h:4969
unsigned short * m_string
Definition: BOpcodeHandler.h:4499
static void fix_out(float *f, int n)
for internal use only
Definition: BOpcodeHandler.h:582
char const * GetName() const
Definition: BOpcodeHandler.h:6838
void SetColorWindowContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3119
void SetPreferences(int r1, int r2)
Definition: BOpcodeHandler.h:5080
TK_Texture()
Definition: BOpcodeHandler.h:6938
char * m_gooch_color_map_segment
For internal use only.
Definition: BOpcodeHandler.h:2340
void SetColorEdgeContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3188
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1038
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6224
int m_allocated
Definition: BOpcodeHandler.h:7736
int GetLodThresholdType() const
Definition: BOpcodeHandler.h:3456
static TK_Status PutData(BStreamFileToolkit &tk, double const *d, int n)
Definition: BOpcodeHandler.h:408
int GetPreference() const
Definition: BOpcodeHandler.h:5077
float m_gooch_diffuse_weight
For internal use only.
Definition: BOpcodeHandler.h:2339
void SetColorEdgeContrastLockMask(int m)
Definition: BOpcodeHandler.h:2785
char const * GetName() const
Definition: BOpcodeHandler.h:7343
int GetLodNumThresholds() const
Definition: BOpcodeHandler.h:3469
void SetAmbientUpVector(float x, float y, float z)
Definition: BOpcodeHandler.h:3723
int GetFormat() const
Definition: BOpcodeHandler.h:2139
static TK_Status PutData(BStreamFileToolkit &tk, int const &i)
Definition: BOpcodeHandler.h:446
unsigned char * GetUserData()
Definition: BOpcodeHandler.h:7593
double const * GetDTextLeaders() const
Definition: BOpcodeHandler.h:6630
float const * GetLodRatios() const
Definition: BOpcodeHandler.h:3449
int GetColorTextContrastLockValue() const
Definition: BOpcodeHandler.h:2893
extended bits for color
Definition: BOpcodeEnums.h:191
void SetColorWindowLockMask(int m)
Definition: BOpcodeHandler.h:2670
int m_total
Definition: BOpcodeHandler.h:7475
int GetColorMarkerContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3250
HT_NURBS_Trim * GetList()
Definition: BOpcodeHandler.h:5522
void SetIndex(int i)
Definition: BOpcodeHandler.h:1484
float const * getSimpleShadowLight() const
Definition: BOpcodeHandler.h:3622
static TK_Status PutData(BStreamFileToolkit &tk, float const *f, int n)
Definition: BOpcodeHandler.h:385
float GetStereoSeparation() const
Definition: BOpcodeHandler.h:3318
char const * GetEnvironmentName() const
Definition: BOpcodeHandler.h:1866
void SetSimpleShadowOpacity(float o)
Definition: BOpcodeHandler.h:3645
void SetColorWindowContrastLockValue(int v)
Definition: BOpcodeHandler.h:2727
double const * GetDOrigin() const
Definition: BOpcodeHandler.h:6442
char * GetName()
Definition: BOpcodeHandler.h:7177
void SetStart(float x, float y, float z)
Definition: BOpcodeHandler.h:5847
void GetTarget(float t[]) const
Definition: BOpcodeHandler.h:4739
char const * GetSpecularName() const
Definition: BOpcodeHandler.h:1812
void SetIndex(int i)
Definition: BOpcodeHandler.h:2047
int m_substage
Definition: BOpcodeHandler.h:6537
float const * GetPoint() const
Definition: BOpcodeHandler.h:5215
int GetFormat() const
Definition: BOpcodeHandler.h:7135
int m_options
internal use
Definition: BOpcodeHandler.h:1446
char * GetComment()
Definition: BOpcodeHandler.h:983
short color_line_mask
For internal use only.
Definition: BOpcodeHandler.h:1056
float const * GetEnd() const
Definition: BOpcodeHandler.h:5891
extra item for color; refer to ::HC_Set_Color for a description
Definition: BOpcodeEnums.h:214
void SetSimpleShadowPlane(float const p[])
Definition: BOpcodeHandler.h:3632
float const * GetFogLimits() const
Definition: BOpcodeHandler.h:2492
int GetCount() const
Definition: BOpcodeHandler.h:4564
void SetDEnd(double x, double y, double z)
Definition: BOpcodeHandler.h:5912
void SetColorForcedLockMask(int m)
Definition: BOpcodeHandler.h:2935
self-explanatory
Definition: BOpcodeEnums.h:1253
int m_lod_options_mask
For internal use only.
Definition: BOpcodeHandler.h:2296
int GetTiling() const
Definition: BOpcodeHandler.h:7048
float * m_isoline_colors
for internal use only.
Definition: BOpcodeHandler.h:2284
void SetColorEdgeLockValue(int v)
Definition: BOpcodeHandler.h:2589
void SetDisplayListLevel(int m)
Definition: BOpcodeHandler.h:3590
TK_URL()
Definition: BOpcodeHandler.h:7702
int GetProjection() const
Definition: BOpcodeHandler.h:4815
int m_allocated
Definition: BOpcodeHandler.h:7697
void SetSphereTessellations(int c, char const *n=0)
Definition: BOpcodeHandler.h:3518
void SetImage(char const *image)
Definition: BOpcodeHandler.h:6974
int GetLength()
Definition: BOpcodeHandler.h:4430
float const * GetTextRegionPoints() const
Definition: BOpcodeHandler.h:6596
void SetRedMapping(int p)
Definition: BOpcodeHandler.h:7016
Handles the TKE_Delete_Object opcode.
Definition: BOpcodeHandler.h:1468
void SetMinor(float const m[])
Definition: BOpcodeHandler.h:5995
double * GetDPoints()
Definition: BOpcodeHandler.h:6324
float * GetOrigin()
Definition: BOpcodeHandler.h:6410
void SetColorMarkerContrastForcedLockValue(int v)
Definition: BOpcodeHandler.h:3245
double const * GetDMinor() const
Definition: BOpcodeHandler.h:6025
TK_Default()
Definition: BOpcodeHandler.h:828
short m_fbe_mask
For internal use only.
Definition: BOpcodeHandler.h:2396
void SetColorFaceForcedLockMask(int m)
Definition: BOpcodeHandler.h:2958
void SetSegment(char const *segment)
Definition: BOpcodeHandler.h:1317
short color_cut_face_mask
For internal use only.
Definition: BOpcodeHandler.h:1084
void GetDUpVector(double u[]) const
Definition: BOpcodeHandler.h:4769
HLONG GetValue() const
Definition: BOpcodeHandler.h:4662
unsigned char m_heuristic
For internal use only.
Definition: BOpcodeHandler.h:2312
int * GetStringCursors()
Definition: BOpcodeHandler.h:6610
ID_Key m_key
for internal use only
Definition: BOpcodeHandler.h:1287
char * GetDefinition()
Definition: BOpcodeHandler.h:7186
int m_count
for internal use only
Definition: BOpcodeHandler.h:4584
void SetApplicationMode(int p)
Definition: BOpcodeHandler.h:7056
void SetEnvironmentName(char const *name)
Definition: BOpcodeHandler.h:1862
Handles the TKE_Spot_Light opcode.
Definition: BOpcodeHandler.h:5677
TK_Camera(unsigned char opcode=TKE_Camera)
Definition: BOpcodeHandler.h:4693
void SetRenderers(int r1, int r2)
Definition: BOpcodeHandler.h:5059
void SetMirror(float const rgb[])
Definition: BOpcodeHandler.h:1819
int GetType() const
Definition: BOpcodeHandler.h:5496
void SetSpecularName(char const *name)
Definition: BOpcodeHandler.h:1806
float const * GetPosition() const
Definition: BOpcodeHandler.h:6857
double const * GetDTarget() const
Definition: BOpcodeHandler.h:5730
float const * GetOrigin() const
Definition: BOpcodeHandler.h:6408
int m_length
Definition: BOpcodeHandler.h:1162
void Record_Instance(BStreamFileToolkit &tk, ID_Key key, int variant, int val1, int val2, int val3) const
Definition: BOpcodeHandler.h:665
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:961
short color_text_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1081
int GetBufferSizeLimit() const
Definition: BOpcodeHandler.h:3312
void SetMirrorName(int length)
Definition: BOpcodeHandler.h:1823
char const * GetBytes() const
Definition: BOpcodeHandler.h:6700
bool GetFollow()
Definition: BOpcodeHandler.h:1358
char * m_string
Definition: BOpcodeHandler.h:6520
TK_Text_Font()
Definition: BOpcodeHandler.h:4925
int GetGeometry() const
Definition: BOpcodeHandler.h:1776
int m_length
Definition: BOpcodeHandler.h:4498
float * m_values
internal use
Definition: BOpcodeHandler.h:2113
int GetColorEdgeContrastLockMask() const
Definition: BOpcodeHandler.h:2790
void SetSize(float s)
Definition: BOpcodeHandler.h:4983
float const * GetAxis() const
Definition: BOpcodeHandler.h:6094
int m_move_down
internal use; specifies what geometry is selectable on mouse button down and move. For internal use only.
Definition: BOpcodeHandler.h:4068
void SetOptions(int length)
Definition: BOpcodeHandler.h:4479
int m_cond_length
Definition: BOpcodeHandler.h:1375
char * m_name
Definition: BOpcodeHandler.h:7200
void SetDRef1(double x, double y, double z)
Definition: BOpcodeHandler.h:6447
int GetColorWindowContrastLockValue() const
Definition: BOpcodeHandler.h:2732
int GetColorTextForcedLockValue() const
Definition: BOpcodeHandler.h:3066
void SetLodMaxDegree(int v)
Definition: BOpcodeHandler.h:3409
void SetSegment(int length)
Definition: BOpcodeHandler.h:1194
float m_simple_reflection_hither
For internal use only.
Definition: BOpcodeHandler.h:2369
void SetSimpleShadow(int m)
Definition: BOpcodeHandler.h:3595
void SetNURBSCurveBudget(int b)
Definition: BOpcodeHandler.h:3367
int GetNURBSOptionsMask() const
Definition: BOpcodeHandler.h:3361
void SetGeometry(int m)
Definition: BOpcodeHandler.h:1764
extra item for visibility; refer to ::HC_Set_Visibility for a description
Definition: BOpcodeEnums.h:256
void SetCutGeometryLevel(int m)
Definition: BOpcodeHandler.h:3555
unsigned char m_depth_peeling_algorithm
For internal use only.
Definition: BOpcodeHandler.h:2387
void SetIndex(int i)
Definition: BOpcodeHandler.h:4320
int m_value
internal use
Definition: BOpcodeHandler.h:3778
void SetColorMarkerLockMask(int m)
Definition: BOpcodeHandler.h:2624
void SetDPosition(double x, double y, double z)
Definition: BOpcodeHandler.h:4722
Handles the TKE_Line opcode.
Definition: BOpcodeHandler.h:5239
float m_slant
for internal use only
Definition: BOpcodeHandler.h:4894
float const * GetAxis() const
Definition: BOpcodeHandler.h:6195
int GetColorEdgeContrastForcedLockValue() const
Definition: BOpcodeHandler.h:3204
virtual TK_Status Execute(BStreamFileToolkit &tk)
HT_NURBS_Trim * m_current_trim
Definition: BOpcodeHandler.h:5463
void SetDown(int m)
Definition: BOpcodeHandler.h:4103
int GetCulling() const
Definition: BOpcodeHandler.h:3860
float GetHlrFaceSortingAlgorithm() const
Definition: BOpcodeHandler.h:3351
void SetSize(int w, int h)
Definition: BOpcodeHandler.h:7126
int GetExtraSpaceUnits() const
Definition: BOpcodeHandler.h:5025
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5401
float const * GetOrtho() const
Definition: BOpcodeHandler.h:6105
void SetDRadius(double r)
Definition: BOpcodeHandler.h:6119
int GetLayout() const
Definition: BOpcodeHandler.h:7043
float const * GetCenter() const
Definition: BOpcodeHandler.h:5979
char * m_string
Definition: BOpcodeHandler.h:4405
int m_substage
Definition: BOpcodeHandler.h:6911
void SetColorTextForcedLockValue(int v)
Definition: BOpcodeHandler.h:3061
int m_substage
internal use; To track the subcases
Definition: BOpcodeHandler.h:1734
void SetSpecular(float const rgb[])
Definition: BOpcodeHandler.h:1804
self-explanatory
Definition: BOpcodeEnums.h:265
void SetSizeUnits(int u)
Definition: BOpcodeHandler.h:4988
void SetEmission(float r, float g, float b)
Definition: BOpcodeHandler.h:1847
void SetLodRatio(float r)
Definition: BOpcodeHandler.h:3436
void SetDPoint(double const p[])
Definition: BOpcodeHandler.h:5220
TK_Visibility(void)
Definition: BOpcodeHandler.h:4015
int GetColorMarkerForcedLockValue() const
Definition: BOpcodeHandler.h:3043
int m_control_point_count
Definition: BOpcodeHandler.h:5363
char m_index
internal use
Definition: BOpcodeHandler.h:4205
char * GetReference()
Definition: BOpcodeHandler.h:6849
self-explanatory
Definition: BOpcodeEnums.h:268
void SetSimpleShadowColor(float const rgb[])
Definition: BOpcodeHandler.h:3640
void SetColorLineContrastForcedLockMask(int m)
Definition: BOpcodeHandler.h:3211
float GetStart() const
Definition: BOpcodeHandler.h:5412
int m_related
internal use
Definition: BOpcodeHandler.h:3780
int * m_indices
for internal use only
Definition: BOpcodeHandler.h:4585
void SetUp(int m)
Definition: BOpcodeHandler.h:4114
void SetMask(int m)
Definition: BOpcodeHandler.h:4940
void SetGeometryOptionsMask(int m)
Definition: BOpcodeHandler.h:3534
float const * GetPoints() const
Definition: BOpcodeHandler.h:5328
Lock_Masks m_forced
For internal use only.
Definition: BOpcodeHandler.h:2259
int GetOptions() const
Definition: BOpcodeHandler.h:5750
int GetLength()
Definition: BOpcodeHandler.h:4485
void SetValueScale(float v1, float v2)
Definition: BOpcodeHandler.h:7051
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:5871
float const * GetLodBounding() const
Definition: BOpcodeHandler.h:3433
int GetLockMask() const
Definition: BOpcodeHandler.h:2498
char * m_camera
Definition: BOpcodeHandler.h:6905
float const * GetRadii() const
Definition: BOpcodeHandler.h:6311
int m_image_length
Definition: BOpcodeHandler.h:6908
int GetIndex() const
Definition: BOpcodeHandler.h:4221
TK_Selectability(void)
Definition: BOpcodeHandler.h:4074
void SetColorEdgeForcedLockValue(int v)
Definition: BOpcodeHandler.h:2992
float const * GetScreenRange() const
Definition: BOpcodeHandler.h:3718
char const * GetString() const
Definition: BOpcodeHandler.h:2166
int m_length
Definition: BOpcodeHandler.h:7696
float const * GetLodThresholds() const
Definition: BOpcodeHandler.h:3471
unsigned char m_format
internal use
Definition: BOpcodeHandler.h:1629
unsigned short m_shadow_map_resolution
For internal use only.
Definition: BOpcodeHandler.h:2362
float m_hlr_face_displacement
For internal use only.
Definition: BOpcodeHandler.h:2267
int m_tmp
Definition: BOpcodeHandler.h:6538
Handles the TKE_Ellipse and TKE_Elliptical_Arc opcodes.
Definition: BOpcodeHandler.h:5954
float const * GetCenter() const
Definition: BOpcodeHandler.h:5893
short m_fbe_value
For internal use only.
Definition: BOpcodeHandler.h:2397
void SetDRef2(double x, double y, double z)
Definition: BOpcodeHandler.h:6458
int GetBufferOptionsValue() const
Definition: BOpcodeHandler.h:3308
float horizontal_offset
offset, positive or negative, from the standard position. units are specified separately in horizonta...
Definition: BOpcodeHandler.h:6493
int GetSize() const
Definition: BOpcodeHandler.h:7595
char * m_name
The name of the color channel.
Definition: BOpcodeHandler.h:1714
self-explanatory
Definition: BOpcodeEnums.h:267
Definition: BOpcodeHandler.h:6487
void SetDAxis(double x, double y, double z)
Definition: BOpcodeHandler.h:6124
TK_Status Interpret(BStreamFileToolkit &tk, ID_Key key, char const *special)
Definition: BOpcodeHandler.h:1679
void SetDMajor(double x, double y, double z)
Definition: BOpcodeHandler.h:6010
void SetForcedLockMask(int m)
Definition: BOpcodeHandler.h:2899
void SetSpecular(float r, float g, float b)
Definition: BOpcodeHandler.h:1802
void SetColorMarkerLockValue(int v)
Definition: BOpcodeHandler.h:2635
int * m_lengths
Definition: BOpcodeHandler.h:7476
void **const GetValues()
Definition: BOpcodeHandler.h:4627
int m_cond_allocated
Definition: BOpcodeHandler.h:1284
void SetTransforms(int t)
Definition: BOpcodeHandler.h:5033
Handles the TKE_Grid opcode.
Definition: BOpcodeHandler.h:6382
char * GetCamera()
Definition: BOpcodeHandler.h:6989
void SetBumpName(int length)
Definition: BOpcodeHandler.h:1873
static TK_Status PutData(BStreamFileToolkit &tk, short const &s)
Definition: BOpcodeHandler.h:443
static TK_Status PutData(BStreamFileToolkit &tk, unsigned char const *b, int n)
Definition: BOpcodeHandler.h:431
refer to ::HC_Set_Heuristics
Definition: BOpcodeEnums.h:887
float color[3]
the color. RGB triplet
Definition: BOpcodeHandler.h:6490
void adjust_written(BStreamFileToolkit &tk, int count)
for internal use only
Definition: BOpcodeHandler.h:647
float const * GetPoints() const
Definition: BOpcodeHandler.h:7437
int m_size
internal use
Definition: BOpcodeHandler.h:1664
int GetColorLineForcedLockMask() const
Definition: BOpcodeHandler.h:3009
BBaseOpcodeHandler * m_referee
for internal use only
Definition: BOpcodeHandler.h:1381
int m_from_index
internal use
Definition: BOpcodeHandler.h:1442
float m_hlr_dim_factor
For internal use only.
Definition: BOpcodeHandler.h:2266
bool m_follow
for internal use only
Definition: BOpcodeHandler.h:7259
float const * GetSimpleShadowPlane() const
Definition: BOpcodeHandler.h:3634
int m_curve_continued_budget
For internal use only.
Definition: BOpcodeHandler.h:2318
void SetCounts(int c1, int c2)
Definition: BOpcodeHandler.h:6470
int m_length
Definition: BOpcodeHandler.h:4404
indicates that the 2nd byte should be written
Definition: BOpcodeEnums.h:759
char * m_segment
Definition: BOpcodeHandler.h:7251
float GetRadius() const
Definition: BOpcodeHandler.h:6204
float const * GetPlanes() const
Definition: BOpcodeHandler.h:5806
unsigned char m_depth_peeling_layers
For internal use only.
Definition: BOpcodeHandler.h:2385
float m_cut_geometry_edge_weight
for internal use only.
Definition: BOpcodeHandler.h:2348
void SetCenter(float const s[])
Definition: BOpcodeHandler.h:6075
int GetColorLockValue() const
Definition: BOpcodeHandler.h:2548
int GetGeometry() const
Definition: BOpcodeHandler.h:1984
virtual TK_Status Write(BStreamFileToolkit &tk)=0
void SetOptions(int opt)
Definition: BOpcodeHandler.h:4870
TK_Status GetGeneral(BStreamFileToolkit &tk)
Definition: BOpcodeHandler.h:320
void SetLodBounding(float x1, float y1, float z1, float x2, float y2, float z2)
Definition: BOpcodeHandler.h:3422
int m_isoline_position_count
for internal use only.
Definition: BOpcodeHandler.h:2281
void SetDField(double w, double h)
Definition: BOpcodeHandler.h:4781
float * GetPoints()
Definition: BOpcodeHandler.h:5400
double const * GetDRef1() const
Definition: BOpcodeHandler.h:6453
double const * GetDAxis() const
Definition: BOpcodeHandler.h:6132
Flags
Definition: BOpcodeHandler.h:6149
short color_simple_reflection_mask
For internal use only.
Definition: BOpcodeHandler.h:1082
void SetColorTextLockMask(int m)
Definition: BOpcodeHandler.h:2647
extended bit
Definition: BOpcodeEnums.h:807
void SetLodTolerance(float v)
Definition: BOpcodeHandler.h:3413
int GetTessellationMask() const
Definition: BOpcodeHandler.h:3497
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:5701
void SetOptions(int o)
Definition: BOpcodeHandler.h:5598
int m_cond_length
Definition: BOpcodeHandler.h:1283
float m_curve_max_length
For internal use only.
Definition: BOpcodeHandler.h:2327
int m_isoline_pattern_count
for internal use only.
Definition: BOpcodeHandler.h:2285
char * GetBytes()
Definition: BOpcodeHandler.h:6831
double const * GetDEnd() const
Definition: BOpcodeHandler.h:5940
bool Find_Instance(BStreamFileToolkit &tk, int val1, int val2, int val3)
Definition: BOpcodeHandler.h:670
int m_substage
tracks progress of reading individual opcode handler arrays.
Definition: BOpcodeHandler.h:1503
int GetLodMaxDegree() const
Definition: BOpcodeHandler.h:3411
void SetDPlane(double const p[])
Definition: BOpcodeHandler.h:5798
int m_culling
internal use; culling options
Definition: BOpcodeHandler.h:3785
float * m_knots
Definition: BOpcodeHandler.h:5368
char m_options
internal use
Definition: BOpcodeHandler.h:5621
void SetPosition(float x, float y, float z)
Definition: BOpcodeHandler.h:4712
static TK_Status GetData(BStreamFileToolkit &tk, char &c)
Definition: BOpcodeHandler.h:295
void SetFaceDisplacement(int d)
Definition: BOpcodeHandler.h:2468
char * GetBytes()
Definition: BOpcodeHandler.h:6702
Handles the TKE_User_Value opcode.
Definition: BOpcodeHandler.h:4643
void SetHlrFaceSortingAlgorithm(int a)
Definition: BOpcodeHandler.h:3349
short color_cut_edge_value
For internal use only.
Definition: BOpcodeHandler.h:1087
int GetPixelThreshold() const
Definition: BOpcodeHandler.h:3872
void SetValues(int count, float const values[]=0)
Definition: BOpcodeHandler.h:2145
float GetStart() const
Definition: BOpcodeHandler.h:5506
extended bit for HLR suboptions; refer to ::HC_Set_Rendering_Options for description ...
Definition: BOpcodeEnums.h:650
char * m_string
Definition: BOpcodeHandler.h:4453
void SetColorTextContrastLockMask(int m)
Definition: BOpcodeHandler.h:2877
Handles the TKE_Color_By_FIndex opcode.
Definition: BOpcodeHandler.h:2058
double const * GetDCenter() const
Definition: BOpcodeHandler.h:5942
int m_mask
internal use
Definition: BOpcodeHandler.h:3777
void SetImageTintColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3739
unsigned char m_cut_geometry_level
For internal use only.
Definition: BOpcodeHandler.h:2345
short color_vertex_contrast_value
For internal use only.
Definition: BOpcodeHandler.h:1079
char * m_data
Definition: BOpcodeHandler.h:7152
short color_vertex_value
For internal use only.
Definition: BOpcodeHandler.h:1071
int GetColorMarkerLockValue() const
Definition: BOpcodeHandler.h:2640
int GetTextRegionCount() const
Definition: BOpcodeHandler.h:6594
void SetType(int t)
Definition: BOpcodeHandler.h:6688
int GetOptions() const
Definition: BOpcodeHandler.h:4872
float m_tolerance
for internal use only
Definition: BOpcodeHandler.h:4892
void SetDOrigin(double x, double y, double z)
Definition: BOpcodeHandler.h:6436
void SetSimpleShadowPlane(float a, float b, float c, float d)
Definition: BOpcodeHandler.h:3625
void SetFormat(int f)
Definition: BOpcodeHandler.h:2137
int GetOptions() const
Definition: BOpcodeHandler.h:5667
int GetVersion() const
Definition: BStreamFileToolkit.h:972
void SetCenter(float x, float y, float z)
Definition: BOpcodeHandler.h:6071
int m_isoline_color_count
for internal use only.
Definition: BOpcodeHandler.h:2283
static TK_Status PutData(BStreamFileToolkit &tk, unsigned short const &s)
Definition: BOpcodeHandler.h:452
void SetDPoint(double x, double y, double z)
Definition: BOpcodeHandler.h:5218
Capping_Options
Definition: BOpcodeHandler.h:6237
char * GetOptions()
Definition: BOpcodeHandler.h:4483
char const * GetShaderSource() const
Definition: BOpcodeHandler.h:6969
char * GetMirrorName()
Definition: BOpcodeHandler.h:1829
double const * GetDPoints() const
Definition: BOpcodeHandler.h:5336
void GetPosition(float p[]) const
Definition: BOpcodeHandler.h:4719
entity is double precision
Definition: BStream.h:336
double * GetDMatrix()
Definition: BOpcodeHandler.h:4194
float * GetLodCutoffs()
Definition: BOpcodeHandler.h:3491
bool m_jpeg_native
Definition: BOpcodeHandler.h:6789
void SetGeometry(int m)
Definition: BOpcodeHandler.h:4028
void SetColorVertexLockValue(int v)
Definition: BOpcodeHandler.h:2773
int GetColorEdgeContrastForcedLockMask() const
Definition: BOpcodeHandler.h:3193
int m_invisible
internal use; specifies what geometry is selectable even when invisible. For internal use only...
Definition: BOpcodeHandler.h:4070
int GetColorFaceContrastLockValue() const
Definition: BOpcodeHandler.h:2709
void SetSimpleShadowColor(float r, float g, float b)
Definition: BOpcodeHandler.h:3637
void SetDCenter(double x, double y, double z)
Definition: BOpcodeHandler.h:6001
void SetMask(int m)
Definition: BOpcodeHandler.h:3983
void SetRGB(float r, float g, float b)
Definition: BOpcodeHandler.h:1934
void SetDOrtho(double const s[])
Definition: BOpcodeHandler.h:6141