POP_Node Class Reference

#include <POP_Node.h>

Inheritance diagram for POP_Node:

OP_Network OP_Node OP_Parameters OP_NetworkBoxItem PRM_ParmOwner HDK_Sample::POP_RadialBirth POP_GenVar POP_LocalVar HDK_Sample::POP_CircleForce HDK_Sample::POP_LocalForce HDK_Sample::POP_SpotLight

List of all members.

Public Member Functions

virtual const char * getChildType () const
virtual const char * getOpType () const
virtual OP_OpTypeId getChildTypeID () const
virtual OP_OpTypeId getOpTypeID () const
virtual int getNetOverviewColor (UT_Color &color)
void traverse (POP_TraverseFunc traverse, void *userdata=0)
void pseudocook (POP_TraverseFunc traverse, void *userdata=0)
void preCook (OP_Context &context)
void postCook (OP_Context &context)
unsigned long computeNetChecksum (void)
void addAllAttribs (POP_ContextData *data)
POP_ParticleListgetParticleList (void)
virtual void timestep (OP_Context &context)
void warnDisplayFlag (void)
void unwarnDisplayFlag (void)
virtual int isRefInput (unsigned) const
virtual void getNodeSpecificInfoText (OP_Context &context, int verbose, UT_WorkBuffer &text)
virtual fpreal getW () const
 Node position/scale is used by the UI.
virtual fpreal getH () const
 Node position/scale is used by the UI.
GU_DetailgetGeo (const char *overridegeopath, const POP_ContextData *data, float t, int addextrainput, int ignorexform, GU_Detail *copygdp, OP_Node **prevsop, int *retdoxform, UT_DMatrix4 *retxform, int *retneedsreset)

Static Public Member Functions

static void buildOperatorTable (OP_OperatorTable &table)
static void timestepStatic (OP_Context &context)
 Standard particle timestep function.
static void prepParticles (OP_Context &context)
static void applyRulesToList (POP_ParticleList *particleList, POP_ContextData *data)
static void reapParticles (OP_Context &context)
 reapParticles() removes dead particles from the system.
static int filterForceObjs (OP_Node *node)
static void buildForceObjMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, PRM_Parm *)
static void buildObjMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, PRM_Parm *)
static void buildSopMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, PRM_Parm *)

Protected Member Functions

 POP_Node (OP_Network *parent, const char *name, OP_Operator *entry)
virtual ~POP_Node (void)
virtual OP_ERROR cookPop (OP_Context &context)=0
void applyBackwardsPathCompatibility (PRM_ParmList *obsolete_parms, const char *objtoken=0, const char *soptoken=0, const char *desttoken=0, int relative=1)
virtual void getOperationInfo (UT_String &info, OP_Context &context)
virtual void addAttrib (void *)
POP_ParticleListgetInputParticleList (int idx, OP_Context &context)
void cacheForDisplay (OP_Context &context)
int checkActivation (POP_ContextData *data, POP_FParam activate)
int doUpdateViewport (POP_ContextData *data)
GB_AttributeRef addUserVariable (POP_ContextData *data, const char *name, int size, GB_AttribType type, const void *def, const char *local=0)
void initParticleList (OP_Context &context, GEO_PrimParticle *part=NULL)
OP_ERROR addListToParticleList (POP_ParticleList &dest_list, POP_ParticleList &src_list, const POP_Node *pop, int input_index, OP_Context &context, int checkForDuplicates)
int addToParticleList (OP_Context &context, GEO_PrimParticle *part, int idx)
OP_ERROR buildParticleListArray (POP_ParticleListArray &array, int &num, OP_Context &context, int checkForDuplicates=0)
GEO_ParticleVertexbirthParticle (POP_ContextData *data, GEO_PrimParticle *part, const UT_Vector4 &pos, POP_AttribMap *map, GB_AttributeData *inherit, GB_AttributeData *split, POP_IntFunc originIndex, int originGeo, int originUse, POP_FloatFunc lifetime, POP_BirthAttribFunc birthAttrib=NULL, void *userData=NULL)
void initParticleAttrib (POP_ContextData *data, GEO_Point *ppt, GB_AttributeData *split, float age, float expected, POP_IntFunc originIndex, int originGeo, int originUse)
void addAccelGuide (GEO_Point *ppt, float ax, float ay, float az, float scale=1.0f, int normalize=0)
 Add guide geometry for accelerations to myGuide.
