SOP_Node Class Reference

#include <SOP_Node.h>

Inheritance diagram for SOP_Node:

OP_Network OP_Node OP_Parameters OP_NetworkBoxItem PRM_ParmOwner HDK_Sample::SOP_BlindData HDK_Sample::SOP_CopRaster HDK_Sample::SOP_CPPWave HDK_Sample::SOP_CustomBrush HDK_Sample::SOP_CustomVop HDK_Sample::SOP_DetailAttrib HDK_Sample::SOP_EuclidBase HDK_Sample::SOP_Flatten HDK_Sample::SOP_GroupRename HDK_Sample::SOP_HDKObject HDK_Sample::SOP_IKSample HDK_Sample::SOP_NURBS HDK_Sample::SOP_PointWave HDK_Sample::SOP_PrimVOP HDK_Sample::SOP_SParticle HDK_Sample::SOP_Star HDK_Sample::SOP_Surface HDK_Sample::SOP_TimeCompare SOP_AttribComp SOP_BlendShapes SOP_CaptureBase SOP_CaptureOverride SOP_CaptureRegion SOP_Circle SOP_Curve SOP_Each SOP_ForEach SOP_GDT SOP_HOM SOP_Lattice SOP_MDD SOP_Muscle SOP_Pelt SOP_PolyKnit SOP_PolySplit SOP_Reverse SOP_UVFuse SOP_Visibility

List of all members.

Classes

class  AttribTupleIndexArg

Public Member Functions

virtual const char * getChildType () const
virtual const char * getOpType () const
virtual OP_OpTypeId getChildTypeID () const
virtual OP_OpTypeId getOpTypeID () const
const SOP_NodeFlagsgetFlags () const
virtual int isCookingRender () const
virtual void opChanged (OP_EventType reason, void *data=0)
virtual const CH_LocalVariableresolveVariable (const char *name)
virtual const CH_LocalVariableresolveExtraVariableForSyntaxHighlight (const char *name)
void setVariableOrder (int detail, int prim, int pt, int vtx)
int getVariableOrder (int level) const
int getVariablePrecedence (int var) const
virtual bool usesFootprint () const
void setVisualizeCallback (sopVisualizeCallback *callback, void *data)
void setupLocalVars ()
void resetLocalVarRefs ()
void setCurGdh (int index, const GU_DetailHandle &gdh)
void clearCurGdh (int index)
const GU_DetailHandlegetCurGdh (int index)
virtual float getVariableValue (int index, int thread)
bool getVariableValueFP (fpreal &val, int index)
virtual void getVariableString (int index, UT_String &value, int thread)
void addGenericVariable (const char *varname, GEO_Standard_Attributes attr, const AttribTupleIndexArg &tuple_idx, int sz, GB_AttribType type, float ladefault=0.0f)
void addGenericVariable (const char *varname, const char *attribname, const AttribTupleIndexArg &tuple_idx, int sz, GB_AttribType type, float ladefault=0.0F)
void addGenericVariable (const char *varname, int varidx, SOP_LocalVarFunc callback, float ladefault=0.0F)
void addGenericVariable (const GU_Detail *gdp, int gdpidx, const char *varname, const char *attribname, const AttribTupleIndexArg &tuple_idx, int sz, GB_AttribType type, float ladefault=0.0F)
void addGenericVariable (int gpdidx, const char *varname, int varidx, SOP_LocalVarFunc callback, float ladefault=0.0F)
void addSpecificVariable (const GU_Detail *gdp, int gdpidx, const char *varname, const char *attribname, const AttribTupleIndexArg &tuple_idx, int sz, GB_AttribType type, GEO_AttributeOwner dictionary, float ladefault=0.0F)
void addSpecificVariable (int gpidx, const char *varname, int varidx, GEO_AttributeOwner dictionary, SOP_LocalVarFunc callback, float ladefault=0.0F)
void addCustomVariable (const char *attr, const char *varname)
void cacheVarPtBox (int gpdidx)
void cacheVarPrimBox (int gpdidx)
float varCallbackT (sopVarInfo *varinfo)
float varCallbackPT (sopVarInfo *varinfo)
float varCallbackPR (sopVarInfo *varinfo)
float varCallbackVTX (sopVarInfo *varinfo)
float varCallbackNPT (sopVarInfo *varinfo)
float varCallbackNPR (sopVarInfo *varinfo)
float varCallbackNVTX (sopVarInfo *varinfo)
float varCallbackCE (sopVarInfo *varinfo)
float varCallbackMIN (sopVarInfo *varinfo)
float varCallbackMAX (sopVarInfo *varinfo)
float varCallbackSIZE (sopVarInfo *varinfo)
float varCallbackLIFE (sopVarInfo *varinfo)
float varCallbackBB (sopVarInfo *varinfo)
float varCallbackWEIGHT (sopVarInfo *varinfo)
const GU_DetailHandlecurGdh (int index) const
int curVertexNum (int index) const
const GEO_VertexcurVertex (int index) const
const GEO_PointcurPoint (int index) const
const GEO_PrimitivecurPrim (int index) const
UT_BoundingBox curPointBBox (int index)
UT_BoundingBox curPrimBBox (int index)
void setPivotParmToGroupCentroid (OP_Context &context)
void buildNamedPrims (int thesourcenum, PRM_Name *thechoicenames, int themenusize, PRM_Parm *parm, bool globvectors, bool numberedvolumes)
void buildInputGroups (int thesourcenum, PRM_Name *thechoicenames, int themenusize, unsigned type, int start, bool includeselection, PRM_Parm *parm)
int buildInputEdgeGroups (int sourcenum, PRM_Name *choicenames, int menusize, bool addprim, int start, PRM_Parm *parm)
int buildInputBreakpointGroups (int sourcenum, PRM_Name *choicenames, int menusize, bool addprim, int start, PRM_Parm *parm)
virtual int setModelLock (int lock_type, void *modeler=0, int allow_softlock_promotion=0, UT_Undo *undo=0)
virtual OP_DATA_TYPE getCookedDataType () const
virtual void * getCookedData (OP_Context &ctx)
virtual bool getBoundingBox (UT_BoundingBox &box, OP_Context &ctx)
const GU_DetailgetCookedGeo (OP_Context &, int forced=0)
GU_DetailHandle getCookedGeoHandle (OP_Context &, int forced=0)
const SOP_Guide * getCookedGuide1 () const
const SOP_Guide * getCookedGuide2 () const
const GU_DetailgetLastGeo ()
const GU_DetailgetInputLastGeo (int input, double time)
OP_ERROR cookGuide1 (OP_Context &context)
OP_ERROR cookGuide2 (OP_Context &context)
OP_ERROR cookGuideList (OP_Context &context, UT_RefArray< GU_DetailHandle > &list)
virtual GOP_GuideListType getGuideListType () const
virtual OP_ERROR lockInput (unsigned idx, OP_Context &context)
void unlockInput (unsigned idx)
virtual OP_ERROR lockInputs (OP_Context &context)
void unlockInputs ()
bool forceValidGroupName (UT_String &name, UT_ErrorSeverity severity)
bool forceValidGroupPrefix (UT_String &prefix, UT_ErrorSeverity severity)
void expandGroupNames (const char *pattern, UT_String &outNames, int isPrims, GU_Detail *pgdp)
void expandGroupNames (const char *pattern, UT_String &outNames, int isPrims)
const GB_PrimitiveGroupparsePrimitiveGroups (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false, int offset=0)
const GB_PrimitiveGroupparsePrimitiveGroups (const char *pattern)
GB_PrimitiveGroupparsePrimitiveGroupsCopy (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false)
GB_PrimitiveGroupparsePrimitiveGroupsCopy (const char *pattern)
const GB_PointGroupparsePointGroups (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false, int offset=0)
const GB_PointGroupparsePointGroups (const char *pattern)
GB_PointGroupparsePointGroupsCopy (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false)
GB_PointGroupparsePointGroupsCopy (const char *pattern)
const GB_EdgeGroupparseEdgeGroups (const char *pattern, GU_Detail *pgdp, bool strict=true, int prim_offset=0, int point_offset=0)
const GB_EdgeGroupparseEdgeGroups (const char *pattern)
GB_EdgeGroupparseEdgeGroupsCopy (const char *pattern, GU_Detail *pgdp)
GB_EdgeGroupparseEdgeGroupsCopy (const char *pattern)
const GB_BreakpointGroupparseBreakpointGroups (const char *pattern, GU_Detail *pgdp, bool strict=true, int offset=0)
const GB_BreakpointGroupparseBreakpointGroups (const char *pattern)
GB_BreakpointGroupparseBreakpointGroupsCopy (const char *pattern, GU_Detail *pgdp)
GB_BreakpointGroupparseBreakpointGroupsCopy (const char *pattern)
const GB_VertexGroupparseVertexGroups (const char *pattern, GU_Detail *pgdp, bool strict=true, int offset=0)
const GB_VertexGroupparseVertexGroups (const char *pattern)
GB_VertexGroupparseVertexGroupsCopy (const char *pattern, GU_Detail *pgdp)
GB_VertexGroupparseVertexGroupsCopy (const char *pattern)
const GB_BaseGroupparseAllGroups (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1, int ordered=1, unsigned int mask=GBGROUP)
const GB_BaseGroupparseAllGroups (const char *pattern)
GB_BaseGroupparseAllGroupsCopy (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1, int ordered=1, unsigned int mask=GBGROUP)
GB_BaseGroupparseAllGroupsCopy (const char *pattern)
int destroyAdhocGroup (const GB_BaseGroup *group)
void destroyAdhocGroups ()
void destroyAdhocGroups (const GU_Detail *g)
void select (void)
void select (GU_SelectionType stype)
void select (const GB_BaseGroup &group, int use_gtype=1, int add_to_sel=0)
void select (GEO_Primitive &prim, int sel_prim=1, int add_to_sel=0)
void select (GEO_Point &point, int point_sel=1, int add_to_sel=0)
void selectFrom (GEO_Primitive &prim, int sel_prim=1, int add_to_sel=0)
void selectFrom (GEO_Point &point, int point_sel=1, int add_to_sel=0)
void selectInputGroup (GB_BaseGroup *group, int grouptype)
void clearSelection (void)
void clearSelection (GU_SelectionType stype)
int destroySelection (void)
int selectionEnabled (void) const
bool hasCookedSelection (void) const
bool copyTempSelections (OP_Context &context, SOP_Node *src)
virtual void resetSimulation (void)
virtual int getNetOverviewColor (UT_Color &color)
void addInstanceReference (SOP_Node *node)
void clearInstanceReference (SOP_Node *node)
void makeInstanceOf (SOP_Node *node)
void makePreserveRequest ()
virtual void setVisualization (int)
virtual void setForceCapture (int)
virtual void getNodeSpecificInfoText (OP_Context &context, int verbose, UT_WorkBuffer &text)
virtual void fillInfoTreeNodeSpecific (UT_InfoTree &tree, float time)
 Fill in tree with this SOP's details.
