For example;
getRigidBodyA().getCenterOfMassTransform().getBasis() * m_rbAFrame.getBasis().getColumn(2);
If I were to look at this linearly, I would 'think' it's setting the origin of rigidbodyA's center of mass transform to it's basis times the 2nd column of the frame of rigidbodyA.
Vector3 RigidBodyA.CenterOfMass.Origin = RigidBodyA.CenterOfMass.Basis * the 2nd row of basis of the frame rigidbodyA.
Is this correct? It doesn't have an assignment operator, so I have to assume it's doing an operation on a pointer.
(it's in src/BulletDynamics/ConstraintSolver/HingeConstraint.cpp line 225)
Suspiciously, it's also part of an assignment 3 lines down.
Code: Select all
getRigidBodyA().getCenterOfMassTransform().getBasis() * m_rbAFrame.getBasis().getColumn(2);
btVector3 jointAxis0 = getRigidBodyA().getCenterOfMassTransform().getBasis() * jointAxis0local;
btVector3 jointAxis1 = getRigidBodyA().getCenterOfMassTransform().getBasis() * jointAxis1local;
btVector3 hingeAxisWorld = getRigidBodyA().getCenterOfMassTransform().getBasis() * m_rbAFrame.getBasis().getColumn(2);