POP/POP_Node.h File Reference

#include "POP_API.h"
#include <UT/UT_Vector3.h>
#include <UT/UT_Interrupt.h>
#include <UT/UT_PtrArray.h>
#include <UT/UT_NTStreamUtil.h>
#include <UT/UT_Thread.h>
#include <GU/GU_DetailHandle.h>
#include <OP/OP_Network.h>
#include <GOP/GOP_Manager.h>
#include "POP_Defines.h"
#include "POP_Guide.h"
#include "POP_Error.h"
#include "POP_ContextData.h"
#include "POP_ParticleList.h"
#include "POP_Shared.h"

Go to the source code of this file.

Classes

class  POP_Node

Defines

Macros to aid in implementing individual parameter evaluation methods
Convenience macros typically used while implementing parameter evaluation methods on subclasses of POP_Node.

#define FLOAT_PARM(name, idx, vi, t)   return evalFloat(name, &myIndirect[idx], vi, t);
#define INT_PARM(name, idx, vi, t)   return evalInt(name, &myIndirect[idx], vi, t);
#define STR_PARM(name, idx, vi, t)   evalString(s, name, &myIndirect[idx], vi, (float)t);
#define STR_PARM_NE(name, idx, vi, t)   evalStringRaw(s, name, &myIndirect[idx], vi, (float)t);
Macros to aid in efficient per-particle parameter evaluation
#define POP_FPARM(myvar, get)
 Use in class definition to declare members for caching non-variable dependent values.
#define POP_IPARM(myvar, get)
 Use in class definition to declare members for caching non-variable dependent values.
#define POP_SPARM(myvar, get)
 Use in class definition to declare members for caching non-variable dependent values.
#define POP_VPARM(myvar, get)
 Use in class definition to declare members for caching non-variable dependent values.
Macros to aid in efficient per-particle parameter evaluation
#define POP_FCACHE(var, eval, get, myvar, classname)
 Use during cook to select between a per-particle or per-cook evaluation method.
#define POP_ICACHE(var, eval, get, myvar, classname)
 Use during cook to select between a per-particle or per-cook evaluation method.
#define POP_SCACHE(var, eval, get, myvar, classname)
 Use during cook to select between a per-particle or per-cook evaluation method.
#define POP_VCACHE(var, expr, get, myvar, classname)
 Use during cook to select between a per-particle or per-cook evaluation method.
Macros to aid in efficient per-particle parameter evaluation
#define POP_PEVAL(name)   (this->*name)(t)
 Use during cook to call a parameter evaluation method pointer.
#define POP_SEVAL(name, s)   (this->*name)(s, t)
 Use during cook to call a parameter evaluation method pointer.
#define POP_VEVAL(name, expr, x, y, z, thread)   (this->*name)(expr, x, y, z, thread)
 Use during cook to call a parameter evaluation method pointer.
#define POP_CB_PEVAL(name)   (this->*name)(data->myTime)
 Use during cook to call a parameter evaluation method pointer during a callback.
#define POP_CB_SEVAL(name, s)   (this->*name)(s, data->myTime)
 Use during cook to call a parameter evaluation method pointer during a callback.

Typedefs

typedef void(POP_Node::* POP_BirthAttribFunc )(POP_ContextData *data, GEO_Point *ppt, UT_Vector3 *vel, void *userdata)
typedef float(POP_Node::* POP_FloatFunc )(POP_ContextData *data)
typedef int(POP_Node::* POP_IntFunc )(POP_ContextData *data)
typedef void(POP_Node::* POP_TraverseFunc )(void *userdata)
typedef void(POP_Node::* POP_JitterFunc )(GU_Detail **gdp, GB_PointGroup **pointGroup, GB_PrimitiveGroup **primGroup, GU_RayIntersect **rayIntersect, POP_AttribMap **map, float timeIncFraction)
typedef UT_PtrArray
< POP_ParticleList * > 
POP_ParticleListArray
 A PtrArray which stores pointers to POP_ParticleList.
Pointers to evaluation methods
typedef float(POP_Node::* POP_FParam )(float t)
typedef int(POP_Node::* POP_IParam )(float t)
typedef void(POP_Node::* POP_SParam )(UT_String &s, float t)
typedef void(POP_Node::* POP_VParam )(EV_EXPRESSION *expr, float &x, float &y, float &z, int thread)

Functions

SYS_VISIBILITY_EXPORT void newPopOperator (OP_OperatorTable *table)
POP_API void POPgetVexReservedTemplateLists (UT_PtrArray< PRM_Template * > &tplatelists)


Define Documentation

#define FLOAT_PARM ( name,
idx,
vi,
t   )     return evalFloat(name, &myIndirect[idx], vi, t);

Definition at line 53 of file POP_Node.h.

#define INT_PARM ( name,
idx,
vi,
t   )     return evalInt(name, &myIndirect[idx], vi, t);

Definition at line 55 of file POP_Node.h.

#define POP_CB_PEVAL ( name   )     (this->*name)(data->myTime)

Use during cook to call a parameter evaluation method pointer during a callback.

Definition at line 192 of file POP_Node.h.

#define POP_CB_SEVAL ( name,
s   )     (this->*name)(s, data->myTime)

Use during cook to call a parameter evaluation method pointer during a callback.

Definition at line 197 of file POP_Node.h.

#define POP_FCACHE ( var,
eval,
get,
myvar,
classname   ) 

Value:

if (isVarDependent(data->getDetail(), \
                           (POP_FParam) &classname::eval, t, thread)) \
            var = (POP_FParam) &classname::eval; \
        else \
            { myvar = eval(t); var = (POP_FParam) &classname::get; }
Use during cook to select between a per-particle or per-cook evaluation method.

Calls the parameter evaluation method eval, and if the evaluation is dependent on any per-particle variables, sets the method pointer var to point to eval. Otherwise it caches the value in the member variable myvar and sets var to point to get, the method that simply returns said cached value.

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

Definition at line 148 of file POP_Node.h.

#define POP_FPARM ( myvar,
get   ) 

Value:

float   myvar; \
        float   get(float) { return(myvar); }
Use in class definition to declare members for caching non-variable dependent values.

Declares a member variable myvar to cache a parameter value and an evaluator method to return that value.

Definition at line 120 of file POP_Node.h.

#define POP_ICACHE ( var,
eval,
get,
myvar,
classname   ) 

Value:

if (isVarDependent(data->getDetail(), \
                           (POP_IParam) &classname::eval, t, thread)) \
            var = (POP_IParam) &classname::eval; \
        else \
            { myvar = eval(t); var = (POP_IParam) &classname::get; }
Use during cook to select between a per-particle or per-cook evaluation method.

Calls the parameter evaluation method eval, and if the evaluation is dependent on any per-particle variables, sets the method pointer var to point to eval. Otherwise it caches the value in the member variable myvar and sets var to point to get, the method that simply returns said cached value.

Definition at line 155 of file POP_Node.h.

#define POP_IPARM ( myvar,
get   ) 

Value:

int     myvar; \
        int     get(float) { return(myvar); }
Use in class definition to declare members for caching non-variable dependent values.

Declares a member variable myvar to cache a parameter value and an evaluator method to return that value.

Definition at line 124 of file POP_Node.h.

#define POP_PEVAL ( name   )     (this->*name)(t)

Use during cook to call a parameter evaluation method pointer.

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

Definition at line 181 of file POP_Node.h.

#define POP_SCACHE ( var,
eval,
get,
myvar,
classname   ) 

Value:

if (isVarDependent(data->getDetail(), \
                            (POP_SParam)  &classname::eval, t, thread)) \
            var = (POP_SParam) &classname::eval; \
        else \
            { eval(myvar, t); var = (POP_SParam) &classname::get; }
Use during cook to select between a per-particle or per-cook evaluation method.

Calls the parameter evaluation method eval, and if the evaluation is dependent on any per-particle variables, sets the method pointer var to point to eval. Otherwise it caches the value in the member variable myvar and sets var to point to get, the method that simply returns said cached value.

Definition at line 162 of file POP_Node.h.

#define POP_SEVAL ( name,
s   )     (this->*name)(s, t)

Use during cook to call a parameter evaluation method pointer.

Definition at line 184 of file POP_Node.h.

#define POP_SPARM ( myvar,
get   ) 

Value:

UT_String       myvar; \
        void            get(UT_String& s, float) { s = myvar; }
Use in class definition to declare members for caching non-variable dependent values.

Declares a member variable myvar to cache a parameter value and an evaluator method to return that value.

Definition at line 128 of file POP_Node.h.