virtual const char * getDefaultSelectedInfoTreeBranchName () const
virtual fpreal getW () const
 Absolute Width.
virtual fpreal getH () const
 Absolute Height.
int fillAttribNameMenu (PRM_Name *menu_entries, int max_menu_size, GEO_AttributeOwner dictionary, int input_index, bool(*approve)(const GB_Attribute *, void *)=NULL, void *approve_data=NULL)
virtual void unloadDataHack ()
 Do not use this function! Using it will likely cause crashes.
virtual bool unloadData ()
virtual int64 getLoadedMemoryUsage () const
bool isLoaded () const
 Returns whether this node currently has cooked data or not.
void setUsesSOPLocalVar ()

Static Public Member Functions

static void setCaptureOverrideFlag (bool flag)
static bool getCaptureOverrideFlag ()
static int addCustomVariableCallback (const char *attr, const char *varname, void *data)
static void buildGroupsFromSop (SOP_Node *src_sop, PRM_Parm *parm, const PRM_SpareData *spare, unsigned type, int start, PRM_Name *menuEntries, int thelistsize)
static int buildEdgeGroupsFromSop (SOP_Node *src_sop, PRM_Parm *parm, const PRM_SpareData *spare, bool addprim, int start, PRM_Name *menuEntries, int thelistsize)
static int buildBreakpointGroupsFromSop (SOP_Node *src_sop, PRM_Parm *parm, const PRM_SpareData *spare, bool addprim, int start, PRM_Name *menuEntries, int thelistsize)
static void buildOperatorTable (OP_OperatorTable &table)
static void initializeExpressions ()
static void removeMenuDuplicates (PRM_Name *menuEntries, int size)
 utility method for pruning the duplicate entries in a sorted menu
static bool approveUserAttribsOnlyCB (const GB_Attribute *atr, void *data)
 approval method for including only user attributes

Static Public Attributes

static PRM_SpareData theFirstInput
static PRM_SpareData theSecondInput
static PRM_SpareData theThirdInput
static PRM_SpareData theFourthInput
static PRM_ChoiceList allGroupMenu
static PRM_ChoiceList groupMenu
static PRM_ChoiceList primGroupMenu
static PRM_ChoiceList pointGroupMenu
static PRM_ChoiceList edgeGroupMenu
static PRM_ChoiceList breakpointGroupMenu
static PRM_ChoiceList primNamedGroupMenu
static PRM_ChoiceList pointNamedGroupMenu
static PRM_ChoiceList namedPrimsMenu
static PRM_ChoiceList namedPrimsGlobMenu
static PRM_ChoiceList namedVolumesMenu
static PRM_ChoiceList namedVolumesGlobMenu

Protected Member Functions

 SOP_Node (OP_Network *parent, const char *name, OP_Operator *entry)
virtual ~SOP_Node ()
virtual void setUniqueId (int id)
virtual void clearUniqueId ()
int removeAdhocGroup (const GB_BaseGroup *group)
void removeAdhocGroups ()
virtual OP_ERROR cookMe (OP_Context &context)
virtual OP_ERROR bypassMe (OP_Context &context, int &copied_input)
virtual OP_ERROR cookMySop (OP_Context &context)=0
virtual OP_ERROR cookMyGuide1 (OP_Context &context)
virtual OP_ERROR cookMyGuide2 (OP_Context &context)
virtual OP_ERROR cookMyGuideList (OP_Context &context, UT_RefArray< GU_DetailHandle > &list)
virtual OP_ERROR pubCookInputGroups (OP_Context &context, int alone=0)
virtual void checkInputChanged (int parm_index, int group_type_index, GU_DetailGroupPair &detail_group_pair, GU_Detail *pgdp, const GB_BaseGroup *group)
virtual OP_ERROR cookInputPrimitiveGroups (OP_Context &context, const GB_PrimitiveGroup *&group, GU_DetailGroupPair &detail_group_pair, int alone=0, bool do_selection=true, int input_index=0, int parm_index=0, int group_type_index=-1, bool allow_reference=true, bool fetchgdp=true, GU_Detail *pgdp=NULL)
virtual OP_ERROR cookInputPointGroups (OP_Context &context, const GB_PointGroup *&group, GU_DetailGroupPair &detail_group_pair, int alone=0, bool do_selection=true, int input_index=0, int parm_index=0, int group_type_index=-1, bool allow_reference=true, bool fetchgdp=true, GU_Detail *pgdp=NULL)
 See cookInputPrimitiveGroups.
virtual OP_ERROR cookInputEdgeGroups (OP_Context &context, const GB_EdgeGroup *&group, GU_DetailGroupPair &detail_group_pair, int alone=0, bool do_selection=true, int input_index=0, int parm_index=0, int group_type_index=-1, bool allow_reference=false, bool fetchgdp=true, GU_Detail *pgdp=NULL)
 See cookInputPrimitiveGroups.
virtual OP_ERROR cookInputAllGroups (OP_Context &context, const GB_BaseGroup *&group, GU_DetailGroupPair &detail_group_pair, int alone=0, bool do_selection=true, int input_index=0, int parm_index=0, int group_type_index=-1, bool allow_reference=false, bool is_default_prim=true, bool fetchgdp=true, GU_Detail *pgdp=NULL)
const GB_BaseGroupparseInputGroup (const UT_String &groupname, int grouptype, GU_Detail *gdp, bool allow_reference, bool is_default_prim)
virtual void inputConnectChanged (int which_input)
const GU_DetailinputGeo (int index, OP_Context &)
const GU_DetailinputGeo (int index) const
GU_DetailHandle inputGeoHandle (int index) const
void addError (int code, const char *msg=0)
void addMessage (SOP_ErrorCodes code, const char *msg=0)
void addWarning (SOP_ErrorCodes code, const char *msg=0)
void addFatal (SOP_ErrorCodes code, const char *msg=0)
void addSystemError (const char *msg=0)
void addCommonError (UT_CommonErrorCode what, const char *msg=0)
SOP_NodegetObjectsSopNode (const char *objectName, OP_Context &context, UT_Matrix4 *xform=0, float *rx=0, float *ry=0, float *rz=0)
int parseGroups (const char *pattern, GU_Detail *gdp, const GB_PrimitiveGroup *&prim, const GB_PointGroup *&points, bool strict=false)
 WARNING: The groups returned are const and should not be modified.
