27 #ifndef BT_GENERIC_6DOF_CONSTRAINT_H
28 #define BT_GENERIC_6DOF_CONSTRAINT_H
166 for(
int i=0; i < 3; i++)
187 for(
int i=0; i < 3; i++)
232 #define BT_6DOF_FLAGS_AXIS_SHIFT 3 // bits per axis
333 void buildLinearJacobian(
340 void calculateLinearInfo();
343 void calculateAngleInfo();
364 void calculateTransforms();
372 return m_calculatedTransformA;
381 return m_calculatedTransformB;
407 virtual void buildJacobian();
409 virtual void getInfo1 (btConstraintInfo1* info);
411 void getInfo1NonVirtual (btConstraintInfo1* info);
413 virtual void getInfo2 (btConstraintInfo2* info);
430 btScalar getAngle(
int axis_index)
const;
436 btScalar getRelativePivotPosition(
int axis_index)
const;
445 bool testAngularLimitMotor(
int axis_index);
469 for(
int i = 0; i < 3; i++)
475 for(
int i = 0; i < 3; i++)
476 angularLower[i] = m_angularLimits[i].m_loLimit;
481 for(
int i = 0; i < 3; i++)
487 for(
int i = 0; i < 3; i++)
488 angularUpper[i] = m_angularLimits[i].m_hiLimit;
494 return &m_angularLimits[index];
500 return &m_linearLimits;
531 return m_linearLimits.
isLimited(limitIndex);
534 return m_angularLimits[limitIndex-3].
isLimited();
537 virtual void calcAnchorPos(
void);
541 btConstraintInfo2 *info,
int row,
btVector3& ax1,
int rotational,
int rotAllowed =
false);
545 void setUseFrameOffset(
bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
549 virtual void setParam(
int num,
btScalar value,
int axis = -1);
551 virtual btScalar getParam(
int num,
int axis = -1)
const;
556 virtual int calculateSerializeBufferSize()
const;
559 virtual const char* serialize(
void* dataBuffer,
btSerializer* serializer)
const;
609 return "btGeneric6DofConstraintData";
616 #endif //BT_GENERIC_6DOF_CONSTRAINT_H