941 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			941 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | 
 | ||
|  | // Linear Math | ||
|  | 
 | ||
|  | interface btVector3 { | ||
|  | 	void btVector3(); | ||
|  | 	void btVector3(float x, float y, float z); | ||
|  | 	float length(); | ||
|  | 	float x(); | ||
|  | 	float y(); | ||
|  | 	float z(); | ||
|  | 	void setX(float x); | ||
|  | 	void setY(float y); | ||
|  | 	void setZ(float z); | ||
|  | 	void setValue(float x, float y, float z); | ||
|  | 	void normalize(); | ||
|  | 	[Value] btVector3 rotate([Ref] btVector3 wAxis, float angle); | ||
|  | 	float dot([Ref] btVector3 v); | ||
|  | 	[Operator="*=", Ref] btVector3 op_mul(float x); | ||
|  | 	[Operator="+=", Ref] btVector3 op_add([Ref] btVector3 v); | ||
|  | 	[Operator="-=", Ref] btVector3 op_sub([Ref] btVector3 v); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btVector4 { | ||
|  | 	void btVector4(); | ||
|  | 	void btVector4(float x, float y, float z, float w); | ||
|  | 	float w(); | ||
|  | 	void setValue(float x, float y, float z, float w); | ||
|  | }; | ||
|  | btVector4 implements btVector3; | ||
|  | 
 | ||
|  | interface btQuadWord { | ||
|  | 	float x(); | ||
|  | 	float y(); | ||
|  | 	float z(); | ||
|  | 	float w(); | ||
|  | 	void setX(float x); | ||
|  | 	void setY(float y); | ||
|  | 	void setZ(float z); | ||
|  | 	void setW(float w); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btQuaternion { | ||
|  | 	void btQuaternion(float x, float y, float z, float w); | ||
|  | 	void setValue(float x, float y, float z, float w); | ||
|  | 	void setEulerZYX(float z, float y, float x); | ||
|  | 	void setRotation([Ref] btVector3 axis, float angle); | ||
|  | 	void normalize(); | ||
|  | 	float length2(); | ||
|  | 	float length(); | ||
|  | 	float dot([Ref] btQuaternion q); | ||
|  | 	[Value] btQuaternion normalized(); | ||
|  | 	[Value] btVector3 getAxis(); | ||
|  | 	[Value] btQuaternion inverse(); | ||
|  | 	float getAngle(); | ||
|  | 	float getAngleShortestPath(); | ||
|  | 	float angle([Ref] btQuaternion q); | ||
|  | 	float angleShortestPath([Ref] btQuaternion q); | ||
|  | 	[Operator="+=", Ref] btQuaternion op_add([Ref] btQuaternion q); | ||
|  | 	[Operator="-=", Ref] btQuaternion op_sub([Ref] btQuaternion q); | ||
|  | 	[Operator="*=", Ref] btQuaternion op_mul(float s); | ||
|  | 	[Operator="*=", Ref] btQuaternion op_mulq([Ref] btQuaternion q); | ||
|  | 	[Operator="/=", Ref] btQuaternion op_div(float s); | ||
|  | }; | ||
|  | btQuaternion implements btQuadWord; | ||
|  | 
 | ||
|  | interface btMatrix3x3 { | ||
|  | 	void setEulerZYX(float ex, float ey, float ez); | ||
|  | 	void getRotation([Ref] btQuaternion q); | ||
|  | 	[Value] btVector3 getRow(long y); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btTransform { | ||
|  | 	void btTransform(); | ||
|  | 	void btTransform([Ref] btQuaternion q, [Ref] btVector3 v); | ||
|  | 
 | ||
|  | 	void setIdentity(); | ||
|  | 	void setOrigin([Ref] btVector3 origin); | ||
|  | 	void setRotation([Ref] btQuaternion rotation); | ||
|  | 	[Ref] btVector3 getOrigin(); | ||
|  | 	[Value] btQuaternion getRotation(); | ||
|  | 	[Ref] btMatrix3x3 getBasis(); | ||
|  | 	void setFromOpenGLMatrix(float[] m); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btMotionState { | ||
|  | 	void getWorldTransform([Ref] btTransform worldTrans); | ||
|  | 	void setWorldTransform([Ref] btTransform worldTrans); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDefaultMotionState { | ||
|  | 	void btDefaultMotionState([Ref] optional btTransform startTrans, [Ref] optional btTransform centerOfMassOffset); | ||
|  | 	[Value] attribute btTransform m_graphicsWorldTrans; | ||
|  | }; | ||
|  | btDefaultMotionState implements btMotionState; | ||
|  | 
 | ||
|  | // Collision | ||
|  | 
 | ||
|  | interface btCollisionObject { | ||
|  | 	void setAnisotropicFriction([Const, Ref] btVector3 anisotropicFriction, long frictionMode); | ||
|  | 	btCollisionShape getCollisionShape(); | ||
|  | 	void setContactProcessingThreshold(float contactProcessingThreshold); | ||
|  | 	void setActivationState(long newState); | ||
|  | 	void forceActivationState(long newState); | ||
|  | 	void activate(optional boolean forceActivation); | ||
|  | 	boolean isActive(); | ||
|  | 	boolean isKinematicObject(); | ||
|  | 	boolean isStaticObject(); | ||
|  | 	boolean isStaticOrKinematicObject(); | ||
|  | 	void setRestitution(float rest); | ||
|  | 	void setFriction(float frict); | ||
|  | 	void setRollingFriction(float frict); | ||
|  | 	[Ref] btTransform getWorldTransform(); | ||
|  | 	long getCollisionFlags(); | ||
|  | 	void setCollisionFlags(long flags); | ||
|  | 	void setWorldTransform([Const,Ref] btTransform worldTrans); | ||
|  | 	void setCollisionShape(btCollisionShape collisionShape); | ||
|  | 	void setCcdMotionThreshold (float ccdMotionThreshold); | ||
|  | 	void setCcdSweptSphereRadius (float radius); | ||
|  | 	long getUserIndex(); | ||
|  | 	void setUserIndex(long index); | ||
|  | 	VoidPtr getUserPointer(); | ||
|  | 	void setUserPointer(VoidPtr userPointer); | ||
|  | }; | ||
|  | 
 | ||
|  | [NoDelete] | ||
|  | interface btCollisionObjectWrapper { | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface RayResultCallback { | ||
|  | 	// abstract base class, no constructor | ||
|  | 	boolean hasHit(); | ||
|  | 	attribute short m_collisionFilterGroup; | ||
|  | 	attribute short m_collisionFilterMask; | ||
|  | 	[Const] attribute btCollisionObject m_collisionObject; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface ClosestRayResultCallback { | ||
|  | 	void ClosestRayResultCallback([Const, Ref] btVector3 from, [Const, Ref] btVector3 to); | ||
|  | 
 | ||
|  | 	[Value] attribute btVector3 m_rayFromWorld; | ||
|  | 	[Value] attribute btVector3 m_rayToWorld; | ||
|  | 	[Value] attribute btVector3 m_hitNormalWorld; | ||
|  | 	[Value] attribute btVector3 m_hitPointWorld; | ||
|  | }; | ||
|  | ClosestRayResultCallback implements RayResultCallback; | ||
|  | 
 | ||
|  | interface btManifoldPoint { | ||
|  | 	[Const, Ref] btVector3 getPositionWorldOnA(); | ||
|  | 	[Const, Ref] btVector3 getPositionWorldOnB(); | ||
|  | 	[Const] double getAppliedImpulse(); | ||
|  | 	[Const] double getDistance(); | ||
|  | 	[Value] attribute btVector3 m_localPointA; | ||
|  | 	[Value] attribute btVector3 m_localPointB; | ||
|  | 	[Value] attribute btVector3 m_positionWorldOnB; | ||
|  | 	[Value] attribute btVector3 m_positionWorldOnA; | ||
|  | 	[Value] attribute btVector3 m_normalWorldOnB; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface ContactResultCallback { | ||
|  | 	float addSingleResult([Ref] btManifoldPoint cp, [Const] btCollisionObjectWrapper colObj0Wrap, long partId0, long index0, [Const] btCollisionObjectWrapper colObj1Wrap, long partId1, long index1); | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface LocalShapeInfo { | ||
|  | 		attribute long m_shapePart; | ||
|  | 		attribute long m_triangleIndex; | ||
|  |  }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface LocalConvexResult	{ | ||
|  | 	void LocalConvexResult([Const] btCollisionObject hitCollisionObject, LocalShapeInfo localShapeInfo, [Const, Ref] btVector3 hitNormalLocal, [Const, Ref] btVector3 hitPointLocal, float hitFraction); | ||
|  | 	[Const] attribute btCollisionObject m_hitCollisionObject; | ||
|  | 	attribute LocalShapeInfo m_localShapeInfo; | ||
|  | 	[Value] attribute btVector3 m_hitNormalLocal; | ||
|  | 	[Value] attribute btVector3 m_hitPointLocal; | ||
|  | 	attribute float m_hitFraction; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface ConvexResultCallback { | ||
|  | 	// abstract base class, no constructor | ||
|  | 	boolean hasHit(); | ||
|  | 	attribute short m_collisionFilterGroup; | ||
|  | 	attribute short m_collisionFilterMask; | ||
|  | 	attribute float m_closestHitFraction; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btCollisionWorld::"] | ||
|  | interface ClosestConvexResultCallback { | ||
|  | 	void ClosestConvexResultCallback([Const, Ref] btVector3 convexFromWorld, [Const, Ref] btVector3 convexToWorld); | ||
|  | 
 | ||
|  | 	[Value] attribute btVector3 m_convexFromWorld; | ||
|  | 	[Value] attribute btVector3 m_convexToWorld; | ||
|  | 	[Value] attribute btVector3 m_hitNormalWorld; | ||
|  | 	[Value] attribute btVector3 m_hitPointWorld; | ||
|  | }; | ||
|  | ClosestConvexResultCallback implements ConvexResultCallback; | ||
|  | 
 | ||
|  | interface btCollisionShape { | ||
|  | 	void setLocalScaling([Const, Ref] btVector3 scaling); | ||
|  | 	void calculateLocalInertia(float mass, [Ref] btVector3 inertia); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btConvexShape { | ||
|  | }; | ||
|  | btConvexShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btConvexTriangleMeshShape { | ||
|  | 	void btConvexTriangleMeshShape(btStridingMeshInterface meshInterface, optional boolean calcAabb); | ||
|  | }; | ||
|  | btConvexTriangleMeshShape implements btConvexShape; | ||
|  | 
 | ||
|  | interface btBoxShape { | ||
|  | 	void btBoxShape([Ref] btVector3 boxHalfExtents); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btBoxShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btCapsuleShape { | ||
|  | 	void btCapsuleShape(float radius, float height); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCapsuleShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btCapsuleShapeX { | ||
|  | 	void btCapsuleShapeX(float radius, float height); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCapsuleShapeX implements btCapsuleShape; | ||
|  | 
 | ||
|  | interface btCapsuleShapeZ { | ||
|  | 	void btCapsuleShapeZ(float radius, float height); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCapsuleShapeZ implements btCapsuleShape; | ||
|  | 
 | ||
|  | interface btCylinderShape { | ||
|  | 	void btCylinderShape([Ref] btVector3 halfExtents); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCylinderShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btCylinderShapeX { | ||
|  | 	void btCylinderShapeX([Ref] btVector3 halfExtents); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCylinderShapeX implements btCylinderShape; | ||
|  | 
 | ||
|  | interface btCylinderShapeZ { | ||
|  | 	void btCylinderShapeZ([Ref] btVector3 halfExtents); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCylinderShapeZ implements btCylinderShape; | ||
|  | 
 | ||
|  | interface btSphereShape { | ||
|  | 	void btSphereShape(float radius); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btSphereShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btConeShape { | ||
|  | 	void btConeShape(float radius, float height); | ||
|  | }; | ||
|  | btConeShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btConvexHullShape { | ||
|  | 	void btConvexHullShape(); | ||
|  | 	void addPoint([Const, Ref] btVector3 point, optional boolean recalculateLocalAABB); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btConvexHullShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btConeShapeX { | ||
|  | 	void btConeShapeX(float radius, float height); | ||
|  | }; | ||
|  | btConeShapeX implements btConeShape; | ||
|  | 
 | ||
|  | interface btConeShapeZ { | ||
|  | 	void btConeShapeZ(float radius, float height); | ||
|  | }; | ||
|  | btConeShapeZ implements btConeShape; | ||
|  | 
 | ||
|  | interface btCompoundShape { | ||
|  | 	void btCompoundShape(optional boolean enableDynamicAabbTree); | ||
|  | 	void addChildShape([Const, Ref] btTransform localTransform, btCollisionShape shape); | ||
|  | 	void removeChildShapeByIndex(long childShapeindex); | ||
|  | 	[Const] long getNumChildShapes(); | ||
|  | 	btCollisionShape getChildShape(long index); | ||
|  | 	void setMargin(float margin); | ||
|  | 	float getMargin(); | ||
|  | }; | ||
|  | btCompoundShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btStridingMeshInterface { | ||
|  | }; | ||
|  | 
 | ||
|  | interface btTriangleMesh { | ||
|  | 	void btTriangleMesh(optional boolean use32bitIndices, optional boolean use4componentVertices); | ||
|  | 	void addTriangle([Const, Ref] btVector3 vertex0, [Const, Ref] btVector3 vertex1, [Const, Ref] btVector3 vertex2, optional boolean removeDuplicateVertices); | ||
|  | }; | ||
|  | btTriangleMesh implements btStridingMeshInterface; | ||
|  | 
 | ||
|  | enum PHY_ScalarType { | ||
|  | 		"PHY_FLOAT", | ||
|  | 		"PHY_DOUBLE", | ||
|  | 		"PHY_INTEGER", | ||
|  | 		"PHY_SHORT", | ||
|  | 		"PHY_FIXEDPOINT88", | ||
|  | 		"PHY_UCHAR" | ||
|  | }; | ||
|  | 
 | ||
|  | interface btConcaveShape { | ||
|  | }; | ||
|  | btConcaveShape implements btCollisionShape; | ||
|  | 
 | ||
|  | interface btStaticPlaneShape { | ||
|  | 	void btStaticPlaneShape([Const, Ref] btVector3 planeNormal, float planeConstant); | ||
|  | }; | ||
|  | btStaticPlaneShape implements btConcaveShape; | ||
|  | 
 | ||
|  | interface btTriangleMeshShape { | ||
|  | }; | ||
|  | btTriangleMeshShape implements btConcaveShape; | ||
|  | 
 | ||
|  | interface btBvhTriangleMeshShape { | ||
|  | 	void btBvhTriangleMeshShape(btStridingMeshInterface meshInterface, boolean useQuantizedAabbCompression, optional boolean buildBvh); | ||
|  | }; | ||
|  | btBvhTriangleMeshShape implements btTriangleMeshShape; | ||
|  | 
 | ||
|  | interface btHeightfieldTerrainShape { | ||
|  | 		void btHeightfieldTerrainShape(long heightStickWidth, long heightStickLength, VoidPtr heightfieldData, float heightScale, float minHeight, float maxHeight, long upAxis, PHY_ScalarType hdt, boolean flipQuadEdges); | ||
|  | 		void setMargin(float margin); | ||
|  | 		float getMargin(); | ||
|  | }; | ||
|  | btHeightfieldTerrainShape implements btConcaveShape; | ||
|  | 
 | ||
|  | interface btGImpactMeshShape { | ||
|  |   void btGImpactMeshShape(btStridingMeshInterface meshInterface); | ||
|  |   void updateBound(); | ||
|  |   void registerAlgorithm(btCollisionDispatcher dispatcher); | ||
|  | }; | ||
|  | btGImpactMeshShape implements btConcaveShape; | ||
|  | 
 | ||
|  | interface btDefaultCollisionConstructionInfo { | ||
|  | 	void btDefaultCollisionConstructionInfo(); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDefaultCollisionConfiguration { | ||
|  | 	void btDefaultCollisionConfiguration([Ref] optional btDefaultCollisionConstructionInfo info); | ||
|  | }; | ||
|  | btDefaultCollisionConfiguration implements btCollisionConfiguration; | ||
|  | 
 | ||
|  | interface btPersistentManifold { | ||
|  | 	void btPersistentManifold(); | ||
|  | 	[Const] btCollisionObject getBody0(); | ||
|  | 	[Const] btCollisionObject getBody1(); | ||
|  | 	long getNumContacts(); | ||
|  | 	[Ref] btManifoldPoint getContactPoint(long index); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDispatcher { | ||
|  | 	long getNumManifolds(); | ||
|  | 	btPersistentManifold getManifoldByIndexInternal(long index); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btCollisionDispatcher { | ||
|  | 	void btCollisionDispatcher(btDefaultCollisionConfiguration conf); | ||
|  | }; | ||
|  | btCollisionDispatcher implements btDispatcher; | ||
|  | 
 | ||
|  | interface btOverlappingPairCallback { | ||
|  | }; | ||
|  | 
 | ||
|  | interface btOverlappingPairCache { | ||
|  | 	void setInternalGhostPairCallback(btOverlappingPairCallback ghostPairCallback); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btAxisSweep3 { | ||
|  | 	void btAxisSweep3([Ref] btVector3 worldAabbMin, [Ref] btVector3 worldAabbMax, optional long maxHandles, optional btOverlappingPairCache pairCache, optional boolean disableRaycastAccelerator); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btBroadphaseInterface { | ||
|  | }; | ||
|  | 
 | ||
|  | interface btCollisionConfiguration { | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDbvtBroadphase { | ||
|  | 	void btDbvtBroadphase(); | ||
|  | }; | ||
|  | btDbvtBroadphase implements btBroadphaseInterface; | ||
|  | 
 | ||
|  | // Dynamics | ||
|  | 
 | ||
|  | [Prefix="btRigidBody::"] | ||
|  | interface btRigidBodyConstructionInfo { | ||
|  | 	void btRigidBodyConstructionInfo(float mass, btMotionState motionState, btCollisionShape collisionShape, [Ref] optional btVector3 localInertia); | ||
|  | 	attribute float m_linearDamping; | ||
|  | 	attribute float m_angularDamping; | ||
|  | 	attribute float m_friction; | ||
|  | 	attribute float m_rollingFriction; | ||
|  | 	attribute float m_restitution; | ||
|  | 	attribute float m_linearSleepingThreshold; | ||
|  | 	attribute float m_angularSleepingThreshold; | ||
|  | 	attribute boolean m_additionalDamping; | ||
|  | 	attribute float m_additionalDampingFactor; | ||
|  | 	attribute float m_additionalLinearDampingThresholdSqr; | ||
|  | 	attribute float m_additionalAngularDampingThresholdSqr; | ||
|  | 	attribute float m_additionalAngularDampingFactor; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btRigidBody { | ||
|  | 	void btRigidBody([Const, Ref] btRigidBodyConstructionInfo constructionInfo); | ||
|  | 
 | ||
|  | 	[Const, Ref] btTransform getCenterOfMassTransform(); | ||
|  | 	void setCenterOfMassTransform([Const, Ref] btTransform xform); | ||
|  | 	void setSleepingThresholds(float linear, float angular); | ||
|  | 	void setDamping(float lin_damping, float ang_damping); | ||
|  | 	void setMassProps(float mass, [Const, Ref] btVector3 inertia); | ||
|  | 	void setLinearFactor([Const, Ref] btVector3 linearFactor); | ||
|  | 	void applyTorque([Const, Ref] btVector3 torque); | ||
|  | 	void applyForce([Const, Ref] btVector3 force, [Const, Ref] btVector3 rel_pos); | ||
|  | 	void applyCentralForce([Const, Ref] btVector3 force); | ||
|  | 	void applyTorqueImpulse([Const, Ref] btVector3 torque); | ||
|  | 	void applyImpulse([Const, Ref] btVector3 impulse, [Const, Ref] btVector3 rel_pos); | ||
|  | 	void applyCentralImpulse([Const, Ref] btVector3 impulse); | ||
|  | 	void updateInertiaTensor(); | ||
|  | 	[Const, Ref] btVector3 getLinearVelocity(); | ||
|  | 	[Const, Ref] btVector3 getAngularVelocity(); | ||
|  | 	void setLinearVelocity([Const, Ref] btVector3 lin_vel); | ||
|  | 	void setAngularVelocity([Const, Ref] btVector3 ang_vel); | ||
|  | 	btMotionState getMotionState(); | ||
|  | 	void setMotionState(btMotionState motionState); | ||
|  | 	void setAngularFactor([Const, Ref] btVector3 angularFactor); | ||
|  | 	btRigidBody upcast([Const] btCollisionObject colObj); | ||
|  | 	void getAabb([Ref] btVector3 aabbMin, [Ref] btVector3 aabbMax); | ||
|  | 	[Const, Ref] btVector3 getGravity(); | ||
|  | 	void setGravity([Const, Ref] btVector3 acceleration); | ||
|  | }; | ||
|  | btRigidBody implements btCollisionObject; | ||
|  | 
 | ||
|  | interface btConstraintSetting { | ||
|  | 	void btConstraintSetting(); | ||
|  | 	attribute float m_tau; | ||
|  | 	attribute float m_damping; | ||
|  | 	attribute float m_impulseClamp; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btTypedConstraint { | ||
|  | 	void enableFeedback(boolean needsFeedback); | ||
|  | 	[Const] float getBreakingImpulseThreshold(); | ||
|  | 	void setBreakingImpulseThreshold([Const] float threshold); | ||
|  | 	[Const] float getParam(long num, long axis); | ||
|  | 	void setParam(long num, float value, long axis); | ||
|  | }; | ||
|  | 
 | ||
|  | enum btConstraintParams { | ||
|  | 	"BT_CONSTRAINT_ERP", | ||
|  | 	"BT_CONSTRAINT_STOP_ERP", | ||
|  | 	"BT_CONSTRAINT_CFM", | ||
|  | 	"BT_CONSTRAINT_STOP_CFM" | ||
|  | }; | ||
|  | 
 | ||
|  | interface btPoint2PointConstraint { | ||
|  | 	void btPoint2PointConstraint([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Ref] btVector3 pivotInA, [Ref] btVector3 pivotInB); | ||
|  | 	void btPoint2PointConstraint([Ref] btRigidBody rbA, [Ref] btVector3 pivotInA); | ||
|  | 	void setPivotA([Const, Ref] btVector3 pivotA); | ||
|  | 	void setPivotB([Const, Ref] btVector3 pivotB); | ||
|  | 	[Const, Ref] btVector3 getPivotInA(); | ||
|  | 	[Const, Ref] btVector3 getPivotInB(); | ||
|  | 
 | ||
|  | 	[Value] attribute btConstraintSetting m_setting; | ||
|  | }; | ||
|  | btPoint2PointConstraint implements btTypedConstraint; | ||
|  | 
 | ||
|  | interface btGeneric6DofConstraint { | ||
|  | 	void btGeneric6DofConstraint([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Ref] btTransform frameInA, [Ref] btTransform frameInB, boolean useLinearFrameReferenceFrameA); | ||
|  | 	void btGeneric6DofConstraint([Ref] btRigidBody rbB, [Ref] btTransform frameInB, boolean useLinearFrameReferenceFrameB); | ||
|  | 	void setLinearLowerLimit([Const, Ref] btVector3 linearLower); | ||
|  | 	void setLinearUpperLimit([Const, Ref] btVector3 linearUpper); | ||
|  | 	void setAngularLowerLimit([Const, Ref] btVector3 angularLower); | ||
|  | 	void setAngularUpperLimit([Const, Ref] btVector3 angularUpper); | ||
|  | 	[Ref] btTransform getFrameOffsetA(); | ||
|  | }; | ||
|  | btGeneric6DofConstraint implements btTypedConstraint; | ||
|  | 
 | ||
|  | interface btGeneric6DofSpringConstraint { | ||
|  | 	void btGeneric6DofSpringConstraint([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Ref] btTransform frameInA, [Ref] btTransform frameInB, boolean useLinearFrameReferenceFrameA); | ||
|  | 	void btGeneric6DofSpringConstraint([Ref] btRigidBody rbB, [Ref] btTransform frameInB, boolean useLinearFrameReferenceFrameB); | ||
|  | 	void enableSpring(long index, boolean onOff); | ||
|  | 	void setStiffness(long index, float stiffness); | ||
|  | 	void setDamping(long index, float damping); | ||
|  | }; | ||
|  | btGeneric6DofSpringConstraint implements btGeneric6DofConstraint; | ||
|  | 
 | ||
|  | interface btSequentialImpulseConstraintSolver { | ||
|  | 	void btSequentialImpulseConstraintSolver(); | ||
|  | }; | ||
|  | 
 | ||
|  | btSequentialImpulseConstraintSolver implements btConstraintSolver; | ||
|  | 
 | ||
|  | interface btConeTwistConstraint { | ||
|  | 	void btConeTwistConstraint([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Ref] btTransform rbAFrame, [Ref] btTransform rbBFrame); | ||
|  | 	void btConeTwistConstraint([Ref] btRigidBody rbA, [Ref] btTransform rbAFrame); | ||
|  | 
 | ||
|  | 	void setLimit(long limitIndex, float limitValue); | ||
|  | 	void setAngularOnly(boolean angularOnly); | ||
|  | 	void setDamping(float damping); | ||
|  | 	void enableMotor(boolean b); | ||
|  | 	void setMaxMotorImpulse(float maxMotorImpulse); | ||
|  | 	void setMaxMotorImpulseNormalized(float maxMotorImpulse); | ||
|  | 	void setMotorTarget([Const,Ref] btQuaternion q); | ||
|  | 	void setMotorTargetInConstraintSpace([Const,Ref] btQuaternion q); | ||
|  | }; | ||
|  | btConeTwistConstraint implements btTypedConstraint; | ||
|  | 
 | ||
|  | interface btHingeConstraint { | ||
|  | 	void btHingeConstraint ([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Ref] btVector3 pivotInA, [Ref] btVector3 pivotInB, [Ref] btVector3 axisInA, [Ref] btVector3 axisInB, optional boolean useReferenceFrameA); | ||
|  | 	void btHingeConstraint ([Ref] btRigidBody rbA, [Ref] btVector3 pivotInA, [Ref] btVector3 axisInA, optional boolean useReferenceFrameA); | ||
|  | 	//void btHingeConstraint ([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Ref] btTransform rbAFrame, [Ref] btTransform rbBFrame, optional boolean useReferenceFrameA); | ||
|  | 	//void btHingeConstraint ([Ref] btRigidBody rbA, [Ref] btTransform rbAFrame, optional boolean useReferenceFrameA); | ||
|  | 
 | ||
|  | 	void setLimit(float low, float high, float softness, float biasFactor, optional float relaxationFactor); | ||
|  | 	void enableAngularMotor(boolean enableMotor, float targetVelocity, float maxMotorImpulse); | ||
|  | 	void setAngularOnly(boolean angularOnly); | ||
|  | 
 | ||
|  | 	void enableMotor(boolean enableMotor); | ||
|  | 	void setMaxMotorImpulse(float maxMotorImpulse); | ||
|  | 	void setMotorTarget([Const,Ref] btQuaternion qAinB, float dt); | ||
|  | 	//void setMotorTarget(float targetAngle, float dt); | ||
|  | }; | ||
|  | btHingeConstraint implements btTypedConstraint; | ||
|  | 
 | ||
|  | interface btSliderConstraint { | ||
|  | 	void btSliderConstraint([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Const,Ref] btTransform frameInA, [Const,Ref] btTransform frameInB, boolean useLinearReferenceFrameA); | ||
|  | 	void btSliderConstraint([Ref] btRigidBody rbB, [Const,Ref] btTransform frameInB, boolean useLinearReferenceFrameA); | ||
|  | 	void setLowerLinLimit(float lowerLimit); | ||
|  | 	void setUpperLinLimit(float upperLimit); | ||
|  | 	void setLowerAngLimit(float lowerAngLimit); | ||
|  | 	void setUpperAngLimit(float upperAngLimit); | ||
|  | }; | ||
|  | btSliderConstraint implements btTypedConstraint; | ||
|  | 
 | ||
|  | interface btFixedConstraint { | ||
|  | 	void btFixedConstraint([Ref] btRigidBody rbA, [Ref] btRigidBody rbB, [Const,Ref] btTransform frameInA, [Const,Ref] btTransform frameInB); | ||
|  | }; | ||
|  | btFixedConstraint implements btTypedConstraint; | ||
|  | 
 | ||
|  | interface btConstraintSolver { | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDispatcherInfo { | ||
|  | 	attribute float m_timeStep; | ||
|  | 	attribute long m_stepCount; | ||
|  | 	attribute long m_dispatchFunc; | ||
|  | 	attribute float m_timeOfImpact; | ||
|  | 	attribute boolean m_useContinuous; | ||
|  | 	attribute boolean m_enableSatConvex; | ||
|  | 	attribute boolean m_enableSPU; | ||
|  | 	attribute boolean m_useEpa; | ||
|  | 	attribute float m_allowedCcdPenetration; | ||
|  | 	attribute boolean m_useConvexConservativeDistanceUtil; | ||
|  | 	attribute float m_convexConservativeDistanceThreshold; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btCollisionWorld { | ||
|  | 	btDispatcher getDispatcher(); | ||
|  | 	void rayTest([Const, Ref] btVector3 rayFromWorld, [Const, Ref] btVector3 rayToWorld, [Ref] RayResultCallback resultCallback); | ||
|  | 	btOverlappingPairCache getPairCache(); | ||
|  | 	[Ref] btDispatcherInfo getDispatchInfo(); | ||
|  | 	void addCollisionObject(btCollisionObject collisionObject, optional short collisionFilterGroup, optional short collisionFilterMask); | ||
|  | 	[Const] btBroadphaseInterface getBroadphase (); | ||
|  | 	void convexSweepTest([Const] btConvexShape castShape, [Const, Ref] btTransform from, [Const, Ref] btTransform to, [Ref] ConvexResultCallback resultCallback, float allowedCcdPenetration); | ||
|  | 	void contactPairTest([Const] btCollisionObject colObjA, [Const] btCollisionObject colObjB, [Ref] ContactResultCallback resultCallback); | ||
|  | 	void contactTest([Const] btCollisionObject colObj, [Ref] ContactResultCallback resultCallback); | ||
|  | 	void updateSingleAabb(btCollisionObject colObj); | ||
|  | 	void debugDrawWorld(); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btContactSolverInfo { | ||
|  | 	attribute long m_splitImpulse; | ||
|  | 	attribute long m_splitImpulsePenetrationThreshold; | ||
|  | 	attribute long m_numIterations; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDynamicsWorld { | ||
|  | 	void addAction(btActionInterface action); | ||
|  | 	void removeAction(btActionInterface action); | ||
|  | 	[Ref] btContactSolverInfo getSolverInfo(); | ||
|  | }; | ||
|  | btDynamicsWorld implements btCollisionWorld; | ||
|  | 
 | ||
|  | interface btDiscreteDynamicsWorld { | ||
|  | 	void btDiscreteDynamicsWorld(btDispatcher dispatcher, btBroadphaseInterface pairCache, btConstraintSolver constraintSolver, btCollisionConfiguration collisionConfiguration); | ||
|  | 
 | ||
|  | 	void setGravity([Ref] btVector3 gravity); | ||
|  | 	[Value] btVector3 getGravity(); | ||
|  | 
 | ||
|  | 	void addRigidBody(btRigidBody body); | ||
|  | 	void addRigidBody(btRigidBody body, short group, short mask); | ||
|  | 	void removeRigidBody(btRigidBody body); | ||
|  | 
 | ||
|  | 	void addConstraint(btTypedConstraint constraint, optional boolean disableCollisionsBetweenLinkedBodies); | ||
|  | 	void removeConstraint(btTypedConstraint constraint); | ||
|  | 
 | ||
|  | 	long stepSimulation(float timeStep, optional long maxSubSteps, optional float fixedTimeStep); | ||
|  | }; | ||
|  | btDiscreteDynamicsWorld implements btDynamicsWorld; | ||
|  | 
 | ||
|  | [Prefix="btRaycastVehicle::"] | ||
|  | interface btVehicleTuning { | ||
|  | 	void btVehicleTuning(); | ||
|  | 	attribute float m_suspensionStiffness; | ||
|  | 	attribute float m_suspensionCompression; | ||
|  | 	attribute float m_suspensionDamping; | ||
|  | 	attribute float m_maxSuspensionTravelCm; | ||
|  | 	attribute float m_frictionSlip; | ||
|  | 	attribute float m_maxSuspensionForce; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btDefaultVehicleRaycaster::"] | ||
|  | interface btVehicleRaycasterResult { | ||
|  | 		[Value] attribute btVector3 m_hitPointInWorld; | ||
|  | 		[Value] attribute btVector3 m_hitNormalInWorld; | ||
|  | 		attribute float m_distFraction; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btVehicleRaycaster { | ||
|  | 		void castRay ([Const, Ref] btVector3 from, [Const, Ref] btVector3 to, [Const, Ref] btVehicleRaycasterResult result); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDefaultVehicleRaycaster { | ||
|  | 	void btDefaultVehicleRaycaster(btDynamicsWorld world); | ||
|  | }; | ||
|  | btDefaultVehicleRaycaster implements btVehicleRaycaster; | ||
|  | 
 | ||
|  | [Prefix="btWheelInfo::"] | ||
|  | interface RaycastInfo { | ||
|  | 	[Value] attribute btVector3 m_contactNormalWS; | ||
|  | 	[Value] attribute btVector3 m_contactPointWS; | ||
|  | 	attribute float m_suspensionLength; | ||
|  | 	[Value] attribute btVector3 m_hardPointWS; | ||
|  | 	[Value] attribute btVector3 m_wheelDirectionWS; | ||
|  | 	[Value] attribute btVector3 m_wheelAxleWS; | ||
|  | 	attribute boolean m_isInContact; | ||
|  | 	attribute any m_groundObject; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btWheelInfoConstructionInfo { | ||
|  | 		[Value] attribute btVector3 m_chassisConnectionCS; | ||
|  | 		[Value] attribute btVector3 m_wheelDirectionCS; | ||
|  | 		[Value] attribute btVector3 m_wheelAxleCS; | ||
|  | 		attribute float m_suspensionRestLength; | ||
|  | 		attribute float m_maxSuspensionTravelCm; | ||
|  | 		attribute float m_wheelRadius; | ||
|  | 		attribute float m_suspensionStiffness; | ||
|  | 		attribute float m_wheelsDampingCompression; | ||
|  | 		attribute float m_wheelsDampingRelaxation; | ||
|  | 		attribute float m_frictionSlip; | ||
|  | 		attribute float m_maxSuspensionForce; | ||
|  | 		attribute boolean m_bIsFrontWheel; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btWheelInfo { | ||
|  | 	attribute float m_suspensionStiffness; | ||
|  | 	attribute float m_frictionSlip; | ||
|  | 	attribute float m_engineForce; | ||
|  | 	attribute float m_rollInfluence; | ||
|  | 	attribute float m_suspensionRestLength1; | ||
|  | 	attribute float m_wheelsRadius; | ||
|  | 	attribute float m_wheelsDampingCompression; | ||
|  | 	attribute float m_wheelsDampingRelaxation; | ||
|  | 	attribute float m_steering; | ||
|  | 	attribute float m_maxSuspensionForce; | ||
|  | 	attribute float m_maxSuspensionTravelCm; | ||
|  | 	attribute float m_wheelsSuspensionForce; | ||
|  | 	attribute boolean m_bIsFrontWheel; | ||
|  | 	[Value] attribute RaycastInfo m_raycastInfo; | ||
|  | 	[Value] attribute btVector3 m_chassisConnectionPointCS; | ||
|  | 	void btWheelInfo([Ref] btWheelInfoConstructionInfo ci); | ||
|  | 	float getSuspensionRestLength (); | ||
|  | 	void	updateWheel ([Const, Ref] btRigidBody chassis, [Ref] RaycastInfo raycastInfo); | ||
|  | 	[Value] attribute btTransform m_worldTransform; | ||
|  | 	[Value] attribute btVector3 m_wheelDirectionCS; | ||
|  | 	[Value] attribute btVector3 m_wheelAxleCS; | ||
|  | 	attribute float m_rotation; | ||
|  | 	attribute float m_deltaRotation; | ||
|  | 	attribute float m_brake; | ||
|  | 	attribute float	m_clippedInvContactDotSuspension; | ||
|  | 	attribute float	m_suspensionRelativeVelocity; | ||
|  | 	attribute float	m_skidInfo; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btActionInterface { | ||
|  | 		void updateAction (btCollisionWorld collisionWorld, float deltaTimeStep); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btKinematicCharacterController { | ||
|  | 	void btKinematicCharacterController(btPairCachingGhostObject ghostObject, btConvexShape convexShape, float stepHeight, [Const,Ref] optional btVector3 upAxis); | ||
|  | 
 | ||
|  | 	void setUp([Const,Ref] btVector3 axis); | ||
|  | 	void setWalkDirection ([Const,Ref] btVector3 walkDirection); | ||
|  | 	void setVelocityForTimeInterval ([Const,Ref] btVector3 velocity, float timeInterval); | ||
|  | 	//void reset (); | ||
|  | 	void warp ([Const, Ref]btVector3 origin); | ||
|  | 	void preStep (btCollisionWorld collisionWorld); | ||
|  | 	void playerStep (btCollisionWorld collisionWorld, float dt); | ||
|  | 	void setFallSpeed (float fallSpeed); | ||
|  | 	void setJumpSpeed (float jumpSpeed); | ||
|  | 	void setMaxJumpHeight (float maxJumpHeight); | ||
|  | 	boolean canJump (); | ||
|  | 	void jump (); | ||
|  | 	void setGravity ([Const,Ref] btVector3 gravity); | ||
|  | 	[Value] btVector3 getGravity (); | ||
|  | 	void setMaxSlope (float slopeRadians); | ||
|  | 	float getMaxSlope (); | ||
|  | 	btPairCachingGhostObject getGhostObject (); | ||
|  | 	void setUseGhostSweepTest (boolean useGhostObjectSweepTest); | ||
|  | 	boolean onGround (); | ||
|  | }; | ||
|  | btKinematicCharacterController implements btActionInterface; | ||
|  | 
 | ||
|  | interface btRaycastVehicle { | ||
|  | 	void btRaycastVehicle([Const, Ref] btVehicleTuning tuning, btRigidBody chassis, btVehicleRaycaster raycaster); | ||
|  | 	void applyEngineForce(float force, long wheel); | ||
|  | 	void setSteeringValue(float steering, long wheel); | ||
|  | 	[Const, Ref] btTransform getWheelTransformWS(long wheelIndex); | ||
|  | 	void updateWheelTransform(long wheelIndex, boolean interpolatedTransform); | ||
|  | 	[Ref] btWheelInfo addWheel([Const, Ref] btVector3 connectionPointCS0, [Const, Ref] btVector3 wheelDirectionCS0, [Const, Ref] btVector3 wheelAxleCS, float suspensionRestLength, float wheelRadius, [Const, Ref] btVehicleTuning tuning, boolean isFrontWheel); | ||
|  | 	long getNumWheels(); | ||
|  | 	btRigidBody getRigidBody(); | ||
|  | 	[Ref] btWheelInfo getWheelInfo(long index); | ||
|  | 	void setBrake(float brake, long wheelIndex); | ||
|  | 	void setCoordinateSystem(long rightIndex, long upIndex, long forwardIndex); | ||
|  | 	float getCurrentSpeedKmHour(); | ||
|  | 	[Const, Ref] btTransform getChassisWorldTransform(); | ||
|  | 	float rayCast([Ref] btWheelInfo wheel); | ||
|  | 	void updateVehicle(float step); | ||
|  | 	void resetSuspension(); | ||
|  | 	float getSteeringValue(long wheel); | ||
|  | 	void updateWheelTransformsWS([Ref] btWheelInfo wheel, optional boolean interpolatedTransform); | ||
|  | 	void setPitchControl(float pitch); | ||
|  | 	void updateSuspension(float deltaTime); | ||
|  | 	void updateFriction(float timeStep); | ||
|  | 	long getRightAxis(); | ||
|  | 	long getUpAxis(); | ||
|  | 	long getForwardAxis(); | ||
|  | 	[Value] btVector3 getForwardVector(); | ||
|  | 	long getUserConstraintType(); | ||
|  | 	void setUserConstraintType(long userConstraintType); | ||
|  | 	void setUserConstraintId(long uid); | ||
|  | 	long getUserConstraintId(); | ||
|  | }; | ||
|  | btRaycastVehicle implements btActionInterface; | ||
|  | 
 | ||
|  | interface btGhostObject { | ||
|  | 	void btGhostObject(); | ||
|  | 	long getNumOverlappingObjects(); | ||
|  | 	btCollisionObject getOverlappingObject(long index); | ||
|  | }; | ||
|  | btGhostObject implements btCollisionObject; | ||
|  | 
 | ||
|  | interface btPairCachingGhostObject { | ||
|  | 	void btPairCachingGhostObject(); | ||
|  | }; | ||
|  | btPairCachingGhostObject implements btGhostObject; | ||
|  | 
 | ||
|  | interface btGhostPairCallback { | ||
|  | 	void btGhostPairCallback(); | ||
|  | }; | ||
|  | 
 | ||
|  | 
 | ||
|  | // soft bodies | ||
|  | 
 | ||
|  | interface btSoftBodyWorldInfo { | ||
|  | 	void btSoftBodyWorldInfo(); | ||
|  | 	attribute float air_density; | ||
|  | 	attribute float water_density; | ||
|  | 	attribute float water_offset; | ||
|  | 	attribute float m_maxDisplacement; | ||
|  | 	[Value] attribute btVector3 water_normal; | ||
|  | 	attribute btBroadphaseInterface m_broadphase; | ||
|  | 	attribute btDispatcher m_dispatcher; | ||
|  | 	[Value] attribute btVector3 m_gravity; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btSoftBody::"] | ||
|  | interface Node { | ||
|  | 	[Value] attribute btVector3 m_x; | ||
|  | 	[Value] attribute btVector3 m_n; | ||
|  | }; | ||
|  | 
 | ||
|  | 
 | ||
|  | [Prefix="btSoftBody::"] | ||
|  | interface tNodeArray { | ||
|  | 	[Const] long size(); | ||
|  | 	[Const, Ref] Node at(long n); | ||
|  |  }; | ||
|  | 
 | ||
|  | [Prefix="btSoftBody::"] | ||
|  | interface Material { | ||
|  | 	attribute float m_kLST; | ||
|  | 	attribute float m_kAST; | ||
|  | 	attribute float m_kVST; | ||
|  | 	attribute long m_flags; | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btSoftBody::"] | ||
|  | interface tMaterialArray { | ||
|  | 	[Const] long size(); | ||
|  | 	Material at(long n); | ||
|  | }; | ||
|  | 
 | ||
|  | [Prefix="btSoftBody::"] | ||
|  | interface Config { | ||
|  | 	attribute float kVCF; | ||
|  | 	attribute float kDP; | ||
|  | 	attribute float kDG; | ||
|  | 	attribute float kLF; | ||
|  | 	attribute float kPR; | ||
|  | 	attribute float kVC; | ||
|  | 	attribute float kDF; | ||
|  | 	attribute float kMT; | ||
|  | 	attribute float kCHR; | ||
|  | 	attribute float kKHR; | ||
|  | 	attribute float kSHR; | ||
|  | 	attribute float kAHR; | ||
|  | 	attribute float kSRHR_CL; | ||
|  | 	attribute float kSKHR_CL; | ||
|  | 	attribute float kSSHR_CL; | ||
|  | 	attribute float kSR_SPLT_CL; | ||
|  | 	attribute float kSK_SPLT_CL; | ||
|  | 	attribute float kSS_SPLT_CL; | ||
|  | 	attribute float maxvolume; | ||
|  | 	attribute float timescale; | ||
|  | 	attribute long viterations; | ||
|  | 	attribute long piterations; | ||
|  | 	attribute long diterations; | ||
|  | 	attribute long citerations; | ||
|  | 	attribute long collisions; | ||
|  | }; | ||
|  | 
 | ||
|  | interface btSoftBody { | ||
|  | 	void btSoftBody(btSoftBodyWorldInfo worldInfo, long node_count, btVector3 x, float[] m); | ||
|  | 	void btSoftBody(btSoftBodyWorldInfo worldInfo); | ||
|  | 	[Value] attribute Config m_cfg; | ||
|  | 	[Value] attribute tNodeArray m_nodes; | ||
|  | 	[Value] attribute tMaterialArray m_materials; | ||
|  | 
 | ||
|  | 	[Const] boolean checkLink( long node0, long node1); | ||
|  | 	[Const] boolean checkFace( long node0, long node1, long node2); | ||
|  | 	Material appendMaterial(); | ||
|  | 	void appendNode( [Const, Ref] btVector3 x, float m); | ||
|  | 	void updateBounds(); | ||
|  | 	void appendLink( long node0, long node1, Material mat, boolean bcheckexist); | ||
|  | 	void appendFace( long node0, long node1, long node2, Material mat); | ||
|  | 	void appendTetra( long node0, long node1, long node2, long node3, Material mat); | ||
|  | 	void appendAnchor( long node, btRigidBody body, boolean disableCollisionBetweenLinkedBodies, float influence); | ||
|  | 	[Const] float getTotalMass(); | ||
|  | 	void setTotalMass( float mass, boolean fromfaces); | ||
|  | 	void setMass(long node, float mass); | ||
|  | 	void transform( [Const, Ref] btTransform trs); | ||
|  | 	void translate( [Const, Ref] btVector3 trs); | ||
|  | 	void rotate( [Const, Ref] btQuaternion rot); | ||
|  | 	void scale(	[Const, Ref] btVector3 scl); | ||
|  | 	long generateClusters(long k, optional long maxiterations); | ||
|  | 	btSoftBody upcast([Const] btCollisionObject colObj); | ||
|  | }; | ||
|  | btSoftBody implements btCollisionObject; | ||
|  | 
 | ||
|  | interface btSoftBodyRigidBodyCollisionConfiguration { | ||
|  | 	void btSoftBodyRigidBodyCollisionConfiguration([Ref] optional btDefaultCollisionConstructionInfo info); | ||
|  | }; | ||
|  | btSoftBodyRigidBodyCollisionConfiguration implements btDefaultCollisionConfiguration; | ||
|  | 
 | ||
|  | interface btSoftBodySolver { | ||
|  | }; | ||
|  | 
 | ||
|  | interface btDefaultSoftBodySolver { | ||
|  | 	void btDefaultSoftBodySolver (); | ||
|  | }; | ||
|  | btDefaultSoftBodySolver implements btSoftBodySolver; | ||
|  | 
 | ||
|  | interface btSoftBodyArray { | ||
|  | 	[Const] long size(); | ||
|  | 	[Const] btSoftBody at(long n); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btSoftRigidDynamicsWorld { | ||
|  | 	void btSoftRigidDynamicsWorld(btDispatcher dispatcher, btBroadphaseInterface pairCache, btConstraintSolver constraintSolver, btCollisionConfiguration collisionConfiguration, btSoftBodySolver softBodySolver); | ||
|  | 
 | ||
|  | 	void addSoftBody(btSoftBody body, short collisionFilterGroup, short collisionFilterMask); | ||
|  | 	void removeSoftBody(btSoftBody body); | ||
|  | 	void removeCollisionObject(btCollisionObject collisionObject); | ||
|  | 
 | ||
|  | 	[Ref] btSoftBodyWorldInfo getWorldInfo(); | ||
|  | 	[Ref] btSoftBodyArray getSoftBodyArray(); | ||
|  | }; | ||
|  | btSoftRigidDynamicsWorld implements btDiscreteDynamicsWorld; | ||
|  | 
 | ||
|  | interface btSoftBodyHelpers { | ||
|  | 	void btSoftBodyHelpers(); | ||
|  | 
 | ||
|  | 	btSoftBody CreateRope([Ref] btSoftBodyWorldInfo worldInfo, [Const, Ref] btVector3 from, [Const, Ref] btVector3 to, long res, long fixeds); | ||
|  | 	btSoftBody CreatePatch([Ref] btSoftBodyWorldInfo worldInfo, [Const, Ref] btVector3 corner00, [Const, Ref] btVector3 corner10, [Const, Ref] btVector3 corner01, [Const, Ref] btVector3 corner11, long resx, long resy, long fixeds, boolean gendiags); | ||
|  | 	btSoftBody CreatePatchUV([Ref] btSoftBodyWorldInfo worldInfo, [Const, Ref] btVector3 corner00, [Const, Ref] btVector3 corner10, [Const, Ref] btVector3 corner01, [Const, Ref] btVector3 corner11, long resx, long resy, long fixeds, boolean gendiags, float[] tex_coords); | ||
|  | 	btSoftBody CreateEllipsoid([Ref] btSoftBodyWorldInfo worldInfo, [Const, Ref] btVector3 center, [Const, Ref] btVector3 radius, long res); | ||
|  | 	btSoftBody CreateFromTriMesh([Ref] btSoftBodyWorldInfo worldInfo, float[] vertices, long[] triangles, long ntriangles, boolean randomizeConstraints); | ||
|  | 	btSoftBody CreateFromConvexHull([Ref] btSoftBodyWorldInfo worldInfo, [Const] btVector3 vertices, long nvertices, boolean randomizeConstraints); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btFloatArray { | ||
|  | 	attribute float[] raw; | ||
|  | 	void btFloatArray(long num); | ||
|  | 	[Const] long size(); | ||
|  | 	[Const] float at(long n); | ||
|  | 	[Const] long set(long n, float value); | ||
|  | }; | ||
|  | 
 | ||
|  | interface btIntArray { | ||
|  | 	attribute long[] raw; | ||
|  | 	void btIntArray(long num); | ||
|  | 	[Const] long size(); | ||
|  | 	[Const] long at(long n); | ||
|  | 	[Const] long set(long n, long value); | ||
|  | }; |