int parseGroupsCopy (const char *pattern, GU_Detail *gdp, GB_PrimitiveGroup *&prim, GB_PointGroup *&points, int unify, bool strict=false)
void getVectorAttribOffsets (const char *attrib_names, UT_RefArray< GB_AttributeRef > &vertex_offsets, UT_RefArray< GB_AttributeRef > &point_offsets, UT_RefArray< GB_AttributeRef > &prim_offsets)
void getVectorAttribOffsets (const GB_AttributeDict &dict, const char *attrib_string, UT_RefArray< GB_AttributeRef > &offsets, UT_String &bad_attribs)
virtual int acceptDragDrop (DD_Source &src, const char *l)
 Drag-n-drop receiver functions.
virtual int testDragDrop (DD_Source &src)
virtual void getDragDropChoice (DD_Source &src, DD_ChoiceList &choices)
int parseEachGroup (const char *pattern, GroupOperation operation, void *data, int isPrim, GU_Detail *pgdp=0, bool strict=false, bool allow_adhoc=false)
 Do the operation on a per group basis instead of unioning them together.
void subdividePrimitiveGroup (GroupOperation operation, const GB_PrimitiveGroup *group, void *data, int optype, int opstep, const char *oplabel, GU_Detail *gdp=0)
void subdivideMixPrimitiveGroup (GroupOperation operation, const GB_PrimitiveGroup *group, void *data, int optype, int opstep, const char *oplabel, GU_Detail *gdp=0)
void subdividePointGroup (GroupOperation operation, const GB_PointGroup *group, void *data, int optype, int opstep, const char *oplabel, GU_Detail *gdp=0)
GB_PrimitiveGroupcreateAdhocPrimGroup (GU_Detail &geo, const char *p="adhoc")
GB_PointGroupcreateAdhocPointGroup (GU_Detail &geo, const char *p="adhoc")
GB_EdgeGroupcreateAdhocEdgeGroup (GU_Detail &geo, const char *p="adhoc")
GB_VertexGroupcreateAdhocVertexGroup (GU_Detail &geo, const char *p="adhoc")
GB_BreakpointGroupcreateAdhocBreakpointGroup (GU_Detail &geo, const char *p="adhoc")
void clearInstance (int duplicate=0)
virtual bool shouldResetGeoToEmpty () const
OP_ERROR duplicateSource (unsigned index, OP_Context &context, GU_Detail *gdp, int clean=1)
OP_ERROR duplicateSource (unsigned index, OP_Context &context)
OP_ERROR duplicatePointSource (unsigned index, OP_Context &ctx, GU_Detail *gdp, int clean=1, bool wattrib=true, bool *fully=0)
OP_ERROR duplicatePointSource (unsigned index, OP_Context &ctx)
OP_ERROR duplicateChangedSource (unsigned idx, OP_Context &ctx, int *changed=0, bool force=false)
 Only duplicates the source if the source has changed since the last call to this method.
OP_ERROR duplicateSourceGroup (const GU_Detail *src_gdp, const GB_PrimitiveGroup *primgroup, GU_Detail *dest_gdp=0)
 Only duplicates primitives in primgroup from src_gdp to dest_gdp.
void resetChangedSourceFlags ()
 Forces duplicateChangedSource() to do the duplication on its next call.
OP_ERROR checkChangedSourceFlags (unsigned idx, OP_Context &ctx, int *changed)
 Checks if a duplication will occur on the next call to duplicateChangedSource().
bool useInputSource (unsigned idx, bool &changed, bool force)
 Mark the given input as used for cooking by this node.
virtual void deleteCookedData (void)
virtual int deleteNodeData (void *)
virtual void * copyNodeData (void *)
GB_PrimitiveGroupgetPastedSurfaces (void)
GB_PrimitiveGroupgetPastedSurfaces (GB_PrimitiveGroup *&used)
void updatePastedDisplacement (const GEO_Point &ppt, const GB_PrimitiveGroup *all, GB_PrimitiveGroup *used)
int updatePastedDisplacements (void)
int updatePastedDependents (GB_PrimitiveGroup *all, GB_PrimitiveGroup *used)
void convertPivotAboutGroupCentroid (PRM_Parm &grppivot_parm, int pivot_parm_idx, const UT_Vector3 *centroid=0)
 Methods for dealing with group centroid.
virtual bool getGroupCentroid (OP_Context &, UT_Vector3 &)
virtual OP_ERROR save (ostream &os, const OP_SaveFlags &flags, const char *pathPrefix)
virtual bool load (UT_IStream &is, const char *extension, const char *path=0)
void refreshGdp ()
GU_SelectionnewSelection (GU_SelectionType stype)
GU_SelectionnewSelection (const GB_BaseGroup &group)
OP_ERROR duplicateChangedSource (unsigned idx, OP_Context &ctx, GU_Topology &tp, int *changed, GU_Detail *gdp, int clean=1)
 Only duplicates the source if the source has changed based on input topology.
OP_ERROR duplicateChangedSource (unsigned idx, OP_Context &ctx, GU_Topology &tp, int *changed=0)
 Only duplicates the source if the source has changed based on input topology.

Protected Attributes

GU_DetailHandle myGdpHandle
GU_Detailgdp
SOP_Guide * myGuide1
SOP_Guide * myGuide2
SOP_NodeFlags mySopFlags
UT_SymbolTable myLocalVarTable
 Local variable items:.
UT_PtrArray< sopVarInfo * > myLocalVarArray
int myLocalVarOrder
bool myUsesSOPLocalVar
const GEO_VertexmyCurVtx [2]
int myCurVtxNum [2]
const GEO_PointmyCurPt [2]
const GEO_PrimitivemyCurPrim [2]
int myCurBuiltPtBox [2]
UT_BoundingBox myCurPtBox [2]
int myCurBuiltPrimBox [2]
UT_BoundingBox myCurPrimBox [2]
int myCurGdpVal
int myLocalVarOrderCache
 Cached values so we can tell if we have to rebuild.
int myCurrentLayerCache
UT_RefArray< sop_attribRefmyAttribCache [2][4]
UT_String myVarMapCache [2]

Friends

class SOP_UndoModel
class SOP_CacheManager
class SOP_CacheData


Detailed Description

Examples:

SOP/MSS_CustomBrushState.C, SOP/SOP_BlindData.C, SOP/SOP_BlindData.h, SOP/SOP_BrushHairLen.C, SOP/SOP_CopRaster.C, SOP/SOP_CopRaster.h, SOP/SOP_CPPWave.C, SOP/SOP_CPPWave.h, SOP/SOP_CustomBrush.C, SOP/SOP_CustomBrush.h, SOP/SOP_DetailAttrib.C, SOP/SOP_DetailAttrib.h, SOP/SOP_Flatten.C, SOP/SOP_Flatten.h, SOP/SOP_GroupRename.C, SOP/SOP_GroupRename.h, SOP/SOP_HDKObject.C, SOP/SOP_HDKObject.h, SOP/SOP_IKSample.C, SOP/SOP_IKSample.h, SOP/SOP_NURBS.C, SOP/SOP_NURBS.h, SOP/SOP_PointWave.C, SOP/SOP_PointWave.h, SOP/SOP_PrimVOP.C, SOP/SOP_PrimVOP.h, SOP/SOP_SParticle.C, SOP/SOP_SParticle.h, SOP/SOP_Star.C, SOP/SOP_Star.h, SOP/SOP_Surface.C, SOP/SOP_Surface.h, SOP/SOP_TimeCompare.C, SOP/SOP_TimeCompare.h, VOP/VOP_CustomContext.C, and VOP/VOP_CustomContext.h.

Definition at line 94 of file SOP_Node.h.


Constructor & Destructor Documentation

SOP_Node::SOP_Node ( OP_Network parent,
const char *  name,
OP_Operator entry 
) [protected]

virtual SOP_Node::~SOP_Node (  )  [protected, virtual]


Member Function Documentation

virtual int SOP_Node::acceptDragDrop ( DD_Source src,
const char *  l 
) [protected, virtual]

Drag-n-drop receiver functions.

Reimplemented from OP_Node.

void SOP_Node::addCommonError ( UT_CommonErrorCode  what,
const char *  msg = 0 
) [inline, protected]

Examples:
SOP/SOP_CopRaster.C.

Definition at line 837 of file SOP_Node.h.

void SOP_Node::addCustomVariable ( const char *  attr,
const char *  varname 
)

static int SOP_Node::addCustomVariableCallback ( const char *  attr,
const char *  varname,
void *  data 
) [static]

void SOP_Node::addError ( int  code,
const char *  msg = 0 
) [inline, protected]

void SOP_Node::addFatal ( SOP_ErrorCodes  code,
const char *  msg = 0 
) [inline, protected]

Definition at line 832 of file SOP_Node.h.

void SOP_Node::addGenericVariable ( int  gpdidx,
const char *  varname,
int  varidx,
SOP_LocalVarFunc  callback,
float  ladefault = 0.0F 
)

