Spinning Topp Logo BlackTopp Studios
inc
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Mezzanine::Physics::SoftProxy Class Reference

This is the proxy object for soft/compressable bodies. More...

#include <softproxy.h>

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

Public Member Functions

 SoftProxy (const UInt32 ID, const Real Mass, PhysicsManager *Creator)
 Class constructor. More...
 
 SoftProxy (const XML::Node &SelfRoot, PhysicsManager *Creator)
 XML constructor. More...
 
virtual ~SoftProxy ()
 Class destructor.
 
virtual btCollisionObject * _GetBasePhysicsObject () const
 Accessor for the internal physics object. More...
 
virtual btSoftBody * _GetPhysicsObject () const
 Accessor for the internal soft body physics proxy. More...
 
virtual void AddToWorld ()
 Performs all the necessary task to ensure this object is connected to it's respective world and ready for use. More...
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this WorldProxy. More...
 
virtual Vector3 GetLocation () const
 Gets this objects current location. More...
 
virtual Quaternion GetOrientation () const
 Gets this objects current orientation. More...
 
virtual Mezzanine::ProxyType GetProxyType () const
 Accessor for the type of proxy. More...
 
virtual Vector3 GetScale () const
 Gets the scaling currently being applied to this object. More...
 
virtual void ProtoDeSeriailzeNodes (XML::Node &SelfRoot) const
 Take the data stored in an XML Node and overwrite the nodes (and their specific properties) of this object with it. 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 ProtoSeriailzeNodes (XML::Node &SelfRoot) const
 Convert the nodes (and their specific properties) of this class to an XML::Node ready for serialization. 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 RemoveFromWorld ()
 Unhooks this proxy from it's respective world. More...
 
virtual void SetCollisionShape (CollisionShape *Shape)
 Sets the collision shape to be used. 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 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...
 
- Public Member Functions inherited from Mezzanine::Physics::CollidableProxy
 CollidableProxy (PhysicsManager *Creator)
 XML-assist Constructor. More...
 
 CollidableProxy (const UInt32 ID, PhysicsManager *Creator)
 Normal Constructor. More...
 
virtual ~CollidableProxy ()
 Class Destructor.
 
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 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 Real GetFriction () const
 Gets the sliding friction coefficient. More...
 
virtual Real GetRestitution () const
 Gets the World Object restitution coefficient. More...
 
virtual Real GetRollingFriction () const
 Gets the rolling friction coefficient. 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 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 ProtoSerializeShape (XML::Node &SelfRoot) const
 Convert the shape of this class to an XML::Node ready for serialization. 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 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 SetRestitution (const Real &Restitution)
 Sets the restitution coefficient. More...
 
virtual void SetRollingFriction (const Real Friction)
 Sets the rolling friction coefficient. 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...
 
- 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::Physics::CollidableProxy
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 CreateSoftObject (const Real Mass)
 Used to create the physics representation of the soft body. More...
 
- Protected Member Functions inherited from Mezzanine::Physics::CollidableProxy
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

btSoftBody * PhysicsSoftBody
 SoftBody proxy used by the internal physics. More...
 
- Protected Attributes inherited from Mezzanine::Physics::CollidableProxy
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 the proxy object for soft/compressable bodies.

Definition at line 55 of file softproxy.h.

Constructor & Destructor Documentation

Mezzanine::Physics::SoftProxy::SoftProxy ( const UInt32  ID,
const Real  Mass,
PhysicsManager Creator 
)

Class constructor.

Parameters
IDThe unique ID assigned to this proxy.
MassThe combined mass of the nodes in the soft body.
CreatorA pointer to the manager that created this proxy.

Definition at line 87 of file softproxy.cpp.

Mezzanine::Physics::SoftProxy::SoftProxy ( const XML::Node SelfRoot,
PhysicsManager Creator 
)

XML constructor.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.
CreatorA pointer to the manager that created this proxy.

Definition at line 95 of file softproxy.cpp.

Member Function Documentation

btCollisionObject * Mezzanine::Physics::SoftProxy::_GetBasePhysicsObject ( ) const
virtual

Accessor for the internal physics object.

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

Implements Mezzanine::Physics::CollidableProxy.

Definition at line 304 of file softproxy.cpp.

btSoftBody * Mezzanine::Physics::SoftProxy::_GetPhysicsObject ( ) const
virtual

Accessor for the internal soft body physics proxy.

Returns
Returns a pointer to the internal proxy this proxy is based on.

Definition at line 301 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::AddToWorld ( )
virtual

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

Implements Mezzanine::Physics::CollidableProxy.

Definition at line 170 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::CreateSoftObject ( const Real  Mass)
protectedvirtual

Used to create the physics representation of the soft body.

Parameters
MassThe mass of the soft body to be created.

Definition at line 112 of file softproxy.cpp.

String Mezzanine::Physics::SoftProxy::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::Physics::CollidableProxy.

Definition at line 292 of file softproxy.cpp.

Vector3 Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 205 of file softproxy.cpp.

Quaternion Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 222 of file softproxy.cpp.

Mezzanine::ProxyType Mezzanine::Physics::SoftProxy::GetProxyType ( ) const
virtual

Accessor for the type of proxy.

Returns
Returns enum value for the type of proxy this object is.

Implements Mezzanine::WorldProxy.

Definition at line 165 of file softproxy.cpp.

Vector3 Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 237 of file softproxy.cpp.

String Mezzanine::Physics::SoftProxy::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 295 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::ProtoDeSeriailzeNodes ( XML::Node SelfRoot) const
virtual

Take the data stored in an XML Node and overwrite the nodes (and their specific properties) of this object with it.

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

Definition at line 287 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Definition at line 266 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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::Physics::CollidableProxy.

Definition at line 282 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::ProtoSeriailzeNodes ( XML::Node SelfRoot) const
virtual

Convert the nodes (and their specific properties) 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 261 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Definition at line 245 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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::Physics::CollidableProxy.

Definition at line 256 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::RemoveFromWorld ( )
virtual

Unhooks this proxy from it's respective world.

Implements Mezzanine::Physics::CollidableProxy.

Definition at line 177 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::SetCollisionShape ( CollisionShape Shape)
virtual

Sets the collision shape to be used.

Parameters
ShapeThe shape to be applied.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 187 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 195 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 200 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 212 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 217 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 227 of file softproxy.cpp.

void Mezzanine::Physics::SoftProxy::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.

Reimplemented from Mezzanine::Physics::CollidableProxy.

Definition at line 232 of file softproxy.cpp.

Member Data Documentation

btSoftBody* Mezzanine::Physics::SoftProxy::PhysicsSoftBody
protected

SoftBody proxy used by the internal physics.

Definition at line 60 of file softproxy.h.


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