TK_Polyhedron

Fields

Vertex_None
Vertex_Normal
Vertex_Parameter
Vertex_Face_Color
Vertex_Edge_Color
Vertex_Marker_Color
Vertex_Face_Index
Vertex_Edge_Index
Vertex_Marker_Index
Vertex_Marker_Visibility
Vertex_Marker_Size
Vertex_Marker_Symbol
Vertex_Marker_RGBA
Vertex_Any_Color
Face_None
Face_Color
Face_Index
Face_Any_Color
Face_Normal
Face_Visibility
Face_Pattern
Edge_None
Edge_Color
Edge_Index
Edge_Any_Color
Edge_Normal
Edge_Visibility
Edge_Pattern
Edge_Weight
Fake_Edge
TKSH_STANDARD
TKSH_COMPRESSED_POINTS
TKSH_COMPRESSED_FACES
TKSH_TRISTRIPS
TKSH_HAS_OPTIONALS
TKSH_FIRSTPASS
TKSH_BOUNDING_ONLY
TKSH_CONNECTIVITY_COMPRESSION
TKSH_EXPANDED
TKSH2_COLLECTION
TKSH2_NULL
TKSH2_HAS_NEGATIVE_VALUES
TKSH2_GLOBAL_QUANTIZATION
OPT_TERMINATE
OPT_ALL_NORMALS_COMPRESSED
OPT_NORMALS_COMPRESSED
OPT_ALL_PARAMETERS_COMPRESSED
OPT_PARAMETERS_COMPRESSED
OPT_ALL_VFCOLORS
OPT_VERTEX_FCOLORS
OPT_ALL_VECOLORS
OPT_VERTEX_ECOLORS
OPT_ALL_VMCOLORS
OPT_VERTEX_MCOLORS
OPT_ALL_VFINDICES
OPT_VERTEX_FINDICES
OPT_ALL_VEINDICES
OPT_VERTEX_EINDICES
OPT_ALL_VMINDICES
OPT_VERTEX_MINDICES
OPT_ALL_NORMALS
OPT_NORMALS
OPT_ALL_NORMALS_POLAR
OPT_NORMALS_POLAR
OPT_ALL_VMVISIBILITIES
OPT_VERTEX_MARKER_VISIBILITIES
OPT_ALL_VMSYMBOLS
OPT_VERTEX_MARKER_SYMBOLS
OPT_ALL_VMSIZES
OPT_VERTEX_MARKER_SIZES
OPT_PARAMETERS
OPT_ALL_PARAMETERS
OPT_ALL_VMRGBAS
OPT_VERTEX_MRGBAS
OPT_ALL_FACE_COLORS
OPT_FACE_COLORS
OPT_ALL_FACE_INDICES
OPT_FACE_INDICES
OPT_ALL_FACE_NORMALS_POLAR
OPT_FACE_NORMALS_POLAR
OPT_ALL_FACE_VISIBILITIES
OPT_FACE_VISIBILITIES
OPT_ALL_FACE_PATTERNS
OPT_FACE_PATTERNS
OPT_FACE_REGIONS
OPT_ALL_EDGE_COLORS
OPT_EDGE_COLORS
OPT_ALL_EDGE_INDICES
OPT_EDGE_INDICES
OPT_ALL_EDGE_NORMALS_POLAR
OPT_EDGE_NORMALS_POLAR
OPT_ALL_EDGE_VISIBILITIES
OPT_EDGE_VISIBILITIES
OPT_ALL_EDGE_PATTERNS
OPT_EDGE_PATTERNS
OPT_ALL_EDGE_WEIGHTS
OPT_EDGE_WEIGHTS
OPT_RESERVED_SPATIAL
OPT_ENTITY_ATTRIBUTES
OPT_ALL_VFCOLORS_UNCOMPRESSED
OPT_VERTEX_FCOLORS_UNCOMPRESSED
OPT_ALL_VECOLORS_UNCOMPRESSED
OPT_VERTEX_ECOLORS_UNCOMPRESSED
OPT_ALL_VMCOLORS_UNCOMPRESSED
OPT_VERTEX_MCOLORS_UNCOMPRESSED
OPT_ALL_VMRGBAS_UNCOMPRESSED
OPT_VERTEX_MRGBAS_UNCOMPRESSED
OPT_ALL_VFINDICES_UNCOMPRESSED
OPT_VERTEX_FINDICES_UNCOMPRESSED
OPT_ALL_VEINDICES_UNCOMPRESSED
OPT_VERTEX_EINDICES_UNCOMPRESSED
OPT_ALL_VMINDICES_UNCOMPRESSED
OPT_VERTEX_MINDICES_UNCOMPRESSED
OPT_ALL_FACE_COLORS_UNCOMPRESSED
OPT_FACE_COLORS_UNCOMPRESSED
OPT_ALL_FACE_INDICES_UNCOMPRESSED
OPT_FACE_INDICES_UNCOMPRESSED

Functions