void SOP_Node::addGenericVariable ( const GU_Detail gdp,
int  gdpidx,
const char *  varname,
const char *  attribname,
const AttribTupleIndexArg tuple_idx,
int  sz,
GB_AttribType  type,
float  ladefault = 0.0F 
)

void SOP_Node::addGenericVariable ( const char *  varname,
int  varidx,
SOP_LocalVarFunc  callback,
float  ladefault = 0.0F 
)

void SOP_Node::addGenericVariable ( const char *  varname,
const char *  attribname,
const AttribTupleIndexArg tuple_idx,
int  sz,
GB_AttribType  type,
float  ladefault = 0.0F 
)

void SOP_Node::addGenericVariable ( const char *  varname,
GEO_Standard_Attributes  attr,
const AttribTupleIndexArg tuple_idx,
int  sz,
GB_AttribType  type,
float  ladefault = 0.0f 
)

void SOP_Node::addInstanceReference ( SOP_Node node  ) 

void SOP_Node::addMessage ( SOP_ErrorCodes  code,
const char *  msg = 0 
) [inline, protected]

Definition at line 826 of file SOP_Node.h.

void SOP_Node::addSpecificVariable ( int  gpidx,
const char *  varname,
int  varidx,
GEO_AttributeOwner  dictionary,
SOP_LocalVarFunc  callback,
float  ladefault = 0.0F 
)

void SOP_Node::addSpecificVariable ( const GU_Detail gdp,
int  gdpidx,
const char *  varname,
const char *  attribname,
const AttribTupleIndexArg tuple_idx,
int  sz,
GB_AttribType  type,
GEO_AttributeOwner  dictionary,
float  ladefault = 0.0F 
)

void SOP_Node::addSystemError ( const char *  msg = 0  )  [inline, protected]

Definition at line 835 of file SOP_Node.h.

void SOP_Node::addWarning ( SOP_ErrorCodes  code,
const char *  msg = 0 
) [inline, protected]

Examples:
SOP/SOP_HDKObject.C, SOP/SOP_PrimVOP.C, and SOP/SOP_Star.C.

Definition at line 829 of file SOP_Node.h.

static bool SOP_Node::approveUserAttribsOnlyCB ( const GB_Attribute atr,
void *  data 
) [static]

approval method for including only user attributes

static int SOP_Node::buildBreakpointGroupsFromSop ( SOP_Node src_sop,
PRM_Parm parm,
const PRM_SpareData spare,
bool  addprim,
int  start,
PRM_Name menuEntries,
int  thelistsize 
) [static]

static int SOP_Node::buildEdgeGroupsFromSop ( SOP_Node src_sop,
PRM_Parm parm,
const PRM_SpareData spare,
bool  addprim,
int  start,
PRM_Name menuEntries,
int  thelistsize 
) [static]

static void SOP_Node::buildGroupsFromSop ( SOP_Node src_sop,
PRM_Parm parm,
const PRM_SpareData spare,
unsigned  type,
int  start,
PRM_Name menuEntries,
int  thelistsize 
) [static]

int SOP_Node::buildInputBreakpointGroups ( int  sourcenum,
PRM_Name choicenames,
int  menusize,
bool  addprim,
int  start,
PRM_Parm parm 
)

int SOP_Node::buildInputEdgeGroups ( int  sourcenum,
PRM_Name choicenames,
int  menusize,
bool  addprim,
int  start,
PRM_Parm parm 
)

void SOP_Node::buildInputGroups ( int  thesourcenum,
PRM_Name thechoicenames,
int  themenusize,
unsigned  type,
int  start,
bool  includeselection,
PRM_Parm parm 
)

void SOP_Node::buildNamedPrims ( int  thesourcenum,
PRM_Name thechoicenames,
int  themenusize,
PRM_Parm parm,
bool  globvectors,
bool  numberedvolumes 
)

static void SOP_Node::buildOperatorTable ( OP_OperatorTable table  )  [static]

virtual OP_ERROR SOP_Node::bypassMe ( OP_Context context,
int &  copied_input 
) [protected, virtual]

Implements OP_Node.

void SOP_Node::cacheVarPrimBox ( int  gpdidx  ) 

void SOP_Node::cacheVarPtBox ( int  gpdidx  ) 

OP_ERROR SOP_Node::checkChangedSourceFlags ( unsigned  idx,
OP_Context ctx,
int *  changed 
) [protected]

Checks if a duplication will occur on the next call to duplicateChangedSource().

Similar to useInputSource() except it doesn't affect the flags. It's used to simply query whether the given input has changed. Returns false if there's errors on the input. Upon return, changed is updated.

virtual void SOP_Node::checkInputChanged ( int  parm_index,
int  group_type_index,
GU_DetailGroupPair detail_group_pair,
GU_Detail pgdp,
const GB_BaseGroup group 
) [protected, virtual]

void SOP_Node::clearCurGdh ( int  index  ) 

void SOP_Node::clearInstance ( int  duplicate = 0  )  [protected]

This is only called when the instance flag is set. The gdp will be modified shortly after this function is called. After the return, the gdp member data should contain an empty (or full) GU_Detail. Setting the duplicate flag will duplicate the current gdp in the new one. This used to require one to derive from it to clear references to myInstanceOp. This is now handled at this level.

void SOP_Node::clearInstanceReference ( SOP_Node node  ) 

void SOP_Node::clearSelection ( GU_SelectionType  stype  ) 

void SOP_Node::clearSelection ( void   ) 

Examples:
SOP/SOP_CopRaster.C.

virtual void SOP_Node::clearUniqueId (  )  [protected, virtual]

Reimplemented from OP_Node.

void SOP_Node::convertPivotAboutGroupCentroid ( PRM_Parm grppivot_parm,
int  pivot_parm_idx,
const UT_Vector3 centroid = 0 
) [protected]

Methods for dealing with group centroid.

OP_ERROR SOP_Node::cookGuide1 ( OP_Context context  ) 

OP_ERROR SOP_Node::cookGuide2 ( OP_Context context  ) 

OP_ERROR SOP_Node::cookGuideList ( OP_Context context,
UT_RefArray< GU_DetailHandle > &  list 
)

virtual OP_ERROR SOP_Node::cookInputAllGroups ( OP_Context context,
const GB_BaseGroup *&  group,
GU_DetailGroupPair detail_group_pair,
int  alone = 0,
bool  do_selection = true,
int  input_index = 0,
int  parm_index = 0,
int  group_type_index = -1,
bool  allow_reference = false,
bool  is_default_prim = true,
bool  fetchgdp = true,
GU_Detail pgdp = NULL 
) [protected, virtual]

See cookInputPrimitiveGroups. Also, is_default_prim only affects cases when we're not able to guess the type of groups; in those cases, we try again with primitive groups if is_default_prim is true, and point groups otherwise.

virtual OP_ERROR SOP_Node::cookInputEdgeGroups ( OP_Context context,
const GB_EdgeGroup *&  group,
GU_DetailGroupPair detail_group_pair,
int  alone = 0,
bool  do_selection = true,
int  input_index = 0,
int  parm_index = 0,
int  group_type_index = -1,
bool  allow_reference = false,
bool  fetchgdp = true,
GU_Detail pgdp = NULL 
) [protected, virtual]

See cookInputPrimitiveGroups.

virtual OP_ERROR SOP_Node::cookInputPointGroups ( OP_Context context,
const GB_PointGroup *&  group,
GU_DetailGroupPair detail_group_pair,
int  alone = 0,
bool  do_selection = true,
int  input_index = 0,
int  parm_index = 0,
int  group_type_index = -1,
bool  allow_reference = true,
bool  fetchgdp = true,
GU_Detail pgdp = NULL 
) [protected, virtual]

See cookInputPrimitiveGroups.

Examples:
SOP/SOP_CustomBrush.C, SOP/SOP_PointWave.C, and SOP/SOP_TimeCompare.C.

virtual OP_ERROR SOP_Node::cookInputPrimitiveGroups ( OP_Context context,
const GB_PrimitiveGroup *&  group,
GU_DetailGroupPair detail_group_pair,
int  alone = 0,
bool  do_selection = true,
int  input_index = 0,
int  parm_index = 0,
int  group_type_index = -1,
bool  allow_reference = true,
bool  fetchgdp = true,
GU_Detail pgdp = NULL 
) [protected, virtual]

