40 #ifndef _collidableproxy_h
41 #define _collidableproxy_h
43 #include "Physics/physicsenumerations.h"
48 #include "worldproxy.h"
50 class btCollisionObject;
51 class btCollisionShape;
72 Vector3 BodyScale;// */
90 virtual void ProtoSerializeImpl(
XML::Node& SelfRoot)
const;
92 virtual void ProtoDeSerializeImpl(
const XML::Node& SelfRoot);
113 virtual void AddToWorld() = 0;
115 virtual void RemoveFromWorld() = 0;
117 virtual Boole IsInWorld()
const;
129 virtual void SetCollisionGroupAndMask(
const Int16 Group,
const Int16 Mask);
132 virtual void SetCollisionGroup(
const Int16 Group);
135 virtual void SetCollisionMask(
const Int16 Mask);
138 virtual Int16 GetCollisionGroup()
const;
141 virtual Int16 GetCollisionMask()
const;
153 virtual void SetCollisionResponse(
Boole Enable);
156 virtual Boole GetCollisionResponse()
const;
161 virtual void SetCollisionFlags(
const Whole Flags);
164 virtual Whole GetCollisionFlags()
const;
172 virtual void SetKinematic();
176 virtual void SetStatic();
179 virtual Boole IsKinematic()
const;
182 virtual Boole IsStatic()
const;
186 virtual Boole IsStaticOrKinematic()
const;
196 virtual void SetFriction(
const Real Friction);
199 virtual Real GetFriction()
const;
205 virtual void SetRollingFriction(
const Real Friction);
208 virtual Real GetRollingFriction()
const;
216 virtual void SetAnisotropicFriction(
const Vector3& Friction,
const Whole Mode);
223 virtual Boole IsAnisotropicFrictionModeSet(
const Whole Mode)
const;
226 virtual Vector3 GetAnisotropicFriction()
const;
233 virtual void SetRestitution(
const Real& Restitution);
236 virtual Real GetRestitution()
const;
250 virtual Boole IsActive()
const;
257 virtual void SetDeactivationTime(
const Real Time);
260 virtual Real GetDeactivationTime()
const;
266 virtual void SetLocation(
const Vector3& Loc);
268 virtual void SetLocation(
const Real X,
const Real Y,
const Real Z);
270 virtual Vector3 GetLocation()
const;
272 virtual void SetOrientation(
const Quaternion& Ori);
274 virtual void SetOrientation(
const Real X,
const Real Y,
const Real Z,
const Real W);
280 virtual void SetScale(
const Vector3& Sc);
284 virtual void SetScale(
const Real X,
const Real Y,
const Real Z);
286 virtual Vector3 GetScale()
const;
289 virtual void Translate(
const Vector3& Trans);
291 virtual void Translate(
const Real X,
const Real Y,
const Real Z);
293 virtual void Yaw(
const Real Angle);
295 virtual void Pitch(
const Real Angle);
297 virtual void Roll(
const Real Angle);
299 virtual void Rotate(
const Vector3& Axis,
const Real Angle);
301 virtual void Rotate(
const Quaternion& Rotation);
305 virtual void Scale(
const Vector3& Scale);
309 virtual void Scale(
const Real X,
const Real Y,
const Real Z);
315 virtual void ProtoSerializeProperties(
XML::Node& SelfRoot)
const;
318 virtual void ProtoSerializeShape(
XML::Node& SelfRoot)
const;
321 virtual void ProtoDeSerializeProperties(
const XML::Node& SelfRoot);
324 virtual void ProtoDeSerializeShape(
const XML::Node& SelfRoot);
327 virtual String GetDerivedSerializableName()
const;
329 static String GetSerializableName();
337 virtual Integer _GetBroadphaseUniqueID()
const;
341 virtual void _SetContactProcessingThreshold(
const Real Threshold);
345 virtual Real _GetContactProcessingThreshold()
const;
349 virtual btCollisionObject* _GetBasePhysicsObject()
const = 0;
This is the base class for all collision shapes.
bool Boole
Generally acts a single bit, true or false.
PhysicsManager * Manager
This is a pointer to the physics manager that created and owns this proxy.
int Integer
A datatype used to represent any integer close to.
btCollisionShape * ScalerShape
This is an internal only shape that provides the ability for a collision shape to be scaled locally (...
ActivationState
This is used by physics proxies to monitor and set their physics activation.
This file contains the AxisAlignedBox class for representing AABB's of objects in the world...
float Real
A Datatype used to represent a real floating point number.
Int16 CollisionGroup
The classifications pertaining to this object in regards to collisions.
A light-weight handle for manipulating nodes in DOM tree.
This is the base class for proxy objects belonging to the various 3D subsystems.
uint32_t UInt32
An 32-bit unsigned integer.
CollisionShape * ProxyShape
The physics shape of this proxy.
This is the base class for all managers that belong to a single world instance.
This is a proxy from which physics objects that can collide with each other are handled.
int16_t Int16
An 16-bit integer.
This is simply a place for storing all the Physics Related functions.
A container for the metrics of time relevant for the timer class.
This is used to represent a point in space, or a vector through space.
The bulk of the engine components go in this namspace.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
Int16 CollisionMask
Stores the kind of World Objects that can collide with each other.
This is used to store information about rotation in 3d space.
std::string String
A datatype used to a series of characters.
AnisotropicFrictionFlags
This is used by physics proxies to help determine the behavior of it's anistropic friction behavior...
This is a utility class used to represent the Axis-Aligned Bounding Boxes of objects in various subsy...