12 #ifndef __D_JOINT_BALLANDSOCKET_H__
13 #define __D_JOINT_BALLANDSOCKET_H__
15 #include "ndNewtonStdafx.h"
16 #include "ndJointBilateralConstraint.h"
29 D_NEWTON_API
void EnableTwist(
bool state);
30 D_NEWTON_API
void SetTwistLimits(dFloat32 minAngle, dFloat32 maxAngle);
31 D_NEWTON_API
void GetTwistLimits(dFloat32& minAngle, dFloat32& maxAngle)
const;
33 D_NEWTON_API
void EnableCone(
bool state);
34 D_NEWTON_API dFloat32 GetConeLimits()
const;
35 D_NEWTON_API
void SetConeLimits(dFloat32 maxAngle);
37 D_NEWTON_API
void SetTwistFriction (dFloat32 frictionTorque);
38 D_NEWTON_API dFloat32 GetTwistFriction (dFloat32 frictionTorque)
const;
40 D_NEWTON_API
void SetConeFriction(dFloat32 frictionTorque);
41 D_NEWTON_API dFloat32 GetConeFriction(dFloat32 frictionTorque)
const;
43 D_NEWTON_API
virtual void Debug(dDebugDisplay*
const debugDisplay)
const;
46 D_NEWTON_API
virtual void Deserialize (NewtonDeserializeCallback callback,
void*
const userData);
47 D_NEWTON_API
virtual void Serialize (NewtonSerializeCallback callback,
void*
const userData)
const;
48 D_NEWTON_API
virtual void SubmitConstraints (dFloat32 timestep, dInt32 threadIndex);
50 void SubmitTwistAngle(
const dVector& pin, dFloat32 pitchAngle, dFloat32 timestep);
51 void SubmitAngularAxis(
const dMatrix& matrix0,
const dMatrix& matrix1, dFloat32 timestep);
52 void SubmitAngularAxisCartisianApproximation(
const dMatrix& matrix0,
const dMatrix& matrix1, dFloat32 timestep);
54 dAngularIntegration m_twistAngle;
55 dFloat32 m_minTwistAngle;
56 dFloat32 m_maxTwistAngle;
57 dFloat32 m_maxConeAngle;
58 dFloat32 m_coneFriction;
59 dFloat32 m_twistFriction;