bool forceValidGroupName (UT_String &name, UT_ErrorSeverity severity)
bool forceValidGroupPrefix (UT_String &name, UT_ErrorSeverity severity)
void evalVector (EV_EXPRESSION *expr, float &x, float &y, float &z, int thread)
virtual void allowVar (int val)
 Control whether parameter evalutions are allowed to reference local variables.
void traverseNode (POP_TraverseFunc traverse, void *userdata=0)
void flagTraverse (void *userdata)
virtual void doPreCook (void *userdata)
void updateChecksum (void *userdata)
virtual const char * getGeoPathParmName () const
void getGeoPath (UT_String &geopath, const POP_ContextData *data, float t)
bool getXformToReference (OP_Context &context, OP_Node *target, OP_Node *reference, UT_DMatrix4 &mat)
const POP_ContextDatagetPrevContextData () const
Add standard error/warning
void addError (POP_ErrorCodes code, const char *msg=0)
void addMessage (POP_ErrorCodes code, const char *msg=0)
void addWarning (POP_ErrorCodes code, const char *msg=0)
void addFatal (POP_ErrorCodes code, const char *msg=0)
Add standard attribute
void addAlphaAttrib (POP_ContextData *data)
void addAngVelAttrib (POP_ContextData *data)
void addAttractAttrib (POP_ContextData *data)
void addBounceAttrib (POP_ContextData *data)
void addComAttrib (POP_ContextData *data)
void addChargeAttrib (POP_ContextData *data)
void addClingAttrib (POP_ContextData *data)
void addDiffuseAttrib (POP_ContextData *data)
void addDistanceAttrib (POP_ContextData *data)
void addDragAttrib (POP_ContextData *data)
void addFollowAttrib (POP_ContextData *data)
void addFDynamicAttrib (POP_ContextData *data)
void addFStaticAttrib (POP_ContextData *data)
void addGenAttrib (POP_ContextData *data)
void addHitDiffuseAttrib (POP_ContextData *data)
void addHitIDAttrib (POP_ContextData *data)
void addHitNormalAttrib (POP_ContextData *data)
void addHitForceAttrib (POP_ContextData *data)
void addHitPosAttrib (POP_ContextData *data)
void addHitPosUVAttrib (POP_ContextData *data)
void addHitTimeAttrib (POP_ContextData *data)
void addHitUVAttrib (POP_ContextData *data)
void addIDAttrib (POP_ContextData *data)
void addInstanceAttrib (POP_ContextData *data)
void addMassAttrib (POP_ContextData *data)
void addNearestAttrib (POP_ContextData *data)
void addNearestDistAttrib (POP_ContextData *data)
void addNumHitAttrib (POP_ContextData *data)
void addNumProximityAttrib (POP_ContextData *data)
void addOrbitAttrib (POP_ContextData *data)
void addOrbitAxisAttrib (POP_ContextData *data)
void addOrbitCenterAttrib (POP_ContextData *data)
void addOrbitRadiusAttrib (POP_ContextData *data)
void addOrbitSpeedAttrib (POP_ContextData *data)
void addOrientAttrib (POP_ContextData *data)
void addParentAttrib (POP_ContextData *data)
void addPosPathAttrib (POP_ContextData *data)
void addPosPrimAttrib (POP_ContextData *data)
void addPosUVAttrib (POP_ContextData *data)
void addPrevVelAttrib (POP_ContextData *data)
void addOriginAttrib (POP_ContextData *data)
void addRotAttrib (POP_ContextData *data)
void addScaleAttrib (POP_ContextData *data)
void addScale3Attrib (POP_ContextData *data)
void addSpeedAttrib (POP_ContextData *data)
void addSpeedLimitAttrib (POP_ContextData *data)
void addSpringKAttrib (POP_ContextData *data)
void addSpriteRotAttrib (POP_ContextData *data)
void addSpriteScaleAttrib (POP_ContextData *data)
void addSpriteShopAttrib (POP_ContextData *data)
void addSpriteUVAttrib (POP_ContextData *data)
void addTensionAttrib (POP_ContextData *data)
void addTorqueAttrib (POP_ContextData *data)
void addTransAttrib (POP_ContextData *data)
void addUpAttrib (POP_ContextData *data)
OP_ERROR buildParticleList (OP_Context &context, int checkForDuplicates=0)
OP_ERROR buildParticleList (POP_ParticleList &buildList, OP_Context &context, int checkForDuplicates=0)
OP_ERROR buildParticleList (int input, OP_Context &contexti)
OP_ERROR buildParticleList (POP_ParticleList &buildList, int input, OP_Context &context)
Get group corresponding to supplied pattern
const GB_PointGroupparsePointGroups (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1)
const GB_PrimitiveGroupparsePrimitiveGroups (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1)
GB_PointGroupparsePointGroupsCopy (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1)
GB_PrimitiveGroupparsePrimitiveGroupsCopy (const char *pattern, GU_Detail *pgdp=0, int allow_numeric=1)
Test a parameter for references to per-particle variables
virtual int isVarDependent (GU_Detail *gdp, POP_FParam param, float t, int thread)
virtual int isVarDependent (GU_Detail *gdp, POP_IParam param, float t, int thread)
virtual int isVarDependent (GU_Detail *gdp, POP_SParam param, float t, int thread)
virtual int isVarDependent (GU_Detail *gdp, EV_EXPRESSION *expr, int thread)