float const * GetPoints
float * GetPoints
double const * GetDPoints
double * GetDPoints
int GetPointCount
unsigned int const * GetExists
unsigned int * GetExists
unsigned int const * GetFaceExists
unsigned int * GetFaceExists
ID_Key GetKey
unsigned char GetSubop
unsigned short GetSubop2
float const * GetBounding
float const * GetVertexNormals
float * GetVertexNormals
float const * GetVertexParameters
float * GetVertexParameters
float const * GetVertexFaceColors
float * GetVertexFaceColors
float const * GetVertexEdgeColors
float * GetVertexEdgeColors
float const * GetVertexMarkerColors
float * GetVertexMarkerColors
float const * GetVertexMarkerRGBAs
float * GetVertexMarkerRGBAs
int GetVertexMarkerColorcount
int & GetVertexMarkerColorCount
float const * GetVertexColors
float * GetVertexColors
float const * GetVertexFaceIndices
float * GetVertexFaceIndices
float const * GetVertexEdgeIndices
float * GetVertexEdgeIndices
float const * GetVertexMarkerIndices
float * GetVertexMarkerIndices
float const * GetVertexIndices
float * GetVertexIndices
float const * GetFaceColors
float * GetFaceColors
float const * GetFaceIndices
float * GetFaceIndices
int const * GetFaceRegions
int * GetFaceRegions
int GetPriority
void SetPriority
TK_Status SetKey
TK_Status SetSubop
TK_Status SetSubop2
TK_Status InitSubop
TK_Status SetBounding
TK_Status SetPoints
TK_Status SetDPoints
TK_Status SetVertexNormals
TK_Status SetVertexParameters
TK_Status SetVertexFaceColors
TK_Status SetVertexEdgeColors
TK_Status SetVertexMarkerColors
TK_Status SetVertexMarkerRGBAs
TK_Status SetVertexColors
TK_Status SetVertexFaceIndices
TK_Status SetVertexEdgeIndices
TK_Status SetVertexMarkerIndices
TK_Status SetVertexIndices
TK_Status SetVertexMarkerVisibilities
TK_Status SetVertexMarkerSizes
TK_Status SetVertexMarkerSymbols
TK_Status SetVertexMarkerSymbolStrings
TK_Status SetFaceColors
TK_Status SetFaceNormals
TK_Status SetFaceVisibilities
TK_Status SetFacePatterns
TK_Status SetFaceIndices
TK_Status SetFaceRegions
TK_Status SetEdgeColors
TK_Status SetEdgeIndices
TK_Status SetEdgeNormals
TK_Status SetEdgeVisibilities
TK_Status SetEdgePatterns
TK_Status SetEdgePatternStrings
TK_Status SetEdgeWeights
TK_Status SetExists
TK_Status SetFaceExists
TK_Status SetEdgeExists
TK_Status SetLodLevel
int GetLodLevel
void SetCellCount
int GetCellCount
TK_Status AppendObject
BBaseOpcodeHandler * PopObject
bool HasOptionals
bool HasOptionalsCommunicator
bool HasVertexNormals
bool HasVertexParameters
bool HasVertexFaceColors
bool HasVertexEdgeColors
bool HasVertexMarkerColors
bool HasVertexMarkerRGBAs
bool HasVertexColors
bool HasVertexFaceIndices
bool HasVertexEdgeIndices
bool HasVertexMarkerIndices
bool HasVertexIndices
bool HasVertexMarkerVisibilities
bool HasVertexMarkerSymbols
bool HasVertexMarkerSizes
bool HasVertexAttributes
bool HasFaceColors
bool HasFaceIndices
bool HasFaceNormals
bool HasFaceVisibilities
bool HasFacePatterns
bool HasFaceRegions
bool HasFaceAttributes
bool HasFaceAttributesCommunicator
bool HasEdgeColors
bool HasEdgeIndices
bool HasEdgeNormals
bool HasEdgeVisibilities
bool HasEdgePatterns
bool HasEdgeWeights
bool HasEdgeAttributes

Detailed Description

class TK_Polyhedron : public BBaseOpcodeHandler

Base class for shell and mesh.

Shells and Meshes both have attributes that can bind to faces, edges and vertices and may optionally be present. This base class helps allows the two to share the code to parse and execute those features that are common between the two. Refer to ::HC_Insert_Shell and Section 2.8 of the HOOPS/3dGS Programming Guide for more details.

Subclassed by HTK_Polyhedron, TK_Cellular_Volume, TK_Mesh, TK_PolyCylinder, TK_Shell

Public Types

enum Exists

Flags for declaring existence of local vertex attributes in mp_exists

Values:

enumerator Vertex_None

no local vertex attributes

enumerator Vertex_Normal

explicit normals

enumerator Vertex_Parameter

parameters (for texturing, etc…)

enumerator Vertex_Face_Color

vertex color, to be applied to interpolated faces

enumerator Vertex_Edge_Color

vertex color, to be applied to interpolated edges

enumerator Vertex_Marker_Color

vertex color, to be applied to marker

enumerator Vertex_Face_Index

vertex color-by-index, to be applied to interpolated faces

enumerator Vertex_Edge_Index

vertex color-by-index, to be applied to interpolated edges

enumerator Vertex_Marker_Index

vertex color-by-index, to be applied to marker

enumerator Vertex_Marker_Visibility
enumerator Vertex_Marker_Size
enumerator Vertex_Marker_Symbol
enumerator Vertex_Marker_RGBA

vertex color in rgba format, to be applied to marker

enumerator Vertex_Any_Color

multi-bit alias to quickly test for any color or color-by-index

enum Face_Exists

Flags for declaring existence of local face attributes in mp_face_exists

