Create simple but specific limits on any axis of movement or rotation. More...
#include <generic6dofconstraint.h>
Public Types | |
enum | UsableAxis { LinearStart = 0, LinearX = 0, LinearY = 1, LinearZ = 2, LinearEnd = 3, AngularStart = 3, AngularX = 3, AngularY = 4, AngularZ = 5, AngularEnd = 6, AngularXAsRotationAxis = 0, AngularYAsRotationAxis = 1, AngularZAsRotationAxis = 2 } |
Identify the Axis a bit easier when iterating over them is less convienent than typing an Identifier. More... | |
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. | |
Public Member Functions | |
Generic6DofConstraint (const UInt32 ID, RigidProxy *ProxyA, RigidProxy *ProxyB, const Transform &TransA, const Transform &TransB, PhysicsManager *Creator) | |
Dual body constructor. More... | |
Generic6DofConstraint (const UInt32 ID, RigidProxy *ProxyB, const Transform &TransB, PhysicsManager *Creator) | |
Single body constructor. More... | |
Generic6DofConstraint (const XML::Node &SelfRoot, PhysicsManager *Creator) | |
XML constructor. More... | |
virtual | ~Generic6DofConstraint () |
Class destructor. | |
virtual btTypedConstraint * | _GetConstraintBase () const |
Get the Bullet constraint that this class encapsulates. More... | |
virtual Whole | ConvertAngularTo6Axis (const Whole Axis) const |
Convert an angular Axis from a 3 digit range to a full 6 digit range. More... | |
virtual Whole | ConvertFrom6AxisTo3Axis (const Whole Axis) const |
Convert an Axis from a full 6 digit range to a 3 digit range. More... | |
virtual Vector3 | GetAngularLimitLower () const |
Get the Upper limits on rotation. More... | |
Real | GetAngularLimitLowerOnAxis (Whole RotationAxis) const |
Get a specific lower rotation limit. More... | |
virtual Vector3 | GetAngularLimitMaxForce () const |
Get the Maximimum amount of force applied to ensure limits are not surpassed. More... | |
virtual Real | GetAngularLimitMaxForceOnAxis (Whole Axis) const |
Get the Maximimum amount of force applied to ensure a limit one axis is not surpassed. More... | |
virtual Vector3 | GetAngularLimitUpper () const |
Get the Power limits on rotation. More... | |
Real | GetAngularLimitUpperOnAxis (Whole RotationAxis) const |
Get a specific upper rotation limit. More... | |
virtual Vector3 | GetAngularMotorDamping () const |
Get the Damping for all Angular Axis. More... | |
virtual Real | GetAngularMotorDampingOnAxis (Whole Axis) const |
Get the Damping for one given Axis. More... | |
virtual Vector3 | GetAngularMotorEnabled () const |
Get a Vector3 with 3 zero or nonzero values that store whether or not a given rotational motor is enable. More... | |
virtual Boole | GetAngularMotorEnabledOnAxis (Whole Axis) const |
Is a specific rotational motor enabled. More... | |
virtual Vector3 | GetAngularMotorMaxForce () const |
Get the Max Motor Force for each Axis. More... | |
virtual Real | GetAngularMotorMaxForceOnAxis (Whole Axis) const |
Get the Max motor Force on a certain Axis. More... | |
virtual Vector3 | GetAngularMotorRestitution () const |
Get the Restitution values for all three axis. More... | |
virtual Real | GetAngularMotorRestitutionOnAxis (Whole Axis) const |
Get the Restitution/Bounciness for a single Axis. More... | |
virtual Vector3 | GetAngularMotorTargetVelocity () const |
Get the target velocity for all angular Axis. More... | |
virtual Real | GetAngularMotorTargetVelocityOnAxis (Whole Axis) const |
Get the Target Velocity for one axis. More... | |
virtual String | GetDerivedSerializableName () const |
Gets the most derived serializable name of this Constraint. More... | |
virtual Real | GetLinearLimitDamping () const |
Get the Damping of the linear Limits. More... | |
virtual Vector3 | GetLinearLimitLower () const |
Get the Upper limits on translation. More... | |
Real | GetLinearLimitLowerOnAxis (Whole TranslationAxis) const |
Get a specific lower translation limit. More... | |
virtual Real | GetLinearLimitRestitution () const |
Get the Restitution of the linear Limits. More... | |
virtual Real | GetLinearLimitSoftness () const |
Get the Softness of the linear Limits. More... | |
virtual Vector3 | GetLinearLimitUpper () const |
Get the lower limits on translation. More... | |
Real | GetLinearLimitUpperOnAxis (Whole TranslationAxis) const |
Get a specific upper translation limit. More... | |
virtual Vector3 | GetLinearMotorEnabled () const |
Get a Vector3 with 3 zero or nonzero values that store whether or not a given rotational motor is enable. More... | |
virtual Boole | GetLinearMotorEnabledOnAxis (Whole Axis) const |
Is a specific Linear motor enabled. More... | |
virtual Vector3 | GetLinearMotorMaxForce () const |
Get the Max Motor Force for each Axis. More... | |
virtual Real | GetLinearMotorMaxForceOnAxis (Whole Axis) const |
Get the Max motor Force on a certain Axis. More... | |
virtual Vector3 | GetLinearMotorTargetVelocity () const |
Get the target velocity for all Linear Axis. More... | |
virtual Real | GetLinearMotorTargetVelocityOnAxis (Whole Axis) const |
Get the Target Velocity for one axis. More... | |
virtual Vector3 | GetPivotALocation () const |
Gets the location of the pivot relative to ProxA's Center of gravity. More... | |
virtual Quaternion | GetPivotARotation () const |
Gets the relative rotation for ProxA. More... | |
virtual Transform | GetPivotATransform () const |
Gets the current Rotation and Location of ProxyA. More... | |
virtual Vector3 | GetPivotBLocation () const |
Gets the location of the pivot relative to ProxB's Center of gravity. More... | |
virtual Quaternion | GetPivotBRotation () const |
Gets the relative rotation for ProxB. More... | |
virtual Transform | GetPivotBTransform () const |
Gets the current Rotation and Location of ProxyB. More... | |
virtual Boole | GetUseFrameOffset () const |
Gets whether or not an offset of the constraint frame should be used to calculate internal data. More... | |
Boole | GetUseLinearReferenceFrameA () const |
Gets whether or not to perform linear math from ProxyA's perspective. 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 | 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 | ProtoSerializeProperties (XML::Node &SelfRoot) const |
Convert the properties of this class to an XML::Node ready for serialization. More... | |
virtual void | SetAngularLimitLower (const Vector3 &Limit) |
Set the Lower limits on rotation. More... | |
void | SetAngularLimitLowerOnAxis (const Real Limit, Whole RotationAxis) |
Sets the lower rotation limit on a specific axis of the constraint. More... | |
virtual void | SetAngularLimitMaxForce (const Vector3 &MaxLimitForces) |
Set the Maximimum amount of force applied to ensure limits are not surpassed. More... | |
virtual void | SetAngularLimitMaxForceOnAxis (const Real MaxLimitForce, Whole Axis) |
Set the Maximimum amount of force applied to ensure a limit on one axis is not surpassed. More... | |
virtual void | SetAngularLimitUpper (const Vector3 &Limit) |
Set the Upper limits on rotation. More... | |
void | SetAngularLimitUpperOnAxis (const Real Limit, Whole RotationAxis) |
Sets the upper rotation limit on a specific axis of the constraint. More... | |
virtual void | SetAngularMotorDamping (const Vector3 &Dampings) |
Set the Angular Motor Damping for each Angular Axis. More... | |
virtual void | SetAngularMotorDampingOnAxis (const Real Damping, Whole Axis) |
For one Axis, set the Damping. More... | |
virtual void | SetAngularMotorEnabled (const Vector3 &Enableds) |
Set whether or not the motor is enabled for all Axis Simultaneously. More... | |
virtual void | SetAngularMotorEnabledOnAxis (const Boole Enabled, Whole Axis) |
For one Axis, set whether or not the motor is enabled. More... | |
virtual void | SetAngularMotorMaxForce (const Vector3 &Forces) |
Set the Angular Motor Maximum force on all 3 rotational axis. More... | |
virtual void | SetAngularMotorMaxForceOnAxis (const Real Force, Whole Axis) |
For one Axis, set the Maximimum Motor Force. More... | |
virtual void | SetAngularMotorRestitution (const Vector3 &Restitutions) |
Set the Bounciness/Restition for rotation on all three Axis. More... | |
virtual void | SetAngularMotorRestitutionOnAxis (const Real Restitution, Whole Axis) |
For one Axis, set the Restitution/Bounciness/. More... | |
virtual void | SetAngularMotorTargetVelocity (const Vector3 &Velocities) |
Set the Target velocity of the motor on each anuglar axis. More... | |
virtual void | SetAngularMotorTargetVelocityOnAxis (const Real Velocity, Whole Axis) |
For one Axis, set the target velocity of the angular motor. More... | |
virtual void | SetLimit (Whole Axis, Real Lower, Real Upper) |
Change the upper and lower limit for one axis of translation or rotation limit. More... | |
virtual void | SetLinearLimitDamping (const Real Damping) |
Set the Damping of the linear Limits. More... | |
virtual void | SetLinearLimitLower (const Vector3 &Limit) |
Set the Upper limits on translation. More... | |
void | SetLinearLimitLowerOnAxis (const Real Limit, Whole TranslationAxis) |
Sets the lower linear limit on a specific axis of the constraint. More... | |
virtual void | SetLinearLimitRestitution (const Real Restitution) |
Set the Restitution of the linear Limits. More... | |
virtual void | SetLinearLimitSoftness (const Real Softness) |
Set the Softness of the linear Limits. More... | |
virtual void | SetLinearLimitUpper (const Vector3 &Limit) |
Set the lower limits on translation. More... | |
void | SetLinearLimitUpperOnAxis (const Real Limit, Whole TranslationAxis) |
Sets the upper linear limit on a specific axis of the constraint. More... | |
virtual void | SetLinearMotorEnabled (const Vector3 &Enableds) |
Set whether or not the motor is enabled for all Linear Axis Simultaneously. More... | |
virtual void | SetLinearMotorEnabledOnAxis (const Boole Enabled, Whole Axis) |
For one Axis, set whether or not the motor is enabled. More... | |
virtual void | SetLinearMotorMaxForce (const Vector3 &Forces) |
Set the Linear Motor Maximum force on all 3 translation axis. More... | |
virtual void | SetLinearMotorMaxForceOnAxis (const Real Force, Whole Axis) |
For one Axis, set the Maximimum Motor Force. More... | |
virtual void | SetLinearMotorTargetVelocity (const Vector3 &Velocities) |
Set the Target velocity of the motor on each anuglar axis. More... | |
virtual void | SetLinearMotorTargetVelocityOnAxis (const Real Velocity, Whole Axis) |
For one Axis, set the target velocity of the Linear motor. More... | |
virtual void | SetPivotALocation (const Vector3 &Location) |
Sets The relative location of the pivot from ProxA's Center of gravity. More... | |
virtual void | SetPivotARotation (const Quaternion &Rotation) |
Sets The relative rotation of ProxA. More... | |
virtual void | SetPivotATransform (const Transform &TransA) |
Sets the Position and Rotation for the first body using a Transform. More... | |
virtual void | SetPivotBLocation (const Vector3 &Location) |
Sets The relative location of the pivot from ProxB's Center of gravity. More... | |
virtual void | SetPivotBRotation (const Quaternion &Rotation) |
Sets The relative rotation of ProxB. More... | |
virtual void | SetPivotBTransform (const Transform &TransB) |
Sets the Position and Rotation for the second body using a Transform. More... | |
virtual void | SetPivotTransforms (const Transform &TransA, const Transform &TransB) |
Sets the Position and Rotation for the first and second body using a Transform. More... | |
virtual void | SetUseFrameOffset (const Boole FrameOffset) |
Sets whether or not an offset of the constraint frame should be used to calculate internal data. More... | |
void | SetUseLinearReferenceFrameA (const Boole UseRefFrameA) |
Sets whether or not to perform linear math from ProxyA's perspective. More... | |
Public Member Functions inherited from Mezzanine::Physics::DualTransformConstraint | |
virtual | ~DualTransformConstraint () |
Class destructor. | |
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 | ProtoSerializeInitData (XML::Node &SelfRoot) const |
Convert the data needed to initialize this class to an XML::Node ready for serialization. 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::DualTransformConstraint | |
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 | |
Generic6DofConstraint (const UInt32 ID, RigidProxy *Prox1, PhysicsManager *Creator) | |
Single body inheritance constructor. More... | |
Generic6DofConstraint (const UInt32 ID, RigidProxy *Prox1, RigidProxy *Prox2, PhysicsManager *Creator) | |
Dual body inheritance constructor. More... | |
virtual void | CreateConstraint (RigidProxy *RigidA, RigidProxy *RigidB, const Transform &TransA, const Transform &TransB) |
Creates the internal constraint. More... | |
virtual void | DestroyConstraint () |
Destroys the internal constraint. More... | |
Protected Member Functions inherited from Mezzanine::Physics::DualTransformConstraint | |
DualTransformConstraint (const UInt32 ID, RigidProxy *Prox1, PhysicsManager *Creator) | |
Single body inheritance constructor. More... | |
DualTransformConstraint (const UInt32 ID, RigidProxy *Prox1, RigidProxy *Prox2, PhysicsManager *Creator) | |
Dual body inheritance constructor. 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 | |
btGeneric6DofConstraint * | Generic6dof |
The internal 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... | |
Create simple but specific limits on any axis of movement or rotation.
Provides optional limits on the x, y, and z for rotation and translation. You can get the ID of the axis with GetValidLinearAxes() or GetValidAngularAxes() for this particular constraint at the time of this writing the constraint axis looked liked this:
This has to perform a larger amount of calculations and should be used only when other simpler constraints have been ruled out.
As with all limits when the upper and lower limits match the two actors will be locked on that axis and relative translation or rotation will not be permitted (within the bounds or error correction). If the Lower limit is lower than the Upper limit a range of translation or rotation will be allowed. If the Lower limit is higher than the Upper limit this will cause the system to realized that no position can satisfy the constraint and no restriction will be enforced.
Each of the Axis also has a motor that can be enabled to cause a specified amount of translation or rotation. To aid in selection of specific Axis, you should use the UsableAxis enum
Definition at line 79 of file generic6dofconstraint.h.
Identify the Axis a bit easier when iterating over them is less convienent than typing an Identifier.
Definition at line 83 of file generic6dofconstraint.h.
|
protected |
Single body inheritance constructor.
ID | The unique identifier assigned to this constraint. |
Prox1 | A pointer to the first/only proxy that will be constrained. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 60 of file generic6dofconstraint.cpp.
|
protected |
Dual body inheritance constructor.
ID | The unique identifier assigned to this constraint. |
Prox1 | A pointer to the first proxy that will be constrained. |
Prox2 | A pointer to the second proxy that will be constrained. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 64 of file generic6dofconstraint.cpp.
Mezzanine::Physics::Generic6DofConstraint::Generic6DofConstraint | ( | const UInt32 | ID, |
RigidProxy * | ProxyA, | ||
RigidProxy * | ProxyB, | ||
const Transform & | TransA, | ||
const Transform & | TransB, | ||
PhysicsManager * | Creator | ||
) |
Dual body constructor.
ID | The unique identifier assigned to this constraint. |
ProxyA | The First proxy to be bound. |
ProxyB | The Second proxy to be bound. |
TransA | The offset and rotation from ProxyAs center of gravity to get to match an offset from ProxyB. |
TransB | The offset and rotation from ProxyBs center of gravity. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 71 of file generic6dofconstraint.cpp.
Mezzanine::Physics::Generic6DofConstraint::Generic6DofConstraint | ( | const UInt32 | ID, |
RigidProxy * | ProxyB, | ||
const Transform & | TransB, | ||
PhysicsManager * | Creator | ||
) |
Single body constructor.
ID | The unique identifier assigned to this constraint. |
ProxyB | The proxy to be bound to the world. |
TransB | The offset and rotation for the ProxyB pivot/hinge/joint. |
Creator | A pointer to the manager that created this constraint. |
Definition at line 76 of file generic6dofconstraint.cpp.
Mezzanine::Physics::Generic6DofConstraint::Generic6DofConstraint | ( | 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 81 of file generic6dofconstraint.cpp.
|
virtual |
Get the Bullet constraint that this class encapsulates.
Implements Mezzanine::Physics::Constraint.
Definition at line 596 of file generic6dofconstraint.cpp.
|
virtual |
Convert an angular Axis from a 3 digit range to a full 6 digit range.
Axis | the Axis ID to be converted. |
Definition at line 171 of file generic6dofconstraint.cpp.
|
virtual |
Convert an Axis from a full 6 digit range to a 3 digit range.
Axis | the Axis ID to be converted. |
Definition at line 168 of file generic6dofconstraint.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. |
TransA | The offset to place the constraint in the first proxys local space. |
TransB | The offset to place the constraint in the second proxys local space. |
Implements Mezzanine::Physics::DualTransformConstraint.
Reimplemented in Mezzanine::Physics::UniversalConstraint, Mezzanine::Physics::Generic6DofSpringConstraint, and Mezzanine::Physics::Hinge2Constraint.
Definition at line 89 of file generic6dofconstraint.cpp.
|
protectedvirtual |
Destroys the internal constraint.
Implements Mezzanine::Physics::DualTransformConstraint.
Definition at line 100 of file generic6dofconstraint.cpp.
|
virtual |
Get the Upper limits on rotation.
Definition at line 213 of file generic6dofconstraint.cpp.
Real Mezzanine::Physics::Generic6DofConstraint::GetAngularLimitLowerOnAxis | ( | Whole | RotationAxis | ) | const |
Get a specific lower rotation limit.
RotationAxis | The Axis to work with. |
Definition at line 219 of file generic6dofconstraint.cpp.
|
virtual |
Get the Maximimum amount of force applied to ensure limits are not surpassed.
Definition at line 234 of file generic6dofconstraint.cpp.
|
virtual |
Get the Maximimum amount of force applied to ensure a limit one axis is not surpassed.
Axis | The Angular Axis to get, as per AxisToAngularAxis(Whole). |
Definition at line 240 of file generic6dofconstraint.cpp.
|
virtual |
Get the Power limits on rotation.
Definition at line 207 of file generic6dofconstraint.cpp.
Real Mezzanine::Physics::Generic6DofConstraint::GetAngularLimitUpperOnAxis | ( | Whole | RotationAxis | ) | const |
Get a specific upper rotation limit.
RotationAxis | The Axis to work with. |
Definition at line 225 of file generic6dofconstraint.cpp.
|
virtual |
Get the Damping for all Angular Axis.
Definition at line 270 of file generic6dofconstraint.cpp.
|
virtual |
Get the Damping for one given Axis.
Axis | The Angular Axis to get, as per AxisToAngularAxis(Whole). |
Definition at line 276 of file generic6dofconstraint.cpp.
|
virtual |
Get a Vector3 with 3 zero or nonzero values that store whether or not a given rotational motor is enable.
Definition at line 294 of file generic6dofconstraint.cpp.
|
virtual |
Is a specific rotational motor enabled.
Axis | The Angular Axis to get, as per AxisToAngularAxis(Whole). |
Definition at line 300 of file generic6dofconstraint.cpp.
|
virtual |
Get the Max Motor Force for each Axis.
Definition at line 255 of file generic6dofconstraint.cpp.
|
virtual |
Get the Max motor Force on a certain Axis.
Axis | The Angular Axis to get, as per AxisToAngularAxis(Whole). |
Definition at line 264 of file generic6dofconstraint.cpp.
|
virtual |
Get the Restitution values for all three axis.
Definition at line 282 of file generic6dofconstraint.cpp.
|
virtual |
Get the Restitution/Bounciness for a single Axis.
Axis | The Angular Axis to get, as per AxisToAngularAxis(Whole). |
Definition at line 288 of file generic6dofconstraint.cpp.
|
virtual |
Get the target velocity for all angular Axis.
Definition at line 246 of file generic6dofconstraint.cpp.
|
virtual |
Get the Target Velocity for one axis.
Axis | The Angular Axis to get, as per AxisToAngularAxis(Whole). |
Definition at line 252 of file generic6dofconstraint.cpp.
|
virtual |
Gets the most derived serializable name of this Constraint.
Implements Mezzanine::Physics::Constraint.
Reimplemented in Mezzanine::Physics::Generic6DofSpringConstraint, Mezzanine::Physics::UniversalConstraint, and Mezzanine::Physics::Hinge2Constraint.
Definition at line 587 of file generic6dofconstraint.cpp.
|
virtual |
Get the Damping of the linear Limits.
Definition at line 315 of file generic6dofconstraint.cpp.
|
virtual |
Get the Upper limits on translation.
Definition at line 183 of file generic6dofconstraint.cpp.
Real Mezzanine::Physics::Generic6DofConstraint::GetLinearLimitLowerOnAxis | ( | Whole | TranslationAxis | ) | const |
Get a specific lower translation limit.
TranslationAxis | The Axis to work with. |
Definition at line 195 of file generic6dofconstraint.cpp.
|
virtual |
Get the Restitution of the linear Limits.
Definition at line 321 of file generic6dofconstraint.cpp.
|
virtual |
Get the Softness of the linear Limits.
Definition at line 309 of file generic6dofconstraint.cpp.
|
virtual |
Get the lower limits on translation.
Limit | A Vector3 that stores the lower limit x, y and z that cannot be exceeded |
Definition at line 189 of file generic6dofconstraint.cpp.
Real Mezzanine::Physics::Generic6DofConstraint::GetLinearLimitUpperOnAxis | ( | Whole | TranslationAxis | ) | const |
Get a specific upper translation limit.
TranslationAxis | The Axis to work with. |
Definition at line 201 of file generic6dofconstraint.cpp.
|
virtual |
Get a Vector3 with 3 zero or nonzero values that store whether or not a given rotational motor is enable.
Definition at line 354 of file generic6dofconstraint.cpp.
|
virtual |
Is a specific Linear motor enabled.
Axis | The Linear Axis to get. |
Definition at line 357 of file generic6dofconstraint.cpp.
|
virtual |
Get the Max Motor Force for each Axis.
Definition at line 330 of file generic6dofconstraint.cpp.
|
virtual |
Get the Max motor Force on a certain Axis.
Axis | The Linear Axis to get. |
Definition at line 333 of file generic6dofconstraint.cpp.
|
virtual |
Get the target velocity for all Linear Axis.
Definition at line 342 of file generic6dofconstraint.cpp.
|
virtual |
Get the Target Velocity for one axis.
Axis | The Linear Axis to get. |
Definition at line 345 of file generic6dofconstraint.cpp.
|
virtual |
Gets the location of the pivot relative to ProxA's Center of gravity.
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 135 of file generic6dofconstraint.cpp.
|
virtual |
Gets the relative rotation for ProxA.
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 147 of file generic6dofconstraint.cpp.
|
virtual |
Gets the current Rotation and Location of ProxyA.
Implements Mezzanine::Physics::DualTransformConstraint.
Definition at line 123 of file generic6dofconstraint.cpp.
|
virtual |
Gets the location of the pivot relative to ProxB's Center of gravity.
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 138 of file generic6dofconstraint.cpp.
|
virtual |
Gets the relative rotation for ProxB.
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 150 of file generic6dofconstraint.cpp.
|
virtual |
Gets the current Rotation and Location of ProxyB.
Implements Mezzanine::Physics::DualTransformConstraint.
Definition at line 126 of file generic6dofconstraint.cpp.
|
static |
Get the name of the the XML tag the class will leave behind as its instances are serialized.
Definition at line 590 of file generic6dofconstraint.cpp.
|
virtual |
Gets whether or not an offset of the constraint frame should be used to calculate internal data.
Definition at line 159 of file generic6dofconstraint.cpp.
Boole Mezzanine::Physics::Generic6DofConstraint::GetUseLinearReferenceFrameA | ( | ) | const |
Gets whether or not to perform linear math from ProxyA's perspective.
Definition at line 165 of file generic6dofconstraint.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 383 of file generic6dofconstraint.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 374 of file generic6dofconstraint.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 363 of file generic6dofconstraint.cpp.
|
virtual |
Implements Mezzanine::Physics::Constraint.
Definition at line 392 of file generic6dofconstraint.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.
Reimplemented in Mezzanine::Physics::Generic6DofSpringConstraint.
Definition at line 463 of file generic6dofconstraint.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.
Reimplemented in Mezzanine::Physics::Generic6DofSpringConstraint.
Definition at line 405 of file generic6dofconstraint.cpp.
|
virtual |
Set the Lower limits on rotation.
Limit | A Vector3 that store the upper limit x, y and z rotation in radians |
Definition at line 210 of file generic6dofconstraint.cpp.
void Mezzanine::Physics::Generic6DofConstraint::SetAngularLimitLowerOnAxis | ( | const Real | Limit, |
Whole | RotationAxis | ||
) |
Sets the lower rotation limit on a specific axis of the constraint.
Limit | The limit to apply to the specified axis. |
RotationAxis | The Axis to work with. |
Definition at line 216 of file generic6dofconstraint.cpp.
|
virtual |
Set the Maximimum amount of force applied to ensure limits are not surpassed.
MaxLimitForces | A Vector3 containing the X, Y and Z Maximium forces. |
Definition at line 231 of file generic6dofconstraint.cpp.
|
virtual |
Set the Maximimum amount of force applied to ensure a limit on one axis is not surpassed.
MaxLimitForce | The new maximum force. |
Axis | The Angular Axis to be set, as per AxisToAngularAxis(Whole). |
Definition at line 237 of file generic6dofconstraint.cpp.
|
virtual |
Set the Upper limits on rotation.
Limit | A Vector3 that store the lower limit x, y and z rotation in radians |
Definition at line 204 of file generic6dofconstraint.cpp.
void Mezzanine::Physics::Generic6DofConstraint::SetAngularLimitUpperOnAxis | ( | const Real | Limit, |
Whole | RotationAxis | ||
) |
Sets the upper rotation limit on a specific axis of the constraint.
Limit | The limit to apply to the specified axis. |
RotationAxis | The Axis to work with. |
Definition at line 222 of file generic6dofconstraint.cpp.
|
virtual |
Set the Angular Motor Damping for each Angular Axis.
Dampings | A Vector3 with Damping value for the X, Y and Z axis. |
Definition at line 267 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set the Damping.
Damping | The new amount to Damp rotation on the given Axis. |
Axis | The Angular Axis to be set, as per AxisToAngularAxis(Whole). |
Definition at line 273 of file generic6dofconstraint.cpp.
|
virtual |
Set whether or not the motor is enabled for all Axis Simultaneously.
Enableds | A Vector3 that will be interpretted as 3 true/false values where 0 is false and any other value it true. |
Definition at line 291 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set whether or not the motor is enabled.
Enabled | Is the motor enabled? TRue for yes, false for no. |
Axis | The Angular Axis to be set, as per AxisToAngularAxis(Whole). |
Definition at line 297 of file generic6dofconstraint.cpp.
|
virtual |
Set the Angular Motor Maximum force on all 3 rotational axis.
Forces | A Vector3 with the Max Motor Force for each axis. |
Definition at line 258 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set the Maximimum Motor Force.
Force | The new Max motor force. |
Axis | The Angular Axis to be set, as per AxisToAngularAxis(Whole). |
Definition at line 261 of file generic6dofconstraint.cpp.
|
virtual |
Set the Bounciness/Restition for rotation on all three Axis.
Restitutions | A Vector3 containing all the New Bounciness values |
Definition at line 279 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set the Restitution/Bounciness/.
Restitution | The new value for the given Axis. |
Axis | The Angular Axis to be set, as per AxisToAngularAxis(Whole). |
Definition at line 285 of file generic6dofconstraint.cpp.
|
virtual |
Set the Target velocity of the motor on each anuglar axis.
Velocities | A Vector3 containing the X, Y and Z Target Velocites. |
Definition at line 243 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set the target velocity of the angular motor.
Velocity | The new Target Velovity. |
Axis | The Angular Axis to be set, as per AxisToAngularAxis(Whole). |
Definition at line 249 of file generic6dofconstraint.cpp.
|
virtual |
Change the upper and lower limit for one axis of translation or rotation limit.
Axis | The axis to change |
Lower | The new lower limit |
UpperThe | new Higher limit |
Definition at line 177 of file generic6dofconstraint.cpp.
|
virtual |
Set the Damping of the linear Limits.
Damping | The new damping value placed on forces the limits impose. |
Definition at line 312 of file generic6dofconstraint.cpp.
|
virtual |
Set the Upper limits on translation.
Definition at line 180 of file generic6dofconstraint.cpp.
void Mezzanine::Physics::Generic6DofConstraint::SetLinearLimitLowerOnAxis | ( | const Real | Limit, |
Whole | TranslationAxis | ||
) |
Sets the lower linear limit on a specific axis of the constraint.
Limit | The limit to apply to the specified axis. |
TranslationAxis | The Axis to work with. |
Definition at line 192 of file generic6dofconstraint.cpp.
|
virtual |
Set the Restitution of the linear Limits.
Restitution | How bouncy are the limits. |
Definition at line 318 of file generic6dofconstraint.cpp.
|
virtual |
Set the Softness of the linear Limits.
Softness | How spongy, how much give does the constraint have. |
Definition at line 306 of file generic6dofconstraint.cpp.
|
virtual |
Set the lower limits on translation.
Limit | A Vector3 that stores the lower limit x, y and z that cannot be exceeded |
Definition at line 186 of file generic6dofconstraint.cpp.
void Mezzanine::Physics::Generic6DofConstraint::SetLinearLimitUpperOnAxis | ( | const Real | Limit, |
Whole | TranslationAxis | ||
) |
Sets the upper linear limit on a specific axis of the constraint.
Limit | The limit to apply to the specified axis. |
TranslationAxis | The Axis to work with. |
Definition at line 198 of file generic6dofconstraint.cpp.
|
virtual |
Set whether or not the motor is enabled for all Linear Axis Simultaneously.
Enableds | A Vector3 that will be interpretted as 3 true/false values where 0 is false and any other value it true. |
Definition at line 348 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set whether or not the motor is enabled.
Enabled | Is the motor enabled? True for yes, false for no. |
Axis | The Linear Axis to be set. |
Definition at line 351 of file generic6dofconstraint.cpp.
|
virtual |
Set the Linear Motor Maximum force on all 3 translation axis.
Forces | A Vector3 with the Max Motor Force for each axis. |
Definition at line 324 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set the Maximimum Motor Force.
Force | The new Max motor force. |
Axis | The Linear Axis to be set. |
Definition at line 327 of file generic6dofconstraint.cpp.
|
virtual |
Set the Target velocity of the motor on each anuglar axis.
Velocities | A Vector3 containing the X, Y and Z Target Velocites. |
Definition at line 336 of file generic6dofconstraint.cpp.
|
virtual |
For one Axis, set the target velocity of the Linear motor.
Velocity | The new Target Velovity. |
Axis | The Linear Axis to be set. |
Definition at line 339 of file generic6dofconstraint.cpp.
|
virtual |
Sets The relative location of the pivot from ProxA's Center of gravity.
Location | The New value for PivotA. |
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 129 of file generic6dofconstraint.cpp.
|
virtual |
Sets The relative rotation of ProxA.
Rotation | The new rotation amount for ProxA. |
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 141 of file generic6dofconstraint.cpp.
|
virtual |
Sets the Position and Rotation for the first body using a Transform.
TransA | The new position and rotation. |
Implements Mezzanine::Physics::DualTransformConstraint.
Definition at line 117 of file generic6dofconstraint.cpp.
|
virtual |
Sets The relative location of the pivot from ProxB's Center of gravity.
Location | The New value for PivotB. |
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 132 of file generic6dofconstraint.cpp.
|
virtual |
Sets The relative rotation of ProxB.
otation | The new rotation amount for ProxB. |
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 144 of file generic6dofconstraint.cpp.
|
virtual |
Sets the Position and Rotation for the second body using a Transform.
TransB | The new position and rotation. |
Implements Mezzanine::Physics::DualTransformConstraint.
Definition at line 120 of file generic6dofconstraint.cpp.
|
virtual |
Sets the Position and Rotation for the first and second body using a Transform.
TransA | The new position and rotation for ProxyA. |
TransB | The new position and rotation for ProxyB. |
Reimplemented from Mezzanine::Physics::DualTransformConstraint.
Definition at line 114 of file generic6dofconstraint.cpp.
|
virtual |
Sets whether or not an offset of the constraint frame should be used to calculate internal data.
FrameOffset | The full effect of this being true or false is uknown, but internal documentation suggests "true" provides more stable results. |
Definition at line 156 of file generic6dofconstraint.cpp.
void Mezzanine::Physics::Generic6DofConstraint::SetUseLinearReferenceFrameA | ( | const Boole | UseRefFrameA | ) |
Sets whether or not to perform linear math from ProxyA's perspective.
UseRefFrameA | True to perform math from ProxyA's perspective, false to perform math from ProxyB's perspective. Initial Value: false. |
Definition at line 162 of file generic6dofconstraint.cpp.
|
protected |
The internal constraint that this class encapsulates.
Definition at line 103 of file generic6dofconstraint.h.