OSG
3.4.0
|
#include <DomainOperator.h>
Classes | |
struct | Domain |
Public Member Functions | |
DomainOperator () | |
DomainOperator (const DomainOperator ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgParticle, DomainOperator) | |
void | addPointDomain (const osg::Vec3 &p) |
Add a point domain. More... | |
void | addLineSegmentDomain (const osg::Vec3 &v1, const osg::Vec3 &v2) |
Add a line segment domain. More... | |
void | addTriangleDomain (const osg::Vec3 &v1, const osg::Vec3 &v2, const osg::Vec3 &v3) |
Add a triangle domain. More... | |
void | addRectangleDomain (const osg::Vec3 &corner, const osg::Vec3 &w, const osg::Vec3 &h) |
Add a rectangle domain. More... | |
void | addPlaneDomain (const osg::Plane &plane) |
Add a plane domain. More... | |
void | addSphereDomain (const osg::Vec3 &c, float r) |
Add a sphere domain. More... | |
void | addBoxDomain (const osg::Vec3 &min, const osg::Vec3 &max) |
Add a box domain. More... | |
void | addDiskDomain (const osg::Vec3 &c, const osg::Vec3 &n, float r1, float r2=0.0f) |
Add a disk domain. More... | |
void | addDomain (const Domain &domain) |
Add a domain object directly, used by the .osg wrappers and serializers. More... | |
const Domain & | getDomain (unsigned int i) const |
Get a domain object directly, used by the .osg wrappers and serializers. More... | |
void | removeDomain (unsigned int i) |
Remove a domain at specific index. More... | |
void | removeAllDomains () |
Remove all existing domains. More... | |
unsigned int | getNumDomains () const |
Get number of domains. More... | |
void | operate (Particle *P, double dt) |
Apply the acceleration to a particle. Do not call this method manually. More... | |
void | beginOperate (Program *prg) |
Perform some initializations. Do not call this method manually. More... | |
void | endOperate () |
Perform some post-operations. Do not call this method manually. More... | |
![]() | |
Operator () | |
Operator (const Operator ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
virtual const char * | libraryName () const |
virtual const char * | className () const |
virtual bool | isSameKindAs (const osg::Object *obj) const |
bool | isEnabled () const |
Get whether this operator is enabled. More... | |
void | setEnabled (bool v) |
Enable or disable this operator. More... | |
virtual void | operateParticles (ParticleSystem *ps, double dt) |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const =0 |
virtual Object * | clone (const CopyOp &) const =0 |
std::string | getCompoundClassName () const |
virtual Node * | asNode () |
virtual const Node * | asNode () const |
virtual NodeVisitor * | asNodeVisitor () |
virtual const NodeVisitor * | asNodeVisitor () const |
virtual StateAttribute * | asStateAttribute () |
virtual const StateAttribute * | asStateAttribute () const |
virtual Uniform * | asUniform () |
virtual const Uniform * | asUniform () const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
virtual void | setName (const std::string &name) |
void | setName (const char *name) |
const std::string & | getName () const |
void | setDataVariance (DataVariance dv) |
DataVariance | getDataVariance () const |
virtual void | computeDataVariance () |
void | setUserDataContainer (osg::UserDataContainer *udc) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
virtual Referenced * | getUserData () |
virtual const Referenced * | getUserData () const |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
virtual void | resizeGLObjectBuffers (unsigned int) |
virtual void | releaseGLObjects (osg::State *=0) const |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
Protected Member Functions | |
virtual | ~DomainOperator () |
DomainOperator & | operator= (const DomainOperator &) |
virtual void | handlePoint (const Domain &, Particle *, double) |
virtual void | handleLineSegment (const Domain &, Particle *, double) |
virtual void | handleTriangle (const Domain &, Particle *, double) |
virtual void | handleRectangle (const Domain &, Particle *, double) |
virtual void | handlePlane (const Domain &, Particle *, double) |
virtual void | handleSphere (const Domain &, Particle *, double) |
virtual void | handleBox (const Domain &, Particle *, double) |
virtual void | handleDisk (const Domain &, Particle *, double) |
void | computeNewBasis (const osg::Vec3 &, const osg::Vec3 &, osg::Vec3 &, osg::Vec3 &) |
void | ignore (const std::string &func) |
![]() | |
virtual | ~Operator () |
Operator & | operator= (const Operator &) |
![]() | |
virtual | ~Object () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
std::vector< Domain > | _domains |
std::vector< Domain > | _backupDomains |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Additional Inherited Members | |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
static bool | getThreadSafeReferenceCounting () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
A domain operator which accepts different domain shapes as the parameter. It can be derived to implement operators that require particles interacting with domains. Refer to David McAllister's Particle System API (http://www.particlesystems.org)
Definition at line 30 of file DomainOperator.h.
|
inline |
Definition at line 60 of file DomainOperator.h.
|
inline |
Definition at line 64 of file DomainOperator.h.
|
inlineprotectedvirtual |
Definition at line 120 of file DomainOperator.h.
|
inline |
Add a box domain.
Definition at line 194 of file DomainOperator.h.
|
inline |
Add a disk domain.
Definition at line 202 of file DomainOperator.h.
|
inline |
Add a domain object directly, used by the .osg wrappers and serializers.
Definition at line 95 of file DomainOperator.h.
|
inline |
Add a line segment domain.
Definition at line 148 of file DomainOperator.h.
|
inline |
Add a plane domain.
Definition at line 179 of file DomainOperator.h.
|
inline |
Add a point domain.
Definition at line 141 of file DomainOperator.h.
|
inline |
Add a rectangle domain.
Definition at line 168 of file DomainOperator.h.
|
inline |
Add a sphere domain.
Definition at line 186 of file DomainOperator.h.
|
inline |
Add a triangle domain.
Definition at line 157 of file DomainOperator.h.
|
virtual |
Perform some initializations. Do not call this method manually.
Reimplemented from osgParticle::Operator.
Reimplemented in osgParticle::SinkOperator.
|
inlineprotected |
Definition at line 213 of file DomainOperator.h.
|
virtual |
Perform some post-operations. Do not call this method manually.
Reimplemented from osgParticle::Operator.
|
inline |
Get a domain object directly, used by the .osg wrappers and serializers.
Definition at line 98 of file DomainOperator.h.
|
inline |
Get number of domains.
Definition at line 108 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator.
Definition at line 129 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator, and osgParticle::BounceOperator.
Definition at line 130 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator.
Definition at line 124 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator, and osgParticle::BounceOperator.
Definition at line 127 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator.
Definition at line 123 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator, and osgParticle::BounceOperator.
Definition at line 126 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator, and osgParticle::BounceOperator.
Definition at line 128 of file DomainOperator.h.
|
inlineprotectedvirtual |
Reimplemented in osgParticle::SinkOperator, and osgParticle::BounceOperator.
Definition at line 125 of file DomainOperator.h.
|
inlineprotected |
osgParticle::DomainOperator::META_Object | ( | osgParticle | , |
DomainOperator | |||
) |
|
virtual |
Apply the acceleration to a particle. Do not call this method manually.
Implements osgParticle::Operator.
|
inlineprotected |
Definition at line 121 of file DomainOperator.h.
|
inline |
Remove all existing domains.
Definition at line 105 of file DomainOperator.h.
|
inline |
Remove a domain at specific index.
Definition at line 101 of file DomainOperator.h.
|
protected |
Definition at line 136 of file DomainOperator.h.
|
protected |
Definition at line 135 of file DomainOperator.h.