The cookInput.+Groups functions are helper functions that look at your Group Name and Group Type parameters (the offsets for which are passed in parm_index, for Group Name, and group_type_index, for group_type), evaluate them, and then call parse.+Group on that group name. For every method other than cookInputAllGroups, group_type_index is used only to determine whether the parm is dirty. The pointer group is set as a return value, and detail_group_pair is also initialized if the parms are dirty. detail_group_pair can be used later as an argument to checkInputChanged. If alone is true, we are cooking for a selector, and can't assume that our gdp is valid (because it might not have been constructed by now). If allow_reference is true, the group returned may not be modified. If fetchgdp is true and alone is true, these new groups will be created on the input_index-th input (because the gdp isn't constructed yet). If fetchgdp is true and alone is false, false, groups will be constructed on the current gdp. If fetchgdp is false, you must supply a gdp to create groups on in the paramerer pgdp.

virtual OP_ERROR SOP_Node::cookMe ( OP_Context context  )  [protected, virtual]

Implements OP_Node.

virtual OP_ERROR SOP_Node::cookMyGuide1 ( OP_Context context  )  [protected, virtual]

virtual OP_ERROR SOP_Node::cookMyGuide2 ( OP_Context context  )  [protected, virtual]

Reimplemented in SOP_Lattice.

virtual OP_ERROR SOP_Node::cookMyGuideList ( OP_Context context,
UT_RefArray< GU_DetailHandle > &  list 
) [protected, virtual]

virtual OP_ERROR SOP_Node::cookMySop ( OP_Context context  )  [protected, pure virtual]

virtual void* SOP_Node::copyNodeData ( void *   )  [protected, virtual]

Reimplemented from OP_Node.

bool SOP_Node::copyTempSelections ( OP_Context context,
SOP_Node src 
)

GB_BreakpointGroup* SOP_Node::createAdhocBreakpointGroup ( GU_Detail geo,
const char *  p = "adhoc" 
) [inline, protected]

Definition at line 981 of file SOP_Node.h.

GB_EdgeGroup* SOP_Node::createAdhocEdgeGroup ( GU_Detail geo,
const char *  p = "adhoc" 
) [inline, protected]

Definition at line 975 of file SOP_Node.h.

GB_PointGroup* SOP_Node::createAdhocPointGroup ( GU_Detail geo,
const char *  p = "adhoc" 
) [inline, protected]

Definition at line 972 of file SOP_Node.h.

GB_PrimitiveGroup* SOP_Node::createAdhocPrimGroup ( GU_Detail geo,
const char *  p = "adhoc" 
) [inline, protected]

Create an ahdoc (internal) group and add it to the list of adhoc groups. The group will be deleted for you after cooking.

Definition at line 969 of file SOP_Node.h.

GB_VertexGroup* SOP_Node::createAdhocVertexGroup ( GU_Detail geo,
const char *  p = "adhoc" 
) [inline, protected]

Definition at line 978 of file SOP_Node.h.

const GU_DetailHandle& SOP_Node::curGdh ( int  index  )  const [inline]

Definition at line 283 of file SOP_Node.h.

const GEO_Point* SOP_Node::curPoint ( int  index  )  const [inline]

Definition at line 295 of file SOP_Node.h.

UT_BoundingBox SOP_Node::curPointBBox ( int  index  )  [inline]

Definition at line 302 of file SOP_Node.h.

const GEO_Primitive* SOP_Node::curPrim ( int  index  )  const [inline]

Definition at line 298 of file SOP_Node.h.

UT_BoundingBox SOP_Node::curPrimBBox ( int  index  )  [inline]

Definition at line 310 of file SOP_Node.h.

const GEO_Vertex* SOP_Node::curVertex ( int  index  )  const [inline]

Definition at line 292 of file SOP_Node.h.

int SOP_Node::curVertexNum ( int  index  )  const [inline]

Definition at line 289 of file SOP_Node.h.

virtual void SOP_Node::deleteCookedData ( void   )  [protected, virtual]

Implements OP_Node.

virtual int SOP_Node::deleteNodeData ( void *   )  [protected, virtual]

Reimplemented from OP_Node.

int SOP_Node::destroyAdhocGroup ( const GB_BaseGroup group  )  [inline]

Definition at line 558 of file SOP_Node.h.

void SOP_Node::destroyAdhocGroups ( const GU_Detail g  )  [inline]

Definition at line 562 of file SOP_Node.h.

void SOP_Node::destroyAdhocGroups ( void   )  [inline]

Examples:
SOP/SOP_Flatten.C.

Definition at line 560 of file SOP_Node.h.

int SOP_Node::destroySelection ( void   ) 

OP_ERROR SOP_Node::duplicateChangedSource ( unsigned  idx,
OP_Context ctx,
GU_Topology tp,
int *  changed = 0 
) [inline, protected]

Only duplicates the source if the source has changed based on input topology.

Definition at line 1072 of file SOP_Node.h.

OP_ERROR SOP_Node::duplicateChangedSource ( unsigned  idx,
OP_Context ctx,
GU_Topology tp,
int *  changed,
GU_Detail gdp,
int  clean = 1 
) [protected]

Only duplicates the source if the source has changed based on input topology.

OP_ERROR SOP_Node::duplicateChangedSource ( unsigned  idx,
OP_Context ctx,
int *  changed = 0,
bool  force = false 
) [protected]

Only duplicates the source if the source has changed since the last call to this method.

Examples:
SOP/SOP_BrushHairLen.C, SOP/SOP_CustomBrush.C, and SOP/SOP_IKSample.C.

OP_ERROR SOP_Node::duplicatePointSource ( unsigned  index,
OP_Context ctx 
) [inline, protected]

Definition at line 1028 of file SOP_Node.h.

OP_ERROR SOP_Node::duplicatePointSource ( unsigned  index,
OP_Context ctx,
GU_Detail gdp,
int  clean = 1,
bool  wattrib = true,
bool *  fully = 0 
) [protected]

Only duplicates the source if the source has changed. Otherwise, it copies the points from the source to our gdp. It's meant to be used by most deformer SOPs, which simply transform the points and or the primitives. We check if any primitive vector attributes are present and if any point attribs exist if wattrib is true.

NOTE: Do not use this if you are creating or destroying point attributes. Its test is only that source size == dest size so is easily fooled.

NOTE: While this takes a gdp to operate on, if it is not the SOP's own gdp, it will just do a duplicateSource.

Examples:
SOP/SOP_PointWave.C.

OP_ERROR SOP_Node::duplicateSource ( unsigned  index,
OP_Context context 
) [inline, protected]

Definition at line 1009 of file SOP_Node.h.

OP_ERROR SOP_Node::duplicateSource ( unsigned  index,
OP_Context context,
GU_Detail gdp,
int  clean = 1 
) [protected]

The duplicate*Source methods take a context paramter but do not use it for anything. The specified input must already be locked. The context used to lock the input is the context used for duplication.

Examples:
SOP/SOP_BlindData.C, SOP/SOP_BrushHairLen.C, SOP/SOP_CPPWave.C, SOP/SOP_DetailAttrib.C, SOP/SOP_Flatten.C, SOP/SOP_GroupRename.C, SOP/SOP_PrimVOP.C, and SOP/SOP_TimeCompare.C.

OP_ERROR SOP_Node::duplicateSourceGroup ( const GU_Detail src_gdp,
const GB_PrimitiveGroup primgroup,
GU_Detail dest_gdp = 0 
) [protected]

Only duplicates primitives in primgroup from src_gdp to dest_gdp.

void SOP_Node::expandGroupNames ( const char *  pattern,
UT_String outNames,
int  isPrims 
) [inline]

Definition at line 460 of file SOP_Node.h.

void SOP_Node::expandGroupNames ( const char *  pattern,
UT_String outNames,
int  isPrims,
GU_Detail pgdp 
)

int SOP_Node::fillAttribNameMenu ( PRM_Name menu_entries,
int  max_menu_size,
GEO_AttributeOwner  dictionary,
int  input_index,
bool(*)(const GB_Attribute *, void *)  approve = NULL,
void *  approve_data = NULL 
)

Method to help fill in the menu entries representing attributes It will iterate though the attributes of the 'dictionary' supplied from the input 'input_index'. The 'approve' filter callback is applied (if present) and if it returns ture for an attribute, this attribute is appended to the 'menu_entries'. If not present, all attributes are appended. The number of entries appended does not exceed 'max_menu_size' (including the terminating sentinel). 'menu_entries' are sorted alphabetically and the function returns the number of entries appended (excluding the terminating sentinel).

virtual void SOP_Node::fillInfoTreeNodeSpecific ( UT_InfoTree tree,
float  time 
) [virtual]

Fill in tree with this SOP's details.

Reimplemented from OP_Node.

Reimplemented in SOP_ForEach.

bool SOP_Node::forceValidGroupName ( UT_String name,
UT_ErrorSeverity  severity 
)

bool SOP_Node::forceValidGroupPrefix ( UT_String prefix,
UT_ErrorSeverity  severity 
)

virtual bool SOP_Node::getBoundingBox ( UT_BoundingBox box,
OP_Context ctx 
) [virtual]

Reimplemented from OP_Node.

