diff options
author | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2005-03-25 13:33:39 +0300 |
---|---|---|
committer | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2005-03-25 13:33:39 +0300 |
commit | c844aa265ad4eb50ad0e18661470fa6092052728 (patch) | |
tree | c4a778ab1227e4266022fd076e8a0cb709badd13 /source/gameengine/Physics/common/PHY_IPhysicsController.h | |
parent | 3dd17cec3bcaa3885e14630e6a71a8486e9b2697 (diff) |
Big patches:
Erwin Coumans: Abstract the physics engine
Charlie C: Joystick fixes
Me: Moved the ray cast (shadows, mouse sensor & ray sensor)
Diffstat (limited to 'source/gameengine/Physics/common/PHY_IPhysicsController.h')
-rw-r--r-- | source/gameengine/Physics/common/PHY_IPhysicsController.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.h b/source/gameengine/Physics/common/PHY_IPhysicsController.h index f517abc54ff..cdf203ac17e 100644 --- a/source/gameengine/Physics/common/PHY_IPhysicsController.h +++ b/source/gameengine/Physics/common/PHY_IPhysicsController.h @@ -32,7 +32,7 @@ #ifndef PHY_IPHYSICSCONTROLLER_H #define PHY_IPHYSICSCONTROLLER_H -#include "MT_Vector3.h" +#include "PHY_DynamicTypes.h" /** PHY_IPhysicsController is the abstract simplified Interface to a physical object. @@ -65,6 +65,7 @@ class PHY_IPhysicsController virtual void getOrientation(float &quatImag0,float &quatImag1,float &quatImag2,float &quatReal)=0; virtual void setOrientation(float quatImag0,float quatImag1,float quatImag2,float quatReal)=0; virtual void setPosition(float posX,float posY,float posZ)=0; + virtual void getPosition(PHY__Vector3& pos) const=0; virtual void setScaling(float scaleX,float scaleY,float scaleZ)=0; // physics methods @@ -72,7 +73,8 @@ class PHY_IPhysicsController virtual void ApplyForce(float forceX,float forceY,float forceZ,bool local)=0; virtual void SetAngularVelocity(float ang_velX,float ang_velY,float ang_velZ,bool local)=0; virtual void SetLinearVelocity(float lin_velX,float lin_velY,float lin_velZ,bool local)=0; - virtual void resolveCombinedVelocities(const MT_Vector3 & lin_vel, const MT_Vector3 & ang_vel ) = 0; + virtual void resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ) = 0; + virtual void applyImpulse(float attachX,float attachY,float attachZ, float impulseX,float impulseY,float impulseZ)=0; virtual void SetActive(bool active)=0; @@ -85,8 +87,16 @@ class PHY_IPhysicsController virtual void setRigidBody(bool rigid)=0; // clientinfo for raycasts for example - virtual void* getClientInfo()=0; - virtual void setClientInfo(void* clientinfo)=0; + virtual void* getNewClientInfo()=0; + virtual void setNewClientInfo(void* clientinfo)=0; + virtual PHY_IPhysicsController* GetReplica() {return 0;} + + virtual void calcXform() =0; + virtual void SetMargin(float margin) =0; + virtual float GetMargin() const=0; + virtual float GetRadius() const { return 0.f;} + PHY__Vector3 GetWorldPosition(PHY__Vector3& localpos); + }; #endif //PHY_IPHYSICSCONTROLLER_H |