Values:

enumerator Face_None

no local face attributes

enumerator Face_Color

self-explanatory

enumerator Face_Index

face color-by-index

enumerator Face_Any_Color

multi-bit alias to quickly test for color or color-by-index

enumerator Face_Normal

self-explanatory

enumerator Face_Visibility

self-explanatory

enumerator Face_Pattern

self-explanatory

enum Edge_Exists

Flags for declaring existence of local edge attributes in mp_edge_exists

Values:

enumerator Edge_None

no local face attributes

enumerator Edge_Color

self-explanatory

enumerator Edge_Index

face color-by-index

enumerator Edge_Any_Color

multi-bit alias to quickly test for color or color-by-index

enumerator Edge_Normal

self-explanatory

enumerator Edge_Visibility

self-explanatory

enumerator Edge_Pattern

self-explanatory

enumerator Edge_Weight

edge thickness, given as a proportion of the default

enumerator Fake_Edge
enum Suboptions

contains the meanings of the bits put into mp_subop mp_subop is a bit field containing information about the shell or mesh.

Values:

enumerator TKSH_STANDARD

no special suboptions

enumerator TKSH_COMPRESSED_POINTS

points are compressed

enumerator TKSH_COMPRESSED_FACES

faces are compressed

enumerator TKSH_TRISTRIPS

face list represents tristrips

enumerator TKSH_HAS_OPTIONALS

optionals exist; refer to Opt_Opcode

enumerator TKSH_FIRSTPASS

this is not a refinement of a previously-seen entity

enumerator TKSH_BOUNDING_ONLY

a bounding box representation only.

enumerator TKSH_CONNECTIVITY_COMPRESSION

the polyedra is compressed using the ‘connectivity compression’ algorithm

enumerator TKSH_EXPANDED

expanded suboptions exist; refer to Suboptions2

enum Suboptions2

contains the meanings of the bits put into mp_subop2 mp_subop2 is a bit field containing information about the shell or mesh. It is assumed to be zero unless mp_subop contains the TKSH_EXPANDED bit.

Values:

enumerator TKSH2_COLLECTION

instead of a shell, this opcode contains a TKE_Terminate-terminated list of opcodes to be inserted into a shell’s LOD. Incompatible with TKSH_FIRSTPASS.

enumerator TKSH2_NULL

an empty shell used only as a placeholder for later revisiting

enumerator TKSH2_HAS_NEGATIVE_VALUES

negative faces/cell values exist

enumerator TKSH2_GLOBAL_QUANTIZATION

polyhedra points are globally quantized

enum Opt_Opcode

The supported optional fields for local attributes. Note: Odd values indicate that an attribute is present on all vertices (or all faces or all edges)

Values:

enumerator OPT_TERMINATE

terminate the list of optional attributes

enumerator OPT_ALL_NORMALS_COMPRESSED

set compressed normals on all vertices

enumerator OPT_NORMALS_COMPRESSED

set compressed normals on some vertices

enumerator OPT_ALL_PARAMETERS_COMPRESSED

set compressed parameters (texture coordinates) on all vertices

enumerator OPT_PARAMETERS_COMPRESSED

set compressed parameters on some vertices

enumerator OPT_ALL_VFCOLORS

set colors on all vertices, to apply to drawing of interpolated faces

enumerator OPT_VERTEX_FCOLORS

set colors on some vertices, to apply to drawing of interpolated faces

enumerator OPT_ALL_VECOLORS

set colors on all vertices, to apply to drawing of interpolated edges

enumerator OPT_VERTEX_ECOLORS

set colors on some vertices, to apply to drawing of interpolated edges

enumerator OPT_ALL_VMCOLORS

set colors on all vertices, to apply to drawing of vertex_markers

enumerator OPT_VERTEX_MCOLORS

set colors on some vertices, to apply to drawing of vertex_markers

enumerator OPT_ALL_VFINDICES

set colors-by-index on all vertices, to apply to drawing of interpolated faces

enumerator OPT_VERTEX_FINDICES

set colors-by-index on some vertices, to apply to drawing of interpolated faces

enumerator OPT_ALL_VEINDICES

set colors-by-index on all vertices, to apply to drawing of interpolated edges

enumerator OPT_VERTEX_EINDICES

set colors-by-index on some vertices, to apply to drawing of interpolated edges

enumerator OPT_ALL_VMINDICES

set colors-by-index on all vertices, to apply to drawing of vertex_markers

enumerator OPT_VERTEX_MINDICES

set colors-by-index on some vertices, to apply to drawing of vertex_markers

enumerator OPT_ALL_NORMALS

set normals on all vertices

enumerator OPT_NORMALS

set normals on some vertices

enumerator OPT_ALL_NORMALS_POLAR

set normals (specified as polar coordinates) on all vertices

enumerator OPT_NORMALS_POLAR

set normals (specified as polar coordinates) on some vertices

enumerator OPT_ALL_VMVISIBILITIES

put explicit local visibility setting on all vertex markers

enumerator OPT_VERTEX_MARKER_VISIBILITIES

put explicit local visibility setting on some vertex markers

enumerator OPT_ALL_VMSYMBOLS

put explicit local marker symbol setting on all vertices

enumerator OPT_VERTEX_MARKER_SYMBOLS