static bool SOP_Node::getCaptureOverrideFlag (  )  [inline, static]

Definition at line 158 of file SOP_Node.h.

virtual const char* SOP_Node::getChildType (  )  const [virtual]

Reimplemented from OP_Network.

Reimplemented in HDK_Sample::SOP_PrimVOP, and HDK_Sample::SOP_CustomVop.

virtual OP_OpTypeId SOP_Node::getChildTypeID (  )  const [virtual]

Implements OP_Network.

Reimplemented in HDK_Sample::SOP_PrimVOP, and HDK_Sample::SOP_CustomVop.

virtual void* SOP_Node::getCookedData ( OP_Context ctx  )  [virtual]

Reimplemented from OP_Node.

virtual OP_DATA_TYPE SOP_Node::getCookedDataType (  )  const [virtual]

Implements OP_Node.

const GU_Detail* SOP_Node::getCookedGeo ( OP_Context ,
int  forced = 0 
)

GU_DetailHandle SOP_Node::getCookedGeoHandle ( OP_Context ,
int  forced = 0 
)

const SOP_Guide* SOP_Node::getCookedGuide1 (  )  const

const SOP_Guide* SOP_Node::getCookedGuide2 (  )  const

const GU_DetailHandle& SOP_Node::getCurGdh ( int  index  ) 

virtual const char* SOP_Node::getDefaultSelectedInfoTreeBranchName (  )  const [virtual]

This method has to do with 'fillInfoTreeNodeSpecific()' above. When the call to OP_Node::fillInfoTree() completes (which is what called fillInfoTreeNodeSpecific()), the UT_InfoTree 'tree' will be parsed and displayed in a dialog box by OPUI_OpInfoDialog, at which point, that class will want to ask us - which branch of the tree would you like to be selected by default when the dialog is displayed for the first time?

Reimplemented from OP_Node.

virtual void SOP_Node::getDragDropChoice ( DD_Source src,
DD_ChoiceList choices 
) [protected, virtual]

Reimplemented from OP_Node.

const SOP_NodeFlags& SOP_Node::getFlags (  )  const [inline]

Definition at line 103 of file SOP_Node.h.

virtual bool SOP_Node::getGroupCentroid ( OP_Context ,
UT_Vector3  
) [inline, protected, virtual]

subclasses override this to return the group centroid if they support it.

Reimplemented in SOP_Edit, SOP_UVEdit, and SOP_UVTransform.

Definition at line 1120 of file SOP_Node.h.

virtual GOP_GuideListType SOP_Node::getGuideListType (  )  const [inline, virtual]

Definition at line 430 of file SOP_Node.h.

virtual fpreal SOP_Node::getH (  )  const [virtual]

Absolute Height.

Reimplemented from OP_Node.

const GU_Detail* SOP_Node::getInputLastGeo ( int  input,
double  time 
)

const GU_Detail* SOP_Node::getLastGeo (  ) 

virtual int64 SOP_Node::getLoadedMemoryUsage (  )  const [virtual]

Returns the amount of memory used by this SOP, that will be unloaded by an unload call. Baseclass defaults to returning the GDP's data.

virtual int SOP_Node::getNetOverviewColor ( UT_Color color  )  [virtual]

Reimplemented from OP_Node.

virtual void SOP_Node::getNodeSpecificInfoText ( OP_Context context,
int  verbose,
UT_WorkBuffer text 
) [virtual]

Reimplemented from OP_Node.

Reimplemented in SOP_ForEach, SOP_MDD, and HDK_Sample::SOP_PrimVOP.

SOP_Node* SOP_Node::getObjectsSopNode ( const char *  objectName,
OP_Context context,
UT_Matrix4 xform = 0,
float *  rx = 0,
float *  ry = 0,
float *  rz = 0 
) [protected]

Method to get an object's sop (making sure it is up to date) It will optionally return information about the object if a pointer is passed.

virtual const char* SOP_Node::getOpType (  )  const [virtual]

Implements OP_Node.

virtual OP_OpTypeId SOP_Node::getOpTypeID (  )  const [virtual]

This returns the OP_OpTypeId which corresponds to this node type. Management nodes will return the type they really are, which is likely different than the network they currently reside in.

Implements OP_Node.

GB_PrimitiveGroup* SOP_Node::getPastedSurfaces ( GB_PrimitiveGroup *&  used  )  [inline, protected]

Definition at line 1088 of file SOP_Node.h.

GB_PrimitiveGroup* SOP_Node::getPastedSurfaces ( void   )  [inline, protected]

Convenience wrappers for several common pasting operations. The last method destroys both groups:

Definition at line 1084 of file SOP_Node.h.

int SOP_Node::getVariableOrder ( int  level  )  const

int SOP_Node::getVariablePrecedence ( int  var  )  const

virtual void SOP_Node::getVariableString ( int  index,
UT_String value,
int  thread 
) [virtual]

Reimplemented from OP_Parameters.

Reimplemented in HDK_Sample::SOP_PrimVOP.

Examples:
SOP/SOP_PrimVOP.C.

virtual float SOP_Node::getVariableValue ( int  index,
int  thread 
) [virtual]

Reimplemented from OP_Parameters.

Reimplemented in SOP_UVTransform, and HDK_Sample::SOP_Star.

bool SOP_Node::getVariableValueFP ( fpreal val,
int  index 
)

void SOP_Node::getVectorAttribOffsets ( const GB_AttributeDict dict,
const char *  attrib_string,
UT_RefArray< GB_AttributeRef > &  offsets,
UT_String bad_attribs 
) [protected]

parses the vector attrib parameter and fills offsets array attrib offsets

void SOP_Node::getVectorAttribOffsets ( const char *  attrib_names,
UT_RefArray< GB_AttributeRef > &  vertex_offsets,
UT_RefArray< GB_AttributeRef > &  point_offsets,
UT_RefArray< GB_AttributeRef > &  prim_offsets 
) [protected]

Obtains offsets to the point and primitive vector attributes. Only vector attributes are considered. NB: it needs access to the gdp, so use it only in the cook methods

virtual fpreal SOP_Node::getW (  )  const [virtual]

Absolute Width.

Reimplemented from OP_Node.

bool SOP_Node::hasCookedSelection ( void   )  const [inline]

Definition at line 608 of file SOP_Node.h.

static void SOP_Node::initializeExpressions (  )  [static]

Reimplemented from OP_Node.

virtual void SOP_Node::inputConnectChanged ( int  which_input  )  [protected, virtual]

Reimplemented from OP_Network.

const GU_Detail* SOP_Node::inputGeo ( int  index  )  const [protected]

const GU_Detail* SOP_Node::inputGeo ( int  index,
OP_Context  
) [inline, protected]

GU_DetailHandle SOP_Node::inputGeoHandle ( int  index  )  const [protected]

virtual int SOP_Node::isCookingRender (  )  const [inline, virtual]

Reimplemented from OP_Node.

Definition at line 106 of file SOP_Node.h.

bool SOP_Node::isLoaded (  )  const [virtual]

Returns whether this node currently has cooked data or not.

Reimplemented from OP_Node.

virtual bool SOP_Node::load ( UT_IStream is,
const char *  extension,
const char *  path = 0 
) [protected, virtual]

virtual OP_ERROR SOP_Node::lockInput ( unsigned  idx,
OP_Context context 
) [virtual]

Reimplemented from OP_Node.

Examples:
SOP/SOP_TimeCompare.C.

virtual OP_ERROR SOP_Node::lockInputs ( OP_Context context  )  [virtual]

void SOP_Node::makeInstanceOf ( SOP_Node node  ) 

This makes *this an instance of node. It must be called within a cookMySop. myGdpHandle is assumed to have an active write lock. this->gdp is updated to point to the new gdp. It is assumed that clearInstance() has already been called. The node that you pass in must be cooked prior to instancing! This has occured for free if it was lockInputed. Otherwise, one must use getCookedGeoHandle to cook the SOP.

void SOP_Node::makePreserveRequest (  ) 

A hint to this node that it is about to be cooked at an unexpected time so shouldn't reuse the existing GDP. Should not be used without understanding the consequences.

GU_Selection* SOP_Node::newSelection ( const GB_BaseGroup group  )  [protected]

GU_Selection* SOP_Node::newSelection ( GU_SelectionType  stype  )  [protected]

Return a fresh, empty selection given the specified criterion. The new selection is not assigned to the gdp's selection. This selection reflects the geometry modified by the sop.

virtual void SOP_Node::opChanged ( OP_EventType  reason,
void *  data = 0 
) [virtual]

Reimplemented from OP_Node.

Reimplemented in HDK_Sample::SOP_PrimVOP.

const GB_BaseGroup* SOP_Node::parseAllGroups ( const char *  pattern  )  [inline]

