MezzanineEngine 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Mezzanine::Physics::CollidableProxy Class Referenceabstract

This is a proxy from which physics objects that can collide with each other are handled. More...

#include <collidableproxy.h>

+ Inheritance diagram for Mezzanine::Physics::CollidableProxy:
+ Collaboration diagram for Mezzanine::Physics::CollidableProxy:

Public Member Functions

 CollidableProxy (PhysicsManager *Creator)
 Standard Constructor. More...
 
virtual ~CollidableProxy ()
 Class Destructor.
 
virtual btCollisionObject * _GetBasePhysicsObject () const =0
 Accessor for the internal physics object. More...
 
virtual Integer _GetBroadphaseUniqueID () const
 Gets the unique ID assigned to the internal object. More...
 
virtual Real _GetContactProcessingThreshold () const
 Gets the maximum distance to be considered for processing collisions with this object. More...
 
virtual void _SetContactProcessingThreshold (const Real Threshold)
 Sets the maximum distance to be considered for processing collisions with this object. More...
 
virtual void AddToWorld ()=0
 Performs all the necessary task to ensure this object is connected to it's respective world and ready for use. More...
 
virtual AxisAlignedBox GetAABB () const
 Gets this proxies AABB. More...
 
virtual Physics::ActivationState GetActivationState () const
 Gets the current activation state of this proxy. More...
 
virtual Vector3 GetAnisotropicFriction () const
 Gets the anisotropic friction factor. More...
 
virtual
Physics::AnisotropicFrictionFlags 
GetAnisotropicFrictionMode () const
 Gets the current Anisotropic friction mode being applied to this proxy. More...
 
virtual Whole GetCollisionFlags () const
 Gets the collection of flags that help determine collision response for this object. More...
 
virtual Int16 GetCollisionGroup () const
 Gets the objects collision group. More...
 
virtual Int16 GetCollisionMask () const
 Gets the object's collision mask. More...
 
virtual bool GetCollisionResponse () const
 Will this respond to 3d collisions. More...
 
virtual CollisionShapeGetCollisionShape () const
 Gets the collision shape currently in use by this object. More...
 
virtual WorldManagerGetCreator () const
 Gets a pointer to this proxies creator. More...
 
virtual Real GetDeactivationTime () const
 Gets the current deactivation time for this object. More...
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this WorldProxy. More...
 
virtual Real GetFriction () const
 Gets the sliding friction coefficient. More...
 
virtual Vector3 GetLocation () const
 Gets this objects current location. More...
 
virtual Quaternion GetOrientation () const
 Gets this objects current orientation. More...
 
virtual Real GetRestitution () const
 Gets the World Object restitution coefficient. More...
 
virtual Real GetRollingFriction () const
 Gets the rolling friction coefficient. More...
 
virtual Vector3 GetScale () const
 Gets the scaling currently being applied to this object. More...
 
virtual bool IsActive () const
 Checks if the object is active in the simulation. More...
 
virtual Boolean IsAnisotropicFrictionModeSet (const Whole Mode) const
 Gets whether or not anisotropic friction is being used in a specified mode. More...
 
virtual Boolean IsInWorld () const
 Gets whether or not this object is inside of it's world. More...
 
virtual bool IsKinematic () const
 Is the object kinematic. More...
 
virtual bool IsStatic () const
 Is the object static. More...
 
virtual bool IsStaticOrKinematic () const
 Checks if the object is either static or kinematic. More...
 
virtual void Pitch (const Real Angle)
 Rotate the object around the X axis. More...
 
