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< TaskState > TaskStateArray
 

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 (UT_SharedPtr< const OP_GraphProxy > graph, exint nodeidx, const OP_Context &context, UT_ErrorManager &errors)
 
bool compile (SOP_Node *root, const OP_Context &context, UT_ErrorManager &errors)
 
bool compileMulti (UT_SharedPtr< const OP_GraphProxy > graph, const UT_Array< exint > &roots, const OP_Context &context, UT_ErrorManager &errors)
 
bool compileMulti (const UT_Array< SOP_Node * > &roots, const OP_Context &context, UT_ErrorManager &errors)
 
OP_Node * getRoot (exint idx=0) const
 Determines what node is at the root of the compile block. More...
 
OP_GraphProxy::NodeIdx getRootIdx (exint idx=0) const
 
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
 
void taskNodes (UT_Set< OP_Node * > &usednodes) const
 
const UT_Array< Task * > & tasks () const
 
const UT_Array< Task * > & roots () const
 
const UT_Array< Task * > & taskInputs () const
 

Static Public Member Functions

static bool canBeCompiled (const OP_Node *node)
 

Protected Attributes

DEP_TimedMicroNode myTopoMicroNode
 
UT_SharedPtr< const OP_GraphProxy > myGraphProxy
 
UT_Array< Task * > myRoots
 
UT_Array< Task * > myTasks
 
UT_Array< Task * > myTaskInputs
 
SOP_NodeVerb::ForbiddenNodeMap * myNodeSet
 
UT_Array< GU_DetailHandle > myRecyclingBin
 

Detailed Description

Definition at line 23 of file SOP_Compiled.h.

Member Typedef Documentation

Definition at line 90 of file SOP_Compiled.h.

Member Enumeration Documentation

Enumerator
UNLOAD_NEVER 
UNLOAD_FLAG 
UNLOAD_ALWAYS 

Definition at line 29 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 ( const OP_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 ( UT_SharedPtr< const OP_GraphProxy >  graph,
exint  nodeidx,
const OP_Context &  context,
UT_ErrorManager &  errors 
)

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

bool SOP_Compiled::compile ( SOP_Node *  root,
const OP_Context &  context,
UT_ErrorManager &  errors 
)
bool SOP_Compiled::compileMulti ( UT_SharedPtr< const OP_GraphProxy >  graph,
const UT_Array< exint > &  roots,
const OP_Context &  context,
UT_ErrorManager &  errors 
)
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
OP_Node* SOP_Compiled::getRoot ( exint  idx = 0) const

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

OP_GraphProxy::NodeIdx SOP_Compiled::getRootIdx ( exint  idx = 0) const
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 345 of file SOP_Compiled.h.

const UT_Array<Task *>& SOP_Compiled::roots ( ) const
inline

Definition at line 354 of file SOP_Compiled.h.

exint SOP_Compiled::taskCount ( ) const
inline

Definition at line 343 of file SOP_Compiled.h.

exint SOP_Compiled::taskInputCount ( ) const
inline

Definition at line 344 of file SOP_Compiled.h.

const UT_Array<Task *>& SOP_Compiled::taskInputs ( ) const
inline

Definition at line 355 of file SOP_Compiled.h.

void SOP_Compiled::taskNodes ( UT_Set< OP_Node * > &  usednodes) const
const UT_Array<Task *>& SOP_Compiled::tasks ( ) const
inline

Definition at line 353 of file SOP_Compiled.h.

Member Data Documentation

UT_SharedPtr<const OP_GraphProxy> SOP_Compiled::myGraphProxy
protected

Definition at line 361 of file SOP_Compiled.h.

SOP_NodeVerb::ForbiddenNodeMap* SOP_Compiled::myNodeSet
protected

Definition at line 367 of file SOP_Compiled.h.

UT_Array<GU_DetailHandle> SOP_Compiled::myRecyclingBin
protected

Definition at line 368 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myRoots
protected

Definition at line 363 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myTaskInputs
protected

Definition at line 365 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myTasks
protected

Definition at line 364 of file SOP_Compiled.h.

DEP_TimedMicroNode SOP_Compiled::myTopoMicroNode
protected

Definition at line 359 of file SOP_Compiled.h.


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