put explicit local marker symbol setting on some vertices

enumerator OPT_ALL_VMSIZES

put explicit local size setting on all vertex markers

enumerator OPT_VERTEX_MARKER_SIZES

put explicit local size setting on some vertex markers

enumerator OPT_PARAMETERS

set parameters (texture coordinates) on some vertices

enumerator OPT_ALL_PARAMETERS

set parameters (texture coordinates) on all vertices

enumerator OPT_ALL_VMRGBAS

set rgba colors on all vertices, to apply to drawing of vertex_markers

enumerator OPT_VERTEX_MRGBAS

set rgba colors on some vertices, to apply to drawing of vertex_markers

enumerator OPT_ALL_FACE_COLORS

set colors on all faces

enumerator OPT_FACE_COLORS

set colors on some faces

enumerator OPT_ALL_FACE_INDICES

set colors-by-index on all faces

enumerator OPT_FACE_INDICES

set colors-by-index on some faces

enumerator OPT_ALL_FACE_NORMALS_POLAR

set normals (specified as polar coordinates) on all faces

enumerator OPT_FACE_NORMALS_POLAR

set normals (specified as polar coordinates) on some faces

enumerator OPT_ALL_FACE_VISIBILITIES

put explicit local visibility setting on all faces

enumerator OPT_FACE_VISIBILITIES

put explicit local visibility setting on some faces

enumerator OPT_ALL_FACE_PATTERNS

put explicit local pattern setting on all faces

enumerator OPT_FACE_PATTERNS

put explicit local pattern setting on some faces

enumerator OPT_FACE_REGIONS

apply region identifiers to some faces (for the purposes of grouping faces so that their attributes can be set at once)

enumerator OPT_ALL_EDGE_COLORS

set colors on all edges

enumerator OPT_EDGE_COLORS

set colors on some edges

enumerator OPT_ALL_EDGE_INDICES

set colors-by-index on all edges

enumerator OPT_EDGE_INDICES

set colors-by-index on some edges

enumerator OPT_ALL_EDGE_NORMALS_POLAR

set normals (specified as polar coordinates) on all edges

enumerator OPT_EDGE_NORMALS_POLAR

set normals (specified as polar coordinates) on some edges

enumerator OPT_ALL_EDGE_VISIBILITIES

put explicit local visibility setting on all edges

enumerator OPT_EDGE_VISIBILITIES

put explicit local visibility setting on some edges

enumerator OPT_ALL_EDGE_PATTERNS

put explicit local pattern setting on all edges

enumerator OPT_EDGE_PATTERNS

put explicit local pattern setting on some edges

enumerator OPT_ALL_EDGE_WEIGHTS

put explicit local thickness setting on all edges

enumerator OPT_EDGE_WEIGHTS

put explicit local thickness setting on some edges

enumerator OPT_RESERVED_SPATIAL
enumerator OPT_ENTITY_ATTRIBUTES
enumerator OPT_ALL_VFCOLORS_UNCOMPRESSED

set uncompressed colors on all vertices, to apply to drawing of interpolated faces

enumerator OPT_VERTEX_FCOLORS_UNCOMPRESSED

set uncompressed colors on some vertices, to apply to drawing of interpolated faces

enumerator OPT_ALL_VECOLORS_UNCOMPRESSED

set uncompressed colors on all vertices, to apply to drawing of interpolated edges

enumerator OPT_VERTEX_ECOLORS_UNCOMPRESSED

set uncompressed colors on some vertices, to apply to drawing of interpolated edges

enumerator OPT_ALL_VMCOLORS_UNCOMPRESSED

set uncompressed colors on all vertices, to apply to drawing of vertex_markers

enumerator OPT_VERTEX_MCOLORS_UNCOMPRESSED

set uncompressed colors on some vertices, to apply to drawing of vertex_markers

enumerator OPT_ALL_VMRGBAS_UNCOMPRESSED

set uncompressed rgba colors on all vertices, to apply to drawing of vertex_markers

enumerator OPT_VERTEX_MRGBAS_UNCOMPRESSED

set uncompressed rgba colors on some vertices, to apply to drawing of vertex_markers

enumerator OPT_ALL_VFINDICES_UNCOMPRESSED

set uncompressed colors-by-index on all vertices, to apply to drawing of interpolated faces

enumerator OPT_VERTEX_FINDICES_UNCOMPRESSED

set uncompressed colors-by-index on some vertices, to apply to drawing of interpolated faces

enumerator OPT_ALL_VEINDICES_UNCOMPRESSED

set uncompressed colors-by-index on all vertices, to apply to drawing of interpolated edges

enumerator OPT_VERTEX_EINDICES_UNCOMPRESSED

set uncompressed colors-by-index on some vertices, to apply to drawing of interpolated edges

enumerator OPT_ALL_VMINDICES_UNCOMPRESSED

set uncompressed colors-by-index on all vertices, to apply to drawing of vertex_markers

enumerator OPT_VERTEX_MINDICES_UNCOMPRESSED

set uncompressed colors-by-index on some vertices, to apply to drawing of vertex_markers

enumerator OPT_ALL_FACE_COLORS_UNCOMPRESSED

set uncompressed colors on all faces

enumerator OPT_FACE_COLORS_UNCOMPRESSED

set uncompressed colors on some faces

