BOpcodeHandler.h File Reference

Contains data types which are used by BBaseOpcodeHandler. More...

#include "BStreamFileToolkit.h"
#include "BOpcodeEnums.h"
#include "BPolyhedron.h"

Go to the source code of this file.

Classes

class  BBaseOpcodeHandler
 The BBaseOpcodeHandler abstract class is used as a base for derived classes which manage logical pieces of HOOPS Stream File information. More...
 
class  TK_Color::channel
 
class  HT_NURBS_Trim
 Does not handle any top level opcodes, but rather only the trim types allowable on nurbs surfaces. More...
 
class  Lock_Masks
 
class  TK_Animation
 
class  TK_Area_Light
 Handles the TKE_Area_Light opcode. More...
 
class  TK_Bounding
 Handles the TKE_Bounding and TKE_Bounding_Info opcodes. More...
 
class  TK_Callback
 Handles the TKE_Callback opcode. More...
 
class  TK_Camera
 Handles the TKE_Camera opcode. More...
 
struct  TK_Character_Attribute
 
class  TK_Circle
 Handles the TKE_Circle, TKE_Circular_Arc, TKE_Circular_Chord and TKE_Circular_Wedge opcodes. More...
 
class  TK_Clip_Rectangle
 Handles the TKE_Clip_Rectangle opcode. More...
 
class  TK_Clip_Region
 Handles the TKE_Clip_Region opcodes. More...
 
class  TK_Close_Segment
 Handles the TKE_Close_Segment opcode. More...
 
class  TK_Color
 Handles the TKE_Color opcode. More...
 
class  TK_Color_By_FIndex
 Handles the TKE_Color_By_FIndex opcode. More...
 
class  TK_Color_By_Index
 Handles the TKE_Color_By_Index and TKE_Color_By_Index_16 opcode. More...
 
class  TK_Color_By_Value
 Handles the TKE_Color_By_Value opcode. More...
 
class  TK_Color_Map
 Handles the TKE_Color_Map opcode. More...
 
class  TK_Color_RGB
 Handles the TKE_Color_RGB opcode. More...
 
class  TK_Comment
 Handles the TKE_Comment opcode. More...
 
class  TK_Complex_Clip_Region
 Handles the TKE_Complex_Clip_Region opcodes. More...
 
class  TK_Compression
 Handles the TKE_Start_Compression and TKE_Stop_Compression opcodes. More...
 
class  TK_Conditional_Action
 Handles the TKE_Conditional_Action opcode. More...
 
class  TK_Conditions
 Handles the TKE_Conditions opcode. More...
 
class  TK_Cutting_Plane
 Handles the TKE_Cutting_Plane opcode. More...
 
class  TK_Cylinder
 Handles the TKE_Cylinder opcode. More...
 
class  TK_Default
 
class  TK_Delete_Object
 Handles the TKE_Delete_Object opcode. More...
 
class  TK_Dictionary
 Handles the TKE_Dictionary opcode. More...
 
class  TK_Dictionary_Locater
 Handles the TKE_Dictionary_Locater opcode. More...
 
class  TK_Ellipse
 Handles the TKE_Ellipse and TKE_Elliptical_Arc opcodes. More...
 
class  TK_Enumerated
 
class  TK_External_Reference
 Handles the TKE_External_Reference opcodes. More...
 
class  TK_External_Reference_Unicode
 Handles the TKE_External_Reference_Unicode opcodes. More...
 
class  TK_File_Info
 Handles the TKE_File_Info opcode. More...
 
class  TK_Font
 Handles the TKE_Font opcode. More...
 
class  TK_Geometry_Attributes
 Handles the TKE_Geometry_Attributes opcode. More...
 
class  TK_Geometry_Options
 Handles the TKE_Geometry_Options opcode. More...
 
class  TK_Glyph_Definition
 Handles the TKE_Glyph_Definition opcode. More...
 
class  TK_Grid
 Handles the TKE_Grid opcode. More...
 
class  TK_Header
 Utility class for managing HSF header information. More...
 
class  TK_Heuristics
 Handles the TKE_Heuristics opcode. More...
 
