18 #ifndef BT_HINGECONSTRAINT_H
19 #define BT_HINGECONSTRAINT_H
21 #define _BT_USE_CENTER_LIMIT_ 1
30 #ifdef BT_USE_DOUBLE_PRECISION
31 #define btHingeConstraintData btHingeConstraintDoubleData2 //rename to 2 for backwards compatibility, so we can still load the 'btHingeConstraintDoubleData' version
32 #define btHingeConstraintDataName "btHingeConstraintDoubleData2"
34 #define btHingeConstraintData btHingeConstraintFloatData
35 #define btHingeConstraintDataName "btHingeConstraintFloatData"
36 #endif //BT_USE_DOUBLE_PRECISION
52 #ifdef IN_PARALLELL_SOLVER
65 #ifdef _BT_USE_CENTER_LIMIT_
114 virtual void buildJacobian();
161 void setAngularOnly(
bool angularOnly)
163 m_angularOnly = angularOnly;
168 m_enableAngularMotor = enableMotor;
169 m_motorTargetVelocity = targetVelocity;
170 m_maxMotorImpulse = maxMotorImpulse;
184 #ifdef _BT_USE_CENTER_LIMIT_
185 m_limit.
set(low, high, _softness, _biasFactor, _relaxationFactor);
189 m_limitSoftness = _softness;
190 m_biasFactor = _biasFactor;
191 m_relaxationFactor = _relaxationFactor;
205 btVector3 axisInB = m_rbA.getCenterOfMassTransform().getBasis() * axisInA;
211 m_rbBFrame.
getOrigin() = m_rbB.getCenterOfMassTransform().inverse()(m_rbA.getCenterOfMassTransform()(pivotInA));
222 #ifdef _BT_USE_CENTER_LIMIT_
231 #ifdef _BT_USE_CENTER_LIMIT_
252 inline int getSolveLimit()
254 #ifdef _BT_USE_CENTER_LIMIT_
263 #ifdef _BT_USE_CENTER_LIMIT_
270 inline bool getAngularOnly()
272 return m_angularOnly;
274 inline bool getEnableAngularMotor()
276 return m_enableAngularMotor;
280 return m_motorTargetVelocity;
284 return m_maxMotorImpulse;
288 void setUseFrameOffset(
bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
293 virtual void setParam(
int num,
btScalar value,
int axis = -1);
295 virtual btScalar getParam(
int num,
int axis = -1)
const;
307 #ifdef BT_BACKWARDS_COMPATIBLE_SERIALIZATION
327 #endif //BT_BACKWARDS_COMPATIBLE_SERIALIZATION
395 #ifdef _BT_USE_CENTER_LIMIT_
402 hingeData->m_lowerLimit = float(m_lowerLimit);
403 hingeData->m_upperLimit = float(m_upperLimit);
404 hingeData->m_limitSoftness = float(m_limitSoftness);
405 hingeData->m_biasFactor = float(m_biasFactor);
406 hingeData->m_relaxationFactor = float(m_relaxationFactor);
412 #endif //BT_HINGECONSTRAINT_H