Static Protected Member Functions

static void setupStateForSlidingParticles ()
static void cleanupStateForSlidingParticles ()
static void preProcessSlidingParticle (GEO_Point *ppt, POP_ContextData *data, int *state, UT_Vector3 &nml, UT_Vector3 &surface_vel)
static void postProcessSlidingParticle (GEO_Point *ppt, POP_ContextData *data, int *state, UT_Vector3 &nml, UT_Vector4 &initial_pos, const UT_Vector3 &surface_vel)
static void setPosFromSop (UT_Vector4 &pos, GEO_Point *ppt, POP_ContextData *data)
static void buildPointGroupMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, PRM_Parm *)
static void buildGenericGroupMenu (const GB_Group *head, PRM_Name *menu, int maxSize, int &index)
static void buildGeneratorMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, PRM_Parm *)
Standard update rules
static void applyDefaultPosRules (GEO_Point *ppt, POP_ContextData *data, int *state)
static void applyDefaultVelRules (GEO_Point *ppt, POP_ContextData *data, int *state)
static void applyDefaultRotRules (GEO_Point *ppt, POP_ContextData *data, int *state)
static void applyDefaultAngVelRules (GEO_Point *ppt, POP_ContextData *data, int *state)
static void applyDefaultUpRules (GEO_Point *ppt, POP_ContextData *data, int *state)
static void applyDefaultSpeedRules (GEO_Point *ppt, POP_ContextData *data, int *state)
static void applyDefaultSlideRules (GEO_Point *ppt, POP_ContextData *data, int *state)

Protected Attributes

POP_ParticleList myParticleList
GU_DetailHandle myGuideHandle
POP_Guide * myGuide
GOP_Manager myGroupParse

Static Protected Attributes

static PRM_ChoiceList pointGroupMenu
static PRM_ChoiceList generatorMenu


Detailed Description

Examples:

POP/POP_RadialBirth.C, and POP/POP_RadialBirth.h.

Definition at line 203 of file POP_Node.h.


Constructor & Destructor Documentation

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

virtual POP_Node::~POP_Node ( void   )  [protected, virtual]


Member Function Documentation

void POP_Node::addAccelGuide ( GEO_Point ppt,
float  ax,
float  ay,
float  az,
float  scale = 1.0f,
int  normalize = 0 
) [protected]

Add guide geometry for accelerations to myGuide.

Examples:
POP/POP_LocalForce.C.

void POP_Node::addAllAttribs ( POP_ContextData data  ) 

addAllAttribs() traverses the nodes that will be cooked and adds the required attributes to the gdp by calling addAttrib().

void POP_Node::addAlphaAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addAngVelAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addAttractAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

virtual void POP_Node::addAttrib ( void *   )  [inline, protected, virtual]

Add any attributes required by this POP to the detail in the supplied POP_ContextData (pointer passed as void *). This method is called by addAllAttribs().

Reimplemented in HDK_Sample::POP_RadialBirth, and HDK_Sample::POP_SpotLight.

Definition at line 348 of file POP_Node.h.

void POP_Node::addBounceAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addChargeAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addClingAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addComAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addDiffuseAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

Examples:
POP/POP_SpotLight.C.

