PhysicsParticleObject Class Reference

#include <PhysicsParticleObject.h>

Inheritance diagram for PhysicsParticleObject:

PhysicsParticleActionObject

List of all members.

Public Member Functions

 PhysicsParticleObject ()
virtual ~PhysicsParticleObject ()
void setPhysics (PhysicsParticleInfo info, ScorchedContext &context, FixedVector &position, FixedVector &velocity, fixed sphereSize=0, fixed sphereDensity=0, fixed windFactor=1, bool underGroundCollision=false, bool rotateOnCollision=false, bool wallCollision=true)
void applyForce (FixedVector &force)
void simulate (fixed frameTime)
FixedVectorgetPosition ()
FixedVectorgetVelocity ()
FixedVector4getRotationQuat ()
void setHandler (PhysicsParticleObjectHandler *handler)
void setPosition (FixedVector &position)

Protected Types

enum  CollisionAction { CollisionActionNone = 0, CollisionActionCollision, CollisionActionBounce }

Protected Member Functions

virtual void shotWallHit (CollisionInfo &collision)
virtual void shotShieldHit (Target *target)
virtual void bounceShieldHit (Target *target)
void checkCollision ()
CollisionAction checkShotCollision (CollisionInfo &collision, Target *target)
CollisionAction checkBounceCollision (CollisionInfo &collision, Target *target)
CollisionAction checkFallingCollision (CollisionInfo &collision, Target *target)
bool getLandscapeCollision (CollisionInfo &collision)
bool getRoofCollision (CollisionInfo &collision)
bool getWallCollision (CollisionInfo &collision)
bool getShieldCollision (CollisionInfo &collision, Target *target)
bool getTargetCollision (CollisionInfo &collision, Target *target)
bool getTargetBounceCollision (CollisionInfo &collision, Target *target)

Protected Attributes

PhysicsParticleInfo info_
ScorchedContextcontext_
PhysicsParticleObjectHandlerhandler_
bool underGroundCollision_
bool rotateOnCollision_
bool wallCollision_
unsigned int iterations_
FixedVector position_
FixedVector velocity_
FixedVector windFactor_
FixedVector4 rotation_
FixedVector4 avelocity_

Classes

struct  CollisionInfo


Detailed Description

Definition at line 66 of file PhysicsParticleObject.h.


Member Enumeration Documentation

enum PhysicsParticleObject::CollisionAction [protected]

Enumerator:
CollisionActionNone 
CollisionActionCollision 
CollisionActionBounce 

Definition at line 107 of file PhysicsParticleObject.h.


Constructor & Destructor Documentation

PhysicsParticleObject::PhysicsParticleObject (  ) 

Definition at line 42 of file PhysicsParticleObject.cpp.

PhysicsParticleObject::~PhysicsParticleObject (  )  [virtual]

Definition at line 48 of file PhysicsParticleObject.cpp.


Member Function Documentation

void PhysicsParticleObject::setPhysics ( PhysicsParticleInfo  info,
ScorchedContext context,
FixedVector position,
FixedVector velocity,
fixed  sphereSize = 0,
fixed  sphereDensity = 0,
fixed  windFactor = 1,
bool  underGroundCollision = false,
bool  rotateOnCollision = false,
bool  wallCollision = true 
)

Definition at line 57 of file PhysicsParticleObject.cpp.

References context_, ScorchedContext::getOptionsGame(), ScorchedContext::getOptionsTransient(), OptionsTransient::getWindDirection(), OptionsTransient::getWindSpeed(), info_, position_, rotateOnCollision_, rotation_, FixedVector4::setQuatFromAxisAndAngle(), underGroundCollision_, velocity_, wallCollision_, and windFactor_.

Referenced by TankAIAimGuesser::getCurrentGuess(), and PhysicsParticle::setPhysics().

void PhysicsParticleObject::applyForce ( FixedVector force  ) 

Definition at line 52 of file PhysicsParticleObject.cpp.

References velocity_.

Referenced by PhysicsParticle::applyForce().

void PhysicsParticleObject::simulate ( fixed  frameTime  ) 

Definition at line 84 of file PhysicsParticleObject.cpp.

References avelocity_, checkCollision(), context_, handler_, iterations_, FixedVector4::Normalize(), position_, rotateOnCollision_, rotation_, velocity_, and windFactor_.

Referenced by TankAIAimGuesser::getCurrentGuess(), and PhysicsParticle::simulate().

FixedVector& PhysicsParticleObject::getPosition (  )  [inline]

Definition at line 86 of file PhysicsParticleObject.h.

References position_.

Referenced by TankFalling::collision(), ShotProjectile::collision(), PhysicsParticle::getCurrentPosition(), and TankAIAimGuesser::guess().

