Provides HOOPS/3dGS-specific handling of the TKE_Shell opcode. More...
#include <HOpcodeShell.h>
Public Member Functions | |
TK_Status | Clone (BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const |
TK_Status | Execute (BStreamFileToolkit &tk) alter |
TK_Status | Interpret (BStreamFileToolkit &tk, ID_Key key, int variant=-1) alter |
TK_Status | Interpret (BStreamFileToolkit &tk, ID_Key key, char const *special) alter |
bool | Match_Instance (BStreamFileToolkit const &tk, Recorded_Instance alter *instance) alter |
Protected Member Functions | |
TK_Status | LabelFakeEdges () alter |
TK_Status | ProcessRevisits (BStreamFileToolkit &tk, int lod_in, bool *do_continue) |
TK_Status | Revisit (BStreamFileToolkit &tk, float priority=0.0f, int lod=-1) const |
TK_Status | Revisit (BStreamFileToolkit &tk, int lod) const |
variant that doesn't have a priority value (which is used for sorting order) | |
virtual TK_Status | Usefulness (BStreamFileToolkit &tk, HC_KEY key, int lod, float alter &score) const |
Determines the order in which data appears with TK_Priority_Heuristic write flag (the default) |
Provides HOOPS/3dGS-specific handling of the TKE_Shell opcode.
This class complements the read/write functionality implemented in the base class by overloading the Interpret and Execute methods to provide HOOPS/3dGS-specific opcode handling.
Writing: The HOOPS/3dGS database is queried in the Interpret method, and this data is then written to the HSF file by the Write method Reading: The data is read from the HSF file by the Read method, and is mapped to the HOOPS/3dGS scene-graph within the Execute method.
Export/import of additional user-data (which is associated with this HSF object) would typically be done by overloading the Write and Read methods.
TK_Status HTK_Shell::Clone | ( | BStreamFileToolkit & | tk, |
BBaseOpcodeHandler ** | handler | ||
) | const [virtual] |
Copies the opcode handler
tk | A reference to the BStreamFileToolkit object. |
handler | A pointer to the opcode handler object. Passed by reference. |
Reimplemented from BBaseOpcodeHandler.
TK_Status HTK_Shell::Execute | ( | BStreamFileToolkit & | tk | ) | [virtual] |
Processes the binary data that has been read for the current object, which involves passing the data to application-specific data structures.
tk | A reference to the BStreamFileToolkit object. |
Reimplemented from BBaseOpcodeHandler.
TK_Status HTK_Shell::Interpret | ( | BStreamFileToolkit & | tk, |
ID_Key | key, | ||
int | variant = -1 |
||
) | [virtual] |
Extracts graphics data (typically from the application's scene-graph) and maps it to the opcode handler's data members in preparation for writing out an object to the file.
tk | A reference to the BStreamFileToolkit object. |
key | An identifier to the object (for example, the HOOPS key of a geometry item) |
variant | optional specification of an alternate form, such as a Level-of-Detail representation |
Reimplemented from BBaseOpcodeHandler.
TK_Status HTK_Shell::Interpret | ( | BStreamFileToolkit & | tk, |
ID_Key | key, | ||
char const * | special | ||
) | [inline, virtual] |
Extracts graphics data (typically from the application's scene-graph) and maps it to the opcode handler's data members in preparation for writing out an object to the file.
tk | A reference to the BStreamFileToolkit object. |
key | An identifier to the object (for example, the HOOPS key of a geometry item) |
special | A string value of particular data |
Reimplemented from BBaseOpcodeHandler.
References BBaseOpcodeHandler::Interpret().
TK_Status HTK_Shell::LabelFakeEdges | ( | ) | [protected] |
There are some edges that will appear on the read side (due to triangulation) that don't actually exist on the write side. We need to enumerate the edges again **not** by tristrips so that we can discover and flag the appropriate fake edges, and they can then be skipped by HPolyhedron::HInterpret
bool HTK_Shell::Match_Instance | ( | BStreamFileToolkit const & | tk, |
Recorded_Instance alter * | instance | ||
) | [virtual] |
Determines whether a stored instance of an object is compatible with the current object, and if it is, prepares the object to write the instance instead.
Reimplemented from BBaseOpcodeHandler.
TK_Status HTK_Shell::ProcessRevisits | ( | BStreamFileToolkit & | tk, |
int | lod_in, | ||
bool * | do_continue | ||
) | [protected] |
figure out what revisits are required during this pass.
tk | the toolkit |
lod_in | the lod level requested by the caller |
do_continue | return value to indicate whether the interpret process is complete |
TK_Status HTK_Shell::Revisit | ( | BStreamFileToolkit & | tk, |
float | priority = 0.0f , |
||
int | variant = -1 |
||
) | const [protected] |
Indicates that an object requires further processing during a subsequent pass
Reimplemented from BBaseOpcodeHandler.