27 #ifndef BT_GENERIC_6DOF_CONSTRAINT_H
28 #define BT_GENERIC_6DOF_CONSTRAINT_H
38 #ifdef BT_USE_DOUBLE_PRECISION
39 #define btGeneric6DofConstraintData2 btGeneric6DofConstraintDoubleData2
40 #define btGeneric6DofConstraintDataName "btGeneric6DofConstraintDoubleData2"
42 #define btGeneric6DofConstraintData2 btGeneric6DofConstraintData
43 #define btGeneric6DofConstraintDataName "btGeneric6DofConstraintData"
44 #endif //BT_USE_DOUBLE_PRECISION
174 for(
int i=0; i < 3; i++)
195 for(
int i=0; i < 3; i++)
240 #define BT_6DOF_FLAGS_AXIS_SHIFT 3 // bits per axis
341 void buildLinearJacobian(
348 void calculateLinearInfo();
351 void calculateAngleInfo();
372 void calculateTransforms();
380 return m_calculatedTransformA;
389 return m_calculatedTransformB;
415 virtual void buildJacobian();
417 virtual void getInfo1 (btConstraintInfo1* info);
419 void getInfo1NonVirtual (btConstraintInfo1* info);
421 virtual void getInfo2 (btConstraintInfo2* info);
438 btScalar getAngle(
int axis_index)
const;
444 btScalar getRelativePivotPosition(
int axis_index)
const;
453 bool testAngularLimitMotor(
int axis_index);
475 void setAngularLowerLimit(
const btVector3& angularLower)
477 for(
int i = 0; i < 3; i++)
483 for(
int i = 0; i < 3; i++)
484 angularLower[i] = m_angularLimits[i].m_loLimit;
487 void setAngularUpperLimit(
const btVector3& angularUpper)
489 for(
int i = 0; i < 3; i++)
495 for(
int i = 0; i < 3; i++)
496 angularUpper[i] = m_angularLimits[i].m_hiLimit;
502 return &m_angularLimits[index];
508 return &m_linearLimits;
535 bool isLimited(
int limitIndex)
539 return m_linearLimits.
isLimited(limitIndex);
542 return m_angularLimits[limitIndex-3].
isLimited();
545 virtual void calcAnchorPos(
void);
549 btConstraintInfo2 *info,
int row,
btVector3& ax1,
int rotational,
int rotAllowed =
false);
553 void setUseFrameOffset(
bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
557 virtual void setParam(
int num,
btScalar value,
int axis = -1);
559 virtual btScalar getParam(
int num,
int axis = -1)
const;
564 virtual int calculateSerializeBufferSize()
const;
567 virtual const char* serialize(
void* dataBuffer,
btSerializer* serializer)
const;
640 #endif //BT_GENERIC_6DOF_CONSTRAINT_H