FixedVector& PhysicsParticleObject::getVelocity (  )  [inline]

Definition at line 87 of file PhysicsParticleObject.h.

References velocity_.

Referenced by PhysicsParticle::getCurrentVelocity().

FixedVector4& PhysicsParticleObject::getRotationQuat (  )  [inline]

Definition at line 88 of file PhysicsParticleObject.h.

References rotation_.

Referenced by PhysicsParticle::getRotationQuat().

void PhysicsParticleObject::setHandler ( PhysicsParticleObjectHandler handler  )  [inline]

Definition at line 90 of file PhysicsParticleObject.h.

References handler_.

Referenced by TankAIAimGuesser::getCurrentGuess(), and PhysicsParticle::setPhysics().

void PhysicsParticleObject::setPosition ( FixedVector position  )  [inline]

Definition at line 91 of file PhysicsParticleObject.h.

References position_.

Referenced by PhysicsParticle::setCurrentPosition().

void PhysicsParticleObject::shotWallHit ( CollisionInfo collision  )  [protected, virtual]

Definition at line 670 of file PhysicsParticleObject.cpp.

Referenced by checkShotCollision().

void PhysicsParticleObject::shotShieldHit ( Target target  )  [protected, virtual]

Reimplemented in PhysicsParticleActionObject.

Definition at line 662 of file PhysicsParticleObject.cpp.

Referenced by checkShotCollision().

void PhysicsParticleObject::bounceShieldHit ( Target target  )  [protected, virtual]

Reimplemented in PhysicsParticleActionObject.

Definition at line 666 of file PhysicsParticleObject.cpp.

Referenced by checkBounceCollision().

void PhysicsParticleObject::checkCollision (  )  [protected]

Definition at line 101 of file PhysicsParticleObject.cpp.

References ActionController::addSyncCheck(), avelocity_, checkBounceCollision(), checkFallingCollision(), checkShotCollision(), PhysicsParticleObjectHandler::collision(), CollisionActionBounce, CollisionActionCollision, CollisionActionNone, PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdNone, context_, PhysicsParticleObject::CollisionInfo::deflectFactor, FixedVector::dotP(), S3D::formatStringBuffer(), ScorchedContext::getActionController(), TargetSpace::getCollision(), LandscapeMaps::getGroundMaps(), getLandscapeCollision(), ScorchedContext::getLandscapeMaps(), ScorchedContext::getOptionsGame(), getRoofCollision(), getShieldCollision(), getTargetBounceCollision(), getTargetCollision(), ScorchedContext::getTargetSpace(), getWallCollision(), handler_, info_, FixedVector::Magnitude(), MIN, PhysicsParticleObject::CollisionInfo::normal, ParticleTypeBounce, ParticleTypeFalling, ParticleTypeShot, position_, rotateOnCollision_, FixedVector4::setQuatFromAxisAndAngle(), FixedVector::StoreNormalize(), PhysicsParticleInfo::type_, underGroundCollision_, and velocity_.

Referenced by simulate().

PhysicsParticleObject::CollisionAction PhysicsParticleObject::checkShotCollision ( CollisionInfo collision,
Target target 
) [protected]

Definition at line 204 of file PhysicsParticleObject.cpp.

References CollisionActionBounce, CollisionActionCollision, CollisionActionNone, PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdLandscape, CollisionIdRoof, CollisionIdShield, CollisionIdTarget, CollisionIdWallBottom, CollisionIdWallLeft, CollisionIdWallRight, CollisionIdWallTop, context_, Accessory::getAction(), GroundMaps::getArenaHeight(), GroundMaps::getArenaWidth(), GroundMaps::getArenaX(), GroundMaps::getArenaY(), TargetShield::getCurrentShield(), ShieldRoundMag::getDeflectPower(), LandscapeMaps::getGroundMaps(), ScorchedContext::getLandscapeMaps(), ScorchedContext::getOptionsTransient(), Target::getShield(), Shield::getShieldType(), OptionsTransient::getWallType(), handler_, position_, Shield::ShieldTypeRoundMag, Shield::ShieldTypeRoundNormal, Shield::ShieldTypeRoundReflective, Shield::ShieldTypeSquareNormal, Shield::ShieldTypeSquareReflective, shotShieldHit(), shotWallHit(), velocity_, OptionsTransient::wallBouncy, PhysicsParticleObjectHandler::wallCollision(), OptionsTransient::wallConcrete, and OptionsTransient::wallWrapAround.

Referenced by checkCollision().

PhysicsParticleObject::CollisionAction PhysicsParticleObject::checkBounceCollision ( CollisionInfo collision,
Target target 
) [protected]

