HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Compiled Class Reference

#include <SOP_Compiled.h>

Classes

class  DelayedCook
 
class  ExecuteParms
 
class  Task
 
class  TaskState
 

Public Types

enum  UnloadMode { UNLOAD_NEVER, UNLOAD_FLAG, UNLOAD_ALWAYS }
 
typedef UT_Array< TaskStateTaskStateArray
 

Public Member Functions

 SOP_Compiled ()
 
virtual ~SOP_Compiled ()
 
bool isTopologyDirty (const OP_Context &context)
 
bool isTopologyTimeDependent () const
 
void dump (std::ostream &os) const
 
bool compile (SOP_Node *root, const OP_Context &context, UT_ErrorManager &errors)
 
bool compileMulti (const UT_Array< SOP_Node * > &roots, const OP_Context &context, UT_ErrorManager &errors)
 
SOP_NodegetRoot (exint idx=0) const
 Determines what node is at the root of the compile block. More...
 
exint getNumRoots () const
 
bool isCompiled () const
 Is the task list compiled & valid? More...
 
void donateForRecycling (GU_DetailHandle &gdh)
 
GU_DetailHandle execute (bool &hascedata, TaskStateArray &states, bool flushce, UnloadMode unload, const OP_Context &context, UT_ErrorManager &errors, DEP_MicroNode *depnode, const UT_StringArray &inputnames, UT_Array< GU_DetailHandle > &inputgdhs, const UT_Array< bool > &inputhascedata)
 
void executeMulti (UT_Array< GU_DetailHandle > &outputgdhs, UT_Array< bool > &hascedata, TaskStateArray &states, bool flushce, UnloadMode unload, const OP_Context &context, UT_ErrorManager &errors, DEP_MicroNode *depnode, const UT_StringArray &inputnames, UT_Array< GU_DetailHandle > &inputgdhs, const UT_Array< bool > &inputhascedata)
 Execute a compiled block that has multiple roots. More...
 
void clear ()
 
exint taskCount () const
 
exint taskInputCount () const
 
exint nodeCount () const
 

Static Public Member Functions

static bool canBeCompiled (SOP_Node *node)
 

Protected Attributes

DEP_TimedMicroNode myTopoMicroNode
 
UT_Array< Task * > myRoots
 
UT_Array< Task * > myTasks
 
UT_Array< Task * > myTaskInputs
 
SOP_NodeVerb::ForbiddenNodeMapmyNodeSet
 
UT_Array< GU_DetailHandlemyRecyclingBin
 

Detailed Description

Definition at line 22 of file SOP_Compiled.h.

Member Typedef Documentation

Definition at line 89 of file SOP_Compiled.h.

Member Enumeration Documentation

Enumerator
UNLOAD_NEVER 
UNLOAD_FLAG 
UNLOAD_ALWAYS 

Definition at line 28 of file SOP_Compiled.h.

Constructor & Destructor Documentation

SOP_Compiled::SOP_Compiled ( )
virtual SOP_Compiled::~SOP_Compiled ( )
virtual

Member Function Documentation

static bool SOP_Compiled::canBeCompiled ( SOP_Node node)
static

Determines somewhat conservatively if the node is eligbile for compilation. Verbs always are, but things like subnets are only if their SOP contents are as well.

void SOP_Compiled::clear ( )
bool SOP_Compiled::compile ( SOP_Node root,
const OP_Context context,
UT_ErrorManager errors 
)

Compile a node block, only rebuilding if Topo dependency is invalid

bool SOP_Compiled::compileMulti ( const UT_Array< SOP_Node * > &  roots,
const OP_Context context,
UT_ErrorManager errors 
)
void SOP_Compiled::donateForRecycling ( GU_DetailHandle gdh)

Donate the provided detail to be recycled if needed. The passed in handle will be cleared.

void SOP_Compiled::dump ( std::ostream &  os) const
GU_DetailHandle SOP_Compiled::execute ( bool &  hascedata,
TaskStateArray states,
bool  flushce,
UnloadMode  unload,
const OP_Context context,
UT_ErrorManager errors,
DEP_MicroNode depnode,
const UT_StringArray inputnames,
UT_Array< GU_DetailHandle > &  inputgdhs,
const UT_Array< bool > &  inputhascedata 
)

Execute our cached block The inputgdhs will be cleared as they are used, allowing them to be stolen & written to if they are unique.

void SOP_Compiled::executeMulti ( UT_Array< GU_DetailHandle > &  outputgdhs,
UT_Array< bool > &  hascedata,
TaskStateArray states,
bool  flushce,
UnloadMode  unload,
const OP_Context context,
UT_ErrorManager errors,
DEP_MicroNode depnode,
const UT_StringArray inputnames,
UT_Array< GU_DetailHandle > &  inputgdhs,
const UT_Array< bool > &  inputhascedata 
)

Execute a compiled block that has multiple roots.

exint SOP_Compiled::getNumRoots ( ) const
SOP_Node* SOP_Compiled::getRoot ( exint  idx = 0) const

Determines what node is at the root of the compile block.

bool SOP_Compiled::isCompiled ( ) const

Is the task list compiled & valid?

bool SOP_Compiled::isTopologyDirty ( const OP_Context context)

Determine if the compiled task list still matches what the SOP network has.

bool SOP_Compiled::isTopologyTimeDependent ( ) const
exint SOP_Compiled::nodeCount ( ) const
inline

Definition at line 325 of file SOP_Compiled.h.

exint SOP_Compiled::taskCount ( ) const
inline

Definition at line 323 of file SOP_Compiled.h.

exint SOP_Compiled::taskInputCount ( ) const
inline

Definition at line 324 of file SOP_Compiled.h.

Member Data Documentation

SOP_NodeVerb::ForbiddenNodeMap* SOP_Compiled::myNodeSet
protected

Definition at line 340 of file SOP_Compiled.h.

UT_Array<GU_DetailHandle> SOP_Compiled::myRecyclingBin
protected

Definition at line 341 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myRoots
protected

Definition at line 336 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myTaskInputs
protected

Definition at line 338 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myTasks
protected

Definition at line 337 of file SOP_Compiled.h.

DEP_TimedMicroNode SOP_Compiled::myTopoMicroNode
protected

Definition at line 334 of file SOP_Compiled.h.


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