enumerator OPT_ALL_FACE_INDICES_UNCOMPRESSED

set uncompressed colors-by-index on all faces

enumerator OPT_FACE_INDICES_UNCOMPRESSED

set uncompressed colors-by-index on some faces

Public Functions

inline float const *GetPoints() const
Returns:a pointer to the array of vertex locations
inline float *GetPoints()
Returns:a pointer to the array of vertex locations
inline double const *GetDPoints() const
Returns:a pointer to the array of vertex locations
inline double *GetDPoints()
Returns:a pointer to the array of vertex locations
inline int GetPointCount() const
Returns:the number of points in the polyhedron
inline unsigned int const *GetExists() const
Returns:a pointer to the existence array, a bitmask indicating presence/absence of attributes
inline unsigned int *GetExists()
Returns:a pointer to the existence array, a bitmask indicating presence/absence of attributes
inline unsigned int const *GetFaceExists() const
Returns:a pointer to the existence array for faces, mp_face_exists, indicating face attributes
inline unsigned int *GetFaceExists()
Returns:a pointer to the existence array for faces, mp_face_exists, indicating face attributes
inline ID_Key GetKey() const
Returns:the id by which the graphics knows this piece of geometry (could be pointer or integer)
inline unsigned char GetSubop() const
Returns:the suboption that will be transmitted to indicate formatting options
inline unsigned short GetSubop2() const
Returns:the 2nd suboption that will be transmitted to indicate formatting options
inline float const *GetBounding() const
Returns:a pointer to the bounding box (x_min, y_min, z_min, x_max, y_max, z_max)
inline float const *GetVertexNormals() const
Returns:a pointer to the array of vertex normals
inline float *GetVertexNormals()
Returns:a pointer to the array of vertex normals
inline float const *GetVertexParameters() const
Returns:a pointer to the array of vertex parameters
inline float *GetVertexParameters()
Returns:a pointer to the array of vertex parameters
inline float const *GetVertexFaceColors() const
Returns:a pointer to the array of vertex colors (as applied to the faces)
inline float *GetVertexFaceColors()
Returns:a pointer to the array of vertex colors (as applied to the faces)
inline float const *GetVertexEdgeColors() const
Returns:a pointer to the array of vertex colors (as applied to the edges)
inline float *GetVertexEdgeColors()
Returns:a pointer to the array of vertex colors (as applied to the edges)
inline float const *GetVertexMarkerColors() const
Returns:a pointer to the array of vertex colors (as applied to the markers)
inline float *GetVertexMarkerColors()
Returns:a pointer to the array of vertex colors (as applied to the markers)
inline float const *GetVertexMarkerRGBAs() const
Returns:a pointer to the array of vertex rgba colors (as applied to the markers)
inline float *GetVertexMarkerRGBAs()
Returns:a pointer to the array of vertex rgba colors (as applied to the markers)
inline int GetVertexMarkerColorcount() const
Returns:the first non-null pointer it among the following: mp_vmcolors (a.k.a. VertexMarkerColors), mp_vfcolors (a.k.a. VertexFaceColors), mp_vecolors (a.k.a. VertexEdgeColors)
Returns:the number vertex colors (as applied to the markers)
inline int &GetVertexMarkerColorCount()
Returns:a reference to the number of vertex colors (as applied to the markers)
inline float const *GetVertexColors() const
inline float *GetVertexColors()
Returns:the first non-null pointer it among the following: mp_vmcolors (a.k.a. VertexMarkerColors), mp_vfcolors (a.k.a. VertexFaceColors), mp_vecolors (a.k.a. VertexEdgeColors)
inline float const *GetVertexFaceIndices() const
Returns:a pointer to the array of vertex colors-by-index (as applied to the faces)
inline float *GetVertexFaceIndices()
Returns:a pointer to the array of vertex colors-by-index (as applied to the faces)
inline float const *GetVertexEdgeIndices() const
Returns:a pointer to the array of vertex colors-by-index (as applied to the edges)
inline float *GetVertexEdgeIndices()
Returns:a pointer to the array of vertex colors-by-index (as applied to the edges)
inline float const *GetVertexMarkerIndices() const
Returns:a pointer to the array of vertex colors-by-index (as applied to the markers)
inline float *GetVertexMarkerIndices()
Returns:a pointer to the array of vertex colors-by-index (as applied to the markers)
inline float const *GetVertexIndices() const
Returns:the first non-null pointer it among the following: mp_vmindices (a.k.a. VertexMarkerIndices), mp_vfindices (a.k.a. VertexFaceIndices), mp_veindices (a.k.a. VertexEdgeIndices)
inline float *GetVertexIndices()
Returns:the first non-null pointer it among the following: mp_vmindices (a.k.a. VertexMarkerIndices), mp_vfindices (a.k.a. VertexFaceIndices), mp_veindices (a.k.a. VertexEdgeIndices)
inline float const *GetFaceColors() const
Returns:a pointer to the array of face colors
inline float *GetFaceColors()
Returns:a pointer to the array of face colors
inline float const *GetFaceIndices() const
Returns:a pointer to the array of face colors-by-index
inline float *GetFaceIndices()
Returns:a pointer to the array of face colors-by-index
inline int const *GetFaceRegions() const
Returns:a pointer to the array of face regiions
inline int *GetFaceRegions()
Returns:a pointer to the array of face regions, which may be modified in-place
inline int GetPriority()