Definition at line 541 of file SOP_Node.h.

const GB_BaseGroup* SOP_Node::parseAllGroups ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1,
int  ordered = 1,
unsigned int  mask = GBGROUP 
)

GB_BaseGroup* SOP_Node::parseAllGroupsCopy ( const char *  pattern  )  [inline]

Definition at line 549 of file SOP_Node.h.

GB_BaseGroup* SOP_Node::parseAllGroupsCopy ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1,
int  ordered = 1,
unsigned int  mask = GBGROUP 
)

const GB_BreakpointGroup* SOP_Node::parseBreakpointGroups ( const char *  pattern  )  [inline]

Definition at line 516 of file SOP_Node.h.

const GB_BreakpointGroup* SOP_Node::parseBreakpointGroups ( const char *  pattern,
GU_Detail pgdp,
bool  strict = true,
int  offset = 0 
)

GB_BreakpointGroup* SOP_Node::parseBreakpointGroupsCopy ( const char *  pattern  )  [inline]

Definition at line 521 of file SOP_Node.h.

GB_BreakpointGroup* SOP_Node::parseBreakpointGroupsCopy ( const char *  pattern,
GU_Detail pgdp 
)

int SOP_Node::parseEachGroup ( const char *  pattern,
GroupOperation  operation,
void *  data,
int  isPrim,
GU_Detail pgdp = 0,
bool  strict = false,
bool  allow_adhoc = false 
) [protected]

Do the operation on a per group basis instead of unioning them together.

const GB_EdgeGroup* SOP_Node::parseEdgeGroups ( const char *  pattern  )  [inline]

Definition at line 504 of file SOP_Node.h.

const GB_EdgeGroup* SOP_Node::parseEdgeGroups ( const char *  pattern,
GU_Detail pgdp,
bool  strict = true,
int  prim_offset = 0,
int  point_offset = 0 
)

GB_EdgeGroup* SOP_Node::parseEdgeGroupsCopy ( const char *  pattern  )  [inline]

Definition at line 509 of file SOP_Node.h.

GB_EdgeGroup* SOP_Node::parseEdgeGroupsCopy ( const char *  pattern,
GU_Detail pgdp 
)

int SOP_Node::parseGroups ( const char *  pattern,
GU_Detail gdp,
const GB_PrimitiveGroup *&  prim,
const GB_PointGroup *&  points,
bool  strict = false 
) [protected]

WARNING: The groups returned are const and should not be modified.

int SOP_Node::parseGroupsCopy ( const char *  pattern,
GU_Detail gdp,
GB_PrimitiveGroup *&  prim,
GB_PointGroup *&  points,
int  unify,
bool  strict = false 
) [protected]

const GB_BaseGroup* SOP_Node::parseInputGroup ( const UT_String groupname,
int  grouptype,
GU_Detail gdp,
bool  allow_reference,
bool  is_default_prim 
) [protected]

Parse the input group specified by groupname, of type grouptype, in detail gdp. If allow_reference is true, this group cannot be later modified. If is_default_prim is true, if the group's type cannot be guessed, we'll try with a primitive group; otherwise, we'll try with a point group.

const GB_PointGroup* SOP_Node::parsePointGroups ( const char *  pattern  )  [inline]

Definition at line 488 of file SOP_Node.h.

const GB_PointGroup* SOP_Node::parsePointGroups ( const char *  pattern,
GU_Detail pgdp,
int  allow_numeric = 1,
int  ordered = 1,
bool  strict = false,
int  offset = 0 
)

Examples:
SOP/SOP_Flatten.C.

GB_PointGroup* SOP_Node::parsePointGroupsCopy ( const char *  pattern  )  [inline]

Definition at line 496 of file SOP_Node.h.

GB_PointGroup* SOP_Node::parsePointGroupsCopy ( const char *  pattern,
GU_Detail pgdp,
int  allow_numeric = 1,
int  ordered = 1,
bool  strict = false 
)

const GB_PrimitiveGroup* SOP_Node::parsePrimitiveGroups ( const char *  pattern  )  [inline]

Definition at line 471 of file SOP_Node.h.

const GB_PrimitiveGroup* SOP_Node::parsePrimitiveGroups ( const char *  pattern,
GU_Detail pgdp,
int  allow_numeric = 1,
int  ordered = 1,
bool  strict = false,
int  offset = 0 
)

GB_PrimitiveGroup* SOP_Node::parsePrimitiveGroupsCopy ( const char *  pattern  )  [inline]

Definition at line 479 of file SOP_Node.h.

GB_PrimitiveGroup* SOP_Node::parsePrimitiveGroupsCopy ( const char *  pattern,
GU_Detail pgdp,
int  allow_numeric = 1,
int  ordered = 1,
bool  strict = false 
)

const GB_VertexGroup* SOP_Node::parseVertexGroups ( const char *  pattern  )  [inline]

Definition at line 528 of file SOP_Node.h.

const GB_VertexGroup* SOP_Node::parseVertexGroups ( const char *  pattern,
GU_Detail pgdp,
bool  strict = true,
int  offset = 0 
)

GB_VertexGroup* SOP_Node::parseVertexGroupsCopy ( const char *  pattern  )  [inline]

Definition at line 533 of file SOP_Node.h.

GB_VertexGroup* SOP_Node::parseVertexGroupsCopy ( const char *  pattern,
GU_Detail pgdp 
)

virtual OP_ERROR SOP_Node::pubCookInputGroups ( OP_Context context,
int  alone = 0 
) [protected, virtual]

Reimplemented from OP_Node.

void SOP_Node::refreshGdp (  )  [protected]

int SOP_Node::removeAdhocGroup ( const GB_BaseGroup group  )  [inline, protected]

Definition at line 687 of file SOP_Node.h.

void SOP_Node::removeAdhocGroups (  )  [inline, protected]

Definition at line 689 of file SOP_Node.h.

static void SOP_Node::removeMenuDuplicates ( PRM_Name menuEntries,
int  size 
) [static]

utility method for pruning the duplicate entries in a sorted menu

void SOP_Node::resetChangedSourceFlags (  )  [protected]

Forces duplicateChangedSource() to do the duplication on its next call.

Examples:
SOP/SOP_CustomBrush.C.

void SOP_Node::resetLocalVarRefs (  ) 

Examples:
SOP/SOP_Flatten.C.

virtual void SOP_Node::resetSimulation ( void   )  [inline, virtual]

Definition at line 619 of file SOP_Node.h.

virtual const CH_LocalVariable* SOP_Node::resolveExtraVariableForSyntaxHighlight ( const char *  name  )  [virtual]

Reimplemented from OP_Node.

virtual const CH_LocalVariable* SOP_Node::resolveVariable ( const char *  name  )  [virtual]

Reimplemented from OP_Node.

virtual OP_ERROR SOP_Node::save ( ostream &  os,
const OP_SaveFlags flags,
const char *  pathPrefix 
) [protected, virtual]

void SOP_Node::select ( GEO_Point point,
int  point_sel = 1,
int  add_to_sel = 0 
)

void SOP_Node::select ( GEO_Primitive prim,
int  sel_prim = 1,
int  add_to_sel = 0 
)

void SOP_Node::select ( const GB_BaseGroup group,
int  use_gtype = 1,
int  add_to_sel = 0 
)

void SOP_Node::select ( GU_SelectionType  stype  ) 

void SOP_Node::select ( void   ) 

void SOP_Node::selectFrom ( GEO_Point point,
int  point_sel = 1,
int  add_to_sel = 0 
)

void SOP_Node::selectFrom ( GEO_Primitive prim,
int  sel_prim = 1,
int  add_to_sel = 0 
)

void SOP_Node::selectInputGroup ( GB_BaseGroup group,
int  grouptype 
)

int SOP_Node::selectionEnabled ( void   )  const [inline]

Definition at line 603 of file SOP_Node.h.

static void SOP_Node::setCaptureOverrideFlag ( bool  flag  )  [inline, static]

Definition at line 154 of file SOP_Node.h.

void SOP_Node::setCurGdh ( int  index,
const GU_DetailHandle gdh 
)

Examples:
SOP/SOP_Flatten.C.

virtual void SOP_Node::setForceCapture ( int   )  [inline, virtual]

Reimplemented in SOP_CaptureBase.

Definition at line 641 of file SOP_Node.h.

virtual int SOP_Node::setModelLock ( int  lock_type,
void *  modeler = 0,
int  allow_softlock_promotion = 0,
UT_Undo undo = 0 
) [virtual]

Reimplemented from OP_Node.

void SOP_Node::setPivotParmToGroupCentroid ( OP_Context context  ) 

virtual void SOP_Node::setUniqueId ( int  id  )  [protected, virtual]

Reimplemented from OP_Node.

void SOP_Node::setupLocalVars (  ) 