class  TK_Image
 Handles the TKE_Image opcode. More...
 
class  TK_Image_XRef
 Handles the TKE_Image_XRef opcodes. More...
 
class  TK_Instance
 Handles the TKE_Repeat_Object opcode. More...
 
class  TK_Line
 Handles the TKE_Line opcode. More...
 
class  TK_Line_Style
 Handles the TKE_Line_Style opcode. More...
 
class  TK_Linear_Pattern
 
class  TK_LOD
 Handles the TKE_LOD opcode. More...
 
class  TK_Material
 Handles the TKE_Material opcode. More...
 
class  TK_Matrix
 Handles the TKE_Modelling_Matrix and TKE_Texture_Matrix opcodes. More...
 
class  TK_Named
 
class  TK_Named_Style_Def
 Handles the TKE_Named_Style_Def opcode. More...
 
class  TK_NURBS_Curve
 Handles the TKE_NURBS_Curve opcode. More...
 
class  TK_NURBS_Surface
 Handles the TKE_NURBS_Surface opcode. More...
 
class  TK_Open_Segment
 Handles the TKE_Open_Segment opcode. More...
 
class  TK_PBR
 Handles the TKE_PBR opcode. More...
 
class  TK_Point
 Handles the TKE_Marker, TKE_Text_Path TKE_Distant_Light, and TKE_Local_Light opcodes. More...
 
class  TK_PolyCylinder
 Handles the TKE_PolyCylinder opcode. More...
 
class  TK_Polypoint
 Handles the TKE_Polyline and TKE_Polygon opcodes. More...
 
class  TK_Reference
 Handles the TKE_Reference opcodes. More...
 
class  TK_Referenced_Segment
 Handles the TKE_Inlude_Segment TKE_Named_Style and TKE_Style_Segment opcodes. More...
 
class  TK_Rendering_Options
 Handles the TKE_Rendering_Options opcode. More...
 
class  TK_Renumber
 Handles the TKE_Renumber_Key_Global, TKE_Renumber_Key_Local, and TKE_Priority opcodes. More...
 
class  TK_Reopen_Segment
 Handles the TKE_Reopen_Segment opcode. More...
 
class  TK_Selectability
 Handles the TKE_Selectability opcode. More...
 
class  TK_Shape_Definition
 Handles the TKE_Shape_Definition opcode. More...
 
class  TK_Size
 
class  TK_Sphere
 Handles the TKE_Sphere opcode. More...
 
class  TK_Spot_Light
 Handles the TKE_Spot_Light opcode. More...
 
class  TK_Streaming
 
class  TK_Tag
 Handles the TKE_Tag opcode. More...
 
class  TK_Terminator
 Handles the TKE_Termination and TKE_Pause opcodes. More...
 
class  TK_Text
 Handles the TKE_Text and TKE_Text_With_Encoding opcodes. More...
 
class  TK_Text_Font
 Handles the TKE_Text_Font opcode. More...
 
class  TK_Texture
 Handles the TKE_Texture opcode. More...
 
class  TK_Thumbnail
 Handles the TKE_Thumbnail opcode. More...
 
class  TK_Unavailable
 
class  TK_Unicode_Options
 Handles the TKE_Unicode_Options opcode. More...
 
class  TK_URL
 Handles the TKE_URL opcodes. More...
 
class  TK_User_Data
 Handles the TKE_Start_User_Data opcode. More...
 
class  TK_User_Index
 Handles the TKE_User_Index opcode. More...
 
class  TK_User_Index_Data
 Handles the TKE_User_Index opcode. More...
 
class  TK_User_Options
 Handles the TKE_User_Options opcode. More...
 
class  TK_User_Value
 Handles the TKE_User_Value opcode. More...
 
class  TK_Visibility
 Handles the TKE_Visibility opcode. More...
 
class  TK_Window
 Handles the TKE_Window opcode. More...
 
class  TK_XML
 Handles the TKE_XML opcode. More...
 

Macros

#define IMPLEMENT_CLONE(class_name)
 macro to simplify normal implementation of the Clone function More...
 
