20 #define DEFAULT_DEBUGDRAW_SIZE btScalar(0.05f) 24 m_userConstraintType(-1),
25 m_userConstraintPtr((void*)-1),
28 m_needsFeedback(false),
29 m_overrideNumSolverIterations(-1),
31 m_rbB(getFixedBody()),
60 else if (lowLim == uppLim)
68 if ((pos >= lowLim) && (pos < (lowLim - delta_max)))
70 lim_fact = (lowLim - pos) / delta_max;
72 else if (pos < lowLim)
83 if ((pos <= uppLim) && (pos > (uppLim - delta_max)))
85 lim_fact = (uppLim - pos) / delta_max;
87 else if (pos > uppLim)
129 tcd->m_disableCollisionsBetweenLinkedBodies =
false;
134 tcd->m_disableCollisionsBetweenLinkedBodies =
true;
137 tcd->m_disableCollisionsBetweenLinkedBodies =
true;
151 m_halfRange = (high - low) / 2.0f;
153 m_softness = _softness;
154 m_biasFactor = _biasFactor;
155 m_relaxationFactor = _relaxationFactor;
162 m_solveLimit =
false;
164 if (m_halfRange >= 0.0f)
167 if (deviation < -m_halfRange)
170 m_correction = -(deviation + m_halfRange);
173 else if (deviation > m_halfRange)
176 m_correction = m_halfRange - deviation;
184 return m_correction * m_sign;
189 if (m_halfRange > 0.0f)
192 if (!
btEqual(relativeAngle, m_halfRange))
194 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