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

#include <OP_ParmChangeMicroNode.h>

+ Inheritance diagram for GusdOP_ParmChangeMicroNode:

Public Member Functions

 GusdOP_ParmChangeMicroNode (OP_Parameters &node)
 
 ~GusdOP_ParmChangeMicroNode () override
 
void addParm (int parmIdx, int vecIdx=-1)
 
bool updateVals (fpreal t, int thread=SYSgetSTID())
 
bool updateIfNeeded (fpreal t, int thread=SYSgetSTID())
 
void update (fpreal t) override
 
void clearInputs () override
 
- Public Member Functions inherited from DEP_TimedMicroNode
 DEP_TimedMicroNode ()
 
const char * className () const override
 
bool requiresUpdate (fpreal t) const override
 
- Public Member Functions inherited from DEP_MicroNode
 DEP_MicroNode ()
 
virtual ~DEP_MicroNode ()
 
virtual void getInputs (DEP_MicroNodeList &inputs) const
 
virtual void getOutputs (DEP_MicroNodeList &outputs) const
 
void propagateDirty (Visitor client_visit, bool only_outputs=false)
 
virtual void becameDirty (DEP_MicroNode &src, const DEP_PropagateData &propdata)
 
void traverseAncestorInputs (const TraverseVisitor &visitor) const
 Traverse all ancestor inputs of this micronode. More...
 
bool markVisitPass (int pass)
 
SYS_FORCE_INLINE int lastVisitPass () const
 
virtual int64 getMemoryUsage (bool inclusive) const
 Obtain approximate memory usage. More...
 
virtual void dump (std::ostream &os, const char *prefix=0, int indent_level=0) const
 Dump contents to output stream, strictly for debugging purposes. More...
 
void dumpAsDOT (std::ostream &os, const char *prefix=0, int indent_level=0) const
 Dump the contents is a manner more suitable for DOT. More...
 
bool inheritTimeDependentFromExplicitInputs ()
 
bool inheritTimeInterestedFromExplicitInputs ()
 
bool inheritContextOptionDepsFromExplicitInputs (const UT_StringArray &ignore_deps)
 
void addExplicitInput (DEP_MicroNode &inp, bool check_dup)
 Methods for manipulating explicit edges. More...
 
SYS_FORCE_INLINE void addExplicitInput (DEP_MicroNode &inp)
 Add an input that this micronode depends on. More...
 
void addExplicitInputs (const DEP_MicroNodeList &sources, bool check_dup=true)
 Bulk add multiple explicit inputs at once. More...
 
void getExplicitInputs (DEP_MicroNodeList &inputs) const
 Get list of all non-null explicit inputs. More...
 
SYS_FORCE_INLINE int getNumExplicitInputs () const
 Get the number of non-null inputs. More...
 
void getExplicitOutputs (DEP_MicroNodeList &outputs) const
 Get list of all non-null explicit outputs. More...
 
SYS_FORCE_INLINE int getNumExplicitOutputs () const
 Get the number of non-null outputs. More...
 
SYS_FORCE_INLINE bool isDirty () const
 Flag accessors. More...
 
void setDirty (bool flag, bool allow_clear=true)
 Flag accessors. More...
 
SYS_FORCE_INLINE bool isTimeDependent () const
 Flag accessors. More...
 
SYS_FORCE_INLINE void setTimeDependent (bool time_dependent)
 Flag accessors. More...
 
SYS_FORCE_INLINE bool isTimeInterested () const
 Flag accessors. More...
 
SYS_FORCE_INLINE void setTimeInterested (bool time_interested)
 Flag accessors. More...
 
SYS_FORCE_INLINE bool hasContextOptionDeps () const
 Flag accessors. More...
 
SYS_FORCE_INLINE const
DEP_ContextOptionDeps
getContextOptionDeps () const
 Flag accessors. More...
 
SYS_FORCE_INLINE void addContextOptionDeps (const DEP_ContextOptionDeps &opts)
 Flag accessors. More...
 
SYS_FORCE_INLINE void addContextOptionDep (const UT_StringHolder &opt)
 Flag accessors. More...
 
SYS_FORCE_INLINE void clearContextOptionDeps ()
 Flag accessors. More...
 
SYS_FORCE_INLINE bool isOpDataMicroNode () const
 Flag accessors. More...
 

Additional Inherited Members

- Public Types inherited from DEP_MicroNode
typedef UT_Function< void(DEP_MicroNode
&, DEP_MicroNode &) > 
Visitor
 
typedef UT_Function< bool(const
DEP_MicroNode &, const
DEP_MicroNode &) > 
TraverseVisitor
 
- Static Public Member Functions inherited from DEP_MicroNode
static SYS_FORCE_INLINE bool canClearDependencies ()
 Global control whether dependencies can be cleared. More...
 
static SYS_FORCE_INLINE bool canEvaluateExports ()
 Global control whether we can evaluate exports. More...
 
static SYS_FORCE_INLINE bool isSameTime (fpreal a, fpreal b)
 
- Static Public Member Functions inherited from UT_SmallObject< DEP_MicroNode >
static voidoperator new (size_t size)
 Regular new/delete operators. More...
 
static void operator delete (void *p, size_t size)
 Regular new/delete operators. More...
 
static voidoperator new (size_t, void *p)
 
static void operator delete (void *, void *)
 
- Protected Member Functions inherited from DEP_MicroNode
SYS_FORCE_INLINE void setIsOpDataMicroNode (bool b)
 
virtual bool isEvaluating () const
 
virtual void evaluateExports ()
 
virtual bool isExporting () const
 

Detailed Description

Micro node for tracking changes to a set of parameters. This is similar to OP_ParmCache, except that this tracks changes to the resolved* values of parameters, rather than their dirty states.

Only persistent parameters can be tracked. Spare and dynamic parameters (I.e., instances of multi parms) cannot be tracked through this class.

This class is not thread safe!

Definition at line 49 of file OP_ParmChangeMicroNode.h.

Constructor & Destructor Documentation

GusdOP_ParmChangeMicroNode::GusdOP_ParmChangeMicroNode ( OP_Parameters node)
inlineexplicit

Definition at line 52 of file OP_ParmChangeMicroNode.h.

GusdOP_ParmChangeMicroNode::~GusdOP_ParmChangeMicroNode ( )
override

Member Function Documentation

void GusdOP_ParmChangeMicroNode::addParm ( int  parmIdx,
int  vecIdx = -1 
)

Begin tracking the given parm. If vectorIdx is less than zero, all elements of the parm tuple are tracked.

void GusdOP_ParmChangeMicroNode::clearInputs ( )
inlineoverridevirtual

Clear our inputs. This is overridden to disallow clearing of explicit inputs, which are meant to persist on this micro node.

Reimplemented from DEP_MicroNode.

Definition at line 74 of file OP_ParmChangeMicroNode.h.

void GusdOP_ParmChangeMicroNode::update ( fpreal  t)
inlineoverridevirtual

update() is used by users of micro-nodes to mark this node as clean at the given time t. By default, it simply marks it as no longer dirty but subclasses override this to do more work.

Reimplemented from DEP_TimedMicroNode.

Definition at line 69 of file OP_ParmChangeMicroNode.h.

bool GusdOP_ParmChangeMicroNode::updateIfNeeded ( fpreal  t,
int  thread = SYSgetSTID() 
)
inline

Definition at line 66 of file OP_ParmChangeMicroNode.h.

bool GusdOP_ParmChangeMicroNode::updateVals ( fpreal  t,
int  thread = SYSgetSTID() 
)

Update the resolved parm values.

Returns
true if any resolved values changed.

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