btMultiBody* btMultiBody_new(int n_links, btScalar mass, const btScalar* inertia, bool fixedBase, bool canSleep)
{
	VECTOR3_CONV(inertia);
	return new btMultiBody(n_links, mass, VECTOR3_USE(inertia), fixedBase, canSleep);
}
btCollisionShape* btWorldImporter_createPlaneShape(btWorldImporter* obj, const btScalar* planeNormal, btScalar planeConstant)
{
	VECTOR3_CONV(planeNormal);
	return obj->createPlaneShape(VECTOR3_USE(planeNormal), planeConstant);
}
btScaledBvhTriangleMeshShape* btWorldImporter_createScaledTrangleMeshShape(btWorldImporter* obj, btBvhTriangleMeshShape* meshShape, const btScalar* localScalingbtBvhTriangleMeshShape)
{
	VECTOR3_CONV(localScalingbtBvhTriangleMeshShape);
	return obj->createScaledTrangleMeshShape(meshShape, VECTOR3_USE(localScalingbtBvhTriangleMeshShape));
}
void btGeneric6DofSpring2Constraint_setLinearUpperLimit(btGeneric6DofSpring2Constraint* obj, const btScalar* linearUpper)
{
	VECTOR3_CONV(linearUpper);
	obj->setLinearUpperLimit(VECTOR3_USE(linearUpper));
}
btCollisionShape* btWorldImporter_createBoxShape(btWorldImporter* obj, const btScalar* halfExtents)
{
	VECTOR3_CONV(halfExtents);
	return obj->createBoxShape(VECTOR3_USE(halfExtents));
}
void btGeneric6DofSpring2Constraint_getAngularUpperLimitReversed(btGeneric6DofSpring2Constraint* obj, btScalar* angularUpper)
{
	VECTOR3_CONV(angularUpper);
	obj->getAngularUpperLimitReversed(VECTOR3_USE(angularUpper));
	VECTOR3_DEF_OUT(angularUpper);
}
void btGeneric6DofSpring2Constraint_setAngularUpperLimitReversed(btGeneric6DofSpring2Constraint* obj, const btScalar* angularUpper)
{
	VECTOR3_CONV(angularUpper);
	obj->setAngularUpperLimitReversed(VECTOR3_USE(angularUpper));
}
void btMultibodyLink_setAxisTop2(btMultibodyLink* obj, int dof, const btScalar* axis)
{
	VECTOR3_CONV(axis);
	obj->setAxisTop(dof, VECTOR3_USE(axis));
}
示例#9
0
void MultiBodyLink::SetAxisTop(int dof, Vector3 axis)
{
	VECTOR3_CONV(axis);
	_native->setAxisTop(dof, VECTOR3_USE(axis));
	VECTOR3_DEL(axis);
}
/*
void btBroadphaseRayCallback_setSigns(btBroadphaseRayCallback* obj, unsigned int* value)
{
	obj->m_signs = value;
}
*/
void btBroadphaseInterface_aabbTest(btBroadphaseInterface* obj, btScalar* aabbMin, btScalar* aabbMax, btBroadphaseAabbCallback* callback)
{
	VECTOR3_CONV(aabbMin);
	VECTOR3_CONV(aabbMax);
	obj->aabbTest(VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax), *callback);
}
btBroadphaseProxy* btBroadphaseInterface_createProxy(btBroadphaseInterface* obj, btScalar* aabbMin, btScalar* aabbMax, int shapeType, void* userPtr, short collisionFilterGroup, short collisionFilterMask, btDispatcher* dispatcher, void* multiSapProxy)
{
	VECTOR3_CONV(aabbMin);
	VECTOR3_CONV(aabbMax);
	return obj->createProxy(VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax), shapeType, userPtr, collisionFilterGroup, collisionFilterMask, dispatcher, multiSapProxy);
}
void btBroadphaseInterface_setAabb(btBroadphaseInterface* obj, btBroadphaseProxy* proxy, btScalar* aabbMin, btScalar* aabbMax, btDispatcher* dispatcher)
{
	VECTOR3_CONV(aabbMin);
	VECTOR3_CONV(aabbMax);
	obj->setAabb(proxy, VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax), dispatcher);
}
void btBroadphaseInterface_rayTest3(btBroadphaseInterface* obj, btScalar* rayFrom, btScalar* rayTo, btBroadphaseRayCallback* rayCallback)
{
	VECTOR3_CONV(rayFrom);
	VECTOR3_CONV(rayTo);
	obj->rayTest(VECTOR3_USE(rayFrom), VECTOR3_USE(rayTo), *rayCallback);
}
void btMultiBody_addLinkTorque(btMultiBody* obj, int i, const btScalar* t)
{
	VECTOR3_CONV(t);
	obj->addLinkTorque(i, VECTOR3_USE(t));
}
btScalar btRotationalLimitMotor_solveAngularLimits(btRotationalLimitMotor* obj, btScalar timeStep, btScalar* axis, btScalar jacDiagABInv, btRigidBody* body0, btRigidBody* body1)
{
	VECTOR3_CONV(axis);
	return obj->solveAngularLimits(timeStep, VECTOR3_USE(axis), jacDiagABInv, body0, body1);
}
btAxisSweep3* btAxisSweep3_new2(const btScalar* worldAabbMin, const btScalar* worldAabbMax, unsigned short maxHandles)
{
	VECTOR3_CONV(worldAabbMin);
	VECTOR3_CONV(worldAabbMax);
	return new btAxisSweep3(VECTOR3_USE(worldAabbMin), VECTOR3_USE(worldAabbMax), maxHandles);
}
void btGeneric6DofConstraint_setAngularUpperLimit(btGeneric6DofConstraint* obj, const btScalar* angularUpper)
{
	VECTOR3_CONV(angularUpper);
	obj->setAngularUpperLimit(VECTOR3_USE(angularUpper));
}
btAxisSweep3* btAxisSweep3_new3(const btScalar* worldAabbMin, const btScalar* worldAabbMax, unsigned short maxHandles, btOverlappingPairCache* pairCache)
{
	VECTOR3_CONV(worldAabbMin);
	VECTOR3_CONV(worldAabbMax);
	return new btAxisSweep3(VECTOR3_USE(worldAabbMin), VECTOR3_USE(worldAabbMax), maxHandles, pairCache);
}
void btGeneric6DofSpring2Constraint_getLinearUpperLimit(btGeneric6DofSpring2Constraint* obj, btScalar* linearUpper)
{
	VECTOR3_CONV(linearUpper);
	obj->getLinearUpperLimit(VECTOR3_USE(linearUpper));
	VECTOR3_DEF_OUT(linearUpper);
}
btAxisSweep3* btAxisSweep3_new4(const btScalar* worldAabbMin, const btScalar* worldAabbMax, unsigned short maxHandles, btOverlappingPairCache* pairCache, bool disableRaycastAccelerator)
{
	VECTOR3_CONV(worldAabbMin);
	VECTOR3_CONV(worldAabbMax);
	return new btAxisSweep3(VECTOR3_USE(worldAabbMin), VECTOR3_USE(worldAabbMax), maxHandles, pairCache, disableRaycastAccelerator);
}
void btGeneric6DofSpring2Constraint_setAxis(btGeneric6DofSpring2Constraint* obj, const btScalar* axis1, const btScalar* axis2)
{
	VECTOR3_CONV(axis1);
	VECTOR3_CONV(axis2);
	obj->setAxis(VECTOR3_USE(axis1), VECTOR3_USE(axis2));
}
unsigned short btAxisSweep3_addHandle(btAxisSweep3* obj, const btScalar* aabbMin, const btScalar* aabbMax, void* pOwner, unsigned short collisionFilterGroup, unsigned short collisionFilterMask, btDispatcher* dispatcher, void* multiSapProxy)
{
	VECTOR3_CONV(aabbMin);
	VECTOR3_CONV(aabbMax);
	return obj->addHandle(VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax), pOwner, collisionFilterGroup, collisionFilterMask, dispatcher, multiSapProxy);
}
btGearConstraint* btWorldImporter_createGearConstraint(btWorldImporter* obj, btRigidBody* rbA, btRigidBody* rbB, const btScalar* axisInA, const btScalar* axisInB, btScalar ratio)
{
	VECTOR3_CONV(axisInA);
	VECTOR3_CONV(axisInB);
	return obj->createGearConstraint(*rbA, *rbB, VECTOR3_USE(axisInA), VECTOR3_USE(axisInB), ratio);
}
/*
void btAxisSweep3_processAllOverlappingPairs(btAxisSweep3* obj, btOverlapCallback* callback)
{
	obj->processAllOverlappingPairs(callback);
}
*/
void btAxisSweep3_quantize(btAxisSweep3* obj, unsigned short* out, const btScalar* point, int isMax)
{
	VECTOR3_CONV(point);
	obj->quantize(out, VECTOR3_USE(point), isMax);
}
btMultiSphereShape* btWorldImporter_createMultiSphereShape(btWorldImporter* obj, const btScalar* positions, const btScalar* radi, int numSpheres)
{
	VECTOR3_CONV(positions);
	return obj->createMultiSphereShape(&VECTOR3_USE(positions), radi, numSpheres);
}
void btAxisSweep3_updateHandle(btAxisSweep3* obj, unsigned short handle, const btScalar* aabbMin, const btScalar* aabbMax, btDispatcher* dispatcher)
{
	VECTOR3_CONV(aabbMin);
	VECTOR3_CONV(aabbMax);
	obj->updateHandle(handle, VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax), dispatcher);
}
btPoint2PointConstraint* btWorldImporter_createPoint2PointConstraint2(btWorldImporter* obj, btRigidBody* rbA, btRigidBody* rbB, const btScalar* pivotInA, const btScalar* pivotInB)
{
	VECTOR3_CONV(pivotInA);
	VECTOR3_CONV(pivotInB);
	return obj->createPoint2PointConstraint(*rbA, *rbB, VECTOR3_USE(pivotInA), VECTOR3_USE(pivotInB));
}
bt32BitAxisSweep3* bt32BitAxisSweep3_new(const btScalar* worldAabbMin, const btScalar* worldAabbMax)
{
	VECTOR3_CONV(worldAabbMin);
	VECTOR3_CONV(worldAabbMax);
	return new bt32BitAxisSweep3(VECTOR3_USE(worldAabbMin), VECTOR3_USE(worldAabbMax));
}
void btWorldImporter_setDynamicsWorldInfo(btWorldImporter* obj, const btScalar* gravity, const btContactSolverInfo* solverInfo)
{
	VECTOR3_CONV(gravity);
	obj->setDynamicsWorldInfo(VECTOR3_USE(gravity), *solverInfo);
}
void btMultiBody_worldPosToLocal(btMultiBody* obj, int i, const btScalar* vec, btScalar* value)
{
	VECTOR3_CONV(vec);
	VECTOR3_OUT_VAL(obj->worldPosToLocal(i, VECTOR3_USE(vec)), value);
}