40 #ifndef _physicsconstraint_h
41 #define _physicsconstraint_h
45 #include "quaternion.h"
50 class btTypedConstraint;
172 virtual UInt32 GetConstraintID()
const;
176 virtual void EnableConstraint(
const Boole Enable);
179 virtual Boole IsConstraintEnabled()
const;
184 virtual void SetAllowCollisions(
const Boole Allow);
187 virtual Boole GetAllowCollisions()
const;
204 virtual ParamList GetValidParamsOnAxis(
int Axis)
const = 0;
208 virtual AxisList GetValidLinearAxes()
const = 0;
212 virtual AxisList GetValidAngularAxes()
const = 0;
224 virtual AxisList GetValidAxes()
const;
238 virtual ParamList GetValidParams()
const;
258 virtual void ProtoSerialize(
XML::Node& ParentNode)
const;
261 virtual void ProtoSerializeInitData(
XML::Node& SelfRoot)
const = 0;
264 virtual void ProtoSerializeProperties(
XML::Node& SelfRoot)
const;
267 virtual void ProtoSerializeGlobalOverrides(
XML::Node& SelfRoot)
const;
271 virtual void ProtoDeSerialize(
const XML::Node& SelfRoot);
274 virtual void ProtoDeSerializeInitData(
const XML::Node& SelfRoot) = 0;
277 virtual void ProtoDeSerializeProperties(
const XML::Node& SelfRoot);
282 virtual void ProtoDeSerializeGlobalOverrides(
const XML::Node& SelfRoot);
287 virtual String GetDerivedSerializableName()
const = 0;
290 static String GetSerializableName();
297 virtual btTypedConstraint* _GetConstraintBase()
const = 0;
std::ostream & operator<<(std::ostream &stream, const Mezzanine::LinearInterpolator< T > &Lint)
Used to Serialize an Mezzanine::LinearInterpolator to a human readable stream.
std::vector< int > AxisList
Used to Store lists of Int Axis for return types.
ConstraintParam StringAsConstraintParam(String Param)
Convert A string that might be ConstraintParam to one.
CFM values adds some small value to the main diagonal on the constraint matrix to prevent degenerate ...
const int ConstraintParamCount
How many ConstraintParam Exist.
bool Boole
Generally acts a single bit, true or false.
UInt32 ConstraintID
The unique ID used to identify this constraint.
All the definitions for datatypes as well as some basic conversion functions are defined here...
Boole Enabled
Whether or not the constraint is currently taking effect.
String ConstraintParamAsString(ConstraintParam Param)
Get a Constraint Parameter as a String.
PhysicsManager * Manager
This is a pointer to the physics manager that created and owns this constraint.
This is the base class for all constraints supported.
int char4ToAxis(char it)
used to help convert string to the axis they indicate
float Real
A Datatype used to represent a real floating point number.
A light-weight handle for manipulating nodes in DOM tree.
uint32_t UInt32
An 32-bit unsigned integer.
ConstraintParam
Used by constraints for setting some parameters.
This is a proxy from which rigid body proxys are handled.
std::vector< ConstraintParam > ParamList
Used to Store lists of param for return types.
This is simply a place for storing all the Physics Related functions.
RigidProxy * ProxA
The first Collidable this constraint applies to.
RigidProxy * ProxB
The second Collidable this constraint applies to.
The bulk of the engine components go in this namspace.
Boole AllowCollisions
Whether or not collisions will be allowed to occure between the constrained bodies.
std::istream & operator>>(std::istream &stream, Mezzanine::LinearInterpolator< T > &Lint)
Used to de-serialize an Mezzanine::LinearInterpolator from a stream.
ERP values adjust how fast the errors in the constraints are reduced.
std::string String
A datatype used to a series of characters.