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 (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_NodegetRoot (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_GraphProxymyGraphProxy
 
UT_Array< Task * > myRoots
 
UT_Array< Task * > myTasks
 
UT_Array< Task * > myTaskInputs
 
SOP_NodeVerb::ForbiddenNodeMapmyNodeSet
 
UT_Array< GU_DetailHandlemyRecyclingBin
 

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 344 of file SOP_Compiled.h.

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

Definition at line 353 of file SOP_Compiled.h.

exint SOP_Compiled::taskCount ( ) const
inline

Definition at line 342 of file SOP_Compiled.h.

exint SOP_Compiled::taskInputCount ( ) const
inline

Definition at line 343 of file SOP_Compiled.h.

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

Definition at line 354 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 352 of file SOP_Compiled.h.

Member Data Documentation

UT_SharedPtr<const OP_GraphProxy> SOP_Compiled::myGraphProxy
protected

Definition at line 360 of file SOP_Compiled.h.

SOP_NodeVerb::ForbiddenNodeMap* SOP_Compiled::myNodeSet
protected

Definition at line 366 of file SOP_Compiled.h.

UT_Array<GU_DetailHandle> SOP_Compiled::myRecyclingBin
protected

Definition at line 367 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myRoots
protected

Definition at line 362 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myTaskInputs
protected

Definition at line 364 of file SOP_Compiled.h.

UT_Array<Task *> SOP_Compiled::myTasks
protected

Definition at line 363 of file SOP_Compiled.h.

DEP_TimedMicroNode SOP_Compiled::myTopoMicroNode
protected

Definition at line 358 of file SOP_Compiled.h.


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