void POP_Node::addDistanceAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addDragAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

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

Examples:
POP/POP_CircleForce.C, POP/POP_LocalForce.C, and POP/POP_SpotLight.C.

Definition at line 352 of file POP_Node.h.

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

Definition at line 358 of file POP_Node.h.

void POP_Node::addFDynamicAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addFollowAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addFStaticAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addGenAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitDiffuseAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitForceAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitIDAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitNormalAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitPosAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitPosUVAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitTimeAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addHitUVAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addIDAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addInstanceAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

OP_ERROR POP_Node::addListToParticleList ( POP_ParticleList dest_list,
POP_ParticleList src_list,
const POP_Node pop,
int  input_index,
OP_Context context,
int  checkForDuplicates 
) [protected]

void POP_Node::addMassAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

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

Definition at line 354 of file POP_Node.h.

void POP_Node::addNearestAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addNearestDistAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addNumHitAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addNumProximityAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOrbitAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOrbitAxisAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOrbitCenterAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOrbitRadiusAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOrbitSpeedAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOrientAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addOriginAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

Examples:
POP/POP_RadialBirth.C.

void POP_Node::addParentAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addPosPathAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addPosPrimAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addPosUVAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addPrevVelAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addRotAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addScale3Attrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addScaleAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpeedAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpeedLimitAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpringKAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpriteRotAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpriteScaleAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpriteShopAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addSpriteUVAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addTensionAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

int POP_Node::addToParticleList ( OP_Context context,
GEO_PrimParticle part,
int  idx 
) [protected]

void POP_Node::addTorqueAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addTransAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

void POP_Node::addUpAttrib ( POP_ContextData data  )  [protected]

add___Attrib() is used to add attributes to the detail if they don't exist already.

GB_AttributeRef POP_Node::addUserVariable ( POP_ContextData data,
const char *  name,
int  size,
GB_AttribType  type,
const void *  def,
const char *  local = 0 
) [inline, protected]

addUserVariable() is used to add user defined attributes to the detail. It also takes care of adding local variables.

Definition at line 446 of file POP_Node.h.

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

Definition at line 356 of file POP_Node.h.

virtual void POP_Node::allowVar ( int  val  )  [protected, virtual]

Control whether parameter evalutions are allowed to reference local variables.

Derived classes that implement local variables will generally want to override this virtual.

Reimplemented in POP_GenVar, and POP_LocalVar.

void POP_Node::applyBackwardsPathCompatibility ( PRM_ParmList obsolete_parms,
const char *  objtoken = 0,
const char *  soptoken = 0,
const char *  desttoken = 0,
int  relative = 1 
) [protected]

static void POP_Node::applyDefaultAngVelRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyDefaultPosRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyDefaultRotRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyDefaultSlideRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyDefaultSpeedRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyDefaultUpRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyDefaultVelRules ( GEO_Point ppt,
POP_ContextData data,
int *  state 
) [static, protected]

applyDefault___Rules() applies the default rules for that attribute to the point.

static void POP_Node::applyRulesToList ( POP_ParticleList particleList,
POP_ContextData data 
) [static]

applyRulesToList() is really the heart of timestep. It actually applies the appropriate rules to each particle.

GEO_ParticleVertex* POP_Node::birthParticle ( POP_ContextData data,
GEO_PrimParticle part,
const UT_Vector4 pos,
POP_AttribMap map,
GB_AttributeData inherit,
GB_AttributeData split,
POP_IntFunc  originIndex,
int  originGeo,
int  originUse,
POP_FloatFunc  lifetime,
POP_BirthAttribFunc  birthAttrib = NULL,
void *  userData = NULL 
) [protected]

birthParticle() should be used to birth particles into a particle system

Parameters:
data POP_ContextData being used
part particle primitive to birth into
pos position of the birthed point
map mapping for inheriting attributes from the inherit GB_AttributeData
inherit inherit general attributes (required when map is used)
split inherit parental attributes (parent, origin, generation)
originIndex origin index value.
originGeo origin from geometry number
originUse how to set origin id. Bit mask
  • POP_ORIGIN_INDEX: add passed in index
  • POP_ORIGIN_GEO: add source geometry number
  • POP_ORIGIN_PARENT: add split origin
lifetime total expected life of the particle
birthAttrib function to set attributes after particle is birthed
userdata passed into birthAttrib
Examples:
POP/POP_RadialBirth.C.