Examples:
SOP/SOP_Flatten.C.

void SOP_Node::setUsesSOPLocalVar (  )  [inline]

Definition at line 1247 of file SOP_Node.h.

void SOP_Node::setVariableOrder ( int  detail,
int  prim,
int  pt,
int  vtx 
)

Examples:
SOP/SOP_Flatten.C.

virtual void SOP_Node::setVisualization ( int   )  [inline, virtual]

void SOP_Node::setVisualizeCallback ( sopVisualizeCallback callback,
void *  data 
)

virtual bool SOP_Node::shouldResetGeoToEmpty (  )  const [inline, protected, virtual]

In between cooks, the gdp pointer might be reset by the cooking engine (eg. if its gdp was instanced by some other SOP). If this function returns true, then it will be reset to an empty gdp. If this function returns false, then the contents of the old gdp will be duplicated into the new gdp. SOPs performing simulation which rely on the cooked contents of its gdp from the last frame should override this to return false.

Definition at line 1001 of file SOP_Node.h.

void SOP_Node::subdivideMixPrimitiveGroup ( GroupOperation  operation,
const GB_PrimitiveGroup group,
void *  data,
int  optype,
int  opstep,
const char *  oplabel,
GU_Detail gdp = 0 
) [protected]

void SOP_Node::subdividePointGroup ( GroupOperation  operation,
const GB_PointGroup group,
void *  data,
int  optype,
int  opstep,
const char *  oplabel,
GU_Detail gdp = 0 
) [protected]

void SOP_Node::subdividePrimitiveGroup ( GroupOperation  operation,
const GB_PrimitiveGroup group,
void *  data,
int  optype,
int  opstep,
const char *  oplabel,
GU_Detail gdp = 0 
) [protected]

Take an optional group and subdivide it into smaller groups as input to operation

virtual int SOP_Node::testDragDrop ( DD_Source src  )  [protected, virtual]

Reimplemented from OP_Node.

virtual bool SOP_Node::unloadData (  )  [virtual]

Reimplemented from OP_Node.

Reimplemented in SOP_BrushBase, SOP_Edit, and SOP_Lattice.

virtual void SOP_Node::unloadDataHack (  )  [virtual]

Do not use this function! Using it will likely cause crashes.

Reimplemented in SOP_BrushBase, and SOP_Edit.

void SOP_Node::unlockInput ( unsigned  idx  )  [virtual]

Reimplemented from OP_Node.

Examples:
SOP/SOP_TimeCompare.C.

void SOP_Node::unlockInputs (  )  [virtual]

int SOP_Node::updatePastedDependents ( GB_PrimitiveGroup all,
GB_PrimitiveGroup used 
) [inline, protected]

Definition at line 1105 of file SOP_Node.h.

void SOP_Node::updatePastedDisplacement ( const GEO_Point ppt,
const GB_PrimitiveGroup all,
GB_PrimitiveGroup used 
) [inline, protected]

Definition at line 1094 of file SOP_Node.h.

int SOP_Node::updatePastedDisplacements ( void   )  [inline, protected]

Definition at line 1100 of file SOP_Node.h.

bool SOP_Node::useInputSource ( unsigned  idx,
bool &  changed,
bool  force 
) [inline, protected]

Mark the given input as used for cooking by this node.

This updates source flags to mark the input as now clean, returning whether the input has changed since the last time this function was called. If force is true, then we treat the input as always dirty. Returns false if the input has errors.

Note:
duplicateChangedSource() calls this function.

Definition at line 1060 of file SOP_Node.h.

virtual bool SOP_Node::usesFootprint (  )  const [inline, virtual]

Reimplemented from OP_Node.

Definition at line 138 of file SOP_Node.h.

float SOP_Node::varCallbackBB ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackCE ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackLIFE ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackMAX ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackMIN ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackNPR ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackNPT ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackNVTX ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackPR ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackPT ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackSIZE ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackT ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackVTX ( sopVarInfo varinfo  ) 

float SOP_Node::varCallbackWEIGHT ( sopVarInfo varinfo  ) 


Friends And Related Function Documentation

friend class SOP_CacheData [friend]

Definition at line 1225 of file SOP_Node.h.

friend class SOP_CacheManager [friend]

Definition at line 1224 of file SOP_Node.h.

friend class SOP_UndoModel [friend]

Definition at line 1223 of file SOP_Node.h.


Member Data Documentation

We want these public as we it is perfectly fine to use them in static parm templates. This occurs, for example, when instancing multiparms.

Definition at line 858 of file SOP_Node.h.

Definition at line 863 of file SOP_Node.h.

Definition at line 862 of file SOP_Node.h.

GU_Detail* SOP_Node::gdp [protected]

During cooks, myGdpHandle is writelocked and stored in the gdp variable. This is to provide backwards compatibility. The gdp variable should not be trusted or accessed elsewhere.

Examples:
SOP/SOP_BrushHairLen.C, SOP/SOP_CopRaster.C, SOP/SOP_CPPWave.C, SOP/SOP_CustomBrush.C, SOP/SOP_DetailAttrib.C, SOP/SOP_Flatten.C, SOP/SOP_GroupRename.C, SOP/SOP_HDKObject.C, SOP/SOP_IKSample.C, SOP/SOP_NURBS.C, SOP/SOP_PointWave.C, SOP/SOP_PrimVOP.C, SOP/SOP_SParticle.C, SOP/SOP_Star.C, SOP/SOP_Surface.C, and SOP/SOP_TimeCompare.C.

Definition at line 1146 of file SOP_Node.h.

Examples:
SOP/SOP_GroupRename.C.

Definition at line 859 of file SOP_Node.h.

This is all the old attribute information, one for each of the dictionary types... If this (including the order) matches the new attribute data, no offsets will have changed.

Definition at line 1287 of file SOP_Node.h.

int SOP_Node::myCurBuiltPrimBox[2] [protected]

Definition at line 1276 of file SOP_Node.h.

int SOP_Node::myCurBuiltPtBox[2] [protected]

Definition at line 1274 of file SOP_Node.h.

int SOP_Node::myCurGdpVal [protected]

Definition at line 1279 of file SOP_Node.h.

const GEO_Primitive* SOP_Node::myCurPrim[2] [protected]

Definition at line 1273 of file SOP_Node.h.

Definition at line 1277 of file SOP_Node.h.

const GEO_Point* SOP_Node::myCurPt[2] [protected]

Examples:
SOP/SOP_Flatten.C.

Definition at line 1272 of file SOP_Node.h.

Definition at line 1275 of file SOP_Node.h.

Definition at line 1283 of file SOP_Node.h.

const GEO_Vertex* SOP_Node::myCurVtx[2] [protected]

Definition at line 1270 of file SOP_Node.h.

int SOP_Node::myCurVtxNum[2] [protected]

Definition at line 1271 of file SOP_Node.h.

The gdp handle provides a indirect reference to the current gdp of this SOP.

Examples:
SOP/SOP_Flatten.C.

Definition at line 1141 of file SOP_Node.h.

SOP_Guide* SOP_Node::myGuide1 [protected]

Examples:
SOP/SOP_Flatten.C.

Definition at line 1147 of file SOP_Node.h.

SOP_Guide* SOP_Node::myGuide2 [protected]

Definition at line 1148 of file SOP_Node.h.

Definition at line 1252 of file SOP_Node.h.

int SOP_Node::myLocalVarOrder [protected]

Definition at line 1253 of file SOP_Node.h.

Cached values so we can tell if we have to rebuild.

Definition at line 1282 of file SOP_Node.h.

Local variable items:.

Definition at line 1251 of file SOP_Node.h.

Definition at line 1149 of file SOP_Node.h.

bool SOP_Node::myUsesSOPLocalVar [protected]

Tracks if any expression has triggered a local variable, like $PT, etc. If this is false, it is safe to only evaluate the parm once for all subtypes. The higher level code is expected to clear this flag, evaluate their relevant parms, and then test this flag.

Definition at line 1260 of file SOP_Node.h.

Definition at line 1288 of file SOP_Node.h.

Definition at line 867 of file SOP_Node.h.

Definition at line 866 of file SOP_Node.h.

Definition at line 869 of file SOP_Node.h.

Definition at line 868 of file SOP_Node.h.

Definition at line 865 of file SOP_Node.h.

Examples:
SOP/SOP_BrushHairLen.C.

Definition at line 860 of file SOP_Node.h.

Definition at line 864 of file SOP_Node.h.

Definition at line 661 of file SOP_Node.h.

Definition at line 664 of file SOP_Node.h.

Definition at line 662 of file SOP_Node.h.

Definition at line 663 of file SOP_Node.h.


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

Generated on Mon Jan 28 00:30:01 2013 for HDK by  doxygen 1.5.9