This is a constraint that duplicate the angular motion of one object to another, adjusted by the provided ratio. More...
#include <gearconstraint.h>
Public Member Functions | |
GearConstraint (const UInt32 ID, RigidProxy *ProxyA, RigidProxy *ProxyB, const Vector3 &AxisA, const Vector3 &AxisB, PhysicsManager *Creator) | |
Double body constructor. Binds the two bodies. More... | |
GearConstraint (const UInt32 ID, RigidProxy *ProxyA, RigidProxy *ProxyB, const Vector3 &AxisA, const Vector3 &AxisB, const Real Ratio, PhysicsManager *Creator) | |
Double body constructor. Binds the two bodies. More... | |
GearConstraint (const XML::Node &SelfRoot, PhysicsManager *Creator) | |
XML constructor. More... | |
virtual | ~GearConstraint () |
Class destructor. | |
virtual btTypedConstraint * | _GetConstraintBase () const |
Get the Bullet constraint that this class encapsulates. More... | |
virtual Vector3 | GetAxisA () const |
Gets the axis in ActorA's local space which will translate to ActorB. More... | |
virtual Vector3 | GetAxisB () const |
Gets the axis in ActorB's local space which will be manipulated. More... | |
virtual String | GetDerivedSerializableName () const |
Gets the most derived serializable name of this Constraint. More... | |
virtual Real | GetRotationRatio () const |
Gets the ratio at which ActorA's rotation will be applied to ActorB. More... | |
virtual Constraint::AxisList | GetValidAngularAxes () const |
Get A list sorted (low to high) of all axis that operate Angularly (that lock sliding/translation) More... | |
virtual Constraint::AxisList | GetValidLinearAxes () const |
Get a sorted (low to high) list of all axis that operate linearly (that lock sliding/translation) More... | |
virtual Constraint::ParamList | GetValidParamsOnAxis (int Axis) const |
Get a sorted (low to high) list of Parameters that are valid on this Axis. More... | |
virtual Boole | HasParamBeenSet (ConstraintParam Param, int Axis) const |
virtual void | ProtoDeSerializeInitData (const XML::Node &SelfRoot) |
Take the data stored in an XML Node and initializes a new internal 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 | ProtoSerializeInitData (XML::Node &SelfRoot) const |
Convert the data needed to initialize 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 | SetAxisA (const Vector3 &Axis) |
Sets the axis in ActorA's local space which will translate to ActorB. More... | |
virtual void | SetAxisB (const Vector3 &Axis) |
Sets the axis in ActorB's local space which will be manipulated. More... | |
virtual void | SetRotationRatio (const Real Ratio) |
Sets the ratio at which ActorA's rotation will be applied to ActorB. More... | |
Public Member Functions inherited from Mezzanine::Physics::Constraint | |
virtual | ~Constraint () |
Class destructor. | |
virtual void | EnableConstraint (const Boole Enable) |
Enables or disables this constraint. More... | |
virtual Boole | GetAllowCollisions () const |
Gets whether or not collisions can/will occur between the two constrained bodies. More... | |
virtual UInt32 | GetConstraintID () const |
Gets the unique ID of this constraint. More... | |
virtual Real | GetParam (ConstraintParam Param, int Axis=-1) const |
Gets value of constraint parameters. More... | |
virtual RigidProxy * | GetProxyA () const |
Gets the first Proxy this constraint applies to. More... | |
virtual RigidProxy * | GetProxyB () const |
Gets the second Proxy this constraint applies to. More... | |
virtual AxisList | GetValidAxes () const |
Get a sorted (low to high) list of All Valid Axis. More... | |
virtual ParamList | GetValidParams () const |
Get A sorted (low to high) list of Parameters that are valid on all Axis. More... | |
virtual Boole | IsConstraintEnabled () const |
Gets whether or not this constraint is enabled. More... | |
virtual Boole | IsParamValidOnAxis (ConstraintParam Param, int Axis) const |
Is a certain Parameter valid on a certain 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 | ProtoDeSerializeGlobalOverrides (const XML::Node &SelfRoot) |
Take the data stored in an XML Node and overwrite the global overrides 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 | ProtoSerializeGlobalOverrides (XML::Node &SelfRoot) const |
Convert the global overrides of this class to an XML::Node ready for serialization. More... | |
virtual void | SetAllowCollisions (const Boole Allow) |
Sets whether collisions between the two constrained bodies should occur. More... | |
virtual void | SetParam (ConstraintParam Param, Real Value, int Axis=-1) |
Provides override of constraint parameters. More... | |
Static Public Member Functions | |
static String | GetSerializableName () |
Get the name of the the XML tag the class will leave behind as its instances are serialized. More... | |
Static Public Member Functions inherited from Mezzanine::Physics::Constraint | |
static String | GetSerializableName () |
Get the name of the the XML tag the class will leave behind as its instances are serialized. More... | |
Protected Member Functions | |
virtual void | CreateConstraint (RigidProxy *RigidA, RigidProxy *RigidB, const Vector3 &AxisA, const Vector3 &AxisB) |
Creates the internal constraint. More... | |
virtual void | DestroyConstraint () |
Destroys the internal constraint. More... | |
Protected Member Functions inherited from Mezzanine::Physics::Constraint | |
Constraint (const UInt32 ID, PhysicsManager *Creator) | |
Zero body constructor. More... | |
Constraint (const UInt32 ID, RigidProxy *Prox1, PhysicsManager *Creator) | |
Single body constructor. More... | |
Constraint (const UInt32 ID, RigidProxy *Prox1, RigidProxy *Prox2, PhysicsManager *Creator) | |
Dual body constructor. More... | |
Protected Attributes | |
btGearConstraint * | Gear |
Bullet constraint that this class encapsulates. More... | |
Protected Attributes inherited from Mezzanine::Physics::Constraint | |
Boole | AllowCollisions |
Whether or not collisions will be allowed to occure between the constrained bodies. More... | |
UInt32 | ConstraintID |
The unique ID used to identify this constraint. More... | |
Boole | Enabled |
Whether or not the constraint is currently taking effect. More... | |
PhysicsManager * | Manager |
This is a pointer to the physics manager that created and owns this constraint. More... | |
RigidProxy * | ProxA |
The first Collidable this constraint applies to. More... | |
RigidProxy * | ProxB |
The second Collidable this constraint applies to. More... | |
Additional Inherited Members | |
Public Types inherited from Mezzanine::Physics::Constraint | |
typedef std::vector< int > | AxisList |
Used to Store lists of Int Axis for return types. More... | |
typedef std::vector< ConstraintParam > | ParamList |
Used to Store lists of param for return types. | |
This is a constraint that duplicate the angular motion of one object to another, adjusted by the provided ratio.
Definition at line 56 of file gearconstraint.h.
Mezzanine::Physics::GearConstraint::GearConstraint | ( | const UInt32 | ID, |
RigidProxy * | ProxyA, | ||
RigidProxy * | ProxyB, | ||
const Vector3 & | AxisA, | ||
const Vector3 & | AxisB, | ||
PhysicsManager * | Creator | ||
) |
Double body constructor. Binds the two bodies.
ID | The unique identifier assigned to this constraint. |
ProxyA | The first proxy to apply this constraint to. |
ProxyB | The second proxy to apply this constraint to. |
PivotA | The axis in ProxyA's local space to apply the constraint to. |
PivotB | The axis in ProxyB's local space to apply the constraint to. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 56 of file gearconstraint.cpp.
Mezzanine::Physics::GearConstraint::GearConstraint | ( | const UInt32 | ID, |
RigidProxy * | ProxyA, | ||
RigidProxy * | ProxyB, | ||
const Vector3 & | AxisA, | ||
const Vector3 & | AxisB, | ||
const Real | Ratio, | ||
PhysicsManager * | Creator | ||
) |
Double body constructor. Binds the two bodies.
ID | The unique identifier assigned to this constraint. |
ProxyA | The first proxy to apply this constraint to. |
ProxyB | The second proxy to apply this constraint to. |
PivotA | The axis in ProxyA's local space to apply the constraint to. |
PivotB | The axis in ProxyB's local space to apply the constraint to. |
Ratio | The amount the rotation from ProxyA that shall be used to be applied to ProxyB. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 60 of file gearconstraint.cpp.
Mezzanine::Physics::GearConstraint::GearConstraint | ( | const XML::Node & | SelfRoot, |
PhysicsManager * | Creator | ||
) |
XML constructor.
SelfRoot | An XML::Node containing the data to populate this class with. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 64 of file gearconstraint.cpp.
|
virtual |
Get the Bullet constraint that this class encapsulates.
Implements Mezzanine::Physics::Constraint.
Definition at line 248 of file gearconstraint.cpp.
|
protectedvirtual |
Creates the internal constraint.
RigidA | A pointer to the first Proxy to be constrained. |
RigidB | A pointer to the second Proxy to be constrained. |
AxisA | The offset to place the constraint in the first proxys local space. |
AxisB | The offset to place the constraint in the second proxys local space. |
Definition at line 71 of file gearconstraint.cpp.
|
protectedvirtual |
Destroys the internal constraint.
Definition at line 78 of file gearconstraint.cpp.
|
virtual |
Gets the axis in ActorA's local space which will translate to ActorB.
Definition at line 98 of file gearconstraint.cpp.
|
virtual |
Gets the axis in ActorB's local space which will be manipulated.
Definition at line 101 of file gearconstraint.cpp.
|
virtual |
Gets the most derived serializable name of this Constraint.
Implements Mezzanine::Physics::Constraint.
Definition at line 239 of file gearconstraint.cpp.
|
virtual |
Gets the ratio at which ActorA's rotation will be applied to ActorB.
Definition at line 110 of file gearconstraint.cpp.
|
static |
Get the name of the the XML tag the class will leave behind as its instances are serialized.
Definition at line 242 of file gearconstraint.cpp.
|
virtual |
Get A list sorted (low to high) of all axis that operate Angularly (that lock sliding/translation)
Implements Mezzanine::Physics::Constraint.
Definition at line 128 of file gearconstraint.cpp.
|
virtual |
Get a sorted (low to high) list of all axis that operate linearly (that lock sliding/translation)
Implements Mezzanine::Physics::Constraint.
Definition at line 122 of file gearconstraint.cpp.
|
virtual |
Get a sorted (low to high) list of Parameters that are valid on this Axis.
Parameters returned from this will work on the given axis even if they are not valid on any other axis. There is no guarantee that the Parameters will be uniquely stored per an axis. There is no guarantee that changing one parameter will not change another.
Axis | the Axis to check. |
Implements Mezzanine::Physics::Constraint.
Definition at line 116 of file gearconstraint.cpp.
|
virtual |
Implements Mezzanine::Physics::Constraint.
Definition at line 134 of file gearconstraint.cpp.
|
virtual |
Take the data stored in an XML Node and initializes a new internal object with it.
SelfRoot | An XML::Node containing the data to populate this class with. |
Implements Mezzanine::Physics::Constraint.
Definition at line 180 of file gearconstraint.cpp.
|
virtual |
Take the data stored in an XML Node and overwrite the properties of this object with it.
SelfRoot | An XML::Node containing the data to populate this class with. |
Reimplemented from Mezzanine::Physics::Constraint.
Definition at line 219 of file gearconstraint.cpp.
|
virtual |
Convert the data needed to initialize this class to an XML::Node ready for serialization.
SelfRoot | The root node containing all the serialized data for this instance. |
Implements Mezzanine::Physics::Constraint.
Definition at line 142 of file gearconstraint.cpp.
|
virtual |
Convert the properties of this class to an XML::Node ready for serialization.
SelfRoot | The root node containing all the serialized data for this instance. |
Reimplemented from Mezzanine::Physics::Constraint.
Definition at line 165 of file gearconstraint.cpp.
|
virtual |
Sets the axis in ActorA's local space which will translate to ActorB.
Axis | A vector3 expressing the axis on ActorA this constraint will be applied to. |
Definition at line 92 of file gearconstraint.cpp.
|
virtual |
Sets the axis in ActorB's local space which will be manipulated.
Axis | A vector3 expressing the axis on ActorB this constraint will be applied to. |
Definition at line 95 of file gearconstraint.cpp.
|
virtual |
Sets the ratio at which ActorA's rotation will be applied to ActorB.
Ratio | The ratio at which rotations on ActorA's specified axis will be transfered to ActorB's specified axis. |
Definition at line 107 of file gearconstraint.cpp.
|
protected |
Bullet constraint that this class encapsulates.
Definition at line 61 of file gearconstraint.h.