static void POP_Node::buildForceObjMenu ( void *  data,
PRM_Name menu,
int  maxSize,
const PRM_SpareData ,
PRM_Parm  
) [static]

These functions are used by lots of POPs to generate obj/sop menus

static void POP_Node::buildGeneratorMenu ( void *  data,
PRM_Name menu,
int  maxSize,
const PRM_SpareData ,
PRM_Parm  
) [static, protected]

static void POP_Node::buildGenericGroupMenu ( const GB_Group head,
PRM_Name menu,
int  maxSize,
int &  index 
) [static, protected]

static void POP_Node::buildObjMenu ( void *  data,
PRM_Name menu,
int  maxSize,
const PRM_SpareData ,
PRM_Parm  
) [static]

These functions are used by lots of POPs to generate obj/sop menus

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

OP_ERROR POP_Node::buildParticleList ( POP_ParticleList buildList,
int  input,
OP_Context context 
) [protected]

buildParticleList() is used to build the list of particle primitives that the POP should process.

OP_ERROR POP_Node::buildParticleList ( int  input,
OP_Context contexti 
) [protected]

buildParticleList() is used to build the list of particle primitives that the POP should process.

OP_ERROR POP_Node::buildParticleList ( POP_ParticleList buildList,
OP_Context context,
int  checkForDuplicates = 0 
) [protected]

buildParticleList() is used to build the list of particle primitives that the POP should process.

OP_ERROR POP_Node::buildParticleList ( OP_Context context,
int  checkForDuplicates = 0 
) [protected]

buildParticleList() is used to build the list of particle primitives that the POP should process.

Examples:
POP/POP_CircleForce.C, POP/POP_LocalForce.C, and POP/POP_SpotLight.C.

OP_ERROR POP_Node::buildParticleListArray ( POP_ParticleListArray array,
int &  num,
OP_Context context,
int  checkForDuplicates = 0 
) [protected]

static void POP_Node::buildPointGroupMenu ( void *  data,
PRM_Name menu,
int  maxSize,
const PRM_SpareData ,
PRM_Parm  
) [static, protected]

static void POP_Node::buildSopMenu ( void *  data,
PRM_Name menu,
int  maxSize,
const PRM_SpareData ,
PRM_Parm  
) [static]

These functions are used by lots of POPs to generate obj/sop menus

void POP_Node::cacheForDisplay ( OP_Context context  )  [protected]

int POP_Node::checkActivation ( POP_ContextData data,
POP_FParam  activate 
) [protected]

checkActivation() returns 1 if the POP should be active and 0 otherwise.

Examples:
POP/POP_CircleForce.C, POP/POP_LocalForce.C, POP/POP_RadialBirth.C, and POP/POP_SpotLight.C.

static void POP_Node::cleanupStateForSlidingParticles (  )  [static, protected]

unsigned long POP_Node::computeNetChecksum ( void   ) 

computeNetChecksum() returns a CRC checksum which is "unique" for a particular network topology with a particular set of parameters.

virtual OP_ERROR POP_Node::cookPop ( OP_Context context  )  [protected, pure virtual]

virtual void POP_Node::doPreCook ( void *  userdata  )  [protected, virtual]

int POP_Node::doUpdateViewport ( POP_ContextData data  )  [protected]

doUpdateViewport() indicates whether the POP needs to perform updates for the viewport (like guide geometry for example).

Examples:
POP/POP_CircleForce.C, and POP/POP_LocalForce.C.

void POP_Node::evalVector ( EV_EXPRESSION expr,
float &  x,
float &  y,
float &  z,
int  thread 
) [protected]

evalVector() evaluates a vector expression and places the results in the x, y and z parameters.

static int POP_Node::filterForceObjs ( OP_Node node  )  [static]

These functions are used by lots of POPs to generate obj/sop menus

void POP_Node::flagTraverse ( void *  userdata  )  [protected]

bool POP_Node::forceValidGroupName ( UT_String name,
UT_ErrorSeverity  severity 
) [protected]

Change the string into a valid group name. A return value of true indicates that the string needed changing, in which case severity specifies the level of error this method generated (UT_ERROR_NONE, UT_ERROR_WARNING, or UT_ERROR_ABORT). Note that this does not force the name to be non-zero in length.

Examples:
POP/POP_RadialBirth.C.

