void btAxisSweep3_unQuantize(btAxisSweep3* obj, btBroadphaseProxy* proxy, btScalar* aabbMin, btScalar* aabbMax)
{
	VECTOR3_DEF(aabbMin);
	VECTOR3_DEF(aabbMax);
	obj->unQuantize(proxy, VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax));
	VECTOR3_DEF_OUT(aabbMin);
	VECTOR3_DEF_OUT(aabbMax);
}
void btTriangleShape_getPlaneEquation(btTriangleShape* obj, int i, btScalar* planeNormal, btScalar* planeSupport)
{
	VECTOR3_DEF(planeNormal);
	VECTOR3_DEF(planeSupport);
	obj->getPlaneEquation(i, VECTOR3_USE(planeNormal), VECTOR3_USE(planeSupport));
	VECTOR3_DEF_OUT(planeNormal);
	VECTOR3_DEF_OUT(planeSupport);
}
void btPolyhedralConvexShape_getPlane(btPolyhedralConvexShape* obj, btScalar* planeNormal, btScalar* planeSupport, int i)
{
	VECTOR3_DEF(planeNormal);
	VECTOR3_DEF(planeSupport);
	obj->getPlane(VECTOR3_USE(planeNormal), VECTOR3_USE(planeSupport), i);
	VECTOR3_DEF_OUT(planeNormal);
	VECTOR3_DEF_OUT(planeSupport);
}
void btBroadphaseInterface_getBroadphaseAabb(btBroadphaseInterface* obj, btScalar* aabbMin, btScalar* aabbMax)
{
	VECTOR3_DEF(aabbMin);
	VECTOR3_DEF(aabbMax);
	obj->getBroadphaseAabb(VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax));
	VECTOR3_DEF_OUT(aabbMin);
	VECTOR3_DEF_OUT(aabbMax);
}
void btPolyhedralConvexShape_getEdge(btPolyhedralConvexShape* obj, int i, btScalar* pa, btScalar* pb)
{
	VECTOR3_DEF(pa);
	VECTOR3_DEF(pb);
	obj->getEdge(i, VECTOR3_USE(pa), VECTOR3_USE(pb));
	VECTOR3_DEF_OUT(pa);
	VECTOR3_DEF_OUT(pb);
}
void btPolyhedralConvexAabbCachingShape_getNonvirtualAabb(btPolyhedralConvexAabbCachingShape* obj, const btScalar* trans, btScalar* aabbMin, btScalar* aabbMax, btScalar margin)
{
	TRANSFORM_CONV(trans);
	VECTOR3_DEF(aabbMin);
	VECTOR3_DEF(aabbMax);
	obj->getNonvirtualAabb(TRANSFORM_USE(trans), VECTOR3_USE(aabbMin), VECTOR3_USE(aabbMax), margin);
	VECTOR3_DEF_OUT(aabbMin);
	VECTOR3_DEF_OUT(aabbMax);
}
void btTransformUtil_integrateTransform(btScalar* curTrans, btScalar* linvel, btScalar* angvel, btScalar timeStep, btScalar* predictedTransform)
{
	TRANSFORM_CONV(curTrans);
	VECTOR3_DEF(linvel);
	VECTOR3_DEF(angvel);
	TRANSFORM_DEF(predictedTransform);
	btTransformUtil::integrateTransform(TRANSFORM_USE(curTrans), VECTOR3_USE(linvel), VECTOR3_USE(angvel), timeStep, TRANSFORM_USE(predictedTransform));
	TRANSFORM_DEF_OUT(predictedTransform);
}
void btConvexPolyhedron_project(btConvexPolyhedron* obj, const btScalar* trans, const btScalar* dir, btScalar* minProj, btScalar* maxProj, btScalar* witnesPtMin, btScalar* witnesPtMax)
{
	TRANSFORM_CONV(trans);
	VECTOR3_CONV(dir);
	VECTOR3_DEF(witnesPtMin);
	VECTOR3_DEF(witnesPtMax);
	obj->project(TRANSFORM_USE(trans), VECTOR3_USE(dir), *minProj, *maxProj, VECTOR3_USE(witnesPtMin), VECTOR3_USE(witnesPtMax));
	VECTOR3_DEF_OUT(witnesPtMin);
	VECTOR3_DEF_OUT(witnesPtMax);
}
void btTransformUtil_calculateVelocity(btScalar* transform0, btScalar* transform1, btScalar timeStep, btScalar* linVel, btScalar* angVel)
{
	TRANSFORM_CONV(transform0);
	TRANSFORM_CONV(transform1);
	VECTOR3_DEF(linVel);
	VECTOR3_DEF(angVel);
	btTransformUtil::calculateVelocity(TRANSFORM_USE(transform0), TRANSFORM_USE(transform1), timeStep, VECTOR3_USE(linVel), VECTOR3_USE(angVel));
	VECTOR3_DEF_OUT(linVel);
	VECTOR3_DEF_OUT(angVel);
}
bool btSphereBoxCollisionAlgorithm_getSphereDistance(btSphereBoxCollisionAlgorithm* obj, const btCollisionObjectWrapper* boxObjWrap, btScalar* v3PointOnBox, btScalar* normal, btScalar* penetrationDepth, const btScalar* v3SphereCenter, btScalar fRadius, btScalar maxContactDistance)
{
	VECTOR3_CONV(v3PointOnBox);
	VECTOR3_DEF(normal);
	VECTOR3_DEF(v3SphereCenter);
	bool ret = obj->getSphereDistance(boxObjWrap, VECTOR3_USE(v3PointOnBox), VECTOR3_USE(normal), *penetrationDepth, VECTOR3_USE(v3SphereCenter), fRadius, maxContactDistance);
	VECTOR3_DEF_OUT(v3PointOnBox);
	VECTOR3_DEF_OUT(normal);
	return ret;
}
btScalar btSphereBoxCollisionAlgorithm_getSpherePenetration(btSphereBoxCollisionAlgorithm* obj, const btScalar* boxHalfExtent, const btScalar* sphereRelPos, btScalar* closestPoint, btScalar* normal)
{
	VECTOR3_CONV(boxHalfExtent);
	VECTOR3_CONV(sphereRelPos);
	VECTOR3_DEF(closestPoint);
	VECTOR3_DEF(normal);
	btScalar ret = obj->getSpherePenetration(VECTOR3_USE(boxHalfExtent), VECTOR3_USE(sphereRelPos), VECTOR3_USE(closestPoint), VECTOR3_USE(normal));
	VECTOR3_DEF_OUT(closestPoint);
	VECTOR3_DEF_OUT(normal);
	return ret;
}
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);
}
Beispiel #13
0
CylinderShape::CylinderShape(Vector3 halfExtents)
	: ConvexInternalShape(0)
{
	VECTOR3_DEF(halfExtents);
	UnmanagedPointer = new btCylinderShape(VECTOR3_USE(halfExtents));
	VECTOR3_DEL(halfExtents);
}
Beispiel #14
0
CylinderShapeZ::CylinderShapeZ(Vector3 halfExtents)
	: CylinderShape((btCylinderShape*)0)
{
	VECTOR3_DEF(halfExtents);
	UnmanagedPointer = new btCylinderShapeZ(VECTOR3_USE(halfExtents));
	VECTOR3_DEL(halfExtents);
}
Beispiel #15
0
MultiBody::MultiBody(int nLinks, btScalar mass, Vector3 inertia, bool fixedBase,
	bool canSleep, bool multiDof)
{
	VECTOR3_DEF(inertia);
	_native = new btMultiBody(nLinks, mass, VECTOR3_USE(inertia), fixedBase, canSleep, multiDof);
	VECTOR3_DEL(inertia);
}
StaticPlaneShape::StaticPlaneShape(Vector3 planeNormal, btScalar planeConstant)
	: ConcaveShape(0)
{
	VECTOR3_DEF(planeNormal);
	UnmanagedPointer = new btStaticPlaneShape(VECTOR3_USE(planeNormal), planeConstant);
	VECTOR3_DEL(planeNormal);
}
void btTransformUtil_calculateDiffAxisAngle(btScalar* transform0, btScalar* transform1, btScalar* axis, btScalar* angle)
{
	TRANSFORM_CONV(transform0);
	TRANSFORM_CONV(transform1);
	VECTOR3_DEF(axis);
	btTransformUtil::calculateDiffAxisAngle(TRANSFORM_USE(transform0), TRANSFORM_USE(transform1), VECTOR3_USE(axis), *angle);
	VECTOR3_DEF_OUT(axis);
}
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);
}
Vector3 TriangleMeshShape::LocalGetSupportingVertexWithoutMargin(Vector3 vec)
{
	VECTOR3_DEF(vec);
	btVector3* vecOut = ALIGNED_NEW(btVector3);
	TriangleMeshShape_LocalGetSupportingVertexWithoutMargin(Native, VECTOR3_PTR(vec), vecOut);
	Vector3 vertex = Math::BtVector3ToVector3(vecOut);	VECTOR3_DEL(vec);
	ALIGNED_FREE(vecOut);
	return vertex;
}
Beispiel #20
0
void MultiBody::AddLinkTorque(int i, Vector3 t)
{
	VECTOR3_DEF(t);
	_native->addLinkTorque(i, VECTOR3_USE(t));
	VECTOR3_DEL(t);
}
Beispiel #21
0
void MultiBody::AddLinkForce(int i, Vector3 f)
{
	VECTOR3_DEF(f);
	_native->addLinkForce(i, VECTOR3_USE(f));
	VECTOR3_DEL(f);
}
Beispiel #22
0
void MultiBody::AddBaseTorque(Vector3 t)
{
	VECTOR3_DEF(t);
	_native->addBaseTorque(VECTOR3_USE(t));
	VECTOR3_DEL(t);
}
Beispiel #23
0
void MultiBody::AddBaseForce(Vector3 f)
{
	VECTOR3_DEF(f);
	_native->addBaseForce(VECTOR3_USE(f));
	VECTOR3_DEL(f);
}
void btPolyhedralConvexShape_getVertex(btPolyhedralConvexShape* obj, int i, btScalar* vtx)
{
	VECTOR3_DEF(vtx);
	obj->getVertex(i, VECTOR3_USE(vtx));
	VECTOR3_DEF_OUT(vtx);
}
void btTriangleShape_calcNormal(btTriangleShape* obj, btScalar* normal)
{
	VECTOR3_DEF(normal);
	obj->calcNormal(VECTOR3_USE(normal));
	VECTOR3_DEF_OUT(normal);
}
void btGeneric6DofConstraint_getLinearUpperLimit(btGeneric6DofConstraint* obj, btScalar* linearUpper)
{
	VECTOR3_DEF(linearUpper);
	obj->getLinearUpperLimit(VECTOR3_USE(linearUpper));
	VECTOR3_DEF_OUT(linearUpper);
}
void btGeneric6DofConstraint_getAngularUpperLimit(btGeneric6DofConstraint* obj, btScalar* angularUpper)
{
	VECTOR3_DEF(angularUpper);
	obj->getAngularUpperLimit(VECTOR3_USE(angularUpper));
	VECTOR3_DEF_OUT(angularUpper);
}
void MultibodyLink::SetAxisTop(int dof, Vector3 axis)
{
	VECTOR3_DEF(axis);
	_native->setAxisTop(dof, VECTOR3_USE(axis));
	VECTOR3_DEL(axis);
}