virtual void ProtoDeSerialize (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite this object with it. More...
 
virtual void ProtoDeSerializeProperties (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the properties of this object with it. More...
 
virtual void ProtoDeSerializeShape (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the shape of this object with it. More...
 
virtual void ProtoSerialize (XML::Node &ParentNode) const
 Convert this class to an XML::Node ready for serialization. More...
 
virtual void ProtoSerializeProperties (XML::Node &SelfRoot) const
 Convert the properties of this class to an XML::Node ready for serialization. More...
 
virtual void ProtoSerializeShape (XML::Node &SelfRoot) const
 Convert the shape of this class to an XML::Node ready for serialization. More...
 
virtual void RemoveFromWorld ()=0
 Unhooks this proxy from it's respective world. More...
 
virtual void Roll (const Real Angle)
 Rotate the object around the Z axis. More...
 
virtual void Rotate (const Vector3 &Axis, const Real Angle)
 Rotates the object from it's existing rotation. More...
 
virtual void Rotate (const Quaternion &Rotation)
 Rotates the object from it's existing rotation. More...
 
virtual void Scale (const Vector3 &Scale)
 Scales the object from it's current size. More...
 
virtual void Scale (const Real X, const Real Y, const Real Z)
 Scales the object from it's current size. More...
 
virtual void SetActivationState (const Physics::ActivationState State, bool Force=false)
 Sets the activation state of the world object. More...
 
virtual void SetAnisotropicFriction (const Vector3 &Friction, const Whole Mode)
 Sets the anisotropic friction factor. More...
 
virtual void SetCollisionFlags (const Whole Flags)
 Sets the collection of flags that help determine collision response for this object. More...
 
virtual void SetCollisionGroup (const Int16 Group)
 Sets which collision group this proxy belongs to, which determines it's collision behavior. More...
 
virtual void SetCollisionGroupAndMask (const Int16 Group, const Int16 Mask)
 Set the collision group and mask for the proxy to determine what it should collide with. More...
 
virtual void SetCollisionMask (const Int16 Mask)
 Sets the collision mask of this proxy, which determines which groups it will collide with. More...
 
virtual void SetCollisionResponse (bool Enable)
 Sets the World Object to be able to collide with other objects in the world. More...
 
virtual void SetCollisionShape (CollisionShape *Shape)
 Sets the collision shape to be used. More...
 
virtual void SetDeactivationTime (const Real Time)
 Sets the amount of time this object needs to have no forces enacted upon it to be deactivated. More...
 
virtual void SetFriction (const Real Friction)
 Sets the sliding friction coefficient. More...
 
virtual void SetKinematic ()
 Sets the state of the object to Kinematic. More...
 
virtual void SetLocation (const Vector3 &Loc)
 Sets the location of this object in parent space. More...
 
virtual void SetLocation (const Real X, const Real Y, const Real Z)
 Sets the location of this object in parent space via Reals. More...
 
virtual void SetOrientation (const Quaternion &Ori)
 Sets the orientation of this object in parent space. More...
 
virtual void SetOrientation (const Real X, const Real Y, const Real Z, const Real W)
 Sets the orientation of this object in parent space via Reals. More...
 
virtual void SetRestitution (const Real &Restitution)
 Sets the restitution coefficient. More...
 
virtual void SetRollingFriction (const Real Friction)
 Sets the rolling friction coefficient. More...
 
virtual void SetScale (const Vector3 &Sc)
 Sets the scaling to be applied to this object. More...
 
virtual void SetScale (const Real X, const Real Y, const Real Z)
 Sets the scaling to be applied to this object via Reals. More...
 
virtual void SetStatic ()
 Sets the state of the object to Static. More...
 
virtual void Translate (const Vector3 &Trans)
 Moves this object from it's current location. More...
 
virtual void Translate (const Real X, const Real Y, const Real Z)
 Moves this object from it's current location. More...
 
virtual void Yaw (const Real Angle)
 Rotate the object around the Y axis. More...
 
- Public Member Functions inherited from Mezzanine::WorldProxy
 WorldProxy ()
 Class constructor.
 
virtual ~WorldProxy ()
 Class destructor.
 
void _Bind (WorldObject *NewParent)
 Binds this proxy to a WorldObject. More...
 
virtual WorldObjectGetParentObject () const
 Gets a pointer to the parent object controlling this proxy. More...
 
virtual Mezzanine::ProxyType GetProxyType () const =0
 Accessor for the type of proxy. More...
 
- Public Member Functions inherited from Mezzanine::TransformableObject
virtual ~TransformableObject ()
 Class Destructor.
 
virtual Vector3 ConvertGlobalToLocal (const Vector3 &Location) const
 Converts a point in global space to the same point in local space. More...
 
virtual Quaternion ConvertGlobalToLocal (const Quaternion &Orientation) const
 Converts a rotation in global space to the same rotation in local space. More...
 
virtual Vector3 ConvertLocalToGlobal (const Vector3 &Location) const
 Converts a point in local space to the same point in global space. More...
 
virtual Quaternion ConvertLocalToGlobal (const Quaternion &Orientation) const
 Converts a rotation in local space to the same rotation in global space. More...
 

Static Public Member Functions

static String GetSerializableName ()
 Get the name of the the XML tag the proxy class will leave behind as its instances are serialized. More...
 
- Static Public Member Functions inherited from Mezzanine::WorldProxy
static String GetSerializableName ()
 Get the name of the the XML tag the proxy class will leave behind as its instances are serialized. More...
 

Protected Attributes

Int16 CollisionGroup
 The classifications pertaining to this object in regards to collisions. More...
 
Int16 CollisionMask
 Stores the kind of World Objects that can collide with each other. More...
 
PhysicsManagerManager
 This is a pointer to the physics manager that created and owns this proxy. More...
 
CollisionShapeProxyShape
 A vector3 storing the scaling applied to this body. More...
 
btCollisionShape * ScalerShape
 This is an internal only shape that provides the ability for a collision shape to be scaled locally (to this object alone). More...
 
- Protected Attributes inherited from Mezzanine::WorldProxy
WorldObjectParentObject
 Pointer to the Object this proxy belongs to. More...
 

Detailed Description

This is a proxy from which physics objects that can collide with each other are handled.

This class is used to hold and configure the physics information for a world object. This class holds physics information from the physics sub-library and serves as a means to interact with it. Direct interaction with the internal physics object is discouraged.

Definition at line 63 of file collidableproxy.h.

Constructor & Destructor Documentation

Mezzanine::CollidableProxy::CollidableProxy ( PhysicsManager Creator)

Standard Constructor.

Parameters
CreatorA pointer to the manager that created this proxy.

Definition at line 283 of file collidableproxy.cpp.

Member Function Documentation

virtual btCollisionObject* Mezzanine::Physics::CollidableProxy::_GetBasePhysicsObject ( ) const
pure virtual

Accessor for the internal physics object.

Returns
Returns a pointer to the internal object of this proxy.

Implemented in Mezzanine::Physics::RigidProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

Integer Mezzanine::CollidableProxy::_GetBroadphaseUniqueID ( ) const
virtual

Gets the unique ID assigned to the internal object.

Returns
Returns a unique number greater than zero if the object is in the world, or Zero if the

Definition at line 816 of file collidableproxy.cpp.

Real Mezzanine::CollidableProxy::_GetContactProcessingThreshold ( ) const
virtual

Gets the maximum distance to be considered for processing collisions with this object.

Returns
Returns a Real represnting the maximum distance in world units that is considered a collision with this object.

Definition at line 822 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::_SetContactProcessingThreshold ( const Real  Threshold)
virtual

Sets the maximum distance to be considered for processing collisions with this object.

Parameters
ThresholdThe maximum distance in world units that will be considered a collision with this object.

Definition at line 819 of file collidableproxy.cpp.

virtual void Mezzanine::Physics::CollidableProxy::AddToWorld ( )
pure virtual

Performs all the necessary task to ensure this object is connected to it's respective world and ready for use.

Implements Mezzanine::WorldProxy.

Implemented in Mezzanine::Physics::RigidProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

AxisAlignedBox Mezzanine::CollidableProxy::GetAABB ( ) const
virtual

Gets this proxies AABB.

Note
This will only return valid values if this proxy is in the world. A proxy outside of the world has no AABB.
Returns
Returns an AxisAlignedBox containing the AABB of this physics proxy.

Definition at line 298 of file collidableproxy.cpp.

Physics::ActivationState Mezzanine::CollidableProxy::GetActivationState ( ) const
virtual

Gets the current activation state of this proxy.

Returns
Returns a Physics::ActivationState value representing the current state of this proxy.

Definition at line 526 of file collidableproxy.cpp.

Vector3 Mezzanine::CollidableProxy::GetAnisotropicFriction ( ) const
virtual

Gets the anisotropic friction factor.

Returns
Returns a Vector3 representing the anisotropic friction factors on each of the linear axes.

Definition at line 508 of file collidableproxy.cpp.

Physics::AnisotropicFrictionFlags Mezzanine::CollidableProxy::GetAnisotropicFrictionMode ( ) const
virtual

Gets the current Anisotropic friction mode being applied to this proxy.

Returns
Returns a AnisotropicFrictionFlags enum value representing the anisotropic friction mode being used by this proxy.

Definition at line 493 of file collidableproxy.cpp.

Whole Mezzanine::CollidableProxy::GetCollisionFlags ( ) const
virtual

Gets the collection of flags that help determine collision response for this object.

Returns
Returns a bitmask containing all the flags used to determine collision reponse for this object.

Definition at line 440 of file collidableproxy.cpp.

Int16 Mezzanine::CollidableProxy::GetCollisionGroup ( ) const
virtual

Gets the objects collision group.

Returns
Returns a Int16 representing the collision group this object is set to.

Definition at line 326 of file collidableproxy.cpp.

Int16 Mezzanine::CollidableProxy::GetCollisionMask ( ) const
virtual

Gets the object's collision mask.

Returns
Returns a Int16 representing what collision groups this object should collide with.

Definition at line 331 of file collidableproxy.cpp.

bool Mezzanine::CollidableProxy::GetCollisionResponse ( ) const
virtual

Will this respond to 3d collisions.

Returns
False is it does not respond to collisions, True if it will

Definition at line 430 of file collidableproxy.cpp.

CollisionShape * Mezzanine::CollidableProxy::GetCollisionShape ( ) const
virtual

Gets the collision shape currently in use by this object.

Returns
Returns a pointer to the collision shape being used.

Definition at line 412 of file collidableproxy.cpp.

WorldManager * Mezzanine::CollidableProxy::GetCreator ( ) const
virtual

Gets a pointer to this proxies creator.

Returns
Returns a pointer to the WorldManager that created this WorldProxy.

Implements Mezzanine::WorldProxy.

Definition at line 304 of file collidableproxy.cpp.

Real Mezzanine::CollidableProxy::GetDeactivationTime ( ) const
virtual

Gets the current deactivation time for this object.

Returns
Returns a Real representing the current amount of time in seconds this object needs to be stationary to deactivate.

Definition at line 541 of file collidableproxy.cpp.

String Mezzanine::CollidableProxy::GetDerivedSerializableName ( ) const
virtual

Gets the most derived serializable name of this WorldProxy.

Note
When creating a new WorldProxy class verify this method has a valid return for it in order for serialization to work properly.
Returns
Returns the name of the XML tag from the most derived class of "this".

Reimplemented from Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::RigidProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

Definition at line 807 of file collidableproxy.cpp.

Real Mezzanine::CollidableProxy::GetFriction ( ) const
virtual

Gets the sliding friction coefficient.

Returns
Returns a Real representing the sliding friction coefficient.

Definition at line 481 of file collidableproxy.cpp.

Vector3 Mezzanine::CollidableProxy::GetLocation ( ) const
virtual

Gets this objects current location.

Returns
Returns Vector3 representing the current rotation of this object in parent space.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 561 of file collidableproxy.cpp.

Quaternion Mezzanine::CollidableProxy::GetOrientation ( ) const
virtual

Gets this objects current orientation.

Returns
Returns a Quaternion representing the current orientation of this object in parent space.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 578 of file collidableproxy.cpp.

Real Mezzanine::CollidableProxy::GetRestitution ( ) const
virtual

Gets the World Object restitution coefficient.

Returns
Returns a Real representing the World Object restitution coefficient.

Definition at line 514 of file collidableproxy.cpp.

Real Mezzanine::CollidableProxy::GetRollingFriction ( ) const
virtual

Gets the rolling friction coefficient.

Returns
Returns a Real representing the rolling friction coefficient.

Definition at line 487 of file collidableproxy.cpp.

Vector3 Mezzanine::CollidableProxy::GetScale ( ) const
virtual

Gets the scaling currently being applied to this object.

Returns
Returns a Vector3 representing the amount this object is being scaled.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 598 of file collidableproxy.cpp.

String Mezzanine::CollidableProxy::GetSerializableName ( )
static

Get the name of the the XML tag the proxy class will leave behind as its instances are serialized.

Returns
A string containing the name of this class.

Definition at line 810 of file collidableproxy.cpp.

bool Mezzanine::CollidableProxy::IsActive ( ) const
virtual

Checks if the object is active in the simulation.

Returns
Returns true if the object is active, false if it's deactivated(at rest).

Definition at line 531 of file collidableproxy.cpp.

Boolean Mezzanine::CollidableProxy::IsAnisotropicFrictionModeSet ( const Whole  Mode) const
virtual

Gets whether or not anisotropic friction is being used in a specified mode.

Parameters
ModeThe Physics::AnisotropicFrictionFlags value to check for.
Returns
Returns true if the specified mode is the current mode of Anisotropic Friction being used.

Definition at line 505 of file collidableproxy.cpp.

Boolean Mezzanine::CollidableProxy::IsInWorld ( ) const
virtual

Gets whether or not this object is inside of it's world.

Returns
Returns true if this proxy is inserted in it's respective subsystems world.

Implements Mezzanine::WorldProxy.

Definition at line 301 of file collidableproxy.cpp.

bool Mezzanine::CollidableProxy::IsKinematic ( ) const
virtual

Is the object kinematic.

Returns
True if the object is kinematic false if it is not.

Definition at line 460 of file collidableproxy.cpp.

bool Mezzanine::CollidableProxy::IsStatic ( ) const
virtual

Is the object static.

Returns
True if the object is Static false if it is not.

Definition at line 465 of file collidableproxy.cpp.

bool Mezzanine::CollidableProxy::IsStaticOrKinematic ( ) const
virtual

Checks if the object is either static or kinematic.

Checks if the object is either static or kinematic, returns true if it is either.

Returns
Returns true if the object is static or kinematic.

Definition at line 470 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Pitch ( const Real  Angle)
virtual

Rotate the object around the X axis.

Parameters
AngleThe angle to rotate this object in radians.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 620 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoDeSerialize ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Reimplemented from Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 710 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoDeSerializeProperties ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite the properties of this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Reimplemented from Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::RigidProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

Definition at line 726 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoDeSerializeShape ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite the shape of this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Definition at line 791 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoSerialize ( XML::Node ParentNode) const
virtual

Convert this class to an XML::Node ready for serialization.

Parameters
ParentNodeThe point in the XML hierarchy that all this renderable should be appended to.

Reimplemented from Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 659 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoSerializeProperties ( XML::Node SelfRoot) const
virtual

Convert the properties of this class to an XML::Node ready for serialization.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Reimplemented from Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::RigidProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

Definition at line 670 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoSerializeShape ( XML::Node SelfRoot) const
virtual

Convert the shape of this class to an XML::Node ready for serialization.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Definition at line 697 of file collidableproxy.cpp.

virtual void Mezzanine::Physics::CollidableProxy::RemoveFromWorld ( )
pure virtual

Unhooks this proxy from it's respective world.

Implements Mezzanine::WorldProxy.

Implemented in Mezzanine::Physics::RigidProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

void Mezzanine::CollidableProxy::Roll ( const Real  Angle)
virtual

Rotate the object around the Z axis.

Parameters
AngleThe angle to rotate this object in radians.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 626 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Rotate ( const Vector3 Axis,
const Real  Angle 
)
virtual

Rotates the object from it's existing rotation.

Note
This method has an additive effect with the objects current rotation. Unlike "SetOrientation" this method does not replace the existing orientation with what you provide.
Parameters
AxisThe axis on which this object will be rotated.
AngleThe angle to rotate this object in radians.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 632 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Rotate ( const Quaternion Rotation)
virtual

Rotates the object from it's existing rotation.

Note
This method has an additive effect with the objects current rotation. Unlike "SetOrientation" this method does not replace the existing orientation with what you provide.
Parameters
RotationThe rotation to apply to this object.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 638 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Scale ( const Vector3 Scale)
virtual

Scales the object from it's current size.

Note
This method has an additive effect with the objects' current scaling. Unlike "SetScale" this method does not replace the existing scale with what you provide.
Parameters
ScaleA Vector3 representing the scaling to apply to this object.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.
Note
In order to preserve consistent functionality between physics proxies and proxies of other subsystems, in the event this proxy can't be locally scaled, it will globally scale the collision shape it is currently using.

Implements Mezzanine::WorldProxy.

Definition at line 644 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Scale ( const Real  X,
const Real  Y,
const Real  Z 
)
virtual

Scales the object from it's current size.

Note
This method has an additive effect with the objects' current scaling. Unlike "SetScale" this method does not replace the existing scale with what you provide.
Parameters
XThe scaling factor to apply on the X axis.
YThe scaling factor to apply on the Y axis.
ZThe scaling factor to apply on the Z axis.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.
Note
In order to preserve consistent functionality between physics proxies and proxies of other subsystems, in the event this proxy can't be locally scaled, it will globally scale the collision shape it is currently using.

Implements Mezzanine::WorldProxy.

Definition at line 650 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetActivationState ( const Physics::ActivationState  State,
bool  Force = false 
)
virtual

Sets the activation state of the world object.

Parameters
StateThe activation state to set for this proxy. See the ActivationState enum for more info.
ForceWhether or not you want to force the state. Some states may not apply based on the condition of the proxy if this is set to false.

Definition at line 520 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetAnisotropicFriction ( const Vector3 Friction,
const Whole  Mode 
)
virtual

Sets the anisotropic friction factor.

Anisotropic friction is when an object has different behaviors for sliding or rolling on different axes. An example would be a skateboard that rolls easily back and forth, but resists side to side.

Note that only one Anisotropic Friction Flag can be set at a time.

Parameters
FrictionA Vector3 expressing the coefficients on each of this objects local axes that will be applied to the global friction value.
ModeThe type of friction the passed in value should be set as. See Physics::AnisotropicFrictionFlags enum for more details.

Definition at line 490 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionFlags ( const Whole  Flags)
virtual

Sets the collection of flags that help determine collision response for this object.

See Physics::CollisionFlags enum for more details on the available flags.

Parameters
FlagsA bitmask containing all the flags to be applied to this object.

Definition at line 435 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionGroup ( const Int16  Group)
virtual

Sets which collision group this proxy belongs to, which determines it's collision behavior.

Parameters
GroupThe collision group to which this proxy belongs.

Definition at line 316 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionGroupAndMask ( const Int16  Group,
const Int16  Mask 
)
virtual

Set the collision group and mask for the proxy to determine what it should collide with.

These values are automatically calculated for you with some sane default values. Only edit these if you know what you are doing.

Parameters
GroupThe collision group to which this proxy belongs.
MaskThe other groups to which this proxy should collide with.

Definition at line 310 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionMask ( const Int16  Mask)
virtual

Sets the collision mask of this proxy, which determines which groups it will collide with.

Parameters
MaskThe other groups to which this proxy should collide with.

Definition at line 321 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionResponse ( bool  Enable)
virtual

Sets the World Object to be able to collide with other objects in the world.

By default collision response is enabled. Only call this function if you have disabled collision response.

Parameters
EnableWhether or not to enable collision response.

Definition at line 417 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionShape ( CollisionShape Shape)
virtual

Sets the collision shape to be used.

Parameters
ShapeThe shape to be applied.

Reimplemented in Mezzanine::Physics::RigidProxy, and Mezzanine::Physics::SoftProxy.

Definition at line 336 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetDeactivationTime ( const Real  Time)
virtual

Sets the amount of time this object needs to have no forces enacted upon it to be deactivated.

This deactivate simply means it is skipped on more robust checks and force checking. It does not mean that it has to be manually reactivated by the user. A force being applied to it will re-activate it automatically. This setting is a simple optimization.

Parameters
TimeThe amount of time in seconds this object needs to deactivate.

Definition at line 536 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetFriction ( const Real  Friction)
virtual

Sets the sliding friction coefficient.

Higher values will resist sliding across surfaces. This number is the coefficient of friction. Range is from 0.0 to 2.0. Behavior in this regard is determined by the friction of both colliding bodies.
Default: 0.5

Parameters
FrictionA Real that is the sliding friction coefficient desired.

Definition at line 478 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetKinematic ( )
virtual

Sets the state of the object to Kinematic.

This function will set the object to a Kinematic Object.
Kinematic Objects are like Static Objects but are also able to be moved directly by character controllers.

Definition at line 448 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetLocation ( const Vector3 Loc)
virtual

Sets the location of this object in parent space.

Parameters
LocationA Vector3 representing the location this object is to be set to.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 549 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetLocation ( const Real  X,
const Real  Y,
const Real  Z 
)
virtual

Sets the location of this object in parent space via Reals.

Parameters
XThe position on the X axis where this object is to be set.
YThe position on the Y axis where this object is to be set.
ZThe position on the Z axis where this object is to be set.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 554 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetOrientation ( const Quaternion Ori)
virtual

Sets the orientation of this object in parent space.

Parameters
OrientationA Quaternion representing the rotation this object is to be set to.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 566 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetOrientation ( const Real  X,
const Real  Y,
const Real  Z,
const Real  W 
)
virtual

Sets the orientation of this object in parent space via Reals.

Parameters
XThe X component of the Axis.
YThe Y component of the Axis.
ZThe Z component of the Axis.
WRotation on the Axis X, Y and Z defined.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 571 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetRestitution ( const Real Restitution)
virtual

Sets the restitution coefficient.

Restitution determines how much energy is left after a collision with an object. Range is from 0.0 to 1.0. Behavior in this regard is determined by the restitution of both colliding bodies.
Default: 0.0

Parameters
RestitutionA Real that is the restitution coefficient desired.

Definition at line 511 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetRollingFriction ( const Real  Friction)
virtual

Sets the rolling friction coefficient.

This works on the same basic idea as "normal" friction but this is the coefficient to be used when the object rolls across the surface instead of slides across.

Parameters
FrictionA Real that is the rolling friction coefficient desired.

Definition at line 484 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetScale ( const Vector3 Sc)
virtual

Sets the scaling to be applied to this object.

Parameters
ScaleA Vector3 representing the amount of scaling to apply to this object.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.
Note
In order to preserve consistent functionality between physics proxies and proxies of other subsystems, in the event this proxy can't be locally scaled, it will globally scale the collision shape it is currently using.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 583 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetScale ( const Real  X,
const Real  Y,
const Real  Z 
)
virtual

Sets the scaling to be applied to this object via Reals.

Parameters
XThe scaling factor to apply on the X axis.
YThe scaling factor to apply on the Y axis.
ZThe scaling factor to apply on the Z axis.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.
Note
In order to preserve consistent functionality between physics proxies and proxies of other subsystems, in the event this proxy can't be locally scaled, it will globally scale the collision shape it is currently using.

Implements Mezzanine::WorldProxy.

Reimplemented in Mezzanine::Physics::SoftProxy.

Definition at line 593 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetStatic ( )
virtual

Sets the state of the object to Static.

This function will set the object to a Static Object.
Static Objects don't move or have any force applied to them, but are cabable of exerting force on other objects.

Definition at line 454 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Translate ( const Vector3 Trans)
virtual

Moves this object from it's current location.

Note
This method has an additive effect with the objects current location. Unlike "SetLocation" this method does not replace the existing location with what you provide.
Parameters
TransA Vector3 representing the amount of movement to apply to this object.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 603 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Translate ( const Real  X,
const Real  Y,
const Real  Z 
)
virtual

Moves this object from it's current location.

Note
This method has an additive effect with the objects current location. Unlike "SetLocation" this method does not replace the existing location with what you provide.
Parameters
XThe amount of movement to apply on the X axis.
YThe amount of movement to apply on the Y axis.
ZThe amount of movement to apply on the Z axis.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 608 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::Yaw ( const Real  Angle)
virtual

Rotate the object around the Y axis.

Parameters
AngleThe angle to rotate this object in radians.
Warning
Calling this method directly can de-sync a WorldObject. Do NOT do this unless you know exactly what you are doing.

Implements Mezzanine::WorldProxy.

Definition at line 614 of file collidableproxy.cpp.

Member Data Documentation

Int16 Mezzanine::Physics::CollidableProxy::CollisionGroup
protected

The classifications pertaining to this object in regards to collisions.

Definition at line 81 of file collidableproxy.h.

Int16 Mezzanine::Physics::CollidableProxy::CollisionMask
protected

Stores the kind of World Objects that can collide with each other.

Definition at line 84 of file collidableproxy.h.

PhysicsManager* Mezzanine::Physics::CollidableProxy::Manager
protected

This is a pointer to the physics manager that created and owns this proxy.

Definition at line 78 of file collidableproxy.h.

CollisionShape* Mezzanine::Physics::CollidableProxy::ProxyShape
protected

A vector3 storing the scaling applied to this body.

Note
This exists because in bullet scaling is a property of shapes instead of bodies.

The physics shape of this proxy.

Definition at line 72 of file collidableproxy.h.

btCollisionShape* Mezzanine::Physics::CollidableProxy::ScalerShape
protected

This is an internal only shape that provides the ability for a collision shape to be scaled locally (to this object alone).

Definition at line 75 of file collidableproxy.h.


The documentation for this class was generated from the following files: