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)
bool setupLocalVars ()
void resetLocalVarRefs ()
void setCurGdh (int index, const GU_DetailHandle &gdh)
void clearCurGdh (int index)
const GU_DetailHandlegetCurGdh (int index)
bool getVariableValueFP (fpreal &val, int index)
virtual bool evalVariableValue (fpreal &val, int index, int thread)
virtual bool evalVariableValue (UT_String &value, int index, int thread)
void addGenericVariable (const char *varname, GEO_Standard_Attributes attr, const AttribTupleIndexArg &tuple_idx, GA_StorageClass storage=GA_STORECLASS_REAL, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addGenericVariable (const char *varname, const char *attribname, const AttribTupleIndexArg &tuple_idx, GA_StorageClass storage=GA_STORECLASS_REAL, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addGenericVariable (const char *varname, int varidx, SOP_LocalVarFunc callback, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addGenericVariable (const GU_Detail *gdp, int gdpidx, const char *varname, const char *attribname, const AttribTupleIndexArg &tuple_idx, GA_StorageClass storage=GA_STORECLASS_REAL, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addGenericVariable (int gpdidx, const char *varname, int varidx, SOP_LocalVarFunc callback, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addSpecificVariable (const GU_Detail *gdp, int gdpidx, const char *varname, const char *attribname, const AttribTupleIndexArg &tuple_idx, GA_StorageClass storage, GEO_AttributeOwner dictionary, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addSpecificVariable (int gpidx, const char *varname, int varidx, GEO_AttributeOwner dictionary, SOP_LocalVarFunc callback, GA_Defaults const &defaults=GA_Defaults(0.0f))
void addCustomVariable (const char *attr, const char *varname)
void cacheVarPtBox (int gpdidx)
void cacheVarPrimBox (int gpdidx)
fpreal varCallbackT (sopVarInfo *varinfo)
fpreal varCallbackPT (sopVarInfo *varinfo)
fpreal varCallbackPR (sopVarInfo *varinfo)
fpreal varCallbackVTX (sopVarInfo *varinfo)
fpreal varCallbackNPT (sopVarInfo *varinfo)
fpreal varCallbackNPR (sopVarInfo *varinfo)
fpreal varCallbackNVTX (sopVarInfo *varinfo)
fpreal varCallbackCE (sopVarInfo *varinfo)
fpreal varCallbackMIN (sopVarInfo *varinfo)
fpreal varCallbackMAX (sopVarInfo *varinfo)
fpreal varCallbackSIZE (sopVarInfo *varinfo)
fpreal varCallbackLIFE (sopVarInfo *varinfo)
fpreal varCallbackBB (sopVarInfo *varinfo)
fpreal varCallbackWEIGHT (sopVarInfo *varinfo)
const GU_DetailHandlecurGdh (int index) const
int curVertexNum (int index) const
const GU_DetailcurGdp (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, const PRM_Parm *parm, bool globvectors, bool numberedvolumes)
void buildInputGroups (int thesourcenum, PRM_Name *thechoicenames, int themenusize, unsigned type, int start, bool includeselection, const PRM_Parm *parm)
int buildInputEdgeGroups (int sourcenum, PRM_Name *choicenames, int menusize, bool addprim, int start, const PRM_Parm *parm)
int buildInputBreakpointGroups (int sourcenum, PRM_Name *choicenames, int menusize, bool addprim, int start, const 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, fpreal 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 GA_PrimitiveGroupparsePrimitiveGroups (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false, int offset=0)
const GA_PrimitiveGroupparsePrimitiveGroups (const char *pattern)
GA_PrimitiveGroupparsePrimitiveGroupsCopy (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false)
GA_PrimitiveGroupparsePrimitiveGroupsCopy (const char *pattern)
const GA_PointGroupparsePointGroups (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false, int offset=0)
const GA_PointGroupparsePointGroups (const char *pattern)
GA_PointGroupparsePointGroupsCopy (const char *pattern, GU_Detail *pgdp, int allow_numeric=1, int ordered=1, bool strict=false)
GA_PointGroupparsePointGroupsCopy (const char *pattern)
const GA_EdgeGroupparseEdgeGroups (const char *pattern, GU_Detail *pgdp, bool strict=true, int prim_offset=0, int point_offset=0)
const GA_EdgeGroupparseEdgeGroups (const char *pattern)
GA_EdgeGroupparseEdgeGroupsCopy (const char *pattern, GU_Detail *pgdp)
GA_EdgeGroupparseEdgeGroupsCopy (const char *pattern)
const GA_BreakpointGroupparseBreakpointGroups (const char *pattern, GU_Detail *pgdp, bool strict=true, int offset=0)
const GA_BreakpointGroupparseBreakpointGroups (const char *pattern)
GA_BreakpointGroupparseBreakpointGroupsCopy (const char *pattern, GU_Detail *pgdp)
GA_BreakpointGroupparseBreakpointGroupsCopy (const char *pattern)
const GA_VertexGroupparseVertexGroups (const char *pattern, GU_Detail *pgdp, bool strict=true, int offset=0)
const GA_VertexGroupparseVertexGroups (const char *pattern)
GA_VertexGroupparseVertexGroupsCopy (const char *pattern, GU_Detail *pgdp)
GA_VertexGroupparseVertexGroupsCopy (const char *pattern)
const GA_GroupparseAllGroups (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1, int ordered=1, GA_GroupMaskType mask=GA_GMASK_FULL_MASK)
const GA_GroupparseAllGroups (const char *pattern)
GA_GroupparseAllGroupsCopy (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1, int ordered=1, GA_GroupMaskType mask=GA_GMASK_FULL_MASK)
GA_GroupparseAllGroupsCopy (const char *pattern)
int destroyAdhocGroup (const GA_Group *group)
void destroyAdhocGroups ()
void destroyAdhocGroups (const GU_Detail *g)
void select (void)
void select (GU_SelectionType stype)
void select (const GA_Group &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 (GA_Group *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 makeInstanceOf (GU_ConstDetailHandle gdh)
void makePreserveRequest ()
virtual void setVisualization (int)
virtual void setForceCapture (int)
virtual void getNodeSpecificInfoText (OP_Context &context, OP_NodeInfoParms &iparms)
virtual void fillInfoTreeNodeSpecific (UT_InfoTree &tree, fpreal 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 GA_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.
bool shouldUnload () const
 Returns if the sop cache manager will allow unloading.
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, const PRM_Parm *parm, const PRM_SpareData *spare, unsigned type, int start, PRM_Name *menuEntries, int thelistsize)
static int buildEdgeGroupsFromSop (SOP_Node *src_sop, const PRM_Parm *parm, const PRM_SpareData *spare, bool addprim, int start, PRM_Name *menuEntries, int thelistsize)
static int buildBreakpointGroupsFromSop (SOP_Node *src_sop, const 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 GA_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 GA_Group *group)
void removeAdhocGroups ()
virtual void markDetailDirty ()
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 GA_Group *group)
virtual OP_ERROR cookInputPrimitiveGroups (OP_Context &context, const GA_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 GA_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 GA_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 GA_Group *&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 GA_GroupparseInputGroup (const UT_String &groupname, int grouptype, GU_Detail *gdp, bool allow_reference, bool is_default_prim)
virtual void buildLocalVarNames (UT_StringArray &out_vars)
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)
void addCommonWarning (UT_CommonErrorCode what, const char *msg=0)
SOP_NodegetObjectsSopNode (const char *objectName, OP_Context &context, UT_Matrix4R *xform=0, fpreal *rx=0, fpreal *ry=0, fpreal *rz=0)
int parseGroups (const char *pattern, GU_Detail *gdp, const GA_PrimitiveGroup *&prim, const GA_PointGroup *&points, bool strict=false)
 WARNING: The groups returned are const and should not be modified.
int parseGroupsCopy (const char *pattern, GU_Detail *gdp, GA_PrimitiveGroup *&prim, GA_PointGroup *&points, int unify, bool strict=false)
void getVectorAttribOffsets (const char *attrib_names, UT_RefArray< GA_RWAttributeRef > &vertex_offsets, UT_RefArray< GA_RWAttributeRef > &point_offsets, UT_RefArray< GA_RWAttributeRef > &prim_offsets)
void getVectorAttribOffsets (const GA_AttributeDict &dict, const char *attrib_string, UT_RefArray< GA_RWAttributeRef > &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 GA_PrimitiveGroup *group, void *data, int optype, int opstep, const char *oplabel, GU_Detail *gdp=0)
void subdivideMixPrimitiveGroup (GroupOperation operation, const GA_PrimitiveGroup *group, void *data, int optype, int opstep, const char *oplabel, GU_Detail *gdp=0)
void subdividePointGroup (GroupOperation operation, const GA_PointGroup *group, void *data, int optype, int opstep, const char *oplabel, GU_Detail *gdp=0)
GA_PrimitiveGroupcreateAdhocPrimGroup (GU_Detail &geo, const char *p="adhoc")
GA_PointGroupcreateAdhocPointGroup (GU_Detail &geo, const char *p="adhoc")
GA_EdgeGroupcreateAdhocEdgeGroup (GU_Detail &geo, const char *p="adhoc")
GA_VertexGroupcreateAdhocVertexGroup (GU_Detail &geo, const char *p="adhoc")
GA_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)
bool copyPointPosFromSource (unsigned input_i, 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 GA_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 *)
GA_PrimitiveGroupgetPastedSurfaces (void)
GA_PrimitiveGroupgetPastedSurfaces (GA_PrimitiveGroup *&used)
void updatePastedDisplacement (const GEO_Point &ppt, const GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
int updatePastedDisplacements (void)
int updatePastedDependents (GA_PrimitiveGroup *all, GA_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 GA_Group &group)
void compactIndexPair (const char *name, GEO_AttributeOwner owner)
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
GA_Offset myCurVtxOff [2]
int myCurVtxNum [2]
GEO_Vertex myCurVtxVal [2]
GA_Offset myCurPtOff [2]
GA_Offset myCurPrimOff [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]
int myAttribCacheOffsetGdpId [2]
int myAttribCacheOffsetMetaCacheCount [2]
int myAttribCacheOffsetSelectCacheCount [2]
unsigned int myAttribCacheTotalDictSize [2]

Friends

class SOP_UndoModel
class SOP_CacheManager
class SOP_CacheData


Detailed Description

Examples:

euclid/SOP_Euclid.C, euclid/SOP_Euclid.h, field3d/ROP_Field3D.C, 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, tetprim/SOP_Tetra.C, tetprim/SOP_Tetra.h, VOP/VOP_CustomContext.C, and VOP/VOP_CustomContext.h.

Definition at line 95 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 873 of file SOP_Node.h.

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

Definition at line 876 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 868 of file SOP_Node.h.

void SOP_Node::addGenericVariable ( int  gpdidx,
const char *  varname,
int  varidx,
SOP_LocalVarFunc  callback,
GA_Defaults const &  defaults = GA_Defaults(0.0f) 
)

void SOP_Node::addGenericVariable ( const GU_Detail gdp,
int  gdpidx,
const char *  varname,
const char *  attribname,
const AttribTupleIndexArg tuple_idx,
GA_StorageClass  storage = GA_STORECLASS_REAL,
GA_Defaults const &  defaults = GA_Defaults(0.0f) 
)

void SOP_Node::addGenericVariable ( const char *  varname,
int  varidx,
SOP_LocalVarFunc  callback,
GA_Defaults const &  defaults = GA_Defaults(0.0f) 
)

void SOP_Node::addGenericVariable ( const char *  varname,
const char *  attribname,
const AttribTupleIndexArg tuple_idx,
GA_StorageClass  storage = GA_STORECLASS_REAL,
GA_Defaults const &  defaults = GA_Defaults(0.0f) 
)

void SOP_Node::addGenericVariable ( const char *  varname,
GEO_Standard_Attributes  attr,
const AttribTupleIndexArg tuple_idx,
GA_StorageClass  storage = GA_STORECLASS_REAL,
GA_Defaults const &  defaults = GA_Defaults(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 862 of file SOP_Node.h.

void SOP_Node::addSpecificVariable ( int  gpidx,
const char *  varname,
int  varidx,
GEO_AttributeOwner  dictionary,
SOP_LocalVarFunc  callback,
GA_Defaults const &  defaults = GA_Defaults(0.0f) 
)

void SOP_Node::addSpecificVariable ( const GU_Detail gdp,
int  gdpidx,
const char *  varname,
const char *  attribname,
const AttribTupleIndexArg tuple_idx,
GA_StorageClass  storage,
GEO_AttributeOwner  dictionary,
GA_Defaults const &  defaults = GA_Defaults(0.0f) 
)

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

Definition at line 871 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 865 of file SOP_Node.h.

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

approval method for including only user attributes

static int SOP_Node::buildBreakpointGroupsFromSop ( SOP_Node src_sop,
const 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,
const 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,
const 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,
const PRM_Parm parm 
)

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

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

virtual void SOP_Node::buildLocalVarNames ( UT_StringArray out_vars  )  [protected, virtual]

Retrieve a list of the local variables visible to this node. This list is unsorted and may contain duplicates.

Reimplemented from OP_Node.

void SOP_Node::buildNamedPrims ( int  thesourcenum,
PRM_Name thechoicenames,
int  themenusize,
const 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 GA_Group 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::compactIndexPair ( const char *  name,
GEO_AttributeOwner  owner 
) [protected]

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 GA_Group *&  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 GA_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 GA_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 GA_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::copyPointPosFromSource ( unsigned  input_i,
OP_Context ctx 
) [protected]

This copies all the point positions from the given input gdp into the current one.

Precondition:
input_i has already been locked via lockInput

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

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

Definition at line 1020 of file SOP_Node.h.

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

Definition at line 1014 of file SOP_Node.h.

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

Definition at line 1011 of file SOP_Node.h.

GA_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 1008 of file SOP_Node.h.

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

Definition at line 1017 of file SOP_Node.h.

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

Definition at line 290 of file SOP_Node.h.

const GU_Detail* SOP_Node::curGdp ( int  index  )  const [inline]

Definition at line 299 of file SOP_Node.h.

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

Definition at line 309 of file SOP_Node.h.

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

Definition at line 316 of file SOP_Node.h.

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

Definition at line 312 of file SOP_Node.h.

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

Definition at line 324 of file SOP_Node.h.

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

Definition at line 302 of file SOP_Node.h.

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

Definition at line 296 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 GA_Group group  )  [inline]

Definition at line 575 of file SOP_Node.h.

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

Definition at line 579 of file SOP_Node.h.

void SOP_Node::destroyAdhocGroups ( void   )  [inline]

Examples:
SOP/SOP_Flatten.C.

Definition at line 577 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 1117 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 1067 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 1048 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 GA_PrimitiveGroup primgroup,
GU_Detail dest_gdp = 0 
) [protected]

Only duplicates primitives in primgroup from src_gdp to dest_gdp.

virtual bool SOP_Node::evalVariableValue ( UT_String value,
int  index,
int  thread 
) [virtual]

virtual bool SOP_Node::evalVariableValue ( fpreal val,
int  index,
int  thread 
) [virtual]

Reimplemented from OP_Parameters.

Reimplemented in SOP_MDD, SOP_UVTransform, and HDK_Sample::SOP_Star.

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

Definition at line 477 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 GA_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,
fpreal  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 160 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 104 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 1165 of file SOP_Node.h.

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

Definition at line 447 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,
fpreal  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,
OP_NodeInfoParms iparms 
) [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_Matrix4R xform = 0,
fpreal rx = 0,
fpreal ry = 0,
fpreal 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.

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

Definition at line 1133 of file SOP_Node.h.

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

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

Definition at line 1129 of file SOP_Node.h.

int SOP_Node::getVariableOrder ( int  level  )  const

int SOP_Node::getVariablePrecedence ( int  var  )  const

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

void SOP_Node::getVectorAttribOffsets ( const GA_AttributeDict dict,
const char *  attrib_string,
UT_RefArray< GA_RWAttributeRef > &  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< GA_RWAttributeRef > &  vertex_offsets,
UT_RefArray< GA_RWAttributeRef > &  point_offsets,
UT_RefArray< GA_RWAttributeRef > &  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 625 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 107 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 ( GU_ConstDetailHandle  gdh  ) 

This makes us shallow copy the given gu_detailhandle. We are marked as a preserve request so with our next cook we will not re-use this gdp. This should be called while cooking - ie, gdp is locked. While you can alter gdp afterwards, it is a bad idea as you will also alter the source.

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.

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

This method is called at the conclusion of cooking to notify the gdp that it's data has changed. By default, this will call:

   gdp->incrementMetaCacheCount();
   gdp->cacheDirty();
Sub-classes may choose to send out more surgical cache changes on the gdp (member data).

GU_Selection* SOP_Node::newSelection ( const GA_Group 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 GA_Group* SOP_Node::parseAllGroups ( const char *  pattern  )  [inline]

Definition at line 558 of file SOP_Node.h.

const GA_Group* SOP_Node::parseAllGroups ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1,
int  ordered = 1,
GA_GroupMaskType  mask = GA_GMASK_FULL_MASK 
)

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

Definition at line 566 of file SOP_Node.h.

GA_Group* SOP_Node::parseAllGroupsCopy ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1,
int  ordered = 1,
GA_GroupMaskType  mask = GA_GMASK_FULL_MASK 
)

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

Definition at line 533 of file SOP_Node.h.

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

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

Definition at line 538 of file SOP_Node.h.

GA_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 GA_EdgeGroup* SOP_Node::parseEdgeGroups ( const char *  pattern  )  [inline]

Definition at line 521 of file SOP_Node.h.

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

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

Definition at line 526 of file SOP_Node.h.

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

int SOP_Node::parseGroups ( const char *  pattern,
GU_Detail gdp,
const GA_PrimitiveGroup *&  prim,
const GA_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,
GA_PrimitiveGroup *&  prim,
GA_PointGroup *&  points,
int  unify,
bool  strict = false 
) [protected]

const GA_Group* 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 GA_PointGroup* SOP_Node::parsePointGroups ( const char *  pattern  )  [inline]

Definition at line 505 of file SOP_Node.h.

const GA_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.

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

Definition at line 513 of file SOP_Node.h.

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

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

Definition at line 488 of file SOP_Node.h.

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

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

Definition at line 496 of file SOP_Node.h.

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

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

Definition at line 545 of file SOP_Node.h.

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

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

Definition at line 550 of file SOP_Node.h.

GA_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 GA_Group group  )  [inline, protected]

Definition at line 711 of file SOP_Node.h.

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

Definition at line 713 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 636 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 GA_Group 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 ( GA_Group group,
int  grouptype 
)

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

Definition at line 620 of file SOP_Node.h.

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

Definition at line 156 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 666 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.

bool SOP_Node::setupLocalVars (  ) 

Examples:
SOP/SOP_Flatten.C.

void SOP_Node::setUsesSOPLocalVar (  )  [inline]

Definition at line 1297 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 1040 of file SOP_Node.h.

bool SOP_Node::shouldUnload (  )  const

Returns if the sop cache manager will allow unloading.

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

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

void SOP_Node::subdividePrimitiveGroup ( GroupOperation  operation,
const GA_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 ( GA_PrimitiveGroup all,
GA_PrimitiveGroup used 
) [inline, protected]

Definition at line 1150 of file SOP_Node.h.

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

Definition at line 1139 of file SOP_Node.h.

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

Definition at line 1145 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 1105 of file SOP_Node.h.

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

Reimplemented from OP_Node.

Definition at line 139 of file SOP_Node.h.

fpreal SOP_Node::varCallbackBB ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackCE ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackLIFE ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackMAX ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackMIN ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackNPR ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackNPT ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackNVTX ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackPR ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackPT ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackSIZE ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackT ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackVTX ( sopVarInfo varinfo  ) 

fpreal SOP_Node::varCallbackWEIGHT ( sopVarInfo varinfo  ) 


Friends And Related Function Documentation

friend class SOP_CacheData [friend]

Definition at line 1275 of file SOP_Node.h.

friend class SOP_CacheManager [friend]

Definition at line 1274 of file SOP_Node.h.

friend class SOP_UndoModel [friend]

Definition at line 1273 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 897 of file SOP_Node.h.

Definition at line 902 of file SOP_Node.h.

Definition at line 901 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:
euclid/SOP_Euclid.C, 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 1191 of file SOP_Node.h.

Examples:
SOP/SOP_GroupRename.C.

Definition at line 898 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 1338 of file SOP_Node.h.

Definition at line 1340 of file SOP_Node.h.

Definition at line 1341 of file SOP_Node.h.

Definition at line 1342 of file SOP_Node.h.

unsigned int SOP_Node::myAttribCacheTotalDictSize[2] [protected]

Definition at line 1343 of file SOP_Node.h.

int SOP_Node::myCurBuiltPrimBox[2] [protected]

Definition at line 1327 of file SOP_Node.h.

int SOP_Node::myCurBuiltPtBox[2] [protected]

Definition at line 1325 of file SOP_Node.h.

int SOP_Node::myCurGdpVal [protected]

Definition at line 1330 of file SOP_Node.h.

Definition at line 1328 of file SOP_Node.h.

Definition at line 1324 of file SOP_Node.h.

Definition at line 1326 of file SOP_Node.h.

Examples:
SOP/SOP_Flatten.C.

Definition at line 1323 of file SOP_Node.h.

Definition at line 1334 of file SOP_Node.h.

int SOP_Node::myCurVtxNum[2] [protected]

Definition at line 1321 of file SOP_Node.h.

Definition at line 1320 of file SOP_Node.h.

GEO_Vertex SOP_Node::myCurVtxVal[2] [mutable, protected]

Definition at line 1322 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 1186 of file SOP_Node.h.

SOP_Guide* SOP_Node::myGuide1 [protected]

Examples:
SOP/SOP_Flatten.C.

Definition at line 1192 of file SOP_Node.h.

SOP_Guide* SOP_Node::myGuide2 [protected]

Definition at line 1193 of file SOP_Node.h.

Definition at line 1302 of file SOP_Node.h.

int SOP_Node::myLocalVarOrder [protected]

Definition at line 1303 of file SOP_Node.h.

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

Definition at line 1333 of file SOP_Node.h.

Local variable items:.

Definition at line 1301 of file SOP_Node.h.

Definition at line 1194 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 1310 of file SOP_Node.h.

Definition at line 1339 of file SOP_Node.h.

Definition at line 906 of file SOP_Node.h.

Definition at line 905 of file SOP_Node.h.

Definition at line 908 of file SOP_Node.h.

Definition at line 907 of file SOP_Node.h.

Definition at line 904 of file SOP_Node.h.

Examples:
SOP/SOP_BrushHairLen.C.

Definition at line 899 of file SOP_Node.h.

Definition at line 903 of file SOP_Node.h.

Definition at line 685 of file SOP_Node.h.

Definition at line 688 of file SOP_Node.h.

Definition at line 686 of file SOP_Node.h.

Definition at line 687 of file SOP_Node.h.


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

Generated on Thu Jan 31 00:32:11 2013 for HDK by  doxygen 1.5.9