Gets the priority to this object

inline void SetPriority(int priority)

Sets priority to this object

inline TK_Status SetKey(BStreamFileToolkit &tk, ID_Key key)

informs the TK_Polyhedron of the id by which this piece of geometry is known

inline TK_Status SetSubop(unsigned char subop)

sets the suboption to be used when transmitting. See also InitSubop

Parameters:subop – a set of bit flags as documented in enum TK_Polyhedron::Suboptions
inline TK_Status SetSubop2(unsigned short subop2)

sets the 2nd suboption to be used when transmitting. See also InitSubop

Parameters:subop2 – a set of bit flags as documented in enum TK_Polyhedron::Suboptions2
TK_Status InitSubop(BStreamFileToolkit &tk, int lodlevel, bool is_firstpass)

initializes some bits in the suboption according to the write flags in the toolkit.

Parameters:
  • tk – the toolkit.
  • lodlevel – which lod variant is to be encoded.
  • is_firstpass – indicates whether or not this particular object has been seen before in the file.
inline TK_Status SetBounding(float const bbox[])

Set the bounding box for the object.

Parameters:bbox – the bounding volume, in order minx,miny,minz,maxx,maxy,maxz
TK_Status SetPoints(int count, float const points[] = 0)

Allocates the vertex locations, and fills them with the specified values. Be careful not to call this function more than once, as it can cause a memory leak.

Parameters:
  • count – the number of points in the polyhedron
  • points – a pointer to an array of xyz triplets to specify vertex locations.
TK_Status SetDPoints(int count, double const points[] = 0)

Allocates the vertex locations, and fills them with the specified values. Be careful not to call this function more than once, as it can cause a memory leak.

Parameters:
  • count – the number of points in the polyhedron
  • points – a pointer to an array of xyz triplets to specify vertex locations.
TK_Status SetVertexNormals(float const normals[] = 0)

Allocates the vertex normals, and fills with values, and sets the flags in mp_exists.

