15#ifndef OSGPARTICLE_SINKOPERATOR
16#define OSGPARTICLE_SINKOPERATOR
31 enum SinkTarget { SINK_POSITION, SINK_VELOCITY, SINK_ANGULAR_VELOCITY };
35 :
DomainOperator(), _sinkTarget(SINK_POSITION), _sinkStrategy(SINK_INSIDE)
39 :
DomainOperator(copy, copyop), _sinkTarget(copy._sinkTarget), _sinkStrategy(copy._sinkStrategy)
73 inline void kill(
Particle* P,
bool insideDomain );
Definition DomainOperator:31
void kill()
Definition Particle:443
const osg::Vec3 & getPosition() const
Get the position vector.
Definition Particle:403
const osg::Vec3 & getVelocity() const
Definition Particle:408
const osg::Vec3 & getAngularVelocity() const
Get the rotational velocity vector.
Definition Particle:423
Definition osgParticle/Program:36
Definition SinkOperator:29
virtual void handleLineSegment(const Domain &domain, Particle *P, double dt)
virtual void handleBox(const Domain &domain, Particle *P, double dt)
SinkOperator(const SinkOperator ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
Definition SinkOperator:38
META_Object(osgParticle, SinkOperator)
SinkTarget
Definition SinkOperator:31
@ SINK_POSITION
Definition SinkOperator:31
@ SINK_ANGULAR_VELOCITY
Definition SinkOperator:31
@ SINK_VELOCITY
Definition SinkOperator:31
void setSinkTarget(SinkTarget so)
Set the sink strategy.
Definition SinkOperator:45
SinkOperator()
Definition SinkOperator:34
SinkOperator & operator=(const SinkOperator &)
Definition SinkOperator:61
virtual void handleRectangle(const Domain &domain, Particle *P, double dt)
void kill(Particle *P, bool insideDomain)
Definition SinkOperator:91
const osg::Vec3 & getValue(Particle *P)
Definition SinkOperator:81
void setSinkStrategy(SinkStrategy ss)
Set the sink strategy.
Definition SinkOperator:51
virtual ~SinkOperator()
Definition SinkOperator:60
void beginOperate(Program *prg)
Perform some initializations. Do not call this method manually.
SinkTarget _sinkTarget
Definition SinkOperator:75
SinkStrategy getSinkStrategy() const
Get the sink strategy.
Definition SinkOperator:54
SinkStrategy _sinkStrategy
Definition SinkOperator:76
virtual void handlePlane(const Domain &domain, Particle *P, double dt)
virtual void handleDisk(const Domain &domain, Particle *P, double dt)
SinkStrategy
Definition SinkOperator:32
@ SINK_INSIDE
Definition SinkOperator:32
virtual void handleSphere(const Domain &domain, Particle *P, double dt)
virtual void handleTriangle(const Domain &domain, Particle *P, double dt)
SinkTarget getSinkTarget() const
Get the sink strategy.
Definition SinkOperator:48
virtual void handlePoint(const Domain &domain, Particle *P, double dt)
@ SHALLOW_COPY
Definition CopyOp:47
Definition AccelOperator:27
#define OSGPARTICLE_EXPORT
Definition osgParticle/Export:40
Definition DomainOperator:34