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

This is the base class for proxy objects belonging to the various 3D subsystems. More...

#include <worldproxy.h>

+ Inheritance diagram for Mezzanine::WorldProxy:
+ Collaboration diagram for Mezzanine::WorldProxy:

Public Member Functions

 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 void AddToWorld ()=0
 Performs all the necessary task to ensure this object is connected to it's respective world and ready for use.
 
virtual WorldManagerGetCreator () const =0
 Gets a pointer to this proxies creator. More...
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this WorldProxy. More...
 
virtual Vector3 GetLocation () const =0
 Gets this objects current location. More...
 
virtual Quaternion GetOrientation () const =0
 Gets this objects current orientation. 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 Vector3 GetScale () const =0
 Gets the scaling currently being applied to this object. More...
 
virtual Boole IsInWorld () const =0
 Gets whether or not this object is inside of it's world. More...
 
virtual void Pitch (const Real Angle)=0
 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 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 ()=0
 Unhooks this proxy from it's respective world.
 
virtual void Roll (const Real Angle)=0
 Rotate the object around the Z axis. More...
 
virtual void Rotate (const Vector3 &Axis, const Real Angle)=0
 Rotates the object from it's existing rotation. More...
 
virtual void Rotate (const Quaternion &Rotation)=0
 Rotates the object from it's existing rotation. More...
 
virtual void Scale (const Vector3 &Scale)=0
 Scales the object from it's current size. More...
 
virtual void Scale (const Real X, const Real Y, const Real Z)=0
 Scales the object from it's current size. More...
 
virtual void SetLocation (const Vector3 &Loc)=0
 Sets the location of this object in parent space. More...
 
virtual void SetLocation (const Real X, const Real Y, const Real Z)=0
 Sets the location of this object in parent space via Reals. More...
 
virtual void SetOrientation (const Quaternion &Ori)=0
 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)=0
 Sets the orientation of this object in parent space via Reals. More...
 
virtual void SetScale (const Vector3 &Sc)=0
 Sets the scaling to be applied to this object. More...
 
virtual void SetScale (const Real X, const Real Y, const Real Z)=0
 Sets the scaling to be applied to this object via Reals. More...
 
virtual void Translate (const Vector3 &Trans)=0
 Moves this object from it's current location. More...
 
virtual void Translate (const Real X, const Real Y, const Real Z)=0
 Moves this object from it's current location. More...
 
virtual void Yaw (const Real Angle)=0
 Rotate the object around the Y axis. 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...
 

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

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 base class for proxy objects belonging to the various 3D subsystems.

Definition at line 53 of file worldproxy.h.

Constructor & Destructor Documentation

Mezzanine::WorldProxy::WorldProxy ( const UInt32  ID)

Normal/ID constructor.

Parameters
IDThe unique ID assigned to the type of proxy an instance is.

Definition at line 58 of file worldproxy.cpp.

Member Function Documentation

void Mezzanine::WorldProxy::_Bind ( WorldObject NewParent)

Binds this proxy to a WorldObject.

Parameters
NewParentA pointer to the WorldObject taking possession of this proxy.
Todo:
Notify something? Perhaps use the new event system?

Definition at line 174 of file worldproxy.cpp.

virtual WorldManager* Mezzanine::WorldProxy::GetCreator ( ) const
pure virtual

Gets a pointer to this proxies creator.

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

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

String Mezzanine::WorldProxy::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 in Mezzanine::Physics::CollidableProxy, Mezzanine::Physics::RigidProxy, Mezzanine::Graphics::ParticleSystemProxy, Mezzanine::Graphics::CameraProxy, Mezzanine::Graphics::BillboardSetProxy, Mezzanine::Graphics::RenderableProxy, Mezzanine::Graphics::EntityProxy, Mezzanine::Graphics::LightProxy, Mezzanine::Physics::SoftProxy, and Mezzanine::Physics::GhostProxy.

Definition at line 165 of file worldproxy.cpp.

virtual Vector3 Mezzanine::WorldProxy::GetLocation ( ) const
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual Quaternion Mezzanine::WorldProxy::GetOrientation ( ) const
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

