|
Particle Universe
1.2
|
#include <ParticleUniverseInterParticleCollider.h>

Public Types | |
| enum | InterParticleCollisionResponse { IPCR_AVERAGE_VELOCITY, IPCR_ANGLE_BASED_VELOCITY } |
Public Types inherited from ParticleUniverse::BaseCollider | |
| enum | IntersectionType { IT_POINT, IT_BOX } |
| enum | CollisionType { CT_NONE, CT_BOUNCE, CT_FLOW } |
Public Types inherited from ParticleUniverse::ParticleAffector | |
| enum | AffectSpecialisation { AFSP_DEFAULT, AFSP_TTL_INCREASE, AFSP_TTL_DECREASE } |
Public Types inherited from ParticleUniverse::Particle | |
| enum | ParticleType { PT_VISUAL, PT_TECHNIQUE, PT_EMITTER, PT_AFFECTOR, PT_SYSTEM } |
| enum | ReservedParticleEventFlags { PEF_EXPIRED = 1<<0, PEF_EMITTED = 1<<1, PEF_COLLIDED = 1<<2 } |
| typedef vector< ParticleBehaviour * > | ParticleBehaviourList |
| typedef ParticleBehaviourList::const_iterator | ParticleBehaviourIterator |
Public Types inherited from ParticleUniverse::IAlias | |
| enum | AliasType { AT_UNDEFINED, AT_TECHNIQUE, AT_RENDERER, AT_EMITTER, AT_AFFECTOR, AT_OBSERVER, AT_EXTERN, AT_HANDLER, AT_BEHAVIOUR } |
Public Member Functions | |
| InterParticleCollider (void) | |
| virtual | ~InterParticleCollider (void) |
| Real | getAdjustment (void) const |
| void | setAdjustment (Real adjustment) |
| InterParticleCollisionResponse | getInterParticleCollisionResponse (void) const |
| void | setInterParticleCollisionResponse (InterParticleCollisionResponse interParticleCollisionResponse) |
| virtual void | _prepare (ParticleTechnique *particleTechnique) |
| virtual void | _unprepare (ParticleTechnique *particleTechnique) |
| virtual void | _affect (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed) |
| virtual void | copyAttributesTo (ParticleAffector *affector) |
Public Member Functions inherited from ParticleUniverse::BaseCollider | |
| BaseCollider (void) | |
| virtual | ~BaseCollider (void) |
| virtual void | _preProcessParticles (ParticleTechnique *particleTechnique, Real timeElapsed) |
| const IntersectionType | getIntersectionType (void) const |
| void | setIntersectionType (const IntersectionType &intersectionType) |
| const CollisionType | getCollisionType (void) const |
| void | setCollisionType (const CollisionType &collisionType) |
| const Real | getFriction (void) const |
| void | setFriction (const Real friction) |
| const Real | getBouncyness (void) const |
| void | setBouncyness (const Real bouncyness) |
| void | populateAlignedBox (AxisAlignedBox &box, const Vector3 &position, const Real width, const Real height, const Real depth) |
| void | calculateRotationSpeedAfterCollision (Particle *particle) |
Public Member Functions inherited from ParticleUniverse::ParticleAffector | |
| ParticleAffector (void) | |
| virtual | ~ParticleAffector (void) |
| const AffectSpecialisation & | getAffectSpecialisation (void) const |
| void | setAffectSpecialisation (const AffectSpecialisation &affectSpecialisation) |
| const String & | getAffectorType (void) const |
| void | setAffectorType (const String &affectorType) |
| const String & | getName (void) const |
| void | setName (const String &name) |
| ParticleTechnique * | getParentTechnique (void) const |
| void | setParentTechnique (ParticleTechnique *parentTechnique) |
| virtual void | _notifyStart (void) |
| virtual void | _notifyStop (void) |
| virtual void | _notifyPause (void) |
| virtual void | _notifyResume (void) |
| virtual void | _notifyRescaled (const Vector3 &scale) |
| virtual void | _firstParticle (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed) |
| virtual void | _initForEmission (void) |
| virtual void | _initForExpiration (ParticleTechnique *technique, Real timeElapsed) |
| virtual void | _initParticleForEmission (Particle *particle) |
| void | _processParticle (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed, bool firstParticle) |
| virtual void | _postProcessParticles (ParticleTechnique *technique, Real timeElapsed) |
| void | addEmitterToExclude (const String &emitterName) |
| void | removeEmitterToExclude (const String &emitterName) |
| void | removeAllEmittersToExclude (void) |
| const list< String > & | getEmittersToExclude (void) const |
| bool | hasEmitterToExclude (const String &emitterName) |
| virtual void | copyParentAttributesTo (ParticleAffector *affector) |
| const Vector3 & | getDerivedPosition (void) |
| Real | _calculateAffectSpecialisationFactor (const Particle *particle) |
Public Member Functions inherited from ParticleUniverse::Particle | |
| Particle (void) | |
| virtual | ~Particle (void) |
| bool | _isMarkedForEmission (void) const |
| void | _setMarkedForEmission (bool markedForEmission) |
| virtual bool | isEnabled (void) const |
| virtual void | setEnabled (bool enabled) |
| void | _setOriginalEnabled (bool originalEnabled) |
| bool | _getOriginalEnabled (void) const |
| bool | isFreezed (void) const |
| void | setFreezed (bool freezed) |
| void | setEventFlags (uint32 flags) |
| void | addEventFlags (uint32 flags) |
| void | removeEventFlags (uint32 flags) |
| uint32 | getEventFlags (void) const |
| bool | hasEventFlags (uint32 flags) const |
| void | copyBehaviours (ParticleBehaviourList &behaviours) |
| virtual void | _process (ParticleTechnique *technique, Real timeElapsed) |
| ParticleBehaviour * | getBehaviour (const String &behaviourType) |
| Real | calculateVelocity (void) const |
| virtual void | copyAttributesTo (Particle *particle) |
Public Member Functions inherited from ParticleUniverse::IAlias | |
| IAlias (void) | |
| virtual | ~IAlias (void) |
| const String & | getAliasName (void) const |
| void | setAliasName (String aliasName) |
| const AliasType | getAliasType (void) const |
| void | setAliasType (AliasType aliasType) |
Public Member Functions inherited from ParticleUniverse::IElement | |
| IElement (void) | |
| virtual | ~IElement (void) |
Static Public Attributes | |
| static const Real | DEFAULT_ADJUSTMENT |
| static const InterParticleCollisionResponse | DEFAULT_COLLISION_RESPONSE |
Static Public Attributes inherited from ParticleUniverse::BaseCollider | |
| static const Real | DEFAULT_BOUNCYNESS |
| static const Real | DEFAULT_FRICTION |
| static const IntersectionType | DEFAULT_INTERSECTION_TYPE |
| static const CollisionType | DEFAULT_COLLISION_TYPE |
Static Public Attributes inherited from ParticleUniverse::ParticleAffector | |
| static const bool | DEFAULT_ENABLED |
| static const Vector3 | DEFAULT_POSITION |
| static const AffectSpecialisation | DEFAULT_SPECIALISATION |
Static Public Attributes inherited from ParticleUniverse::Particle | |
| static Real | DEFAULT_TTL |
| static Real | DEFAULT_MASS |
Protected Member Functions | |
| bool | _validateAndExecuteSphereCollision (Particle *particle1, Particle *particle2, Real timeElapsed) |
Protected Attributes | |
| Real | mAdjustment |
| InterParticleCollisionResponse | mInterParticleCollisionResponse |
Protected Attributes inherited from ParticleUniverse::BaseCollider | |
| Real | mFriction |
| Real | mBouncyness |
| IntersectionType | mIntersectionType |
| CollisionType | mCollisionType |
| Real | mVelocityScale |
Protected Attributes inherited from ParticleUniverse::ParticleAffector | |
| ParticleTechnique * | mParentTechnique |
| String | mAffectorType |
| String | mName |
| AffectSpecialisation | mAffectSpecialisation |
| list< String > | mExcludedEmitters |
| Vector3 | _mAffectorScale |
Protected Attributes inherited from ParticleUniverse::Particle | |
| uint32 | mEventFlags |
| bool | mMarkedForEmission |
| bool | mEnabled |
| bool | mFreezed |
| bool | mOriginalEnabled |
| bool | mOriginalEnabledSet |
| Vector3 | mDerivedPosition |
| ParticleBehaviourList | mBehaviours |
Protected Attributes inherited from ParticleUniverse::IAlias | |
| String | mAliasName |
| AliasType | mAliasType |
Additional Inherited Members | |
Public Attributes inherited from ParticleUniverse::Particle | |
| ParticleEmitter * | parentEmitter |
| Vector3 | position |
| Vector3 | direction |
| Real | mass |
| Real | timeToLive |
| Real | totalTimeToLive |
| Real | timeFraction |
| ParticleType | particleType |
| Any | mUserDefinedObject |
| PhysicsActor * | physicsActor |
| IVisualData * | visualData |
| Vector3 | originalPosition |
| Vector3 | originalDirection |
| Real | originalVelocity |
| Real | originalDirectionLength |
| Real | originalScaledDirectionLength |
| Vector3 | latestPosition |
The InterParticleCollider is used to perform particle-particle collision.
| ParticleUniverse::InterParticleCollider::InterParticleCollider | ( | void | ) |
|
inlinevirtual |
|
virtual |
Affect a particle.
| particle | Pointer to a ParticleTechnique to which the particle belongs. |
| particle | Pointer to a Particle. |
| timeElapsed | The number of seconds which have elapsed since the last call. |
Implements ParticleUniverse::ParticleAffector.
|
virtual |
Perform initialisation actions.
Reimplemented from ParticleUniverse::ParticleAffector.
|
virtual |
Reverse the actions from the _prepare.
Reimplemented from ParticleUniverse::ParticleAffector.
|
protected |
Todo
|
virtual |
Copy attributes to another affector.
Reimplemented from ParticleUniverse::BaseCollider.
| Real ParticleUniverse::InterParticleCollider::getAdjustment | ( | void | ) | const |
Todo
| InterParticleCollisionResponse ParticleUniverse::InterParticleCollider::getInterParticleCollisionResponse | ( | void | ) | const |
Todo
| void ParticleUniverse::InterParticleCollider::setAdjustment | ( | Real | adjustment | ) |
Todo
| void ParticleUniverse::InterParticleCollider::setInterParticleCollisionResponse | ( | InterParticleCollisionResponse | interParticleCollisionResponse | ) |
Todo
|
static |
|
static |
|
protected |
|
protected |