22 #define DEFAULT_DEBUGDRAW_SIZE btScalar(0.3f) 26 m_userConstraintType(-1),
27 m_userConstraintPtr((void*)-1),
30 m_needsFeedback(false),
31 m_overrideNumSolverIterations(-1),
33 m_rbB(getFixedBody()),
66 else if(lowLim == uppLim)
74 if((pos >= lowLim) && (pos < (lowLim - delta_max)))
76 lim_fact = (lowLim - pos) / delta_max;
89 if((pos <= uppLim) && (pos > (uppLim - delta_max)))
91 lim_fact = (uppLim - pos) / delta_max;
135 tcd->m_disableCollisionsBetweenLinkedBodies =
false;
140 tcd->m_disableCollisionsBetweenLinkedBodies =
true;
143 tcd->m_disableCollisionsBetweenLinkedBodies =
true;
158 m_halfRange = (high - low) / 2.0f;
160 m_softness = _softness;
161 m_biasFactor = _biasFactor;
162 m_relaxationFactor = _relaxationFactor;
169 m_solveLimit =
false;
171 if (m_halfRange >= 0.0f)
174 if (deviation < -m_halfRange)
177 m_correction = - (deviation + m_halfRange);
180 else if (deviation > m_halfRange)
183 m_correction = m_halfRange - deviation;
192 return m_correction * m_sign;
197 if (m_halfRange > 0.0f)
200 if (!
btEqual(relativeAngle, m_halfRange))
202 if (relativeAngle > 0.0f)
void * m_userConstraintPtr
virtual void * getUniquePointer(void *oldPtr)=0
bool btEqual(btScalar a, btScalar eps)
#define DEFAULT_DEBUGDRAW_SIZE
int m_overrideNumSolverIterations
btJointFeedback * m_jointFeedback
btScalar m_breakingImpulseThreshold
#define btTypedConstraintDataName
void set(btScalar low, btScalar high, btScalar _softness=0.9f, btScalar _biasFactor=0.3f, btScalar _relaxationFactor=1.0f)
Sets all limit's parameters.
void fit(btScalar &angle) const
Checks given angle against limit.
#define btTypedConstraintData2
The btRigidBody is the main class for rigid body objects.
btScalar getError() const
Returns correction value multiplied by sign value.
btVector3 can be used to represent 3D points and vectors.
btScalar btNormalizeAngle(btScalar angleInRadians)
static btRigidBody & getFixedBody()
btTypedConstraint * getConstraintRef(int index)
void setMassProps(btScalar mass, const btVector3 &inertia)
rudimentary class to provide type info
virtual const char * serialize(void *dataBuffer, btSerializer *serializer) const
fills the dataBuffer and returns the struct name (and 0 on failure)
virtual void serializeName(const char *ptr)=0
btScalar getMotorFactor(btScalar pos, btScalar lowLim, btScalar uppLim, btScalar vel, btScalar timeFact)
internal method used by the constraint solver, don't use them directly
btTypedConstraint(btTypedConstraintType type, btRigidBody &rbA)
btScalar m_appliedImpulse
void test(const btScalar angle)
Checks conastaint angle against limit.
virtual const char * findNameForPointer(const void *ptr) const =0
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
int getNumConstraintRefs() const