#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) |
Definition at line 53 of file POP_Node.h.
Definition at line 55 of file POP_Node.h.
Use during cook to call a parameter evaluation method pointer during a callback.
Definition at line 192 of file POP_Node.h.
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; }
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 148 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 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; }
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); }
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.
Use during cook to call a parameter evaluation method pointer.
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; }
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.
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:
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; }
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.
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]; }
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.
Definition at line 57 of file POP_Node.h.
Definition at line 59 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 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.
| data | POP_ContextData being used. Needed for random num generation. |
Definition at line 76 of file POP_Node.h.
| typedef float(POP_Node::* POP_FParam)(float t) |
Definition at line 105 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 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.
| typedef UT_PtrArray<POP_ParticleList*> POP_ParticleListArray |
| 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.
| 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