void btTransformUtil_calculateDiffAxisAngleQuaternion(btScalar* orn0, btScalar* orn1a, btScalar* axis, btScalar* angle) { QUATERNION_CONV(orn0); QUATERNION_CONV(orn1a); VECTOR3_DEF(axis); btTransformUtil::calculateDiffAxisAngleQuaternion(QUATERNION_USE(orn0), QUATERNION_USE(orn1a), VECTOR3_USE(axis), *angle); VECTOR3_DEF_OUT(axis); }
void btMultiBody_setupSpherical2(btMultiBody* obj, int linkIndex, btScalar mass, const btScalar* inertia, int parent, const btScalar* rotParentToThis, const btScalar* parentComToThisPivotOffset, const btScalar* thisPivotToThisComOffset, bool disableParentCollision) { VECTOR3_CONV(inertia); QUATERNION_CONV(rotParentToThis); VECTOR3_CONV(parentComToThisPivotOffset); VECTOR3_CONV(thisPivotToThisComOffset); obj->setupSpherical(linkIndex, mass, VECTOR3_USE(inertia), parent, QUATERNION_USE(rotParentToThis), VECTOR3_USE(parentComToThisPivotOffset), VECTOR3_USE(thisPivotToThisComOffset), disableParentCollision); }
void btMultiBody_setupPlanar2(btMultiBody* obj, int i, btScalar mass, const btScalar* inertia, int parent, const btScalar* rotParentToThis, const btScalar* rotationAxis, const btScalar* parentComToThisComOffset, bool disableParentCollision) { VECTOR3_CONV(inertia); QUATERNION_CONV(rotParentToThis); VECTOR3_CONV(rotationAxis); VECTOR3_CONV(parentComToThisComOffset); obj->setupPlanar(i, mass, VECTOR3_USE(inertia), parent, QUATERNION_USE(rotParentToThis), VECTOR3_USE(rotationAxis), VECTOR3_USE(parentComToThisComOffset), disableParentCollision); }
void btMultiBody_setupFixed(btMultiBody* obj, int linkIndex, btScalar mass, const btScalar* inertia, int parent, const btScalar* rotParentToThis, const btScalar* parentComToThisPivotOffset, const btScalar* thisPivotToThisComOffset) { VECTOR3_CONV(inertia); QUATERNION_CONV(rotParentToThis); VECTOR3_CONV(parentComToThisPivotOffset); VECTOR3_CONV(thisPivotToThisComOffset); obj->setupFixed(linkIndex, mass, VECTOR3_USE(inertia), parent, QUATERNION_USE(rotParentToThis), VECTOR3_USE(parentComToThisPivotOffset), VECTOR3_USE(thisPivotToThisComOffset)); }
void btTransformUtil_calculateVelocityQuaternion(btScalar* pos0, btScalar* pos1, btScalar* orn0, btScalar* orn1, btScalar timeStep, btScalar* linVel, btScalar* angVel) { VECTOR3_CONV(pos0); VECTOR3_CONV(pos1); QUATERNION_CONV(orn0); QUATERNION_CONV(orn1); VECTOR3_DEF(linVel); VECTOR3_DEF(angVel); btTransformUtil::calculateVelocityQuaternion(VECTOR3_USE(pos0), VECTOR3_USE(pos1), QUATERNION_USE(orn0), QUATERNION_USE(orn1), timeStep, VECTOR3_USE(linVel), VECTOR3_USE(angVel)); VECTOR3_DEF_OUT(linVel); VECTOR3_DEF_OUT(angVel); }
#undef Native #define Native static_cast<btConvexPlaneCollisionAlgorithm*>(_native) ConvexPlaneCollisionAlgorithm::ConvexPlaneCollisionAlgorithm(btConvexPlaneCollisionAlgorithm* native) : CollisionAlgorithm(native) { } ConvexPlaneCollisionAlgorithm::ConvexPlaneCollisionAlgorithm(PersistentManifold mf, CollisionAlgorithmConstructionInfo^ ci, CollisionObjectWrapper^ body0Wrap, CollisionObjectWrapper^ body1Wrap, bool isSwapped, int numPerturbationIterations, int minimumPointsPerturbationThreshold) : CollisionAlgorithm(new btConvexPlaneCollisionAlgorithm(mf._native, *ci->_native, body0Wrap->_native, body1Wrap->_native, isSwapped, numPerturbationIterations, minimumPointsPerturbationThreshold)) { } void ConvexPlaneCollisionAlgorithm::CollideSingleContact(Quaternion perturbeRot, CollisionObjectWrapper^ body0Wrap, CollisionObjectWrapper^ body1Wrap, DispatcherInfo^ dispatchInfo, ManifoldResult^ resultOut) { QUATERNION_CONV(perturbeRot); Native->collideSingleContact(QUATERNION_USE(perturbeRot), body0Wrap->_native, body1Wrap->_native, *dispatchInfo->_native, (btManifoldResult*)resultOut->_native); QUATERNION_DEL(perturbeRot); } #endif #endif
void btConeTwistConstraint_setMotorTargetInConstraintSpace(btConeTwistConstraint* obj, const btScalar* q) { QUATERNION_CONV(q); obj->setMotorTargetInConstraintSpace(QUATERNION_USE(q)); }
void btMultiBody_setWorldToBaseRot(btMultiBody* obj, const btScalar* rot) { QUATERNION_CONV(rot); obj->setWorldToBaseRot(QUATERNION_USE(rot)); }