bool POP_Node::forceValidGroupPrefix ( UT_String name,
UT_ErrorSeverity  severity 
) [protected]

Change the string into a valid group prefix. A return value of true indicates that the string needed changing, in which case severity specifies the level of error this method generated (UT_ERROR_NONE, UT_ERROR_WARNING, or UT_ERROR_ABORT). Note that this does not force the prefix to be non-zero in length.

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

Reimplemented from OP_Network.

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

Implements OP_Network.

GU_Detail* POP_Node::getGeo ( const char *  overridegeopath,
const POP_ContextData data,
float  t,
int  addextrainput,
int  ignorexform,
GU_Detail copygdp,
OP_Node **  prevsop,
int *  retdoxform,
UT_DMatrix4 retxform,
int *  retneedsreset 
)

This function provides a whole bunch of slightly different functionality to each of a bunch of different POPs (thus the complex signature). Any POP which accesses a piece of SOP geometry should use this function to get the geometry. It supports DOP geometry paths as well. The first parameter is the path to get the gometry from. If NULL, the data and t parameters are used to evaluate parameters on the POP to get the path. addextrainput tells it whether to add an extra input to the POP for when the SOP changes. ignorexform tells this function to ignore any transform on the object containing the SOP (or DOP). copygdp provides a place to stores a transformed version of the geometry if required. This and all subsequent parameter can be NULL if the information isn't required (such as when the geometry is being accessed just to get a list of available group names). The prevsop parameter can point to the SOP that was last retrieved. It's value is updated by this function, after doing a comparison to see if the value has changed. retdoxform and retxform return whether a transform is required on the geometry, and what that transform is. Finally, retneedsreset helps POPs keep track of whether anything has changed since the last call to this function. This takes into account changes to the prevsop, whether or not the geometry has to be xformed, and the value passed in through retneedsreset.

Examples:
POP/POP_CircleForce.C.

void POP_Node::getGeoPath ( UT_String geopath,
const POP_ContextData data,
float  t 
) [protected]

virtual const char* POP_Node::getGeoPathParmName (  )  const [protected, virtual]

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

Node position/scale is used by the UI.

Reimplemented from OP_Node.

POP_ParticleList* POP_Node::getInputParticleList ( int  idx,
OP_Context context 
) [protected]

getInputParticleList() returns a linked list of all of the particle system primitives used by a particular input. It will cook the input POP as necessary.

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

Reimplemented from OP_Node.

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

Reimplemented from OP_Node.

virtual void POP_Node::getOperationInfo ( UT_String info,
OP_Context context 
) [protected, virtual]

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

Implements OP_Node.

virtual OP_OpTypeId POP_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.

POP_ParticleList* POP_Node::getParticleList ( void   )  [inline]

getParticleList() acts as an access method to get at this POP's particle list. It just returns this POP's POP_ParticleList and assumes that this structure is already up to date. Use buildParticleList() to build an up-to-date particle list.

Definition at line 243 of file POP_Node.h.

const POP_ContextData* POP_Node::getPrevContextData (  )  const [protected]

This method returns the previous context data used to cook this node, or the one used to cook the first input if we don't have one cached.

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

Node position/scale is used by the UI.

Reimplemented from OP_Node.

bool POP_Node::getXformToReference ( OP_Context context,
OP_Node target,
OP_Node reference,
UT_DMatrix4 mat 
) [protected]

void POP_Node::initParticleAttrib ( POP_ContextData data,
GEO_Point ppt,
GB_AttributeData split,
float  age,
float  expected,
POP_IntFunc  originIndex,
int  originGeo,
int  originUse 
) [protected]

void POP_Node::initParticleList ( OP_Context context,
GEO_PrimParticle part = NULL 
) [protected]

initParticleList() initializes the particle list with the particle primitive. Used by generators.

Examples:
POP/POP_RadialBirth.C.

virtual int POP_Node::isRefInput ( unsigned   )  const [inline, virtual]

Reimplemented from OP_Node.

Definition at line 269 of file POP_Node.h.

virtual int POP_Node::isVarDependent ( GU_Detail gdp,
EV_EXPRESSION expr,
int  thread 
) [protected, virtual]

Reimplemented in POP_GenVar, and POP_LocalVar.

virtual int POP_Node::isVarDependent ( GU_Detail gdp,
POP_SParam  param,
float  t,
int  thread 
) [protected, virtual]

