Alphabetical Class Index   Class Hierarchy   Compound Members   File Members   File List  

HTK_Shell Class Reference

Provides HOOPS/3dGS-specific handling of the TKE_Shell opcode. More...

#include <HOpcodeShell.h>

Inheritance diagram for HTK_Shell:

TK_Shell TK_Polyhedron BBaseOpcodeHandler BControlledMemoryObject

List of all members.

Public Member Functions

TK_Status Clone (BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
TK_Status Execute (BStreamFileToolkit &tk)
TK_Status Interpret (BStreamFileToolkit &tk, ID_Key key, char const *special)
TK_Status Interpret (BStreamFileToolkit &tk, ID_Key key, int variant=-1)
bool Match_Instance (BStreamFileToolkit const &tk, Recorded_Instance *instance)

Protected Member Functions

TK_Status LabelFakeEdges ()
TK_Status ProcessRevisits (BStreamFileToolkit &tk, int lod_in, bool *do_continue)
TK_Status Revisit (BStreamFileToolkit &tk, int lod) const
 variant that doesn't have a priority value (which is used for sorting order)
TK_Status Revisit (BStreamFileToolkit &tk, float priority=0.0f, int lod=-1) const
virtual TK_Status Usefulness (BStreamFileToolkit &tk, HC_KEY key, int lod, float &score) const
 Determines the order in which data appears with TK_Priority_Heuristic write flag (the default).


Detailed Description

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.


Member Function Documentation

TK_Status HTK_Shell::Clone ( BStreamFileToolkit tk,
BBaseOpcodeHandler **  handler 
) const [virtual]

Copies the opcode handler

Parameters:
tk A reference to the BStreamFileToolkit object.
handler A pointer to the opcode handler object. Passed by reference.
Returns:
The result of the function call.

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.

Parameters:
tk A reference to the BStreamFileToolkit object.
Returns:
The result of the function call.

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.

Parameters:
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
Returns:
The result of the function call.

Reimplemented from BBaseOpcodeHandler.

References BBaseOpcodeHandler::Interpret().

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.

Parameters:
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
Returns:
The result of the function call.

Reimplemented from BBaseOpcodeHandler.

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 *  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.

Parameters:
tk the toolkit
lod_in the lod level requested by the caller
do_continue return value to indicate whether the interpret process is complete
Returns:
TK_Error on failure, TK_Revisit to completely suppress all writing, otherwise TK_Normal

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.


The documentation for this class was generated from the following file: