DD::Image::ParticleBehaviour Class Reference

Inherits DD::Image::ParticleOp.

List of all members.

Public Types

enum  FalloffType { eNoFalloff, eInverseFalloff, eInverseSquareFalloff }

Public Member Functions

 ParticleBehaviour (Node *node)
int minimum_inputs () const override
int maximum_inputs () const override
bool test_input (int input, Op *op) const override
Opdefault_input (int input) const override
const char * input_label (int input, char *buffer) const override
int knob_changed (DD::Image::Knob *knob) override
ParticleOpinput_pop () const
bool doApplyBehaviour (const ParticleContext &context, ParticleSystem &ps, unsigned pathMask) override
void addConditionsKnobs (Knob_Callback f)
void addDomainKnobs (Knob_Callback f)
void addSeedKnob (Knob_Callback f)
void applyForce (ParticleSystem *ps, unsigned idx, const ParticleContext &ctx, Vector3 force)
 apply force to particle, for timeslice dt
void applyAcceleration (ParticleSystem *ps, unsigned idx, const ParticleContext &ctx, Vector3 accel)
 apply acceleration to particle, for timeslice dt
void applyForce (const ParticleContext &ctx, const Vector3 &force, Vector3 &particleVelocity, double particleStartTime, float particleMass)
void applyAcceleration (const ParticleContext &ctx, const Vector3 &acceleration, Vector3 &particleVelocity, double particleStartTime)
Domain * domain () const
virtual bool conditionsApply (ParticleSystem *system, unsigned idx)
 return true if the conditions apply _and_ the particle is within any domain
HandlesMode doAnyHandles (ViewerContext *ctx) override
void build_handles (ViewerContext *context) override
void draw_handle (ViewerContext *context) override

Static Public Member Functions

static void Falloff_knob (Knob_Callback f, FalloffType *falloffType, const char *name, const char *label=NULL)
 add the an Enumeration_Knob for falloff, with given name/label
static float calculateFalloff (float r, FalloffType type)
 calculate the fallout given distance /r/

Protected Attributes

float _probability
ParticleChannelSet _channels
unsigned int _pathMask
Random _random
int _seed
float _minAge
float _maxAge
int _domainType
bool _domainInvert
Matrix4 _axis
Matrix4 _axisInverse

Detailed Description

The base class for most of the particle forces and behaviours. This extends ParticleOp by adding the standard knobs for all the conditions that must apply for a particle before the op acts on it.


Member Function Documentation

void DD::Image::ParticleBehaviour::applyForce ( const ParticleContext &  ctx,
const Vector3 force,
Vector3 particleVelocity,
double  particleStartTime,
float  particleMass 
) [inline]

apply force to particle, for timeslice dt This (preferred) version is for use when you have the pointers to the particle attributes, which is much faster.

void DD::Image::ParticleBehaviour::applyAcceleration ( const ParticleContext &  ctx,
const Vector3 acceleration,
Vector3 particleVelocity,
double  particleStartTime 
) [inline]

apply acceleration to particle, for timeslice dt This (preferred) version is for use when you have the pointers to the particle attributes, which is much faster.