Bullet Collision Detection & Physics Library
|
Go to the documentation of this file.
25 : m_anchor(other.m_anchor)
58 for (
int k = 0; k < ndof; ++k)
60 vel += (local_v[k]+local_dv[k]) * J_n[k];
65 for (
int k = 0; k < ndof; ++k)
67 vel += (local_v[k]+local_dv[k]) * J_t1[k];
71 for (
int k = 0; k < ndof; ++k)
73 vel += (local_v[k]+local_dv[k]) * J_t2[k];
110 if (multibodyLinkCol)
122 return residualSquare;
148 : m_contact(other.m_contact)
150 , m_penetration(other.m_penetration)
175 if (multibodyLinkCol)
185 for (
int k = 0; k < ndof; ++k)
187 vel += (local_v[k]+local_dv[k]) * J_n[k];
192 for (
int k = 0; k < ndof; ++k)
194 vel += (local_v[k]+local_dv[k]) * J_t1[k];
198 for (
int k = 0; k < ndof; ++k)
200 vel += (local_v[k]+local_dv[k]) * J_t2[k];
220 btVector3 impulse_tangent = impulse - impulse_normal;
256 impulse = impulse_normal + impulse_tangent;
273 if (multibodyLinkCol)
288 return residualSquare;
323 : m_node(contact.m_node)
329 : m_node(other.m_node)
361 : m_face(contact.m_face)
367 : m_face(other.m_face)
420 btVector3 dv0 = im0 * (m01 * (v1-v0) + m02 * (v2-v0));
421 btVector3 dv1 = im1 * (m01 * (v0-v1) + m12 * (v2-v1));
422 btVector3 dv2 = im2 * (m12 * (v1-v2) + m02 * (v0-v2));
451 : m_node(contact.m_node)
452 , m_face(contact.m_face)
453 , m_contact(&contact)
500 btVector3 impulse_tangent = impulse - impulse_normal;
545 impulse = impulse_normal + impulse_tangent;
548 return residualSquare;
btMultiBodyJacobianData jacobianData_t2
The btRigidBody is the main class for rigid body objects.
static btMultiBodyLinkCollider * upcast(btCollisionObject *colObj)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btAlignedObjectArray< btScalar > m_jacobians
btScalar safeNorm() const
Return the norm (length) of the vector.
btScalar dot(const btVector3 &v) const
Return the dot product.
const btScalar * getDeltaVelocityVector() const
const T & btMin(const T &a, const T &b)
const btCollisionObject * m_colObj
btMultiBodyJacobianData jacobianData_normal
btVector3 can be used to represent 3D points and vectors.
btVector3 getVelocityInLocalPoint(const btVector3 &rel_pos) const
bool hasContactResponse() const
void applyPushImpulse(const btVector3 &impulse, const btVector3 &rel_pos)
btScalar btDot(const btVector3 &v1, const btVector3 &v2)
Return the dot product between two vectors.
const btScalar * getVelocityVector() const
int getInternalType() const
reserved for Bullet internal usage
void applyDeltaVeeMultiDof2(const btScalar *delta_vee, btScalar multiplier)
btMultiBody * m_multiBody
btScalar norm() const
Return the norm (length) of the vector.
btMultiBodyJacobianData jacobianData_t1
void applyImpulse(const btVector3 &impulse, const btVector3 &rel_pos)
btVector3 normalized() const
Return a normalized version of this vector.
btAlignedObjectArray< btScalar > m_deltaVelocitiesUnitImpulse
static const btRigidBody * upcast(const btCollisionObject *colObj)
to keep collision detection and dynamics separate we don't store a rigidbody pointer but a rigidbody ...