#define POP_VCACHE ( var,
expr,
get,
myvar,
classname   ) 

Value:

if (isVarDependent(data->getDetail(), expr, thread)) \
            var = &classname::evalVector; \
        else \
            { evalVector(expr, myvar[0], myvar[1], myvar[2], thread); \
              var = (POP_VParam) &classname::get; }
Use during cook to select between a per-particle or per-cook evaluation method.

Calls the parameter evaluation method eval, and if the evaluation is dependent on any per-particle variables, sets the method pointer var to point to eval. Otherwise it caches the value in the member variable myvar and sets var to point to get, the method that simply returns said cached value.

Definition at line 169 of file POP_Node.h.

#define POP_VEVAL ( name,
expr,
x,
y,
z,
thread   )     (this->*name)(expr, x, y, z, thread)

Use during cook to call a parameter evaluation method pointer.

Definition at line 187 of file POP_Node.h.

#define POP_VPARM ( myvar,
get   ) 

Value:

float   myvar[3]; \
        void    get(EV_EXPRESSION*, float &x, float &y, float &z, int) \
                { x = myvar[0]; y = myvar[1]; z = myvar[2]; }
Use in class definition to declare members for caching non-variable dependent values.

Declares a member variable myvar to cache a parameter value and an evaluator method to return that value.

Definition at line 132 of file POP_Node.h.

#define STR_PARM ( name,
idx,
vi,
t   )     evalString(s, name, &myIndirect[idx], vi, (float)t);

Definition at line 57 of file POP_Node.h.

#define STR_PARM_NE ( name,
idx,
vi,
t   )     evalStringRaw(s, name, &myIndirect[idx], vi, (float)t);

Definition at line 59 of file POP_Node.h.


Typedef Documentation

typedef void(POP_Node::* POP_BirthAttribFunc)(POP_ContextData *data, GEO_Point *ppt, UT_Vector3 *vel, void *userdata)

Prototype for function that sets attributes after points are birthed.

Parameters:
data POP_ContextData being used
ppt particle's point
vel particle velocity
userdata passed in data
Examples:
POP/POP_RadialBirth.C.

Definition at line 69 of file POP_Node.h.

typedef float(POP_Node::* POP_FloatFunc)(POP_ContextData *data)

Prototype for function that returns a floating point value. Function returns the value.

Parameters:
data POP_ContextData being used. Needed for random num generation.
Examples:
POP/POP_RadialBirth.C.

Definition at line 76 of file POP_Node.h.

typedef float(POP_Node::* POP_FParam)(float t)

typedef int(POP_Node::* POP_IntFunc)(POP_ContextData *data)

Prototype for function that returns a integer value. Function returns the value.

Parameters:
data POP_ContextData being used. Needed for random num generation.
Examples:
POP/POP_RadialBirth.C.

Definition at line 82 of file POP_Node.h.

typedef int(POP_Node::* POP_IParam)(float t)

Definition at line 106 of file POP_Node.h.

typedef void(POP_Node::* POP_JitterFunc)(GU_Detail **gdp, GB_PointGroup **pointGroup, GB_PrimitiveGroup **primGroup, GU_RayIntersect **rayIntersect, POP_AttribMap **map, float timeIncFraction)

Prototype for function that can be called per node to allow jitter births. Modifies the passed in values to update gdp, source groups, intersectors (if necessary), and attribute mappings (if necessary).

Definition at line 91 of file POP_Node.h.

A PtrArray which stores pointers to POP_ParticleList.

Definition at line 97 of file POP_Node.h.

typedef void(POP_Node::* POP_SParam)(UT_String &s, float t)

Definition at line 107 of file POP_Node.h.

typedef void(POP_Node::* POP_TraverseFunc)(void *userdata)

Prototype for function that can be called per node for POP_Node::traverse() and POP_Node::pseudocook().

Definition at line 86 of file POP_Node.h.

typedef void(POP_Node::* POP_VParam)(EV_EXPRESSION *expr, float &x, float &y, float &z, int thread)

Definition at line 108 of file POP_Node.h.


Function Documentation

SYS_VISIBILITY_EXPORT void newPopOperator ( OP_OperatorTable table  ) 

POP_API void POPgetVexReservedTemplateLists ( UT_PtrArray< PRM_Template * > &  tplatelists  ) 


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