Definition at line 301 of file PhysicsParticleObject.cpp.

References bounceShieldHit(), CollisionActionBounce, CollisionActionCollision, CollisionActionNone, PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdLandscape, CollisionIdRoof, CollisionIdShield, CollisionIdTarget, CollisionIdWallBottom, CollisionIdWallLeft, CollisionIdWallRight, CollisionIdWallTop, context_, GroundMaps::getArenaHeight(), GroundMaps::getArenaWidth(), GroundMaps::getArenaX(), GroundMaps::getArenaY(), LandscapeMaps::getGroundMaps(), ScorchedContext::getLandscapeMaps(), ScorchedContext::getOptionsTransient(), OptionsTransient::getWallType(), position_, OptionsTransient::wallBouncy, OptionsTransient::wallConcrete, and OptionsTransient::wallWrapAround.

Referenced by checkCollision().

PhysicsParticleObject::CollisionAction PhysicsParticleObject::checkFallingCollision ( CollisionInfo collision,
Target target 
) [protected]

Definition at line 362 of file PhysicsParticleObject.cpp.

References CollisionActionBounce, CollisionActionCollision, CollisionActionNone, PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdLandscape, CollisionIdRoof, CollisionIdShield, CollisionIdTarget, CollisionIdWallBottom, CollisionIdWallLeft, CollisionIdWallRight, CollisionIdWallTop, context_, GroundMaps::getArenaHeight(), GroundMaps::getArenaWidth(), GroundMaps::getArenaX(), GroundMaps::getArenaY(), LandscapeMaps::getGroundMaps(), ScorchedContext::getLandscapeMaps(), and position_.

Referenced by checkCollision().

bool PhysicsParticleObject::getLandscapeCollision ( CollisionInfo collision  )  [protected]

Definition at line 406 of file PhysicsParticleObject.cpp.

References PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdLandscape, context_, PhysicsParticleObject::CollisionInfo::deflectFactor, LandscapeMaps::getGroundMaps(), ScorchedContext::getLandscapeMaps(), PhysicsParticleObject::CollisionInfo::normal, position_, and underGroundCollision_.

Referenced by checkCollision().

bool PhysicsParticleObject::getRoofCollision ( CollisionInfo collision  )  [protected]

Definition at line 453 of file PhysicsParticleObject.cpp.

References PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdRoof, context_, PhysicsParticleObject::CollisionInfo::deflectFactor, RoofMaps::getInterpRoofHeight(), ScorchedContext::getLandscapeMaps(), LandscapeMaps::getRoofMaps(), PhysicsParticleObject::CollisionInfo::normal, and position_.

Referenced by checkCollision().

bool PhysicsParticleObject::getWallCollision ( CollisionInfo collision  )  [protected]

Definition at line 468 of file PhysicsParticleObject.cpp.

References PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdWallBottom, CollisionIdWallLeft, CollisionIdWallRight, CollisionIdWallTop, context_, PhysicsParticleObject::CollisionInfo::deflectFactor, GroundMaps::getArenaHeight(), GroundMaps::getArenaWidth(), GroundMaps::getArenaX(), GroundMaps::getArenaY(), LandscapeMaps::getGroundMaps(), ScorchedContext::getLandscapeMaps(), ScorchedContext::getOptionsTransient(), OptionsTransient::getWallType(), PhysicsParticleObject::CollisionInfo::normal, position_, wallCollision_, and OptionsTransient::wallNone.

Referenced by checkCollision().

bool PhysicsParticleObject::getShieldCollision ( CollisionInfo collision,
Target target 
) [protected]

Definition at line 514 of file PhysicsParticleObject.cpp.

References PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdShield, context_, PhysicsParticleObject::CollisionInfo::deflectFactor, Accessory::getAction(), TargetShield::getCurrentShield(), ShieldSquareReflective::getDeflectFactor(), ShieldRoundReflective::getDeflectFactor(), Target::getLife(), Target::getPlayerId(), Tank::getPosition(), Target::getShield(), Shield::getShieldType(), ShieldSquare::getSize(), TankContainer::getTankById(), ScorchedContext::getTankContainer(), TankPosition::getTankPosition(), TargetLife::getTargetPosition(), info_, Shield::inShield(), PhysicsParticleObject::CollisionInfo::normal, PhysicsParticleInfo::playerId_, position_, Shield::ShieldTypeRoundMag, Shield::ShieldTypeRoundNormal, Shield::ShieldTypeRoundReflective, Shield::ShieldTypeSquareNormal, Shield::ShieldTypeSquareReflective, and Shield::tankInShield().