WorldObject * Mezzanine::WorldProxy::GetParentObject ( ) const
virtual

Gets a pointer to the parent object controlling this proxy.

Returns
Returns a pointer to the WorldObject controlling this proxy, or NULL if this proxy isn't bound to a WorldObject.

Definition at line 75 of file worldproxy.cpp.

UInt32 Mezzanine::WorldProxy::GetProxyID ( ) const
virtual

Gets the unique ID of this proxy.

Remarks
Proxy IDs are only unique to their family of proxies belonging to a specific subsystem. Across subsystems IDs can be reused.
Returns
Returns a UInt32 containing the unique ID for this proxy.

Definition at line 78 of file worldproxy.cpp.

virtual Mezzanine::ProxyType Mezzanine::WorldProxy::GetProxyType ( ) const
pure virtual
virtual Vector3 Mezzanine::WorldProxy::GetScale ( ) const
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

String Mezzanine::WorldProxy::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 168 of file worldproxy.cpp.

virtual Boole Mezzanine::WorldProxy::IsInWorld ( ) const
pure 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.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Audio::SoundProxy.

virtual void Mezzanine::WorldProxy::Pitch ( const Real  Angle)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

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

Definition at line 114 of file worldproxy.cpp.

void Mezzanine::WorldProxy::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 in Mezzanine::Graphics::ParticleSystemProxy, Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::EntityProxy, and Mezzanine::Graphics::BillboardSetProxy.

Definition at line 69 of file worldproxy.cpp.

void Mezzanine::WorldProxy::ProtoDeSerializeProperties ( const XML::Node SelfRoot)
virtual
void Mezzanine::WorldProxy::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 in Mezzanine::Physics::SoftProxy.

Definition at line 84 of file worldproxy.cpp.

void Mezzanine::WorldProxy::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 in Mezzanine::Graphics::ParticleSystemProxy, Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::EntityProxy, and Mezzanine::Graphics::BillboardSetProxy.

Definition at line 66 of file worldproxy.cpp.

void Mezzanine::WorldProxy::ProtoSerializeProperties ( XML::Node SelfRoot) const
virtual
virtual void Mezzanine::WorldProxy::Roll ( const Real  Angle)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::Rotate ( const Vector3 Axis,
const Real  Angle 
)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::Rotate ( const Quaternion Rotation)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::Scale ( const Vector3 Scale)
pure 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.

Implements Mezzanine::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::Scale ( const Real  X,
const Real  Y,
const Real  Z 
)
pure 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.

Implements Mezzanine::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::SetLocation ( const Vector3 Loc)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual void Mezzanine::WorldProxy::SetLocation ( const Real  X,
const Real  Y,
const Real  Z 
)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual void Mezzanine::WorldProxy::SetOrientation ( const Quaternion Ori)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual void Mezzanine::WorldProxy::SetOrientation ( const Real  X,
const Real  Y,
const Real  Z,
const Real  W 
)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual void Mezzanine::WorldProxy::SetScale ( const Vector3 Sc)
pure 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.

Implements Mezzanine::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual void Mezzanine::WorldProxy::SetScale ( const Real  X,
const Real  Y,
const Real  Z 
)
pure 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.

Implements Mezzanine::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, Mezzanine::Graphics::RenderableProxy, and Mezzanine::Physics::SoftProxy.

virtual void Mezzanine::WorldProxy::Translate ( const Vector3 Trans)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::Translate ( const Real  X,
const Real  Y,
const Real  Z 
)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

virtual void Mezzanine::WorldProxy::Yaw ( const Real  Angle)
pure 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::TransformableObject.

Implemented in Mezzanine::Physics::CollidableProxy, and Mezzanine::Graphics::RenderableProxy.

Member Data Documentation

WorldObject* Mezzanine::WorldProxy::ParentObject
protected

Pointer to the Object this proxy belongs to.

Definition at line 58 of file worldproxy.h.

UInt32 Mezzanine::WorldProxy::ProxyID
protected

The unique ID assigned to the type of proxy an instance is.

Definition at line 61 of file worldproxy.h.


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