#define IMPLEMENT_CLONE_OPCODE(class_name)
 a version of IMPLEMENT_CLONE for the classes that need to know the opcode More...
 
#define NC_HAS_END   0x08
 a float is specified for where the TK_NURBS_Curve ends in parametric [0,1] space
 
#define NC_HAS_KNOTS   0x02
 an array of floats for the knots is specified with the TK_NURBS_Curve
 
#define NC_HAS_START   0x04
 a float is specified for where the TK_NURBS_Curve starts in parametric [0,1] space
 
#define NC_HAS_WEIGHTS   0x01
 an array of floats for the weights is specified with the TK_NURBS_Curve
 
#define NS_HAS_KNOTS   0x02
 an array of floats for the knots is specified with the TK_NURBS_Surface
 
#define NS_HAS_TRIMS   0x04
 the TK_NURBS_Surface contains a list of trims
 
#define NS_HAS_WEIGHTS   0x01
 an array of floats for the weights is specified with the TK_NURBS_Surface
 
#define NS_TRIM_COLLECTION   3
 all trim objects up to the next NS_TRIM_END should be combined as one.
 
#define NS_TRIM_CURVE   2
 the next trim is a nurbs curve in parametric space
 
#define NS_TRIM_END   0
 terminates an NS_TRIM_COLLECTION if one is active, otherwise terminates the list of trims
 
#define NS_TRIM_HAS_KNOTS   0x04
 applies only to trims of type NS_TRIM_CURVE: an array of floats for the knots is specified with the trim curve
 
#define NS_TRIM_HAS_WEIGHTS   0x02
 applies only to trims of type NS_TRIM_CURVE: an array of floats for the weights is specified with the trim curve
 
#define NS_TRIM_KEEP   0x01
 instead of the usual cutting away the enclosed area, cut away everything but
 
#define NS_TRIM_LAST_KNOWN_TYPE   3
 the last known trim type defined as of the current version of the toolkit
 
#define NS_TRIM_POLY   1
 the next trim is a polyline (closed automatically if not already a closed loop)
 
#define POINTER_SIZED_INT   long
 
#define POINTER_SIZED_UINT   unsigned long
 
#define TKLOD_ESCAPE   255
 terminates the list of all LOD levels. TKE_Termination could not be used, since 0 is a valid value for LOD level.
 

Variables

const int TK_Image_Bytes_Per_Pixel []
 Specifies the number of bytes per pixel for each format.
 

Detailed Description

Contains data types which are used by BBaseOpcodeHandler.

Macro Definition Documentation

◆ IMPLEMENT_CLONE

#define IMPLEMENT_CLONE (   class_name)
Value:
TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
*newhandler = BSTREAM_NEW(class_name); \
if (*newhandler != nullptr) \
return TK_Normal; \
else \
return tk.Error ("memory allocation in" #class_name "::clone failed"); \
}
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition: BStreamFileToolkit.h:367
Definition: BStream.h:277
The BBaseOpcodeHandler abstract class is used as a base for derived classes which manage logical piec...
Definition: BOpcodeHandler.h:55
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition: BStream.h:276
virtual TK_Status Error(char const *msg=0) const

macro to simplify normal implementation of the Clone function

◆ IMPLEMENT_CLONE_OPCODE

#define IMPLEMENT_CLONE_OPCODE (   class_name)
Value:
TK_Status class_name::Clone (BStreamFileToolkit & tk, BBaseOpcodeHandler **newhandler) const { \
*newhandler = BSTREAM_NEW(class_name)(Opcode()); \
if (*newhandler != nullptr) \
return TK_Normal; \
else \
return tk.Error ("memory allocation in" #class_name "::clone failed"); \
}
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition: BStreamFileToolkit.h:367
Definition: BStream.h:277
The BBaseOpcodeHandler abstract class is used as a base for derived classes which manage logical piec...
Definition: BOpcodeHandler.h:55
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition: BStream.h:276
unsigned char Opcode() const
Definition: BOpcodeHandler.h:163
virtual TK_Status Error(char const *msg=0) const

a version of IMPLEMENT_CLONE for the classes that need to know the opcode