Spinning Topp Logo BlackTopp Studios
inc
Public Member Functions | Static Public Member Functions | Protected 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)
 XML-assist Constructor. More...
 
 CollidableProxy (const UInt32 ID, PhysicsManager *Creator)
 Normal 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 Boole 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 Boole IsActive () const
 Checks if the object is active in the simulation. More...
 
virtual Boole IsAnisotropicFrictionModeSet (const Whole Mode) const
 Gets whether or not anisotropic friction is being used in a specified mode. More...
 
virtual Boole IsInWorld () const
 Gets whether or not this object is inside of it's world. More...
 
virtual Boole IsKinematic () const
 Is the object kinematic. More...
 
virtual Boole IsStatic () const
 Is the object static. More...
 
virtual Boole 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 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 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, Boole 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 (Boole 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 ()
 Blank constructor.
 
 WorldProxy (const UInt32 ID)
 Normal/ID constructor. More...
 
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 UInt32 GetProxyID () const
 Gets the unique ID of this proxy. More...
 
virtual Mezzanine::ProxyType GetProxyType () const =0
 Accessor for the type of proxy. 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 ProtoSerialize (XML::Node &ParentNode) const
 Convert this class to an XML::Node ready for serialization. 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 Member Functions

virtual void ProtoDeSerializeImpl (const XML::Node &SelfRoot)
 Implementation method for deseriailizing additional sets of data. More...
 
virtual void ProtoSerializeImpl (XML::Node &SelfRoot) const
 Implementation method for serializing additional sets of data. 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
 The physics shape of this proxy. 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...
 
UInt32 ProxyID
 The unique ID assigned to the type of proxy an instance is. 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 66 of file collidableproxy.h.

Constructor & Destructor Documentation

Mezzanine::CollidableProxy::CollidableProxy ( PhysicsManager Creator)

XML-assist Constructor.

Parameters
CreatorA pointer to the manager that created this proxy.

Definition at line 277 of file collidableproxy.cpp.

Mezzanine::CollidableProxy::CollidableProxy ( const UInt32  ID,
PhysicsManager Creator 
)

Normal Constructor.

Parameters
IDThe unique ID assigned to this proxy.
CreatorA pointer to the manager that created this proxy.

Definition at line 286 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 777 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 783 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 780 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::GhostProxy, and Mezzanine::Physics::SoftProxy.

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 314 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 522 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 504 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 489 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 444 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 338 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 341 of file collidableproxy.cpp.

Boole 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 438 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 420 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 320 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 531 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 768 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 477 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 549 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 566 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 510 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 483 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 586 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 771 of file collidableproxy.cpp.

Boole 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 525 of file collidableproxy.cpp.

Boole 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 501 of file collidableproxy.cpp.

Boole 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 317 of file collidableproxy.cpp.

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

Is the object kinematic.

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

Definition at line 462 of file collidableproxy.cpp.

Boole 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.

Boole 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 468 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 608 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoDeSerializeImpl ( const XML::Node SelfRoot)
protectedvirtual

Implementation method for deseriailizing additional sets of data.

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

Reimplemented from Mezzanine::WorldProxy.

Definition at line 305 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 687 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 752 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::ProtoSerializeImpl ( XML::Node SelfRoot) const
protectedvirtual

Implementation method for serializing additional sets of data.

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

Reimplemented from Mezzanine::WorldProxy.

Definition at line 299 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 647 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 674 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::GhostProxy, and Mezzanine::Physics::SoftProxy.

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 614 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 620 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 626 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 632 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 638 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetActivationState ( const Physics::ActivationState  State,
Boole  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 516 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 486 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 441 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 332 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 326 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 335 of file collidableproxy.cpp.

void Mezzanine::CollidableProxy::SetCollisionResponse ( Boole  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 425 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 344 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 528 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 474 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 450 of file collidableproxy.cpp.

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

Sets the location of this object in parent space.

Parameters
LocA 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 537 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 542 of file collidableproxy.cpp.

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

Sets the orientation of this object in parent space.

Parameters
OriA 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 554 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 559 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 507 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 480 of file collidableproxy.cpp.

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

Sets the scaling to be applied to this object.

Parameters
ScA 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 571 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 581 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 456 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 591 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 596 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 602 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 84 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 87 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 81 of file collidableproxy.h.

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

The physics shape of this proxy.

Definition at line 75 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 78 of file collidableproxy.h.


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