#include "POP_API.h"#include "POP_ContextData.h"#include "POP_Defines.h"#include "POP_Error.h"#include "POP_Guide.h"#include "POP_ParticleIterator.h"#include "POP_ParticleList.h"#include "POP_Shared.h"#include <GOP/GOP_Manager.h>#include <GU/GU_DetailHandle.h>#include <GA/GA_PageHandle.h>#include <OP/OP_Network.h>#include <UT/UT_Interrupt.h>#include <UT/UT_NTStreamUtil.h>#include <UT/UT_PtrArray.h>#include <UT/UT_Thread.h>#include <UT/UT_Vector3.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, t); |
| #define | STR_PARM_NE(name, idx, vi, t) evalStringRaw(s, name, &myIndirect[idx], vi, 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, GA_PointGroup **pointGroup, GA_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) |
Definition at line 61 of file POP_Node.h.
Definition at line 63 of file POP_Node.h.
Use during cook to call a parameter evaluation method pointer during a callback.
Definition at line 200 of file POP_Node.h.
Use during cook to call a parameter evaluation method pointer during a callback.
Definition at line 205 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; }
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 156 of file POP_Node.h.
| #define POP_FPARM | ( | myvar, | |||
| get | ) |
Value:
float myvar; \ float get(float) { return(myvar); }
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_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; }
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 163 of file POP_Node.h.
| #define POP_IPARM | ( | myvar, | |||
| get | ) |
Value:
int myvar; \ int get(float) { return(myvar); }
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.
Use during cook to call a parameter evaluation method pointer.
Definition at line 189 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; }
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 170 of file POP_Node.h.
Use during cook to call a parameter evaluation method pointer.
Definition at line 192 of file POP_Node.h.
| #define POP_SPARM | ( | myvar, | |||
| get | ) |
Value:
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 136 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; }
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 177 of file POP_Node.h.
Use during cook to call a parameter evaluation method pointer.
Definition at line 195 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]; }
Declares a member variable myvar to cache a parameter value and an evaluator method to return that value.
Definition at line 140 of file POP_Node.h.
Definition at line 65 of file POP_Node.h.
Definition at line 67 of file POP_Node.h.
| 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.
| data | POP_ContextData being used | |
| ppt | particle's point | |
| vel | particle velocity | |
| userdata | passed in data |
Definition at line 77 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.
| data | POP_ContextData being used. Needed for random num generation. |
Definition at line 84 of file POP_Node.h.
| typedef float(POP_Node::* POP_FParam)(float t) |
Definition at line 113 of file POP_Node.h.
| typedef int(POP_Node::* POP_IntFunc)(POP_ContextData *data) |
Prototype for function that returns a integer value. Function returns the value.
| data | POP_ContextData being used. Needed for random num generation. |
Definition at line 90 of file POP_Node.h.
| typedef int(POP_Node::* POP_IParam)(float t) |
Definition at line 114 of file POP_Node.h.
| typedef void(POP_Node::* POP_JitterFunc)(GU_Detail **gdp, GA_PointGroup **pointGroup, GA_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 99 of file POP_Node.h.
| typedef UT_PtrArray<POP_ParticleList*> POP_ParticleListArray |
| typedef void(POP_Node::* POP_SParam)(UT_String &s, float t) |
Definition at line 115 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 94 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 116 of file POP_Node.h.
| SYS_VISIBILITY_EXPORT void newPopOperator | ( | OP_OperatorTable * | table | ) |
Definition at line 84 of file POP_CircleForce.C.
| POP_API void POPgetVexReservedTemplateLists | ( | UT_PtrArray< PRM_Template * > & | tplatelists | ) |
1.5.9