1509 lines
49 KiB
C++
1509 lines
49 KiB
C++
#define BULLET_NATIVE
|
|
#include <stdio.h>
|
|
#include <vector>
|
|
|
|
#ifdef BULLET_NATIVE
|
|
#include "LayaBulletExport.h"
|
|
namespace laya
|
|
{
|
|
#else
|
|
typedef int pointer_t;
|
|
#include "../bullet/src/btBulletDynamicsCommon.h"
|
|
#include "../bullet/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h"
|
|
#include "../bullet/src/BulletCollision/Gimpact/btGImpactShape.h"
|
|
#include "../bullet/src/BulletCollision/CollisionDispatch/btGhostObject.h"
|
|
#include "../bullet/src/BulletDynamics/Character/btKinematicCharacterController.h"
|
|
#define WASM_EXP __attribute__((visibility("default")))
|
|
#define __BTWASM_SYSCALL_NAME(name) \
|
|
__attribute__((__import_module__("LayaAirInteractive"), __import_name__(#name)))
|
|
|
|
extern "C"
|
|
{
|
|
int __cxa_begin_catch(int a) { return 0; }
|
|
void layaMotionStateGetWorldTransform(pointer_t rigidBodyID, pointer_t worldTrans) __BTWASM_SYSCALL_NAME(getWorldTransform);
|
|
void layaMotionStateSetWorldTransform(pointer_t rigidBodyID, const pointer_t worldTrans) __BTWASM_SYSCALL_NAME(setWorldTransform);
|
|
}
|
|
|
|
class LayaMotionState : public btMotionState
|
|
{
|
|
public:
|
|
pointer_t rigidBodyID;
|
|
virtual void getWorldTransform(btTransform ¢erOfMassWorldTrans)
|
|
{
|
|
layaMotionStateGetWorldTransform(rigidBodyID, (pointer_t)¢erOfMassWorldTrans);
|
|
}
|
|
virtual void setWorldTransform(const btTransform ¢erOfMassWorldTrans)
|
|
{
|
|
layaMotionStateSetWorldTransform(rigidBodyID, (pointer_t)¢erOfMassWorldTrans);
|
|
}
|
|
};
|
|
|
|
extern "C"
|
|
{
|
|
#endif
|
|
btVector3 tempbtVector3;
|
|
btQuaternion tempbtQuaternion;
|
|
void WASM_EXP btGImpactCollisionAlgorithm_RegisterAlgorithm(pointer_t dispatcher)
|
|
{
|
|
btGImpactCollisionAlgorithm::registerAlgorithm((btCollisionDispatcher *)dispatcher);
|
|
}
|
|
|
|
//btVector3
|
|
pointer_t WASM_EXP btVector3_create(btScalar x, btScalar y, btScalar z)
|
|
{
|
|
return (pointer_t) new btVector3(x, y, z);
|
|
}
|
|
|
|
void WASM_EXP btVector3_setValue(pointer_t ptr, btScalar x, btScalar y, btScalar z)
|
|
{
|
|
btVector3 *vec3 = (btVector3 *)ptr;
|
|
vec3->setValue(x, y, z);
|
|
}
|
|
|
|
btScalar WASM_EXP btVector3_x(pointer_t ptr)
|
|
{
|
|
btVector3 *vec3 = (btVector3 *)ptr;
|
|
return vec3->x();
|
|
}
|
|
|
|
btScalar WASM_EXP btVector3_y(pointer_t ptr)
|
|
{
|
|
btVector3 *vec3 = (btVector3 *)ptr;
|
|
return vec3->y();
|
|
}
|
|
|
|
btScalar WASM_EXP btVector3_z(pointer_t ptr)
|
|
{
|
|
btVector3 *vec3 = (btVector3 *)ptr;
|
|
return vec3->z();
|
|
}
|
|
|
|
// //btVector4
|
|
// int WASM_EXP btVector4_create(float x, float y, float z, float w)
|
|
// {
|
|
// return (int)new btVector4(x, y, z, w);
|
|
// }
|
|
|
|
// void WASM_EXP btVector4_setValue(int ptr, float x, float y, float z, float w)
|
|
// {
|
|
// btVector4 *vec4 = (btVector4 *)ptr;
|
|
// vec4->setValue(x, y, z, w);
|
|
// }
|
|
|
|
//btQuaternion
|
|
pointer_t WASM_EXP btQuaternion_create(btScalar x, btScalar y, btScalar z, btScalar w)
|
|
{
|
|
return (pointer_t) new btQuaternion(x, y, z, w);
|
|
}
|
|
|
|
void WASM_EXP btQuaternion_setValue(pointer_t ptr, btScalar x, btScalar y, btScalar z, btScalar w)
|
|
{
|
|
btQuaternion *qua = (btQuaternion *)ptr;
|
|
qua->setValue(x, y, z, w);
|
|
}
|
|
|
|
btScalar WASM_EXP btQuaternion_x(pointer_t ptr)
|
|
{
|
|
btQuaternion *qua = (btQuaternion *)ptr;
|
|
return qua->x();
|
|
}
|
|
|
|
btScalar WASM_EXP btQuaternion_y(pointer_t ptr)
|
|
{
|
|
btQuaternion *qua = (btQuaternion *)ptr;
|
|
return qua->y();
|
|
}
|
|
|
|
btScalar WASM_EXP btQuaternion_z(pointer_t ptr)
|
|
{
|
|
btQuaternion *qua = (btQuaternion *)ptr;
|
|
return qua->z();
|
|
}
|
|
|
|
btScalar WASM_EXP btQuaternion_w(pointer_t ptr)
|
|
{
|
|
btQuaternion *qua = (btQuaternion *)ptr;
|
|
return qua->w();
|
|
}
|
|
|
|
//btTransform
|
|
pointer_t WASM_EXP btTransform_create()
|
|
{
|
|
return (pointer_t) new btTransform();
|
|
}
|
|
|
|
void WASM_EXP btTransform_setOrigin(pointer_t ptr, pointer_t origin)
|
|
{
|
|
btTransform *trans = (btTransform *)ptr;
|
|
trans->setOrigin(*(btVector3 *)origin);
|
|
}
|
|
|
|
void WASM_EXP btTransform_setRotation(pointer_t ptr, pointer_t q)
|
|
{
|
|
btTransform *trans = (btTransform *)ptr;
|
|
trans->setRotation(*(btQuaternion *)q);
|
|
}
|
|
|
|
pointer_t WASM_EXP btTransform_getOrigin(pointer_t ptr)
|
|
{
|
|
btTransform *trans = (btTransform *)ptr;
|
|
return (pointer_t)&trans->getOrigin();
|
|
}
|
|
|
|
pointer_t WASM_EXP btTransform_getRotation(pointer_t ptr)
|
|
{
|
|
btTransform *trans = (btTransform *)ptr;
|
|
tempbtQuaternion = trans->getRotation();
|
|
return (pointer_t)&tempbtQuaternion;
|
|
}
|
|
|
|
void WASM_EXP btTransform_setIdentity(pointer_t ptr)
|
|
{
|
|
btTransform *trans = (btTransform *)ptr;
|
|
trans->setIdentity();
|
|
}
|
|
|
|
|
|
void WASM_EXP btTransform_equal(pointer_t ptr,pointer_t other)
|
|
{
|
|
btTransform *trans = (btTransform *)ptr;
|
|
btTransform *otherTrans = (btTransform *)other;
|
|
trans=otherTrans;
|
|
}
|
|
|
|
|
|
|
|
//btMotionState
|
|
void WASM_EXP btMotionState_destroy(pointer_t ptr)
|
|
{
|
|
btMotionState *state = (btMotionState *)ptr;
|
|
delete state;
|
|
}
|
|
|
|
//LayaMotionState
|
|
pointer_t WASM_EXP layaMotionState_create()
|
|
{
|
|
return (pointer_t) new LayaMotionState();
|
|
}
|
|
|
|
void WASM_EXP layaMotionState_set_rigidBodyID(pointer_t ptr, int rigidBodyID)
|
|
{
|
|
LayaMotionState *state = (LayaMotionState *)ptr;
|
|
state->rigidBodyID = rigidBodyID;
|
|
}
|
|
|
|
//btCollisionObject
|
|
pointer_t WASM_EXP btCollisionObject_create()
|
|
{
|
|
return (pointer_t) new btCollisionObject();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setContactProcessingThreshold(pointer_t ptr, btScalar contactProcessingThreshold)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setContactProcessingThreshold(contactProcessingThreshold);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setActivationState(pointer_t ptr, int newState)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setActivationState(newState);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_forceActivationState(pointer_t ptr, int newState)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->forceActivationState(newState);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_activate(pointer_t ptr, bool forceActivation)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->activate(forceActivation);
|
|
}
|
|
|
|
bool WASM_EXP btCollisionObject_isActive(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->isActive();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setRestitution(pointer_t ptr, btScalar rest)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->setRestitution(rest);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setFriction(pointer_t ptr, btScalar frict)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->setFriction(frict);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setRollingFriction(pointer_t ptr, btScalar frict)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->setRollingFriction(frict);
|
|
}
|
|
|
|
int WASM_EXP btCollisionObject_getCollisionFlags(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->getCollisionFlags();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setCollisionFlags(pointer_t ptr, int flags)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setCollisionFlags(flags);
|
|
}
|
|
|
|
pointer_t WASM_EXP btCollisionObject_getWorldTransform(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return (pointer_t)&colObj->getWorldTransform();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setWorldTransform(pointer_t ptr,pointer_t worldTrans)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setWorldTransform(*(btTransform *)worldTrans);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setInterpolationWorldTransform(pointer_t ptr,pointer_t worldTrans)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setInterpolationWorldTransform(*(btTransform *)worldTrans);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setCollisionShape(pointer_t ptr, pointer_t collisionShape)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setCollisionShape((btCollisionShape *)collisionShape);
|
|
}
|
|
|
|
btScalar WASM_EXP btCollisionObject_getCcdMotionThreshold(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->getCcdMotionThreshold();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setCcdMotionThreshold(pointer_t ptr, btScalar ccdMotionThreshold)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setCcdMotionThreshold(ccdMotionThreshold);
|
|
}
|
|
|
|
btScalar WASM_EXP btCollisionObject_getCcdSweptSphereRadius(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->getCcdSweptSphereRadius();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setCcdSweptSphereRadius(pointer_t ptr, btScalar radius)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setCcdSweptSphereRadius(radius);
|
|
}
|
|
|
|
int WASM_EXP btCollisionObject_getUserIndex(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->getUserIndex();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setUserIndex(pointer_t ptr, int index)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setUserIndex(index);
|
|
}
|
|
|
|
int WASM_EXP btCollisionObject_getActivationState(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
return colObj->getActivationState();
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setInterpolationAngularVelocity(pointer_t ptr, pointer_t angvel)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setInterpolationAngularVelocity(*(btVector3 *)angvel);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_setInterpolationLinearVelocity(pointer_t ptr, pointer_t linvel)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
colObj->setInterpolationLinearVelocity(*(btVector3 *)linvel);
|
|
}
|
|
|
|
void WASM_EXP btCollisionObject_destroy(pointer_t ptr)
|
|
{
|
|
btCollisionObject *colObj = (btCollisionObject *)ptr;
|
|
delete colObj;
|
|
}
|
|
void WASM_EXP RayResultCallback_set_m_flags(pointer_t ptr, int flags)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
callBack->m_flags = flags;
|
|
}
|
|
bool WASM_EXP RayResultCallback_hasHit(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
return callBack->hasHit();
|
|
}
|
|
|
|
void WASM_EXP RayResultCallback_set_m_collisionFilterGroup(pointer_t ptr, int group)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
callBack->m_collisionFilterGroup = group;
|
|
}
|
|
|
|
void WASM_EXP RayResultCallback_set_m_collisionFilterMask(pointer_t ptr, int mask)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
callBack->m_collisionFilterMask = mask;
|
|
}
|
|
|
|
btScalar WASM_EXP RayResultCallback_get_m_closestHitFraction(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
return callBack->m_closestHitFraction;
|
|
}
|
|
|
|
void WASM_EXP RayResultCallback_set_m_closestHitFraction(pointer_t ptr, btScalar fraction)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
callBack->m_closestHitFraction = fraction;
|
|
}
|
|
|
|
pointer_t WASM_EXP RayResultCallback_get_m_collisionObject(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
return (pointer_t)callBack->m_collisionObject;
|
|
}
|
|
|
|
void WASM_EXP RayResultCallback_set_m_collisionObject(pointer_t ptr, pointer_t collisionObject)
|
|
{
|
|
btCollisionWorld::RayResultCallback *callBack = (btCollisionWorld::RayResultCallback *)ptr;
|
|
callBack->m_collisionObject = (btCollisionObject *)collisionObject;
|
|
}
|
|
|
|
//ClosestRayResultCallbackrayToWorld
|
|
pointer_t WASM_EXP ClosestRayResultCallback_create(pointer_t rayFromWorld, pointer_t rayToWorld)
|
|
{
|
|
return (pointer_t) new btCollisionWorld::ClosestRayResultCallback(*(btVector3 *)rayFromWorld, *(btVector3 *)rayToWorld);
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestRayResultCallback_get_m_rayFromWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestRayResultCallback *result = (btCollisionWorld::ClosestRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_rayFromWorld;
|
|
}
|
|
|
|
void WASM_EXP ClosestRayResultCallback_set_m_rayFromWorld(pointer_t ptr, pointer_t rayFromWorld)
|
|
{
|
|
btCollisionWorld::ClosestRayResultCallback *result = (btCollisionWorld::ClosestRayResultCallback *)ptr;
|
|
result->m_rayFromWorld = *(btVector3 *)rayFromWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestRayResultCallback_get_m_rayToWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestRayResultCallback *result = (btCollisionWorld::ClosestRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_rayToWorld;
|
|
}
|
|
|
|
void WASM_EXP ClosestRayResultCallback_set_m_rayToWorld(pointer_t ptr, pointer_t rayToWorld)
|
|
{
|
|
btCollisionWorld::ClosestRayResultCallback *result = (btCollisionWorld::ClosestRayResultCallback *)ptr;
|
|
result->m_rayToWorld = *(btVector3 *)rayToWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestRayResultCallback_get_m_hitNormalWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestRayResultCallback *result = (btCollisionWorld::ClosestRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitNormalWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestRayResultCallback_get_m_hitPointWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestRayResultCallback *result = (btCollisionWorld::ClosestRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitPointWorld;
|
|
}
|
|
|
|
//tBtCollisionObjectArray
|
|
int WASM_EXP tBtCollisionObjectArray_size(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::tBtCollisionObjectArray *colArray = (btCollisionWorld::tBtCollisionObjectArray *)ptr;
|
|
return colArray->size();
|
|
}
|
|
|
|
pointer_t WASM_EXP tBtCollisionObjectArray_at(pointer_t ptr, int n)
|
|
{
|
|
btCollisionWorld::tBtCollisionObjectArray *colArray = (btCollisionWorld::tBtCollisionObjectArray *)ptr;
|
|
return (pointer_t)colArray->at(n);
|
|
}
|
|
|
|
void WASM_EXP tBtCollisionObjectArray_clear(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::tBtCollisionObjectArray *colArray = (btCollisionWorld::tBtCollisionObjectArray *)ptr;
|
|
colArray->clear();
|
|
}
|
|
|
|
//tVector3Array
|
|
pointer_t WASM_EXP tVector3Array_at(pointer_t ptr, int n)
|
|
{
|
|
btCollisionWorld::tVector3Array *vec3Array = (btCollisionWorld::tVector3Array *)ptr;
|
|
return (pointer_t)&vec3Array->at(n);
|
|
}
|
|
|
|
void WASM_EXP tVector3Array_clear(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::tVector3Array *vec3Array = (btCollisionWorld::tVector3Array *)ptr;
|
|
vec3Array->clear();
|
|
}
|
|
|
|
//tScalarArray
|
|
btScalar WASM_EXP tScalarArray_at(pointer_t ptr, int n)
|
|
{
|
|
btCollisionWorld::tScalarArray *scalarArray = (btCollisionWorld::tScalarArray *)ptr;
|
|
return scalarArray->at(n);
|
|
}
|
|
|
|
void WASM_EXP tScalarArray_clear(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::tScalarArray *scalarArray = (btCollisionWorld::tScalarArray *)ptr;
|
|
scalarArray->clear();
|
|
}
|
|
|
|
//AllHitsRayResultCallback
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_create(pointer_t rayFromWorld, pointer_t rayToWorld)
|
|
{
|
|
return (pointer_t) new btCollisionWorld::AllHitsRayResultCallback(*(btVector3 *)rayFromWorld, *(btVector3 *)rayToWorld);
|
|
}
|
|
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_get_m_rayFromWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_rayFromWorld;
|
|
}
|
|
|
|
void WASM_EXP AllHitsRayResultCallback_set_m_rayFromWorld(pointer_t ptr, pointer_t rayFromWorld)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
result->m_rayFromWorld = *(btVector3 *)rayFromWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_get_m_rayToWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_rayToWorld;
|
|
}
|
|
|
|
void WASM_EXP AllHitsRayResultCallback_set_m_rayToWorld(pointer_t ptr, pointer_t rayToWorld)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
result->m_rayToWorld = *(btVector3 *)rayToWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_get_m_hitPointWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitPointWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_get_m_hitNormalWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitNormalWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_get_m_collisionObjects(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_collisionObjects;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllHitsRayResultCallback_get_m_hitFractions(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllHitsRayResultCallback *result = (btCollisionWorld::AllHitsRayResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitFractions;
|
|
}
|
|
|
|
//btManifoldPoint
|
|
pointer_t WASM_EXP btManifoldPoint_get_m_positionWorldOnA(pointer_t ptr)
|
|
{
|
|
btManifoldPoint *point = (btManifoldPoint *)ptr;
|
|
return (pointer_t)&point->m_positionWorldOnA;
|
|
}
|
|
|
|
pointer_t WASM_EXP btManifoldPoint_get_m_positionWorldOnB(pointer_t ptr)
|
|
{
|
|
btManifoldPoint *point = (btManifoldPoint *)ptr;
|
|
return (pointer_t)&point->m_positionWorldOnB;
|
|
}
|
|
|
|
pointer_t WASM_EXP btManifoldPoint_get_m_normalWorldOnB(pointer_t ptr)
|
|
{
|
|
btManifoldPoint *point = (btManifoldPoint *)ptr;
|
|
return (pointer_t)&point->m_normalWorldOnB;
|
|
}
|
|
|
|
btScalar WASM_EXP btManifoldPoint_getDistance(pointer_t ptr)
|
|
{
|
|
btManifoldPoint *point = (btManifoldPoint *)ptr;
|
|
return point->getDistance();
|
|
}
|
|
|
|
//ConvexResultCallback
|
|
bool WASM_EXP ConvexResultCallback_hasHit(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ConvexResultCallback *callBack = (btCollisionWorld::ConvexResultCallback *)ptr;
|
|
return callBack->hasHit();
|
|
}
|
|
|
|
void WASM_EXP ConvexResultCallback_set_m_collisionFilterGroup(pointer_t ptr, int group)
|
|
{
|
|
btCollisionWorld::ConvexResultCallback *callBack = (btCollisionWorld::ConvexResultCallback *)ptr;
|
|
callBack->m_collisionFilterGroup = group;
|
|
}
|
|
|
|
void WASM_EXP ConvexResultCallback_set_m_collisionFilterMask(pointer_t ptr, int mask)
|
|
{
|
|
btCollisionWorld::ConvexResultCallback *callBack = (btCollisionWorld::ConvexResultCallback *)ptr;
|
|
callBack->m_collisionFilterMask = mask;
|
|
}
|
|
|
|
btScalar WASM_EXP ConvexResultCallback_get_m_closestHitFraction(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ConvexResultCallback *callBack = (btCollisionWorld::ConvexResultCallback *)ptr;
|
|
return callBack->m_closestHitFraction;
|
|
}
|
|
|
|
void WASM_EXP ConvexResultCallback_set_m_closestHitFraction(pointer_t ptr, btScalar fraction)
|
|
{
|
|
btCollisionWorld::ConvexResultCallback *callBack = (btCollisionWorld::ConvexResultCallback *)ptr;
|
|
callBack->m_closestHitFraction = fraction;
|
|
}
|
|
|
|
//ClosestConvexResultCallback
|
|
pointer_t WASM_EXP ClosestConvexResultCallback_create(pointer_t convexFromWorld, pointer_t convexToWorld)
|
|
{
|
|
return (pointer_t) new btCollisionWorld::ClosestConvexResultCallback(*(btVector3 *)convexFromWorld, *(btVector3 *)convexToWorld);
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestConvexResultCallback_get_m_hitNormalWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestConvexResultCallback *result = (btCollisionWorld::ClosestConvexResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitNormalWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestConvexResultCallback_get_m_hitPointWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestConvexResultCallback *result = (btCollisionWorld::ClosestConvexResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitPointWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP ClosestConvexResultCallback_get_m_hitCollisionObject(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::ClosestConvexResultCallback *callBack = (btCollisionWorld::ClosestConvexResultCallback *)ptr;
|
|
return (pointer_t)callBack->m_hitCollisionObject;
|
|
}
|
|
|
|
void WASM_EXP ClosestConvexResultCallback_set_m_hitCollisionObject(pointer_t ptr, pointer_t hitCollisionObject)
|
|
{
|
|
btCollisionWorld::ClosestConvexResultCallback *callBack = (btCollisionWorld::ClosestConvexResultCallback *)ptr;
|
|
callBack->m_hitCollisionObject = (btCollisionObject *)hitCollisionObject;
|
|
}
|
|
|
|
//AllConvexResultCallback
|
|
pointer_t WASM_EXP AllConvexResultCallback_create(pointer_t convexFromWorld, pointer_t convexToWorld)
|
|
{
|
|
return (pointer_t) new btCollisionWorld::AllConvexResultCallback(*(btVector3 *)convexFromWorld, *(btVector3 *)convexToWorld);
|
|
}
|
|
|
|
pointer_t WASM_EXP AllConvexResultCallback_get_m_hitNormalWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllConvexResultCallback *result = (btCollisionWorld::AllConvexResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitNormalWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllConvexResultCallback_get_m_hitPointWorld(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllConvexResultCallback *result = (btCollisionWorld::AllConvexResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitPointWorld;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllConvexResultCallback_get_m_hitFractions(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllConvexResultCallback *result = (btCollisionWorld::AllConvexResultCallback *)ptr;
|
|
return (pointer_t)&result->m_hitFractions;
|
|
}
|
|
|
|
pointer_t WASM_EXP AllConvexResultCallback_get_m_collisionObjects(pointer_t ptr)
|
|
{
|
|
btCollisionWorld::AllConvexResultCallback *result = (btCollisionWorld::AllConvexResultCallback *)ptr;
|
|
return (pointer_t)&result->m_collisionObjects;
|
|
}
|
|
|
|
//btCollisionShape
|
|
|
|
int WASM_EXP btCollisionShape_getShapeType(pointer_t ptr)
|
|
{
|
|
btCollisionShape *shape = (btCollisionShape *)ptr;
|
|
return shape->getShapeType();
|
|
}
|
|
|
|
pointer_t WASM_EXP btCollisionShape_getLocalScaling(pointer_t ptr)
|
|
{
|
|
btCollisionShape *shape = (btCollisionShape *)ptr;
|
|
return (pointer_t)&shape->getLocalScaling();
|
|
}
|
|
|
|
void WASM_EXP btCollisionShape_setLocalScaling(pointer_t ptr, pointer_t scaling)
|
|
{
|
|
btCollisionShape *shape = (btCollisionShape *)ptr;
|
|
shape->setLocalScaling(*(btVector3 *)scaling);
|
|
}
|
|
|
|
void WASM_EXP btCollisionShape_calculateLocalInertia(pointer_t ptr, btScalar mass, pointer_t inertia)
|
|
{
|
|
btCollisionShape *shape = (btCollisionShape *)ptr;
|
|
shape->calculateLocalInertia(mass, *(btVector3 *)inertia);
|
|
}
|
|
|
|
void WASM_EXP btCollisionShape_destroy(pointer_t ptr)
|
|
{
|
|
btCollisionShape *shape = (btCollisionShape *)ptr;
|
|
delete shape;
|
|
}
|
|
|
|
//btBoxShape
|
|
pointer_t WASM_EXP btBoxShape_create(pointer_t boxHalfExtents)
|
|
{
|
|
return (pointer_t) new btBoxShape(*(btVector3 *)boxHalfExtents);
|
|
}
|
|
|
|
void WASM_EXP btBoxShape_getAabb(pointer_t ptr, pointer_t t, pointer_t aabbMin, pointer_t aabbMax)
|
|
{
|
|
btBoxShape *shape = (btBoxShape *)ptr;
|
|
shape->getAabb(*(btTransform *)t, *(btVector3 *)aabbMin, *(btVector3 *)aabbMax);
|
|
}
|
|
|
|
pointer_t WASM_EXP btBoxShape_getHalfExtentsWithMargin(pointer_t ptr, pointer_t t, pointer_t aabbMin, pointer_t aabbMax)
|
|
{
|
|
btBoxShape *shape = (btBoxShape *)ptr;
|
|
tempbtVector3 = shape->getHalfExtentsWithMargin();
|
|
return (pointer_t)&tempbtVector3;
|
|
}
|
|
|
|
//btCapsuleShape
|
|
pointer_t WASM_EXP btCapsuleShape_create(btScalar radius, btScalar height)
|
|
{
|
|
return (pointer_t) new btCapsuleShape(radius, height);
|
|
}
|
|
|
|
//btCapsuleShapeX
|
|
pointer_t WASM_EXP btCapsuleShapeX_create(btScalar radius, btScalar height)
|
|
{
|
|
return (pointer_t) new btCapsuleShapeX(radius, height);
|
|
}
|
|
|
|
//btCapsuleShapeZ
|
|
pointer_t WASM_EXP btCapsuleShapeZ_create(btScalar radius, btScalar height)
|
|
{
|
|
return (pointer_t) new btCapsuleShapeZ(radius, height);
|
|
}
|
|
|
|
//btCylinderShape
|
|
pointer_t WASM_EXP btCylinderShape_create(pointer_t halfExtents)
|
|
{
|
|
return (pointer_t) new btCylinderShape(*(btVector3 *)halfExtents);
|
|
}
|
|
|
|
//btCylinderShapeX
|
|
pointer_t WASM_EXP btCylinderShapeX_create(pointer_t halfExtents)
|
|
{
|
|
return (pointer_t) new btCylinderShapeX(*(btVector3 *)halfExtents);
|
|
}
|
|
|
|
//btCylinderShapeZ
|
|
pointer_t WASM_EXP btCylinderShapeZ_create(pointer_t halfExtents)
|
|
{
|
|
return (pointer_t) new btCylinderShapeZ(*(btVector3 *)halfExtents);
|
|
}
|
|
|
|
//btSphereShape
|
|
pointer_t WASM_EXP btSphereShape_create(btScalar radius)
|
|
{
|
|
return (pointer_t) new btSphereShape(radius);
|
|
}
|
|
|
|
//btConeShape
|
|
pointer_t WASM_EXP btConeShape_create(btScalar radius, btScalar height)
|
|
{
|
|
return (pointer_t) new btConeShape(radius, height);
|
|
}
|
|
|
|
//btConeShapeX
|
|
pointer_t WASM_EXP btConeShapeX_create(btScalar radius, btScalar height)
|
|
{
|
|
return (pointer_t) new btConeShapeX(radius, height);
|
|
}
|
|
|
|
//btConeShapeZ
|
|
pointer_t WASM_EXP btConeShapeZ_create(btScalar radius, btScalar height)
|
|
{
|
|
return (pointer_t) new btConeShapeZ(radius, height);
|
|
}
|
|
|
|
//btStaticPlaneShape
|
|
pointer_t WASM_EXP btStaticPlaneShape_create(pointer_t planeNormal, btScalar planeConstant)
|
|
{
|
|
return (pointer_t) new btStaticPlaneShape(*(btVector3 *)planeNormal, planeConstant);
|
|
}
|
|
|
|
//btGImpactShapeInterface
|
|
void WASM_EXP btGImpactShapeInterface_updateBound(pointer_t ptr)
|
|
{
|
|
btGImpactShapeInterface *shape = (btGImpactShapeInterface *)ptr;
|
|
shape->updateBound();
|
|
}
|
|
|
|
//btGImpactMeshShape
|
|
pointer_t WASM_EXP btGImpactMeshShape_create(pointer_t meshInterface)
|
|
{
|
|
return (pointer_t) new btGImpactMeshShape((btStridingMeshInterface *)meshInterface);
|
|
}
|
|
|
|
//btCompoundShape
|
|
pointer_t WASM_EXP btCompoundShape_create()
|
|
{
|
|
return (pointer_t) new btCompoundShape();
|
|
}
|
|
|
|
void WASM_EXP btCompoundShape_addChildShape(pointer_t ptr, pointer_t localTransform, pointer_t shape)
|
|
{
|
|
btCompoundShape *compShape = (btCompoundShape *)ptr;
|
|
compShape->addChildShape(*(btTransform *)localTransform, (btCollisionShape *)shape);
|
|
}
|
|
|
|
void WASM_EXP btCompoundShape_removeChildShapeByIndex(pointer_t ptr, int childShapeIndex)
|
|
{
|
|
btCompoundShape *compShape = (btCompoundShape *)ptr;
|
|
compShape->removeChildShapeByIndex(childShapeIndex);
|
|
}
|
|
|
|
pointer_t WASM_EXP btCompoundShape_getChildShape(pointer_t ptr, int index)
|
|
{
|
|
btCompoundShape *compShape = (btCompoundShape *)ptr;
|
|
return (pointer_t)compShape->getChildShape(index);
|
|
}
|
|
|
|
void WASM_EXP btCompoundShape_updateChildTransform(pointer_t ptr, int index, pointer_t newChildTransform, bool shouldRecalculateLocalAabb)
|
|
{
|
|
btCompoundShape *compShape = (btCompoundShape *)ptr;
|
|
compShape->updateChildTransform(index, *(btTransform *)newChildTransform, shouldRecalculateLocalAabb);
|
|
}
|
|
|
|
//btStridingMeshInterface
|
|
void WASM_EXP btStridingMeshInterface_destroy(pointer_t ptr)
|
|
{
|
|
btStridingMeshInterface *mesh = (btStridingMeshInterface *)ptr;
|
|
delete mesh;
|
|
}
|
|
|
|
//btTriangleMesh
|
|
pointer_t WASM_EXP btTriangleMesh_create()
|
|
{
|
|
return (pointer_t) new btTriangleMesh();
|
|
}
|
|
|
|
void WASM_EXP btTriangleMesh_addTriangle(pointer_t ptr, pointer_t vertex1, pointer_t vertex2, pointer_t vertex3, bool removeDuplicateVertices)
|
|
{
|
|
btTriangleMesh *mesh = (btTriangleMesh *)ptr;
|
|
mesh->addTriangle(*(btVector3 *)vertex1, *(btVector3 *)vertex2, *(btVector3 *)vertex3, removeDuplicateVertices);
|
|
}
|
|
|
|
//btDefaultCollisionConfiguration
|
|
pointer_t WASM_EXP btDefaultCollisionConfiguration_create()
|
|
{
|
|
return (pointer_t) new btDefaultCollisionConfiguration();
|
|
}
|
|
|
|
void WASM_EXP btDefaultCollisionConfiguration_destroy(pointer_t ptr)
|
|
{
|
|
btDefaultCollisionConfiguration *config = (btDefaultCollisionConfiguration *)ptr;
|
|
delete config;
|
|
}
|
|
|
|
//btPersistentManifold
|
|
pointer_t WASM_EXP btPersistentManifold_getBody0(pointer_t ptr)
|
|
{
|
|
btPersistentManifold *manifold = (btPersistentManifold *)ptr;
|
|
return (pointer_t)manifold->getBody0();
|
|
}
|
|
|
|
pointer_t WASM_EXP btPersistentManifold_getBody1(pointer_t ptr)
|
|
{
|
|
btPersistentManifold *manifold = (btPersistentManifold *)ptr;
|
|
return (pointer_t)manifold->getBody1();
|
|
}
|
|
|
|
int WASM_EXP btPersistentManifold_getNumContacts(pointer_t ptr)
|
|
{
|
|
btPersistentManifold *manifold = (btPersistentManifold *)ptr;
|
|
return manifold->getNumContacts();
|
|
}
|
|
|
|
pointer_t WASM_EXP btPersistentManifold_getContactPoint(pointer_t ptr, int index)
|
|
{
|
|
btPersistentManifold *manifold = (btPersistentManifold *)ptr;
|
|
return (pointer_t)&manifold->getContactPoint(index);
|
|
}
|
|
|
|
//btDispatcher
|
|
int WASM_EXP btDispatcher_getNumManifolds(pointer_t ptr)
|
|
{
|
|
btDispatcher *dispatcher = (btDispatcher *)ptr;
|
|
return dispatcher->getNumManifolds();
|
|
}
|
|
|
|
pointer_t WASM_EXP btDispatcher_getManifoldByIndexInternal(pointer_t ptr, int index)
|
|
{
|
|
btDispatcher *dispatcher = (btDispatcher *)ptr;
|
|
return (pointer_t)dispatcher->getManifoldByIndexInternal(index);
|
|
}
|
|
|
|
//btCollisionDispatcher
|
|
pointer_t WASM_EXP btCollisionDispatcher_create(pointer_t collisionConfiguration)
|
|
{
|
|
return (pointer_t) new btCollisionDispatcher((btDefaultCollisionConfiguration *)collisionConfiguration);
|
|
}
|
|
|
|
void WASM_EXP btCollisionDispatcher_destroy(pointer_t ptr)
|
|
{
|
|
btCollisionDispatcher *dispatcher = (btCollisionDispatcher *)ptr;
|
|
delete dispatcher;
|
|
}
|
|
|
|
//btOverlappingPairCache
|
|
void WASM_EXP btOverlappingPairCache_setInternalGhostPairCallback(pointer_t ptr, pointer_t ghostPairCallback)
|
|
{
|
|
btOverlappingPairCache *pairCache = (btOverlappingPairCache *)ptr;
|
|
btOverlappingPairCallback *callBack = (btOverlappingPairCallback *)ghostPairCallback;
|
|
pairCache->setInternalGhostPairCallback(callBack);
|
|
};
|
|
|
|
//btDbvtBroadphase
|
|
pointer_t WASM_EXP btDbvtBroadphase_create()
|
|
{
|
|
return (pointer_t) new btDbvtBroadphase();
|
|
}
|
|
|
|
pointer_t WASM_EXP btDbvtBroadphase_getOverlappingPairCache(pointer_t ptr)
|
|
{
|
|
btDbvtBroadphase *phase = (btDbvtBroadphase *)ptr;
|
|
return (pointer_t)phase->getOverlappingPairCache();
|
|
}
|
|
|
|
void WASM_EXP btDbvtBroadphase_destroy(pointer_t ptr)
|
|
{
|
|
btDbvtBroadphase *phase = (btDbvtBroadphase *)ptr;
|
|
delete phase;
|
|
}
|
|
|
|
//btRigidBodyConstructionInfo
|
|
pointer_t WASM_EXP btRigidBodyConstructionInfo_create(btScalar mass, pointer_t motionState, pointer_t collisionShape, pointer_t localInertia)
|
|
{
|
|
return (pointer_t) new btRigidBody::btRigidBodyConstructionInfo(mass, (btMotionState *)motionState, (btCollisionShape *)collisionShape, *(btVector3 *)localInertia);
|
|
}
|
|
|
|
void WASM_EXP btRigidBodyConstructionInfo_destroy(pointer_t ptr)
|
|
{
|
|
btRigidBody::btRigidBodyConstructionInfo *info = (btRigidBody::btRigidBodyConstructionInfo *)ptr;
|
|
delete info;
|
|
}
|
|
|
|
//btRigidBody
|
|
pointer_t WASM_EXP btRigidBody_create(pointer_t constructionInfo)
|
|
{
|
|
return (pointer_t) new btRigidBody(*(btRigidBody::btRigidBodyConstructionInfo *)constructionInfo);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setCenterOfMassTransform(pointer_t ptr, pointer_t xform)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setCenterOfMassTransform(*(btTransform *)xform);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setSleepingThresholds(pointer_t ptr, btScalar linear, btScalar angular)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setSleepingThresholds(linear, angular);
|
|
}
|
|
|
|
btScalar WASM_EXP btRigidBody_getLinearSleepingThreshold(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return rigid->getLinearSleepingThreshold();
|
|
}
|
|
|
|
btScalar WASM_EXP btRigidBody_getAngularSleepingThreshold(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return rigid->getAngularSleepingThreshold();
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setDamping(pointer_t ptr, btScalar lin_damping, btScalar ang_damping)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setDamping(lin_damping, ang_damping);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setMassProps(pointer_t ptr, btScalar mass, pointer_t inertia)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setMassProps(mass, *(btVector3 *)inertia);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setLinearFactor(pointer_t ptr, pointer_t linearFactor)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setLinearFactor(*(btVector3 *)linearFactor);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_applyTorque(pointer_t ptr, pointer_t torque)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->applyTorque(*(btVector3 *)torque);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_applyForce(pointer_t ptr, pointer_t force, pointer_t rel_pos)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->applyForce(*(btVector3 *)force, *(btVector3 *)rel_pos);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_applyCentralForce(pointer_t ptr, pointer_t force)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->applyCentralForce(*(btVector3 *)force);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_applyTorqueImpulse(pointer_t ptr, pointer_t torque)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->applyTorqueImpulse(*(btVector3 *)torque);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_applyImpulse(pointer_t ptr, pointer_t impulse, pointer_t rel_pos)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->applyImpulse(*(btVector3 *)impulse, *(btVector3 *)rel_pos);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_applyCentralImpulse(pointer_t ptr, pointer_t impulse)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->applyCentralImpulse(*(btVector3 *)impulse);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_updateInertiaTensor(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->updateInertiaTensor();
|
|
}
|
|
|
|
pointer_t WASM_EXP btRigidBody_getLinearVelocity(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return (pointer_t)&rigid->getLinearVelocity();
|
|
}
|
|
|
|
pointer_t WASM_EXP btRigidBody_getAngularVelocity(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return (pointer_t)&rigid->getAngularVelocity();
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setLinearVelocity(pointer_t ptr, pointer_t lin_vel)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setLinearVelocity(*(btVector3 *)lin_vel);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setAngularVelocity(pointer_t ptr, pointer_t ang_vel)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setAngularVelocity(*(btVector3 *)ang_vel);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setAngularFactor(pointer_t ptr, pointer_t angularFactor)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setAngularFactor(*(btVector3 *)angularFactor);
|
|
}
|
|
|
|
pointer_t WASM_EXP btRigidBody_getGravity(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return (pointer_t)&rigid->getGravity();
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setGravity(pointer_t ptr, pointer_t acceleration)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setGravity(*(btVector3 *)acceleration);
|
|
}
|
|
|
|
pointer_t WASM_EXP btRigidBody_getTotalForce(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return (pointer_t)&rigid->getTotalForce();
|
|
}
|
|
|
|
pointer_t WASM_EXP btRigidBody_getTotalTorque(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return (pointer_t)&rigid->getTotalTorque();
|
|
}
|
|
|
|
int WASM_EXP btRigidBody_getFlags(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
return rigid->getFlags();
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_setFlags(pointer_t ptr, int flags)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->setFlags(flags);
|
|
}
|
|
|
|
void WASM_EXP btRigidBody_clearForces(pointer_t ptr)
|
|
{
|
|
btRigidBody *rigid = (btRigidBody *)ptr;
|
|
rigid->clearForces();
|
|
}
|
|
|
|
//btSequentialImpulseConstraintSolver
|
|
pointer_t WASM_EXP btSequentialImpulseConstraintSolver_create()
|
|
{
|
|
return (pointer_t) new btSequentialImpulseConstraintSolver();
|
|
}
|
|
|
|
//btDispatcherInfo
|
|
bool WASM_EXP btCollisionWorld_get_m_useContinuous(pointer_t ptr)
|
|
{
|
|
btDispatcherInfo *info = (btDispatcherInfo *)ptr;
|
|
return info->m_useContinuous;
|
|
}
|
|
|
|
void WASM_EXP btCollisionWorld_set_m_useContinuous(pointer_t ptr, bool useContinuous)
|
|
{
|
|
btDispatcherInfo *info = (btDispatcherInfo *)ptr;
|
|
info->m_useContinuous = useContinuous;
|
|
}
|
|
|
|
//btCollisionWorld
|
|
void WASM_EXP btCollisionWorld_rayTest(pointer_t ptr, pointer_t rayFromWorld, pointer_t rayToWorld, pointer_t resultCallback)
|
|
{
|
|
btCollisionWorld *world = (btCollisionWorld *)ptr;
|
|
world->rayTest(*(btVector3 *)rayFromWorld, *(btVector3 *)rayToWorld, *(btCollisionWorld::RayResultCallback *)resultCallback);
|
|
}
|
|
|
|
pointer_t WASM_EXP btCollisionWorld_getDispatchInfo(pointer_t ptr)
|
|
{
|
|
btCollisionWorld *world = (btCollisionWorld *)ptr;
|
|
return (pointer_t)&world->getDispatchInfo();
|
|
}
|
|
|
|
void WASM_EXP btCollisionWorld_addCollisionObject(pointer_t ptr, pointer_t collisionObject, int collisionFilterGroup, int collisionFilterMask)
|
|
{
|
|
btCollisionWorld *world = (btCollisionWorld *)ptr;
|
|
world->addCollisionObject((btCollisionObject *)collisionObject, collisionFilterGroup, collisionFilterMask);
|
|
}
|
|
|
|
void WASM_EXP btCollisionWorld_removeCollisionObject(pointer_t ptr, pointer_t collisionObject)
|
|
{
|
|
btCollisionWorld *world = (btCollisionWorld *)ptr;
|
|
world->removeCollisionObject((btCollisionObject *)collisionObject);
|
|
}
|
|
|
|
void WASM_EXP btCollisionWorld_convexSweepTest(pointer_t ptr, pointer_t castShape, pointer_t from, pointer_t to, pointer_t resultCallback, float allowedCcdPenetration)
|
|
{
|
|
btCollisionWorld *world = (btCollisionWorld *)ptr;
|
|
world->convexSweepTest((btConvexShape *)castShape, *(btTransform *)from, *(btTransform *)to, *(btCollisionWorld::ConvexResultCallback *)resultCallback, allowedCcdPenetration);
|
|
}
|
|
|
|
void WASM_EXP btCollisionWorld_destroy(pointer_t ptr)
|
|
{
|
|
btCollisionWorld *world = (btCollisionWorld *)ptr;
|
|
delete world;
|
|
}
|
|
|
|
//btDynamicsWorld
|
|
void WASM_EXP btDynamicsWorld_addAction(pointer_t ptr, pointer_t action)
|
|
{
|
|
btDynamicsWorld *world = (btDynamicsWorld *)ptr;
|
|
world->addAction((btActionInterface *)action);
|
|
}
|
|
void WASM_EXP btDynamicsWorld_removeAction(pointer_t ptr, pointer_t action)
|
|
{
|
|
btDynamicsWorld *world = (btDynamicsWorld *)ptr;
|
|
world->removeAction((btActionInterface *)action);
|
|
}
|
|
pointer_t WASM_EXP btDynamicsWorld_getSolverInfo(pointer_t ptr)
|
|
{
|
|
btDynamicsWorld *world = (btDynamicsWorld *)ptr;
|
|
return (pointer_t)&world->getSolverInfo();
|
|
}
|
|
|
|
//btDiscreteDynamicsWorld
|
|
pointer_t WASM_EXP btDiscreteDynamicsWorld_create(pointer_t dispatcher, pointer_t pairCache, pointer_t constraintSolver, pointer_t collisionConfiguration)
|
|
{
|
|
return (pointer_t) new btDiscreteDynamicsWorld((btDispatcher *)dispatcher, (btBroadphaseInterface *)pairCache, (btConstraintSolver *)constraintSolver, (btCollisionConfiguration *)collisionConfiguration);
|
|
}
|
|
|
|
void WASM_EXP btDiscreteDynamicsWorld_setGravity(pointer_t ptr, pointer_t gravity)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
world->setGravity(*(btVector3 *)gravity);
|
|
}
|
|
|
|
pointer_t WASM_EXP btDiscreteDynamicsWorld_getGravity(pointer_t ptr)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
tempbtVector3 = world->getGravity();
|
|
return (pointer_t)&tempbtVector3;
|
|
}
|
|
|
|
void WASM_EXP btDiscreteDynamicsWorld_addRigidBody(pointer_t ptr, pointer_t body, int group, int mask) //!!!!!!!!!!!!
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
return world->addRigidBody((btRigidBody *)body, group, mask);
|
|
}
|
|
|
|
void WASM_EXP btDiscreteDynamicsWorld_removeRigidBody(pointer_t ptr, pointer_t body)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
return world->removeRigidBody((btRigidBody *)body);
|
|
}
|
|
|
|
void WASM_EXP btDiscreteDynamicsWorld_stepSimulation(pointer_t ptr, btScalar timeStep, int maxSubSteps, btScalar fixedTimeStep)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
world->stepSimulation(timeStep, maxSubSteps, fixedTimeStep);
|
|
}
|
|
|
|
void WASM_EXP btDiscreteDynamicsWorld_clearForces(pointer_t ptr)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
world->clearForces();
|
|
}
|
|
|
|
void WASM_EXP btDiscreteDynamicsWorld_setApplySpeculativeContactRestitution(pointer_t ptr, bool enable)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
world->setApplySpeculativeContactRestitution(enable);
|
|
}
|
|
|
|
bool WASM_EXP btDiscreteDynamicsWorld_getApplySpeculativeContactRestitution(pointer_t ptr)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
return world->getApplySpeculativeContactRestitution();
|
|
}
|
|
|
|
//btKinematicCharacterController
|
|
pointer_t WASM_EXP btKinematicCharacterController_create(pointer_t ghostObject, pointer_t convexShape, btScalar stepHeight, pointer_t up)
|
|
{
|
|
return (pointer_t) new btKinematicCharacterController((btPairCachingGhostObject *)ghostObject, (btConvexShape *)convexShape, stepHeight, *(btVector3 *)up);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setWalkDirection(pointer_t ptr, pointer_t walkDirection)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setWalkDirection(*(btVector3 *)walkDirection);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setFallSpeed(pointer_t ptr, btScalar fallSpeed)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setFallSpeed(fallSpeed);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setJumpSpeed(pointer_t ptr, btScalar jumpSpeed)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setJumpSpeed(jumpSpeed);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setMaxSlope(pointer_t ptr, btScalar slopeRadians)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setMaxSlope(slopeRadians);
|
|
}
|
|
|
|
bool WASM_EXP btKinematicCharacterController_onGround(pointer_t ptr)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
return character->onGround();
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_jump(pointer_t ptr, pointer_t v)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->jump(*(btVector3 *)v);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setGravity(pointer_t ptr, pointer_t gravity)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setGravity(*(btVector3 *)gravity);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setUp(pointer_t ptr, pointer_t up)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setUp(*(btVector3 *)up);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setStepHeight(pointer_t ptr, btScalar h)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setStepHeight(h);
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_setMaxPenetrationDepth(pointer_t ptr, btScalar d)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
character->setMaxPenetrationDepth(d);
|
|
}
|
|
|
|
btScalar WASM_EXP btKinematicCharacterController_getMaxPenetrationDepth(pointer_t ptr)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
return character->getMaxPenetrationDepth();
|
|
}
|
|
|
|
void WASM_EXP btKinematicCharacterController_destroy(pointer_t ptr)
|
|
{
|
|
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
|
|
delete character;
|
|
}
|
|
|
|
//btPairCachingGhostObject
|
|
pointer_t WASM_EXP btPairCachingGhostObject_create()
|
|
{
|
|
return (pointer_t) new btPairCachingGhostObject();
|
|
}
|
|
|
|
//btGhostPairCallback
|
|
pointer_t WASM_EXP btGhostPairCallback_create()
|
|
{
|
|
return (pointer_t) new btGhostPairCallback();
|
|
}
|
|
|
|
|
|
//btTypedConstraint interface
|
|
void WASM_EXP btTypedConstraint_setEnabled(pointer_t constraintptr, bool enabled)
|
|
{
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
constraint->setEnabled(enabled);
|
|
}
|
|
|
|
void WASM_EXP btCollisionWorld_addConstraint(pointer_t ptr, pointer_t constraintptr, bool disableCollisionsBetweenLinkedBodies)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
world->addConstraint(constraint, disableCollisionsBetweenLinkedBodies);
|
|
}
|
|
void WASM_EXP btCollisionWorld_removeConstraint(pointer_t ptr, pointer_t constraintptr)
|
|
{
|
|
btDiscreteDynamicsWorld *world = (btDiscreteDynamicsWorld *)ptr;
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
world->removeConstraint(constraint);
|
|
}
|
|
|
|
|
|
pointer_t WASM_EXP btJointFeedback_create()
|
|
{
|
|
btJointFeedback* jointFeedback = new btJointFeedback();
|
|
return (pointer_t) jointFeedback;
|
|
}
|
|
|
|
void WASM_EXP btJointFeedback_destroy(pointer_t jointFeedbackptr)
|
|
{
|
|
btJointFeedback* jointFeedback = (btJointFeedback *)jointFeedbackptr;
|
|
delete jointFeedback;
|
|
}
|
|
|
|
void WASM_EXP btTypedConstraint_setJointFeedback(pointer_t constraintptr, pointer_t jointFeedbackptr)
|
|
{
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
btJointFeedback* jointFeedback = (btJointFeedback *)jointFeedbackptr;
|
|
constraint->setJointFeedback(jointFeedback);
|
|
}
|
|
|
|
pointer_t WASM_EXP btTypedConstraint_getJointFeedback(pointer_t constraintptr)
|
|
{
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
btJointFeedback* jointFeedback = constraint->getJointFeedback();
|
|
return (pointer_t)jointFeedback;
|
|
}
|
|
|
|
void WASM_EXP btTypedConstraint_enableFeedback(pointer_t constraintptr, bool needsFeedback)
|
|
{
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
constraint->enableFeedback(needsFeedback);
|
|
}
|
|
|
|
void WASM_EXP btTypedConstraint_setParam(pointer_t constraintptr, int axis1, int constraintParams, btScalar value)
|
|
{
|
|
btTypedConstraint * btConstraint = (btTypedConstraint *)constraintptr;
|
|
btConstraint->setParam((btConstraintParams)constraintParams, value, axis1);
|
|
}
|
|
|
|
void WASM_EXP btTypedConstraint_setOverrideNumSolverIterations(pointer_t constraintptr, int overideNumIterations)
|
|
{
|
|
btTypedConstraint * btConstraint = (btTypedConstraint *)constraintptr;
|
|
btConstraint->setOverrideNumSolverIterations(overideNumIterations);
|
|
}
|
|
|
|
void WASM_EXP btTypedConstraint_destroy(pointer_t constraintptr)
|
|
{
|
|
btTypedConstraint* constraint = (btTypedConstraint *)constraintptr;
|
|
delete constraint;
|
|
}
|
|
|
|
pointer_t WASM_EXP btJointFeedback_getAppliedForceBodyA(pointer_t jointFeedbackptr)
|
|
{
|
|
btJointFeedback* jointFeedback = (btJointFeedback *)jointFeedbackptr;
|
|
return (pointer_t) &(jointFeedback->m_appliedForceBodyA);
|
|
}
|
|
pointer_t WASM_EXP btJointFeedback_getAppliedForceBodyB(pointer_t jointFeedbackptr)
|
|
{
|
|
btJointFeedback* jointFeedback = (btJointFeedback *)jointFeedbackptr;
|
|
return (pointer_t) &(jointFeedback->m_appliedForceBodyB);
|
|
}
|
|
|
|
pointer_t WASM_EXP btJointFeedback_getAppliedTorqueBodyA(pointer_t jointFeedbackptr)
|
|
{
|
|
btJointFeedback* jointFeedback = (btJointFeedback *)jointFeedbackptr;
|
|
return (pointer_t) &(jointFeedback->m_appliedTorqueBodyA);
|
|
}
|
|
pointer_t WASM_EXP btJointFeedback_getAppliedTorqueBodyB(pointer_t jointFeedbackptr)
|
|
{
|
|
btJointFeedback* jointFeedback = (btJointFeedback *)jointFeedbackptr;
|
|
return (pointer_t) &(jointFeedback->m_appliedTorqueBodyB);
|
|
}
|
|
|
|
|
|
pointer_t WASM_EXP btFixedConstraint_create(pointer_t rigidBodyA, pointer_t frameInAptr,pointer_t rigidBodyB, pointer_t frameInBptr)
|
|
{
|
|
btRigidBody *rigidA = (btRigidBody *)rigidBodyA;
|
|
btRigidBody *rigidB = (btRigidBody *)rigidBodyB;
|
|
btTransform * frameInA = (btTransform *)frameInAptr;
|
|
btTransform * frameInB = (btTransform *)frameInBptr;
|
|
btFixedConstraint * fixCon = new btFixedConstraint(*rigidA, *rigidB, *frameInA, *frameInB);
|
|
return (pointer_t) fixCon;
|
|
}
|
|
|
|
|
|
//btGeneric6DofSpring2Constraint interface
|
|
pointer_t WASM_EXP btGeneric6DofSpring2Constraint_create(pointer_t rigidBodyAptr, pointer_t frameInAptr, pointer_t rigidBodyBptr, pointer_t frameInBptr, int rotOrder)
|
|
{
|
|
btRigidBody * rigidBodyA = (btRigidBody *)rigidBodyAptr;
|
|
btTransform * frameInA = (btTransform *)frameInAptr;
|
|
btRigidBody * rigidBodyB = (btRigidBody *)rigidBodyBptr;
|
|
btTransform * frameInB = (btTransform *)frameInBptr;
|
|
btGeneric6DofSpring2Constraint * btConstraintPtr = new btGeneric6DofSpring2Constraint(*rigidBodyA, *rigidBodyB, *frameInA, *frameInB, (RotateOrder)rotOrder);
|
|
btConstraintPtr->setOverrideNumSolverIterations(80);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_ERP, 0.80, 0);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_CFM, 0.0, 0);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_ERP, 0.80, 1);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_CFM, 0.0, 1);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_ERP, 0.80, 2);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_CFM, 0.0, 2);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_ERP, 0.80, 3);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_CFM, 0.0, 3);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_ERP, 0.80, 4);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_CFM, 0.0, 4);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_ERP, 0.80, 5);
|
|
btConstraintPtr->setParam(BT_CONSTRAINT_STOP_CFM, 0.0, 5);
|
|
return (pointer_t)btConstraintPtr;
|
|
}
|
|
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setAxis(pointer_t g6ds2Constraintptr, pointer_t axis1, pointer_t axis2)
|
|
{
|
|
btVector3 * axisVec1 = (btVector3 *)axis1;
|
|
btVector3 * axisVec2 = (btVector3 *)axis2;
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setAxis(*axisVec1, *axisVec2);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setLimit(pointer_t g6ds2Constraintptr, int axis, btScalar lo, btScalar hi)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setLimit(axis, lo, hi);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_enableSpring(pointer_t g6ds2Constraintptr, int index, bool enableSpring)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->enableSpring(index, enableSpring);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setBounce(pointer_t g6ds2Constraintptr, int index, btScalar bounce)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setBounce(index, bounce);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setStiffness(pointer_t g6ds2Constraintptr, int index, btScalar stiffness, bool limitIfNeeded)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setStiffness(index, stiffness, limitIfNeeded);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setDamping(pointer_t g6ds2Constraintptr, int index, btScalar damping, bool limitIfNeeded)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setDamping(index, damping, limitIfNeeded);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setEquilibriumPoint(pointer_t g6ds2Constraintptr, int index, btScalar val)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setEquilibriumPoint(index, val);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_enableMotor(pointer_t g6ds2Constraintptr, int index, bool onOff)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->enableMotor(index, onOff);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setServo(pointer_t g6ds2Constraintptr, int index, bool onOff)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setServo(index, onOff);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setTargetVelocity(pointer_t g6ds2Constraintptr, int index, btScalar velocity)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setTargetVelocity(index, velocity);
|
|
}
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setServoTarget(pointer_t g6ds2Constraintptr, int index, btScalar target)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setServoTarget(index, target);
|
|
}
|
|
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setMaxMotorForce(pointer_t g6ds2Constraintptr, int index, btScalar force)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btConstraint->setMaxMotorForce(index, force);
|
|
}
|
|
|
|
void WASM_EXP btGeneric6DofSpring2Constraint_setFrames(pointer_t g6ds2Constraintptr, pointer_t frameAptr, pointer_t frameBptr)
|
|
{
|
|
btGeneric6DofSpring2Constraint * btConstraint = (btGeneric6DofSpring2Constraint *)g6ds2Constraintptr;
|
|
btTransform * frameA = (btTransform *)frameAptr;
|
|
btTransform * frameB = (btTransform *)frameBptr;
|
|
btConstraint->setFrames(*frameA, *frameB);
|
|
}
|
|
}
|