Parameters:normals – can be null, in which case normals are left untouched (assumed to be specified at a later point. Normally, however, “normals” should refer to the xyz triplets for the values of the vertex normals. These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexParameters(float const parameters[] = 0, int width = 0)

Allocates the vertex parameters (a.k.a. texture coordinates), and fills with values and sets mp_exists.

Parameters:
  • parameters – can be null, in which case parameters are left untouched (assumed to be specified at a later point. Normally, however, “parameters” should refer to the stu triplets (again, triplets, not pairs) for the values of the vertex parameters. These values will be copied, and the appropriate bits in mp_exists will be updated. If “width” is <= 0, this function will use the value from mp_paramwidth.
  • width – specifies the number of floating point values per parameter. For example, a single 2d texture will have 2, whereas two 3d textures will have 6.
Returns:

TK_Normal or TK_Error to indicate success or failure.

TK_Status SetVertexFaceColors(float const colors[] = 0)

Allocates the vertex colors (as applied to faces), and fills with values and sets the flags in mp_exists. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point. Normally, however, “colors” should refer to the rgb triplets for the values of the vertex colors. These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexEdgeColors(float const colors[] = 0)

Allocates the vertex colors (as applied to edges), and fills with values and sets the flags in mp_exists. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point. Normally, however, “colors” should refer to the rgb triplets for the values of the vertex colors. These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerColors(float const colors[] = 0)

Allocates the vertex colors (as applied to markers), and fills with values and sets the flags in mp_exists. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point. Normally, however, “colors” should refer to the rgb triplets for the values of the vertex colors. These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerRGBAs(float const colors[] = 0)

Allocates the vertex rgba colors (as applied to markers), and fills with values and sets the flags in mp_exists. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point. Normally, however, “colors” should refer to the rgba quads for the values of the vertex colors. These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexColors(float const colors[] = 0)

Allocates the vertex colors in all 3 arrays (faces, edges, markers). Also handles setting bits in mp_exists (the existence array) if input is non-null. Equivalent to SetVertexFaceColors, SetVertexFaceColors and SetVertexMarkerColors called in succession. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point. Normally, however, “colors” should refer to the rgb triplets for the values of the vertex colors. These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexFaceIndices(float const indices[] = 0)

Allocates the vertex colors-by-index (as applied to faces), and fills with values and sets the flags in mp_exists. Assumes the prior existence of a color table in the current segment. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:indices – can be null, in which case the indices are left untouched (assumed to be specified at a later point. Normally, however, “indices” should refer to the color indices (individual floats. Thus, the array size is mp_pointcount*sizeof(float)). These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexEdgeIndices(float const indices[] = 0)

Allocates the vertex colors-by-index (as applied to edges), and fills with values and sets the flags in mp_exists. Assumes the prior existence of a color table in the current segment. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:indices – can be null, in which case indices are left untouched (assumed to be specified at a later point. Normally, however, “indices” should refer to the color indices (individual floats. Thus, the array size is mp_pointcount*sizeof(float)). These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerIndices(float const indices[] = 0)

Allocates the vertex colors-by-index (as applied to markers), and fills with values and sets the flags in mp_exists. Assumes the prior existence of a color table either in or inherited by the current segment. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:indices – can be null, in which case indices are left untouched (assumed to be specified at a later point. Normally, however, “indices” should refer to the color indices (individual floats. Thus, the array size is mp_pointcount*sizeof(float)). These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexIndices(float const indices[] = 0)

Allocates the vertex colors-by-index in all 3 arrays (faces, edges, markers). Also handles setting bits in mp_exists (the existence array) if input is non-null. Equivalent to SetVertexFaceIndices, SetVertexFaceIndices and SetVertexMarkerIndices called in succession. All arrays allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:indices – can be null, in which case indices are left untouched (assumed to be specified at a later point. Normally, however, “indices” should refer to the color indices (individual floats. Thus, the array size is mp_pointcount*sizeof(float)). These values will be copied, and the appropriate bits in mp_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerVisibilities(char const *visibilities = 0)

Allocates the vertex marker visibilities, and fills with values and sets the flags in mp_exists. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:visibilities – can be null, in which case the contents of the visibility array are left untouched (assumed to be specified at a later point). If non-null, should to be at least of length mp_pointcount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerSizes(float const sizes[] = 0)

Allocates the vertex marker sizes, and fills with values and sets the flags in mp_exists. Marker sizes are specified as a proportion of their default size. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:sizes – can be null, in which case the contents of the sizes array are left untouched (assumed to be specified at a later point). If non-null, should to be at least of length mp_pointcount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerSymbols(char const *symbols = 0)

Allocates the vertex marker symbols, and fills with values and sets the flags in mp_exists. Symbol interpretations are as specified in TKE_Marker_Symbol. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:symbols – can be null, in which case the contents of the symbols array are left untouched (assumed to be specified at a later point). If non-null, should to be at least of length mp_pointcount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetVertexMarkerSymbolStrings()

Allocates the vertex marker symbol strings, and initializes to empty. Allocated to a length of mp_pointcount, regardless of the number of values that are intended to be specified.

Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFaceColors(float const colors[] = 0)

Allocates the face colors, and fills with values and sets the flags in mp_face_exists. Allocates length of mp_facecount, regardless of the number of values that are intended to be specified.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_facecount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFaceNormals(float const normals[] = 0)

Allocates the face normals, and fills with values and sets the flags in mp_face_exists. Allocates length of mp_facecount, regardless of the number of values that are intended to be specified.

Parameters:normals – can be null, in which case the normals are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_facecount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFaceVisibilities(char const *visibilities = 0)

Allocates the face visibility settings, fills with values and sets the flags in mp_face_exists. Allocates length of mp_facecount, regardless of the number of values that are intended to be specified.

Parameters:visibilities – can be null, in which case colors are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_facecount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFacePatterns(char const *patterns = 0)

Allocates the face pattern settings (i.e. per face, which pattern to choose), fills with values and sets the flags in mp_face_exists. Allocates length of mp_facecount, regardless of the number of values that are intended to be specified.

Parameters:patterns – can be null, in which case colors are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_facecount
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFaceIndices(float const indices[] = 0)

Allocates the face colors-by-index, and fills with values and sets the flags in mp_face_exists. Allocates length of mp_facecount, regardless of the number of values that are intended to be specified (thus the array size is mp_facecount*sizeof(float))).

Parameters:indices – can be null, in which case indices are left untouched (assumed to be specified at a later point). If non-null, These values will be copied, and the appropriate bits in mp_face_exists will be updated.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFaceRegions(int const regions[] = 0)

Allocates an array of integers to specify a region identifier per face.

Parameters:regions – are the identifiers. If set as null, the array will default to all zero
TK_Status SetEdgeColors(float const colors[] = 0)

Allocates the edge colors, and fills with values and sets the flags in mp_edge_exists. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified. Note (as with all SetEdge* methods) that if the value for mp_edgecount is unknown (left at its initial value of -1), it is calculated during the process of EnumerateEdges, called from SetEdgeExists, called automatically from this function if necessary.

Parameters:colors – can be null, in which case colors are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgeIndices(float const indices[] = 0)

Allocates the edge colors-by-index, and fills with values and sets the flags in mp_edge_exists. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified.

Parameters:indices – can be null, in which case colors-by-index are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgeNormals(float const normals[] = 0)

Allocates the edge normals, and fills with values and sets the flags in mp_edge_exists. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified.

Parameters:normals – can be null, in which case normals are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgeVisibilities(char const *visibilities = 0)

Allocates the edge visibility settings, and fills with values and sets the flags in mp_edge_exists. For each edge, non-zero indicates that that edge is visibile. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified.

Parameters:visibilities – can be null, in which case visibility settings are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgePatterns(char const *patterns = 0)

Allocates the edge patterns, and fills with values and sets the flags in mp_edge_exists. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified.

Parameters:patterns – can be null, in which case patterns are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgePatternStrings()

Allocates the edge pattern strings, and initializes to empty. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified.

Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgeWeights(float const weights[] = 0)

Allocates the edge weights, and fills with values and sets the flags in mp_edge_exists. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified.

Parameters:weights – can be null, in which case weights are left untouched (assumed to be specified at a later point). If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetExists(unsigned int const vals[] = 0)

Allocates the array of integers on which bits indicate the presence of attributes on vertices. Allocates length of mp_pointcount, regardless of the number of values that are intended to be specified.

Parameters:vals – can be null, in which case colors are left untouched. If non-null, it should be of length mp_pointcount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetFaceExists(unsigned int const vals[] = 0)

Allocates the array of integers on which bits indicate the presence of attributes on faces. Allocates length of mp_facecount, regardless of the number of values that are intended to be specified.

Parameters:vals – can be null, in which case colors are left untouched. If non-null, it should be of length mp_facecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
TK_Status SetEdgeExists(unsigned int const vals[] = 0)

Allocates the array of integers on which bits indicate the presence of attributes on edges. Allocates length of mp_edgecount, regardless of the number of values that are intended to be specified. Note that if the value for mp_edgecount is unknown (left at its initial value of -1), it is calculated during the process of EnumerateEdges, which is called from within this function.

Parameters:vals – can be null, in which case colors are left untouched. If non-null, it should be of length mp_edgecount.
Returns:TK_Normal or TK_Error to indicate success or failure.
inline TK_Status SetLodLevel(int level)

Sets the lod level for this representation (as in HOOPS, ‘0’ means original base resolution)

inline int GetLodLevel() const
Returns:the LOD level
inline void SetCellCount(int count)

Sets the cell count for volumes.

inline int GetCellCount() const
Returns:the cell count for volumes
TK_Status AppendObject(BStreamFileToolkit &tk, BBaseOpcodeHandler *obj)

Adds an object to the set of items to be sent as part of the collection. Caller retains ownership of the object, and is responsible for deleting it during the write phase. This function automatically sets the TKSH2_COLLECTION bit, converting this shell to a collection

Parameters:
  • tk – the toolkit
  • obj – the object to be appended
BBaseOpcodeHandler *PopObject()

Pops an object off the list of collection parts.

Returns:the object to caller (presumably so that it can be deleted)
inline bool HasOptionals()
Returns:true if and only if there are some attributes set on any of the faces or vertices
inline bool HasOptionalsCommunicator()
inline bool HasVertexNormals() const
Returns:true if and only if at least one vertex normal has been set
inline bool HasVertexParameters() const
Returns:true if and only if at least one vertex parameter has been set
inline bool HasVertexFaceColors() const
Returns:true if and only if at least one vertex color has been set (to apply to an interpolated face)
inline bool HasVertexEdgeColors() const
Returns:true if and only if at least one vertex color has been set (to apply to an interpolated edge)
inline bool HasVertexMarkerColors() const
Returns:true if and only if at least one vertex color has been set (to apply to a marker)
inline bool HasVertexMarkerRGBAs() const
Returns:true if and only if at least one vertex rgba color has been set (to apply to a marker)
inline bool HasVertexColors() const
Returns:true if and only if at least one vertex color has been set (to apply to anything)
inline bool HasVertexFaceIndices() const
Returns:true if and only if at least one vertex color-by-index has been set (to apply to an interpolated face)
inline bool HasVertexEdgeIndices() const
Returns:true if and only if at least one vertex color-by-index has been set (to apply to an interpolated edge)
inline bool HasVertexMarkerIndices() const
Returns:true if and only if at least one vertex color-by-index has been set (to apply to a marker)
inline bool HasVertexIndices() const
Returns:true if and only if at least one vertex color-by-index has been set (to apply to anything)
inline bool HasVertexMarkerVisibilities() const
Returns:true if and only if at least one explicit vertex marker visibility has been set
inline bool HasVertexMarkerSymbols() const
Returns:true if and only if at least one explicit vertex marker symbol has been set
inline bool HasVertexMarkerSizes() const
Returns:true if and only if at least one explicit vertex marker size has been set
inline bool HasVertexAttributes() const
Returns:true if HasVertexColors() or HasVertexIndices() or HasVertexNormals() or HasVertexParameters() or HasVertexMarkerVisibilities() or HasVertexMarkerSymbols() or HasVertexMarkerSizes()
inline bool HasFaceColors() const
Returns:true if there are face colors set on the current polyhedron
inline bool HasFaceIndices() const
Returns:true if and only if at least one face color-by-index has been set
inline bool HasFaceNormals() const
Returns:true if and only if at least one explicit face normal has been set
inline bool HasFaceVisibilities() const
Returns:true if and only if at least one explicit face visibility has been set
inline bool HasFacePatterns() const
Returns:true if and only if at least one face pattern has been set
inline bool HasFaceRegions() const
Returns:true if and only if at least one face region has been set
inline bool HasFaceAttributes() const
Returns:true if HasFaceColors(), HasFaceIndices(), HasFaceRegions(), HasFaceVisibilities(), HasFacePatterns(), or HasFaceRegions()
inline bool HasFaceAttributesCommunicator() const
inline bool HasEdgeColors() const
Returns:true if there are edge colors set on the polyhedron
inline bool HasEdgeIndices() const
Returns:true if colors-by-index are set on the polyhedron edges.
inline bool HasEdgeNormals() const
Returns:true if explicit normals are set on the polyhedron edges
inline bool HasEdgeVisibilities() const
Returns:true if explicit edge visibilities are set on the polyhedron edges
inline bool HasEdgePatterns() const
Returns:true if edge patterns are set on the polyhedron edges
inline bool HasEdgeWeights() const
Returns:true if explicit weights are set on the polyhedron edges
inline bool HasEdgeAttributes() const
Returns:true if any edge attributes are set: colors, indices, normals, visibilities, patterns, or weights