|
ParticleAPI 3.0.0
Performant particle system API in C++ for interactive graphics
|
PAPIClasses.h. More...
Classes | |
| struct | Particle_t |
| class | ParticleContext_t |
| The Particle System API Context - Your app should have one of these per host thread that will do particle systems concurrently. More... | |
| class | PContextActionList_t |
| Action List Calls. More... | |
| class | PContextActions_t |
| This class contains the Action API. More... | |
| class | PContextParticleGroup_t |
| This class contains the API calls that operate on particle groups. More... | |
| struct | PDBlob |
| Gaussian blob. More... | |
| struct | PDBox |
| Axis-aligned bounding box (AABB) More... | |
| struct | PDCone |
| Cone. More... | |
| struct | PDCylinder |
| Cylinder. More... | |
| struct | PDDisc |
| Arbitrarily-oriented disc. More... | |
| struct | PDLine |
| A line segment. More... | |
| class | pDomain |
| A representation of a region of space. More... | |
| struct | PDPlane |
| Arbitrarily-oriented plane. More... | |
| struct | PDPoint |
| A single point. More... | |
| struct | PDRectangle |
| Rhombus-shaped planar region. More... | |
| struct | PDSphere |
| Sphere. More... | |
| struct | PDTriangle |
| A Triangle. More... | |
| struct | PDUnion |
| A CSG union of multiple domains. More... | |
| struct | PErrActionList |
| An action list call had an error. More... | |
| struct | PErrInNewActionList |
| An operation was illegally attempted while in the midst of compiling an action list. More... | |
| struct | PErrInternalError |
| Internal API error (a PASSERT failed) More... | |
| struct | PErrInvalidValue |
| An invalid value was passed to an API call. More... | |
| struct | PErrNotImplemented |
| API encountered an unimplemented code path like Bounce for a new. More... | |
| struct | PError_t |
| Base type of all exceptions thrown by the Particle System API. More... | |
| struct | PErrParticleGroup |
| A particle group call had an error. More... | |
| class | pSourceState |
| These functions set the current state needed by Source() and Vertex() actions. More... | |
| class | pVec |
| A single-precision floating point three-vector. More... | |
Typedefs | |
| typedef unsigned int | pdata_t |
| typedef void(* | P_PARTICLE_CALLBACK) (struct Particle_t &particle, const pdata_t data) |
| This is the type of the particle birth and death callback functions that you can register. More... | |
| typedef void(* | P_PARTICLE_CALLBACK_ACTION) (struct Particle_t &particle, const pdata_t data, const float dt) |
| This is the type of the callback functions that you can register for the Callback() action. More... | |
Enumerations | |
| enum | pDomainType_E { PDUnion_e , PDPoint_e , PDLine_e , PDTriangle_e , PDRectangle_e , PDDisc_e , PDPlane_e , PDBox_e , PDCylinder_e , PDCone_e , PDSphere_e , PDBlob_e } |
| Enums for the different types of domains that can be stored in a pDomain. More... | |
Functions | |
| float | fsqr (float f) |
| float | pRandf () |
| void | pSRandf (int x) |
| bool | pSameSign (const float &a, const float &b) |
| float | pNRandf (float sigma=1.0f) |
| Return a random number with a normal distribution. More... | |
| pVec | pRandVec () |
| pVec | pNRandVec (float sigma) |
Variables | |
| const int | P_VERSION = 300 |
| This is the version number of this release of the API. More... | |
| const float | P_MAXFLOAT = 1.0e16f |
| A very large float value used as a default arg passed into functions. More... | |
| const float | P_EPS = 1e-3f |
| A very small float value added to some physical calculations to dampen them and improve stability. More... | |
| const float | P_SQRT2PI = 2.506628274631000502415765284811045253006f |
| const float | P_ONEOVERSQRT2PI = (1.f / P_SQRT2PI) |
| const float | P_ONEOVER_RAND_MAX = (1.0f / ((float)RAND_MAX)) |
PAPIClasses.h.
Particle.h.
Copyright 1997-2007, 2022 by David K. McAllister
Include this file in all applications that use the Particle System API.
Copyright 1997-2007, 2022 by David K. McAllister
This file defines the pDomain struct and all of the classes that derive from it.
Copyright 1997-2007, 2022 by David K. McAllister
This file defines the error classes that are thrown.
Copyright 1997-2007, 2022 by David K. McAllister
Only application code should include this. This file contains the host interface definitions to the inline particle actions. It is a header file so that the action implementations are inlined. The intended usage is as follows:
P.ParticleLoop(std::execution::par_unseq, [&](Particle_t& m) { P.I.Gravity(Efx.GravityVec); P.I.Bounce(0.f, 0.5f, 0.f, PDDisc(pVec(0, 0, 1.f), pVec(0, 0, 1.f), 5)); P.I.Move(true, false); });
Copyright 1997-2007, 2022 by David K. McAllister
This file contains the definition of a particle. It should only be included by API implementation files, not by applications. The only exception is callback functions.
Copyright 1997-2007, 2022 by David K. McAllister
Defines these classes: pSourceState
| typedef void(* P_PARTICLE_CALLBACK) (struct Particle_t &particle, const pdata_t data) |
This is the type of the particle birth and death callback functions that you can register.
| typedef void(* P_PARTICLE_CALLBACK_ACTION) (struct Particle_t &particle, const pdata_t data, const float dt) |
This is the type of the callback functions that you can register for the Callback() action.
| typedef unsigned int pdata_t |
| enum pDomainType_E |
Enums for the different types of domains that can be stored in a pDomain.
| Enumerator | |
|---|---|
| PDUnion_e | |
| PDPoint_e | |
| PDLine_e | |
| PDTriangle_e | |
| PDRectangle_e | |
| PDDisc_e | |
| PDPlane_e | |
| PDBox_e | |
| PDCylinder_e | |
| PDCone_e | |
| PDSphere_e | |
| PDBlob_e | |
|
inline |
|
inline |
Return a random number with a normal distribution.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| const float P_EPS = 1e-3f |
A very small float value added to some physical calculations to dampen them and improve stability.
| const float P_MAXFLOAT = 1.0e16f |
A very large float value used as a default arg passed into functions.
| const float P_ONEOVER_RAND_MAX = (1.0f / ((float)RAND_MAX)) |
| const float P_ONEOVERSQRT2PI = (1.f / P_SQRT2PI) |
| const float P_SQRT2PI = 2.506628274631000502415765284811045253006f |
| const int P_VERSION = 300 |
This is the version number of this release of the API.