Reimplemented in POP_GenVar, and POP_LocalVar.

virtual int POP_Node::isVarDependent ( GU_Detail gdp,
POP_IParam  param,
float  t,
int  thread 
) [protected, virtual]

Reimplemented in POP_GenVar, and POP_LocalVar.

virtual int POP_Node::isVarDependent ( GU_Detail gdp,
POP_FParam  param,
float  t,
int  thread 
) [protected, virtual]

Reimplemented in POP_GenVar, and POP_LocalVar.

const GB_PointGroup* POP_Node::parsePointGroups ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1 
) [protected]

GB_PointGroup* POP_Node::parsePointGroupsCopy ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1 
) [protected]

const GB_PrimitiveGroup* POP_Node::parsePrimitiveGroups ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1 
) [protected]

GB_PrimitiveGroup* POP_Node::parsePrimitiveGroupsCopy ( const char *  pattern,
GU_Detail pgdp = 0,
int  allow_numeric = 1 
) [protected]

void POP_Node::postCook ( OP_Context context  ) 

static void POP_Node::postProcessSlidingParticle ( GEO_Point ppt,
POP_ContextData data,
int *  state,
UT_Vector3 nml,
UT_Vector4 initial_pos,
const UT_Vector3 surface_vel 
) [static, protected]

void POP_Node::preCook ( OP_Context context  ) 

preCook() and postCook() performs pre and post cook processing. They are called by POP_ContextData::cook() and POP_ContextData::cookGuide().

static void POP_Node::prepParticles ( OP_Context context  )  [static]

prepParticles() prepares particles for the current frame by resetting the particle's state.

static void POP_Node::preProcessSlidingParticle ( GEO_Point ppt,
POP_ContextData data,
int *  state,
UT_Vector3 nml,
UT_Vector3 surface_vel 
) [static, protected]

void POP_Node::pseudocook ( POP_TraverseFunc  traverse,
void *  userdata = 0 
)

pseudocook() is used to traverse all nodes and perform some method one each node in the cook chain.

static void POP_Node::reapParticles ( OP_Context context  )  [static]

reapParticles() removes dead particles from the system.

static void POP_Node::setPosFromSop ( UT_Vector4 pos,
GEO_Point ppt,
POP_ContextData data 
) [static, protected]

static void POP_Node::setupStateForSlidingParticles (  )  [static, protected]

virtual void POP_Node::timestep ( OP_Context context  )  [virtual]

timestep() is used to perform timestepping. (i.e. move particles, update state, etc). This function can be overridden to perform a custom integration step. The default implementation calls the static timestepStatic function. Note that this function is only called on the cook POP, not every POP in the network.

static void POP_Node::timestepStatic ( OP_Context context  )  [static]

Standard particle timestep function.

void POP_Node::traverse ( POP_TraverseFunc  traverse,
void *  userdata = 0 
)

traverse() is used to traverse all nodes and perform some method one each node.

void POP_Node::traverseNode ( POP_TraverseFunc  traverse,
void *  userdata = 0 
) [protected]

void POP_Node::unwarnDisplayFlag ( void   ) 

void POP_Node::updateChecksum ( void *  userdata  )  [protected]

void POP_Node::warnDisplayFlag ( void   ) 


Member Data Documentation

Definition at line 692 of file POP_Node.h.

Definition at line 708 of file POP_Node.h.

POP_Guide* POP_Node::myGuide [protected]

Examples:
POP/POP_CircleForce.C, and POP/POP_LocalForce.C.

Definition at line 706 of file POP_Node.h.

The guide handle owns the guide detail and permits indirect (external) references to the POP_Guide. Within the context of this node, we can safely use myGuide as a convenient way to avoid casting.

Warning:
Preserve requests are ignored.
Examples:
POP/POP_CircleForce.C, and POP/POP_LocalForce.C.

Definition at line 705 of file POP_Node.h.

Examples:
POP/POP_CircleForce.C, POP/POP_LocalForce.C, and POP/POP_SpotLight.C.

Definition at line 698 of file POP_Node.h.

Examples:
POP/POP_CircleForce.C, POP/POP_LocalForce.C, and POP/POP_SpotLight.C.

Definition at line 683 of file POP_Node.h.


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

Generated on Mon Jan 28 00:48:41 2013 for HDK by  doxygen 1.5.9