Referenced by checkCollision().

bool PhysicsParticleObject::getTargetCollision ( CollisionInfo collision,
Target target 
) [protected]

Definition at line 616 of file PhysicsParticleObject.cpp.

References TargetLife::collision(), PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdTarget, PhysicsParticleObject::CollisionInfo::deflectFactor, TargetLife::getCenterPosition(), Target::getLife(), Target::getPlayerId(), info_, PhysicsParticleObject::CollisionInfo::normal, PhysicsParticleInfo::playerId_, and position_.

Referenced by checkCollision().

bool PhysicsParticleObject::getTargetBounceCollision ( CollisionInfo collision,
Target target 
) [protected]

Definition at line 635 of file PhysicsParticleObject.cpp.

References TargetLife::collision(), TargetLife::collisionDistance(), PhysicsParticleObject::CollisionInfo::collisionId, CollisionIdTarget, context_, PhysicsParticleObject::CollisionInfo::deflectFactor, TargetLife::getCenterPosition(), TargetSpace::getCollisionSet(), Target::getLife(), ScorchedContext::getTargetSpace(), info_, PhysicsParticleObject::CollisionInfo::normal, ParticleTypeBounce, position_, and PhysicsParticleInfo::type_.

Referenced by checkCollision().


Member Data Documentation

PhysicsParticleInfo PhysicsParticleObject::info_ [protected]

Definition at line 94 of file PhysicsParticleObject.h.

Referenced by PhysicsParticleActionObject::bounceShieldHit(), checkCollision(), getShieldCollision(), getTargetBounceCollision(), getTargetCollision(), setPhysics(), and PhysicsParticleActionObject::shotShieldHit().

ScorchedContext* PhysicsParticleObject::context_ [protected]

Definition at line 95 of file PhysicsParticleObject.h.

Referenced by PhysicsParticleActionObject::bounceShieldHit(), checkBounceCollision(), checkCollision(), checkFallingCollision(), checkShotCollision(), getLandscapeCollision(), getRoofCollision(), getShieldCollision(), getTargetBounceCollision(), getWallCollision(), setPhysics(), PhysicsParticleActionObject::shotShieldHit(), and simulate().

PhysicsParticleObjectHandler* PhysicsParticleObject::handler_ [protected]

Definition at line 96 of file PhysicsParticleObject.h.

Referenced by checkCollision(), checkShotCollision(), setHandler(), and simulate().

bool PhysicsParticleObject::underGroundCollision_ [protected]

Definition at line 97 of file PhysicsParticleObject.h.

Referenced by checkCollision(), getLandscapeCollision(), and setPhysics().

bool PhysicsParticleObject::rotateOnCollision_ [protected]

Definition at line 98 of file PhysicsParticleObject.h.

Referenced by checkCollision(), setPhysics(), and simulate().

bool PhysicsParticleObject::wallCollision_ [protected]

Definition at line 99 of file PhysicsParticleObject.h.

Referenced by getWallCollision(), and setPhysics().

unsigned int PhysicsParticleObject::iterations_ [protected]

Definition at line 100 of file PhysicsParticleObject.h.

Referenced by simulate().

FixedVector PhysicsParticleObject::position_ [protected]

Definition at line 101 of file PhysicsParticleObject.h.

Referenced by PhysicsParticleActionObject::bounceShieldHit(), checkBounceCollision(), checkCollision(), checkFallingCollision(), checkShotCollision(), getLandscapeCollision(), getPosition(), getRoofCollision(), getShieldCollision(), getTargetBounceCollision(), getTargetCollision(), getWallCollision(), setPhysics(), setPosition(), PhysicsParticleActionObject::shotShieldHit(), PhysicsParticleActionObject::shotWallHit(), and simulate().

FixedVector PhysicsParticleObject::velocity_ [protected]

Definition at line 102 of file PhysicsParticleObject.h.

Referenced by applyForce(), checkCollision(), checkShotCollision(), getVelocity(), setPhysics(), and simulate().

FixedVector PhysicsParticleObject::windFactor_ [protected]

Definition at line 103 of file PhysicsParticleObject.h.

Referenced by setPhysics(), and simulate().

FixedVector4 PhysicsParticleObject::rotation_ [protected]

Definition at line 104 of file PhysicsParticleObject.h.

Referenced by getRotationQuat(), setPhysics(), and simulate().

FixedVector4 PhysicsParticleObject::avelocity_ [protected]

Definition at line 105 of file PhysicsParticleObject.h.

Referenced by checkCollision(), and simulate().


The documentation for this class was generated from the following files:
Generated on Mon Feb 16 15:15:05 2009 for Scorched3D by  doxygen 1.5.3