True Axis Physics Engine Include!

Developed or developing a new product in PureBasic? Tell the world about it.
Dreglor
Enthusiast
Enthusiast
Posts: 759
Joined: Sat Aug 02, 2003 11:22 pm
Location: OR, USA

True Axis Physics Engine Include!

Post by Dreglor »

This Physic engine I Like becasue it has some good speed as well as good accurcy and its main goal is Collision detection, which it already has done well at.
this engine is quite new but has 150 features to be accessed :)

All of the functions were converted from a c source and by a program I wrote to do the bulk of it then I hammered out the bugs it created :P
it still isn't perfect but it works.

http://trueaxis.com/
download the demos
and the SDK if you want the dll ;)

Questions? Comments? notice a bug? Please tell

I am Currently working on the example program that is also converted from a c source.
I almost got it working if you guys want to see it and take a wack at it.
just ask I'll post it and maybe you guys see what I am doing wrong :P

just a few notes: if the procedure is returning a pointer to a structure not declared here then it just a address to a Internal object
also for people not to familar with pointers and the such, when a procedure is returning a pointer to structure you have name your structured varible as such;

Code: Select all

*blah.astruc
otherwise it won't work
also if your sending a structure thru a procedure just send it as is no special pointer symbols needed. the procedure declare handles that for you, becasue if do lets say put a "@" on all the structures being passed it will crash

Code: Select all

;/ TrueAxis Physics Dll Wrapper
;/ By Dreglor
;/ 3-22-05

;-Notes

;C Type lenghts
;
;Void=0
;Char=1
;Signed Char=1
;Short=2
;Signed Short=2
;Int=4
;Unsigned Int=4
;Long=4
;Unsigned Long=4
;Long Long=8
;Unsigned Long Long=8

;Float=4
;Double=8
;Long Double=8
;
;Ta types to keep track of
;unsigned char=ta_u8=1
;unsigned short=ta_u16=2
;unsigned int=ta_u32=4
;unsigned Long Long=ta_u64=8
;signed Char=ta_s8=1
;short=ta_s16=2
;int=ta_s32=4
;Long Long=ta_s64=8
;Char=TaChar=1
;Int=TaBool=4

;-Constants

#TA_PHYSICS_FLAG_DYNAMIC_OBJECTS=1
#TA_PHYSICS_FLAG_STATIC_OBJECTS=2
#TA_PHYSICS_FLAG_ANIMATED_OBJECTS=4
#TA_PHYSICS_FLAG_ALL_OBJECTS=7;#TA_PHYSICS_FLAG_DYNAMIC_OBJECTS|#TA_PHYSICS_FLAG_STATIC_OBJECTS|#TA_PHYSICS_FLAG_ANIMATED_OBJECTS
#TA_PHYSICS_FLAG_ALL_NON_DYNAMIC_OBJECTS=6;#TA_PHYSICS_FLAG_STATIC_OBJECTS|#TA_PHYSICS_FLAG_ANIMATED_OBJECTS
#TA_PHYSICS_FLAG_GHOST_OBJECTS=8
#TA_PHYSICS_FLAG_RENDER_COLLISIONS=16
#TA_PHYSICS_FLAG_SPACIAL_DIVISION_MASK=224;32+64+128 
#TA_PHYSICS_FLAG_XY_COLLISION_GRID=32
#TA_PHYSICS_FLAG_XZ_COLLISION_GRID=64
#TA_PHYSICS_FLAG_YZ_COLLISION_GRID=96
#TA_PHYSICS_FLAG_DYNAMIC_OCTREE=128
#TA_TRUE=1
#TA_FALSE=0
#TA_DLL=0

;-Structure

Structure taVec3 ;TA_ALIGN_16
  x.f
  y.f
  z.f
  padding.f ;err?
EndStructure

Structure taAABB
  v3Center.taVec3
  v3Extent.taVec3
EndStructure

Structure TaMat33
  v3X.taVec3
  v3Y.taVec3
  v3Z.taVec3
EndStructure

Structure TaMFrame
  m33Rotation.TaMat33
  v3Translation.taVec3
EndStructure

Structure TaEulerAngles
  x.f
  y.f
  z.f
EndStructure

;-Declares

Declare.b TaCollisionObjectAABBMesh_Release(*pTaCollisionObjectAABBMesh.l);Returns Nothing
Declare.l TaCollisionObjectAABBMesh_CreateNew();Returns a Pointer to TaCollisionObjectAABBMesh
Declare.l TaCollisionObjectAABBMesh_GetAABB(*pTaCollisionObjectAABBMesh.l);Returns a Pointer to TaAABB
Declare.b TaCollisionObjectAABBMesh_TestLineForCollision(*pTaCollisionObjectAABBMesh.l, *v3Start.taVec3, *v3Normal.taVec3, fLength.f, *collision.l);Returns Nothing
Declare.b TaCollisionObjectAABBMesh_FinishedAddingGeometry(*pTaCollisionObjectAABBMesh.l);Returns Nothing
Declare.b TaCollisionObjectAABBMesh_AddPolygon(*pTaCollisionObjectAABBMesh.l, nNumVertices.l, pnIndexList.l, nAttribute.l);Returns Nothing
Declare.b TaCollisionObjectAABBMesh_AddVertex(*pTaCollisionObjectAABBMesh.l, *v3Pos.taVec3);Returns Nothing
Declare.b TaCollisionObjectAABBMesh_Render(*pTaCollisionObjectAABBMesh.l);Returns Nothing
Declare.b TaCollisionObjectAABBMesh_Finalise(*pTaCollisionObjectAABBMesh.l);Returns Nothing
Declare.b TaCollisionObjectAABBMesh_Initialise(*pTaCollisionObjectAABBMesh.l, nNumVertices.l, nNumPolygons.l, nNumPolygonIndices.l);Returns Nothing
Declare.l TaCollisionObjectAABBMesh_GetTaCollisionObjectComplex(*pTaCollisionObjectAABBMesh.l);Returns a Pointer to TaCollisionObjectComplex
Declare.l TaStaticObject_GetMovedListNext(*pTaStaticObject.l);Returns a Pointer to TaStaticObject
Declare.l TaStaticObject_GetMovedListHead();Returns a Pointer to TaStaticObject
Declare.b TaStaticObject_CalculateWorldAABB(*pTaStaticObject.l);Returns Nothing
Declare.b TaStaticObject_UpdateMovedObjects();Returns Nothing
Declare.b TaStaticObject_Release(*pTaStaticObject.l);Returns Nothing
Declare.l TaStaticObject_CreateNew();Returns a Pointer to TaStaticObject
Declare.b TaStaticObject_TestLineForCollision(*pTaStaticObject.l, *v3Start.taVec3, *v3Normal.taVec3, fLength.f, *collision.l);Returns Nothing
Declare.l TaStaticObject_GetWorldAABB(*pTaStaticObject.l);Returns a Pointer to TaAABB
Declare.l TaStaticObject_GetCollisionObject(*pTaStaticObject.l);Returns a Pointer to TaCollisionObjectComplex
Declare.l TaStaticObject_AtInitialPosition(*pTaStaticObject.l);Returns a Pointer to TaBoo
Declare.b TaStaticObject_SetNextFrame(*pTaStaticObject.l, *nextFrame.TaMFrame);Returns Nothing
Declare.l TaStaticObject_GetNextFrame(*pTaStaticObject.l);Returns a Pointer to TaMFrame
Declare.b TaStaticObject_SetFrame(*pTaStaticObject.l, *frame.TaMFrame);Returns Nothing
Declare.l TaStaticObject_GetFrame(*pTaStaticObject.l);Returns a Pointer to TaMFrame
Declare.b TaStaticObject_Finalise(*pTaStaticObject.l);Returns Nothing
Declare.b TaStaticObject_Initialise(*pTaStaticObject.l, *pCollisionObjectComplex.l);Returns Nothing
Declare.b TaDynamicObject_Release(*pTaDynamicObject.l);Returns Nothing
Declare.l TaDynamicObject_CreateNew();Returns a Pointer to TaDynamicObject
Declare.l TaDynamicObject_CreateUserGroup();Returns a Long
Declare.l TaDynamicObject_GetCollisionUserData(*pTaDynamicObject.l);Returns a Pointer to void
Declare.b TaDynamicObject_SetCollisionUserData(*pTaDynamicObject.l, *pData.l);Returns Nothing
Declare.b TaDynamicObject_AllowCollisionWithUserGroupItemId(*pTaDynamicObject.l, nUserGroupItemId.l);Returns Nothing
Declare.b TaDynamicObject_DisallowCollisionWithUserGroupItemId(*pTaDynamicObject.l, nUserGroupItemId.l);Returns Nothing
Declare.b TaDynamicObject_SetUserGroupItemId(*pTaDynamicObject.l, nUserGroupItemId.l);Returns Nothing
Declare.b TaDynamicObject_SetUserGroup(*pTaDynamicObject.l, nUserGroupId.l);Returns Nothing
Declare.l TaDynamicObject_IsAllowedToCollideWith(*pTaDynamicObject.l, *otherObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_RemoveJointsToObject(*pTaDynamicObject.l, *pDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_RemoveJoint(*pTaDynamicObject.l, *joint.l);Returns Nothing
Declare.b TaDynamicObject_RemoveAllJoints(*pTaDynamicObject.l);Returns Nothing
Declare.l TaDynamicObject_AddJointTypeSlider(*pTaDynamicObject.l, *pOtherObject.l, *v3LocalPos.taVec3, *v3StartPosOnOtherObject.taVec3, *v3EndPosPosOnOtherObject.taVec3);Returns a Pointer to TaPhysicsJoint
Declare.l TaDynamicObject_AddJointTypeSquareSocket(*pTaDynamicObject.l, *pOtherObject.l, *v3LocalPos.taVec3, *v3LocalPosOnOtherObject.taVec3, *m33DefaultRotationOfOtherObject.TaMat33, fMinX.f, fMaxX.f, fMinY.f, fMaxY.f, fMinZ.f, fMaxZ.f);Returns a Pointer to TaPhysicsJoint
Declare.l TaDynamicObject_AddJointTypeLimitedSocket(*pTaDynamicObject.l, *pOtherObject.l, *v3LocalPos.taVec3, *v3LocalPosOnOtherObject.taVec3, *m33DefaultRotationOfOtherObject.TaMat33, fMaxAngleY.f, fMaxAngleXZ.f);Returns a Pointer to TaPhysicsJoint
Declare.l TaDynamicObject_AddJointTypeSocket(*pTaDynamicObject.l, *pOtherObject.l, *v3LocalPos.taVec3, *v3LocalPosOnOtherObject.taVec3, *v3LimitCenterNormal.taVec3, *v3LimitCenterNormalOnOtherObject.taVec3, fMaxAngle.f);Returns a Pointer to TaPhysicsJoint
Declare.l TaDynamicObject_AddJointTypeHinge(*pTaDynamicObject.l, *pOtherObject.l, *v3LocalPos.taVec3, *v3LocalPosOnOtherObject.taVec3, *v3LocalHingeAxis.taVec3, *v3LocalHingeNormal.taVec3, fMinAngle.f, fMaxAngle.f);Returns a Pointer to TaPhysicsJoint
Declare.l TaDynamicObject_AddJoint(*pTaDynamicObject.l, *pOtherObject.l, *v3LocalPos.taVec3, *v3LocalPosOnOtherObject.taVec3, *m33DefaultRotationOfOtherObject.TaMat33, *minAngles.TaEulerAngles, *maxAngles.TaEulerAngles);Returns a Pointer to TaPhysicsJoint
Declare.l TaDynamicObject_GetLineCollision(*pTaDynamicObject.l, nIndex.l);Returns a Pointer to TaLineIntersection
Declare.l TaDynamicObject_GetNumLineCollisions(*pTaDynamicObject.l);Returns a Long
Declare.l TaDynamicObject_TestLineForCollision(*pTaDynamicObject.l, *v3Start.taVec3, *v3Normal.taVec3, fLength.f, *collision.l);Returns a Pointer to TaBoo
Declare.l TaDynamicObject_GetCollisionObject(*pTaDynamicObject.l);Returns a Pointer to TaCollisionObjectCombo
Declare.l TaDynamicObject_GetWorldAABB(*pTaDynamicObject.l);Returns a Pointer to TaAABB
Declare.b TaDynamicObject_CalculateWorldAABB(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_Render(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_ApplyNextFrame(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_ApplyVelocityToNextFrame(*pTaDynamicObject.l, fDt.f);Returns Nothing
Declare.b TaDynamicObject_Extrapolate(*pTaDynamicObject.l, *frameA.TaMFrame, *frameB.TaMFrame, *v3VelocityA.taVec3, *v3VelocityB.taVec3, fDt.f, fExtrapolation.f);Returns Nothing
Declare.b TaDynamicObject_UpdateGraphics(*pTaDynamicObject.l, fDt.f, fInterpolant.f);Returns Nothing
Declare.b TaDynamicObject_Update(*pTaDynamicObject.l, fDt.f);Returns Nothing
Declare.b TaDynamicObject_UpdateWorldSpaceInertialTensor(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_Clear(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_ClearForceAndTorque(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_ApplyForceAndTorqueToVelocities(*pTaDynamicObject.l, fDt.f);Returns Nothing
Declare.b TaDynamicObject_AccumulateLinearForce(*pTaDynamicObject.l, *v3WorldForce.taVec3);Returns Nothing
Declare.b TaDynamicObject_AccumulateForceAndTorque(*pTaDynamicObject.l, *v3WorldForce.taVec3, *v3WorldPosition.taVec3);Returns Nothing
Declare.b TaDynamicObject_AccumulateGravity(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_AssertForceAndTorqueCleared(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_ApplyAngularImpulse(*pTaDynamicObject.l, *v3WorldAngularImpulse.taVec3);Returns Nothing
Declare.b TaDynamicObject_ApplyLinearImpulse(*pTaDynamicObject.l, *v3WorldLinearImpulse.taVec3);Returns Nothing
Declare.b TaDynamicObject_ApplyImpulse(*pTaDynamicObject.l, *v3WorldImpulse.taVec3, *v3WorldPosition.taVec3);Returns Nothing
Declare.l TaDynamicObject_GetVelocityAtWorldPosition(*pTaDynamicObject.l, *v3Position.taVec3);Returns a Pointer to TaVec
Declare.b TaDynamicObject_SetAngularVelocity(*pTaDynamicObject.l, *v3AngularVelocity.taVec3);Returns Nothing
Declare.l TaDynamicObject_GetAngularVelocity(*pTaDynamicObject.l);Returns a Pointer to TaVec3
Declare.b TaDynamicObject_SetLinearVelocity(*pTaDynamicObject.l, *v3LinearVelocity.taVec3);Returns Nothing
Declare.l TaDynamicObject_GetLinearVelocity(*pTaDynamicObject.l);Returns a Pointer to TaVec3
Declare.l TaDynamicObject_IsInMovingList(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.l TaDynamicObject_GetID(*pTaDynamicObject.l);Returns a Long
Declare.b TaDynamicObject_SetID(*pTaDynamicObject.l, nId.l);Returns Nothing
Declare.f TaDynamicObject_GetRestTimeMultiplier(*pTaDynamicObject.l);Returns a float
Declare.b TaDynamicObject_SetRestTimeMultiplier(*pTaDynamicObject.l, fRestTimeMultiplier.f);Returns Nothing
Declare.l TaDynamicObject_Ghost(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetGhost(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.l TaDynamicObject_UpdateDisabled(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetUpdateDisabled(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.l TaDynamicObject_CollisionDisabled(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetCollisionDisabled(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.l TaDynamicObject_RigidFrictionDisabled(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetRigidFrictionDisabled(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.l TaDynamicObject_ExtraStability(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetExtraStability(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.l TaDynamicObject_MovementDisabled(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetMovementDisabled(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.l TaDynamicObject_RotationDisabled(*pTaDynamicObject.l);Returns a Pointer to TaBoo
Declare.b TaDynamicObject_SetRotationDisabled(*pTaDynamicObject.l, bValue.l);Returns Nothing
Declare.f TaDynamicObject_GetGravityMult(*pTaDynamicObject.l);Returns a float
Declare.b TaDynamicObject_SetGravityMult(*pTaDynamicObject.l, fGravityMult.f);Returns Nothing
Declare.f TaDynamicObject_GetRestitution(*pTaDynamicObject.l);Returns a float
Declare.b TaDynamicObject_SetRestitution(*pTaDynamicObject.l, fRestitution.f);Returns Nothing
Declare.f TaDynamicObject_GetFriction(*pTaDynamicObject.l);Returns a float
Declare.b TaDynamicObject_SetFriction(*pTaDynamicObject.l, fFriction.f);Returns Nothing
Declare.l TaDynamicObject_GetWorldSpaceInverseInertia(*pTaDynamicObject.l);Returns a Pointer to TaMat33
Declare.l TaDynamicObject_GetWorldSpaceInertia(*pTaDynamicObject.l);Returns a Pointer to TaMat33
Declare.l TaDynamicObject_GetInverseInertia(*pTaDynamicObject.l);Returns a Pointer to TaMat33
Declare.b TaDynamicObject_SetInertiaFromBox2(*pTaDynamicObject.l, fX.f, fY.f, fZ.f);Returns Nothing
Declare.b TaDynamicObject_SetInertiaFromBox(*pTaDynamicObject.l, *aabb.taAABB);Returns Nothing
Declare.l TaDynamicObject_GetInertia(*pTaDynamicObject.l);Returns a Pointer to TaMat33
Declare.b TaDynamicObject_SetMass(*pTaDynamicObject.l, fMass.f);Returns Nothing
Declare.f TaDynamicObject_GetInverseMass(*pTaDynamicObject.l);Returns a float
Declare.f TaDynamicObject_GetMass(*pTaDynamicObject.l);Returns a float
Declare.b TaDynamicObject_SetFrameDirect(*pTaDynamicObject.l, *frame.TaMFrame);Returns Nothing
Declare.b TaDynamicObject_SetCenterOffset(*pTaDynamicObject.l, *v3CenterOffset.taVec3);Returns Nothing
Declare.l TaDynamicObject_GetCenterOffset(*pTaDynamicObject.l);Returns a Pointer to TaVec3
Declare.l TaDynamicObject_GetNextCenterOfMass(*pTaDynamicObject.l);Returns a Pointer to TaVec3
Declare.l TaDynamicObject_GetCenterOfMass(*pTaDynamicObject.l);Returns a Pointer to TaVec3
Declare.b TaDynamicObject_SetPosition(*pTaDynamicObject.l, *v3Position.taVec3);Returns Nothing
Declare.l TaDynamicObject_GetPosition(*pTaDynamicObject.l);Returns a Pointer to TaVec3
Declare.l TaDynamicObject_GetGraphicsFrame(*pTaDynamicObject.l);Returns a Pointer to TaMFrame
Declare.l TaDynamicObject_GetPreviousFrame(*pTaDynamicObject.l);Returns a Pointer to TaMFrame
Declare.l TaDynamicObject_GetNextFrame(*pTaDynamicObject.l);Returns a Pointer to TaMFrame
Declare.b TaDynamicObject_SetFrame(*pTaDynamicObject.l, *frame.TaMFrame);Returns Nothing
Declare.l TaDynamicObject_GetFrame(*pTaDynamicObject.l);Returns a Pointer to TaMFrame
Declare.b TaDynamicObject_Finalise(*pTaDynamicObject.l);Returns Nothing
Declare.b TaDynamicObject_Initialise2(*pTaDynamicObject.l, *pCollisionObjectCombo.l);Returns Nothing
Declare.b TaDynamicObject_InitialiseAsACylinder(*pTaDynamicObject.l, *v3Start.taVec3, *v3End.taVec3, fRadius.f);Returns Nothing
Declare.b TaDynamicObject_InitialiseAsASphere(*pTaDynamicObject.l, *v3Center.taVec3, fRadius.f);Returns Nothing
Declare.b TaDynamicObject_InitialiseAsACapsule(*pTaDynamicObject.l, *v3Start.taVec3, *v3End.taVec3, fRadius.f);Returns Nothing
Declare.b TaDynamicObject_InitialiseAsABox(*pTaDynamicObject.l, *aabb.taAABB);Returns Nothing
Declare.b TaDynamicObject_Initialise(*pTaDynamicObject.l, szFileName.b);Returns Nothing
Declare.b TaPhysics_SetRenderCollisionsEnabled(*pTaPhysics.l, bValue.l);Returns Nothing
Declare.b TaPhysics_SetGravity(*pTaPhysics.l, *v3Gravity.taVec3);Returns Nothing
Declare.l TaPhysics_GetGravity(*pTaPhysics.l);Returns a Pointer to TaVec3
Declare.l TaPhysics_TestLineForCollision2(*pTaPhysics.l, *v3Start.taVec3, *v3End.taVec3, nFlags.l);Returns a Pointer to TaCollisio
Declare.l TaPhysics_TestLineForCollision(*pTaPhysics.l, *v3Start.taVec3, *v3Normal.taVec3, fLength.f, nFlags.l);Returns a Pointer to TaCollisio
Declare.b TaPhysics_SetDynamicObjectAtRest(*pTaPhysics.l, *pDynamicObject.l);Returns Nothing
Declare.b TaPhysics_SetDynamicObjectIsMoving(*pTaPhysics.l, *pDynamicObject.l);Returns Nothing
Declare.b TaPhysics_RemoveDynamicObject(*pTaPhysics.l, *pDynamicObject.l);Returns Nothing
Declare.b TaPhysics_AddDynamicObject(*pTaPhysics.l, *pDynamicObject.l, bInitiallyMoving.l);Returns Nothing
Declare.l TaPhysics_GetDefaultSurfaceAttribute(*pTaPhysics.l);Returns a Pointer to TaSurfaceAttribute
Declare.b TaPhysics_SetDefaultSurfaceAttribute(*pTaPhysics.l, *pSurfaceAttribute.l);Returns Nothing
Declare.l TaPhysics_GetNumSurfaceAttributes(*pTaPhysics.l);Returns a Long
Declare.l TaPhysics_GetSurfaceAttribute(*pTaPhysics.l, nIndex.l);Returns a Pointer to TaSurfaceAttribute
Declare.b TaPhysics_RemoveSurfaceAttribute(*pTaPhysics.l, nIndex.l);Returns Nothing
Declare.l TaPhysics_AddSurfaceAttribute2(*pTaPhysics.l);Returns a Long
Declare.l TaPhysics_AddSurfaceAttribute(*pTaPhysics.l, *pSurfaceAttribute.l);Returns a Long
Declare.b TaPhysics_RemoveStaticObject(*pTaPhysics.l, *pStaticObject.l);Returns Nothing
Declare.b TaPhysics_AddStaticObject(*pTaPhysics.l, *pStaticObject.l);Returns Nothing
Declare.b TaPhysics_Render(*pTaPhysics.l);Returns Nothing
Declare.b TaPhysics_Update(*pTaPhysics.l, fDt.f);Returns Nothing
Declare.l TaPhysics_GetInstance();Returns a Pointer to TaPhysics
Declare.b TaPhysics_DestroyInstance();Returns Nothing
Declare.b TaPhysics_CreateInstance(*worldAABB.taAABB, *v3Gravity.taVec3, nFlags.l, fMinSpacialDivision.f, nSpacialDivisionMemory.l);Returns Nothing
Declare.b DeInitTA();Returns Nothing (closes the dll)
Declare.b InitTA();Returns a Bool (opens the DLL)

;-Procedures

Procedure.b InitTA() ;Returns a Bool (opens the DLL)
  If OpenLibrary(#TA_DLL,"TaPhysics.dll")
    ProcedureReturn 1
  Else
    ProcedureReturn 0
  EndIf
EndProcedure

Procedure.b DeInitTA() ;Returns Nothing (closes the dll)
  CloseLibrary(#TA_DLL)
EndProcedure

Procedure.b TaPhysics_CreateInstance(*worldAABB.taAABB,*v3Gravity.taVec3,nFlags.l,fMinSpacialDivision.f,nSpacialDivisionMemory.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_CreateInstance@20",*worldAABB,*v3Gravity,nFlags,fMinSpacialDivision,nSpacialDivisionMemory)
EndProcedure

Procedure.b TaPhysics_DestroyInstance() ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_DestroyInstance@0")
EndProcedure

Procedure.l TaPhysics_GetInstance() ;Returns a Pointer to TaPhysics
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_GetInstance@0")
EndProcedure

Procedure.b TaPhysics_Update(*pTaPhysics.l,fDt.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_Update@8",*pTaPhysics,fDt)
EndProcedure

Procedure.b TaPhysics_Render(*pTaPhysics.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_Render@4",*pTaPhysics)
EndProcedure

Procedure.b TaPhysics_AddStaticObject(*pTaPhysics.l,*pStaticObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_AddStaticObject@8",*pTaPhysics,*pStaticObject)
EndProcedure

Procedure.b TaPhysics_RemoveStaticObject(*pTaPhysics.l,*pStaticObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_RemoveStaticObject@8",*pTaPhysics,*pStaticObject)
EndProcedure

Procedure.l TaPhysics_AddSurfaceAttribute(*pTaPhysics.l,*pSurfaceAttribute.l) ;Returns a Long
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_AddSurfaceAttribute@8",*pTaPhysics,*pSurfaceAttribute)
EndProcedure

Procedure.l TaPhysics_AddSurfaceAttribute2(*pTaPhysics.l) ;Returns a Long
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_AddSurfaceAttribute2@4",*pTaPhysics)
EndProcedure

Procedure.b TaPhysics_RemoveSurfaceAttribute(*pTaPhysics.l,nIndex.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_RemoveSurfaceAttribute@8",*pTaPhysics,nIndex)
EndProcedure

Procedure.l TaPhysics_GetSurfaceAttribute(*pTaPhysics.l,nIndex.l) ;Returns a Pointer to TaSurfaceAttribute
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_GetSurfaceAttribute@8",*pTaPhysics,nIndex)
EndProcedure

Procedure.l TaPhysics_GetNumSurfaceAttributes(*pTaPhysics.l) ;Returns a Long
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_GetNumSurfaceAttributes@4",*pTaPhysics)
EndProcedure

Procedure.b TaPhysics_SetDefaultSurfaceAttribute(*pTaPhysics.l,*pSurfaceAttribute.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_SetDefaultSurfaceAttribute@8",*pTaPhysics,*pSurfaceAttribute)
EndProcedure

Procedure.l TaPhysics_GetDefaultSurfaceAttribute(*pTaPhysics.l) ;Returns a Pointer to TaSurfaceAttribute
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_GetDefaultSurfaceAttribute@4",*pTaPhysics)
EndProcedure

Procedure.b TaPhysics_AddDynamicObject(*pTaPhysics.l,*pDynamicObject.l,bInitiallyMoving.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_AddDynamicObject@12",*pTaPhysics,*pDynamicObject,*bInitiallyMoving)
EndProcedure

Procedure.b TaPhysics_RemoveDynamicObject(*pTaPhysics.l,*pDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_RemoveDynamicObject@8",*pTaPhysics,*pDynamicObject)
EndProcedure

Procedure.b TaPhysics_SetDynamicObjectIsMoving(*pTaPhysics.l,*pDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_SetDynamicObjectIsMoving@8",*pTaPhysics,*pDynamicObject)
EndProcedure

Procedure.b TaPhysics_SetDynamicObjectAtRest(*pTaPhysics.l,*pDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_SetDynamicObjectAtRest@8",*pTaPhysics,*pDynamicObject)
EndProcedure

Procedure.l TaPhysics_TestLineForCollision(*pTaPhysics.l,*v3Start.taVec3,*v3Normal.taVec3,fLength.f,nFlags.l) ;Returns a Pointer to TaCollisio
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_TestLineForCollision@20",*pTaPhysics,*v3Start,*v3Normal,fLength,nFlags)
EndProcedure

Procedure.l TaPhysics_TestLineForCollision2(*pTaPhysics.l,*v3Start.taVec3,*v3End.taVec3,nFlags.l) ;Returns a Pointer to TaCollisio
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_TestLineForCollision2@16",*pTaPhysics,*v3Start,*v3End,nFlags)
EndProcedure

Procedure.l TaPhysics_GetGravity(*pTaPhysics.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_GetGravity@4",*pTaPhysics)
EndProcedure

Procedure.b TaPhysics_SetGravity(*pTaPhysics.l,*v3Gravity.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_SetGravity@8",*pTaPhysics,*v3Gravity)
EndProcedure

Procedure.b TaPhysics_SetRenderCollisionsEnabled(*pTaPhysics.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaPhysics_SetRenderCollisionsEnabled@8",*pTaPhysics,*bValue)
EndProcedure

Procedure.b TaDynamicObject_Initialise(*pTaDynamicObject.l,szFileName.b) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Initialise@8",*pTaDynamicObject,*szFileName)
EndProcedure

Procedure.b TaDynamicObject_InitialiseAsABox(*pTaDynamicObject.l,*aabb.taAABB) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_InitialiseAsABox@8",*pTaDynamicObject,*aabb)
EndProcedure

Procedure.b TaDynamicObject_InitialiseAsACapsule(*pTaDynamicObject.l,*v3Start.taVec3,*v3End.taVec3,fRadius.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_InitialiseAsACapsule@16",*pTaDynamicObject,*v3Start,*v3End,fRadius)
EndProcedure

Procedure.b TaDynamicObject_InitialiseAsASphere(*pTaDynamicObject.l,*v3Center.taVec3,fRadius.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_InitialiseAsASphere@12",*pTaDynamicObject,*v3Center,fRadius)
EndProcedure

Procedure.b TaDynamicObject_InitialiseAsACylinder(*pTaDynamicObject.l,*v3Start.taVec3,*v3End.taVec3,fRadius.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_InitialiseAsACylinder@16",*pTaDynamicObject,*v3Start,*v3End,fRadius)
EndProcedure

Procedure.b TaDynamicObject_Initialise2(*pTaDynamicObject.l,*pCollisionObjectCombo.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Initialise2@8",*pTaDynamicObject,*pCollisionObjectCombo)
EndProcedure

Procedure.b TaDynamicObject_Finalise(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Finalise@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetFrame(*pTaDynamicObject.l) ;Returns a Pointer to TaMFrame
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetFrame@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetFrame(*pTaDynamicObject.l,*frame.TaMFrame) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetFrame@8",*pTaDynamicObject,*frame)
EndProcedure

Procedure.l TaDynamicObject_GetNextFrame(*pTaDynamicObject.l) ;Returns a Pointer to TaMFrame
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetNextFrame@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetPreviousFrame(*pTaDynamicObject.l) ;Returns a Pointer to TaMFrame
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetPreviousFrame@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetGraphicsFrame(*pTaDynamicObject.l) ;Returns a Pointer to TaMFrame
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetGraphicsFrame@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetPosition(*pTaDynamicObject.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetPosition@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetPosition(*pTaDynamicObject.l,*v3Position.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetPosition@8",*pTaDynamicObject,*v3Position)
EndProcedure

Procedure.l TaDynamicObject_GetCenterOfMass(*pTaDynamicObject.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetCenterOfMass@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetNextCenterOfMass(*pTaDynamicObject.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetNextCenterOfMass@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetCenterOffset(*pTaDynamicObject.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetCenterOffset@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetCenterOffset(*pTaDynamicObject.l,*v3CenterOffset.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetCenterOffset@8",*pTaDynamicObject,*v3CenterOffset)
EndProcedure

Procedure.b TaDynamicObject_SetFrameDirect(*pTaDynamicObject.l,*frame.TaMFrame) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetFrameDirect@8",*pTaDynamicObject,*frame)
EndProcedure

Procedure.f TaDynamicObject_GetMass(*pTaDynamicObject.l) ;Returns a float
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetMass@4",*pTaDynamicObject)
EndProcedure

Procedure.f TaDynamicObject_GetInverseMass(*pTaDynamicObject.l) ;Returns a float
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetInverseMass@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetMass(*pTaDynamicObject.l,fMass.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetMass@8",*pTaDynamicObject,fMass)
EndProcedure

Procedure.l TaDynamicObject_GetInertia(*pTaDynamicObject.l) ;Returns a Pointer to TaMat33
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetInertia@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetInertiaFromBox(*pTaDynamicObject.l,*aabb.taAABB) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetInertiaFromBox@8",*pTaDynamicObject,*aabb)
EndProcedure

Procedure.b TaDynamicObject_SetInertiaFromBox2(*pTaDynamicObject.l,fX.f,fY.f,fZ.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetInertiaFromBox2@16",*pTaDynamicObject,fX,fY,fZ)
EndProcedure

Procedure.l TaDynamicObject_GetInverseInertia(*pTaDynamicObject.l) ;Returns a Pointer to TaMat33
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetInverseInertia@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetWorldSpaceInertia(*pTaDynamicObject.l) ;Returns a Pointer to TaMat33
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetWorldSpaceInertia@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetWorldSpaceInverseInertia(*pTaDynamicObject.l) ;Returns a Pointer to TaMat33
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetWorldSpaceInverseInertia@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetFriction(*pTaDynamicObject.l,fFriction.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetFriction@8",*pTaDynamicObject,fFriction)
EndProcedure

Procedure.f TaDynamicObject_GetFriction(*pTaDynamicObject.l) ;Returns a float
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetFriction@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetRestitution(*pTaDynamicObject.l,fRestitution.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetRestitution@8",*pTaDynamicObject,fRestitution)
EndProcedure

Procedure.f TaDynamicObject_GetRestitution(*pTaDynamicObject.l) ;Returns a float
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetRestitution@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetGravityMult(*pTaDynamicObject.l,fGravityMult.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetGravityMult@8",*pTaDynamicObject,fGravityMult)
EndProcedure

Procedure.f TaDynamicObject_GetGravityMult(*pTaDynamicObject.l) ;Returns a float
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetGravityMult@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetRotationDisabled(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetRotationDisabled@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_RotationDisabled(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_RotationDisabled@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetMovementDisabled(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetMovementDisabled@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_MovementDisabled(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_MovementDisabled@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetExtraStability(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetExtraStability@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_ExtraStability(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ExtraStability@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetRigidFrictionDisabled(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetRigidFrictionDisabled@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_RigidFrictionDisabled(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_RigidFrictionDisabled@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetCollisionDisabled(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetCollisionDisabled@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_CollisionDisabled(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_CollisionDisabled@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetUpdateDisabled(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetUpdateDisabled@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_UpdateDisabled(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_UpdateDisabled@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetGhost(*pTaDynamicObject.l,bValue.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetGhost@8",*pTaDynamicObject,*bValue)
EndProcedure

Procedure.l TaDynamicObject_Ghost(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Ghost@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetRestTimeMultiplier(*pTaDynamicObject.l,fRestTimeMultiplier.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetRestTimeMultiplier@8",*pTaDynamicObject,fRestTimeMultiplier)
EndProcedure

Procedure.f TaDynamicObject_GetRestTimeMultiplier(*pTaDynamicObject.l) ;Returns a float
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetRestTimeMultiplier@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetID(*pTaDynamicObject.l,nId.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetID@8",*pTaDynamicObject,nId)
EndProcedure

Procedure.l TaDynamicObject_GetID(*pTaDynamicObject.l) ;Returns a Long
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetID@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_IsInMovingList(*pTaDynamicObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_IsInMovingList@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetLinearVelocity(*pTaDynamicObject.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetLinearVelocity@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetLinearVelocity(*pTaDynamicObject.l,*v3LinearVelocity.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetLinearVelocity@8",*pTaDynamicObject,*v3LinearVelocity)
EndProcedure

Procedure.l TaDynamicObject_GetAngularVelocity(*pTaDynamicObject.l) ;Returns a Pointer to TaVec3
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetAngularVelocity@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_SetAngularVelocity(*pTaDynamicObject.l,*v3AngularVelocity.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetAngularVelocity@8",*pTaDynamicObject,*v3AngularVelocity)
EndProcedure

Procedure.l TaDynamicObject_GetVelocityAtWorldPosition(*pTaDynamicObject.l,*v3Position.taVec3) ;Returns a Pointer to TaVec
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetVelocityAtWorldPosition@8",*pTaDynamicObject,*v3Position)
EndProcedure

Procedure.b TaDynamicObject_ApplyImpulse(*pTaDynamicObject.l,*v3WorldImpulse.taVec3,*v3WorldPosition.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ApplyImpulse@12",*pTaDynamicObject,*v3WorldImpulse,*v3WorldPosition)
EndProcedure

Procedure.b TaDynamicObject_ApplyLinearImpulse(*pTaDynamicObject.l,*v3WorldLinearImpulse.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ApplyLinearImpulse@8",*pTaDynamicObject,*v3WorldLinearImpulse)
EndProcedure

Procedure.b TaDynamicObject_ApplyAngularImpulse(*pTaDynamicObject.l,*v3WorldAngularImpulse.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ApplyAngularImpulse@8",*pTaDynamicObject,*v3WorldAngularImpulse)
EndProcedure

Procedure.b TaDynamicObject_AssertForceAndTorqueCleared(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AssertForceAndTorqueCleared@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_AccumulateGravity(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AccumulateGravity@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_AccumulateForceAndTorque(*pTaDynamicObject.l,*v3WorldForce.taVec3,*v3WorldPosition.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AccumulateForceAndTorque@12",*pTaDynamicObject,*v3WorldForce,*v3WorldPosition)
EndProcedure

Procedure.b TaDynamicObject_AccumulateLinearForce(*pTaDynamicObject.l,*v3WorldForce.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AccumulateLinearForce@8",*pTaDynamicObject,*v3WorldForce)
EndProcedure

Procedure.b TaDynamicObject_ApplyForceAndTorqueToVelocities(*pTaDynamicObject.l,fDt.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ApplyForceAndTorqueToVelocities@8",*pTaDynamicObject,fDt)
EndProcedure

Procedure.b TaDynamicObject_ClearForceAndTorque(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ClearForceAndTorque@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_Clear(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Clear@4",*pTaDynamicObject)
EndProcedure


Procedure.b TaDynamicObject_UpdateWorldSpaceInertialTensor(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_UpdateWorldSpaceInertialTensor@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_Update(*pTaDynamicObject.l,fDt.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Update@8",*pTaDynamicObject,fDt)
EndProcedure

Procedure.b TaDynamicObject_UpdateGraphics(*pTaDynamicObject.l,fDt.f,fInterpolant.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_UpdateGraphics@12",*pTaDynamicObject,fDt,fInterpolant)
EndProcedure

Procedure.b TaDynamicObject_Extrapolate(*pTaDynamicObject.l,*frameA.TaMFrame,*frameB.TaMFrame,*v3VelocityA.taVec3,*v3VelocityB.taVec3,fDt.f,fExtrapolation.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Extrapolate@28",*pTaDynamicObject,*frameA,*frameB,*v3VelocityA,*v3VelocityB,fDt,fExtrapolation)
EndProcedure

Procedure.b TaDynamicObject_ApplyVelocityToNextFrame(*pTaDynamicObject.l,fDt.f) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ApplyVelocityToNextFrame@8",*pTaDynamicObject,fDt)
EndProcedure

Procedure.b TaDynamicObject_ApplyNextFrame(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_ApplyNextFrame@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_Render(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Render@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_CalculateWorldAABB(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_CalculateWorldAABB@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetWorldAABB(*pTaDynamicObject.l) ;Returns a Pointer to TaAABB
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetWorldAABB@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetCollisionObject(*pTaDynamicObject.l) ;Returns a Pointer to TaCollisionObjectCombo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetCollisionObject@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_TestLineForCollision(*pTaDynamicObject.l,*v3Start.taVec3,*v3Normal.taVec3,fLength.f,*collision.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_TestLineForCollision@20",*pTaDynamicObject,*v3Start,*v3Normal,fLength,*collision)
EndProcedure

Procedure.l TaDynamicObject_GetNumLineCollisions(*pTaDynamicObject.l) ;Returns a Long
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetNumLineCollisions@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_GetLineCollision(*pTaDynamicObject.l,nIndex.l) ;Returns a Pointer to TaLineIntersection
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetLineCollision@8",*pTaDynamicObject,nIndex)
EndProcedure

Procedure.l TaDynamicObject_AddJoint(*pTaDynamicObject.l,*pOtherObject.l,*v3LocalPos.taVec3,*v3LocalPosOnOtherObject.taVec3,*m33DefaultRotationOfOtherObject.TaMat33,*minAngles.TaEulerAngles,*maxAngles.TaEulerAngles) ;Returns a Pointer to TaPhysicsJoint
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AddJoint@28",*pTaDynamicObject,*pOtherObject,*v3LocalPos,*v3LocalPosOnOtherObject,*m33DefaultRotationOfOtherObject,*minAngles,*maxAngles)
EndProcedure

Procedure.l TaDynamicObject_AddJointTypeHinge(*pTaDynamicObject.l,*pOtherObject.l,*v3LocalPos.taVec3,*v3LocalPosOnOtherObject.taVec3,*v3LocalHingeAxis.taVec3,*v3LocalHingeNormal.taVec3,fMinAngle.f,fMaxAngle.f) ;Returns a Pointer to TaPhysicsJoint
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AddJointTypeHinge@32",*pTaDynamicObject,*pOtherObject,*v3LocalPos,*v3LocalPosOnOtherObject,*v3LocalHingeAxis,*v3LocalHingeNormal,fMinAngle,fMaxAngle)
EndProcedure

Procedure.l TaDynamicObject_AddJointTypeSocket(*pTaDynamicObject.l,*pOtherObject.l,*v3LocalPos.taVec3,*v3LocalPosOnOtherObject.taVec3,*v3LimitCenterNormal.taVec3,*v3LimitCenterNormalOnOtherObject.taVec3,fMaxAngle.f) ;Returns a Pointer to TaPhysicsJoint
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AddJointTypeSocket@28",*pTaDynamicObject,*pOtherObject,*v3LocalPos,*v3LocalPosOnOtherObject,*v3LimitCenterNormal,*v3LimitCenterNormalOnOtherObject,fMaxAngle)
EndProcedure

Procedure.l TaDynamicObject_AddJointTypeLimitedSocket(*pTaDynamicObject.l,*pOtherObject.l,*v3LocalPos.taVec3,*v3LocalPosOnOtherObject.taVec3,*m33DefaultRotationOfOtherObject.TaMat33,fMaxAngleY.f,fMaxAngleXZ.f) ;Returns a Pointer to TaPhysicsJoint
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AddJointTypeLimitedSocket@28",*pTaDynamicObject,*pOtherObject,*v3LocalPos,*v3LocalPosOnOtherObject,*m33DefaultRotationOfOtherObject,fMaxAngleY,fMaxAngleXZ)
EndProcedure

Procedure.l TaDynamicObject_AddJointTypeSquareSocket(*pTaDynamicObject.l,*pOtherObject.l,*v3LocalPos.taVec3,*v3LocalPosOnOtherObject.taVec3,*m33DefaultRotationOfOtherObject.TaMat33,fMinX.f,fMaxX.f,fMinY.f,fMaxY.f,fMinZ.f,fMaxZ.f) ;Returns a Pointer to TaPhysicsJoint
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AddJointTypeSquareSocket@44",*pTaDynamicObject,*pOtherObject,*v3LocalPos,*v3LocalPosOnOtherObject,*m33DefaultRotationOfOtherObject,fMinX,fMaxX,fMinY,fMaxY,fMinZ,fMaxZ)
EndProcedure

Procedure.l TaDynamicObject_AddJointTypeSlider(*pTaDynamicObject.l,*pOtherObject.l,*v3LocalPos.taVec3,*v3StartPosOnOtherObject.taVec3,*v3EndPosPosOnOtherObject.taVec3) ;Returns a Pointer to TaPhysicsJoint
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AddJointTypeSlider@20",*pTaDynamicObject,*pOtherObject,*v3LocalPos,*v3StartPosOnOtherObject,*v3EndPosPosOnOtherObject)
EndProcedure

Procedure.b TaDynamicObject_RemoveAllJoints(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_RemoveAllJoints@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaDynamicObject_RemoveJoint(*pTaDynamicObject.l,*joint.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_RemoveJoint@8",*pTaDynamicObject,*joint)
EndProcedure

Procedure.b TaDynamicObject_RemoveJointsToObject(*pTaDynamicObject.l,*pDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_RemoveJointsToObject@8",*pTaDynamicObject,*pDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_IsAllowedToCollideWith(*pTaDynamicObject.l,*otherObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_IsAllowedToCollideWith@8",*pTaDynamicObject,*otherObject)
EndProcedure

Procedure.b TaDynamicObject_SetUserGroup(*pTaDynamicObject.l,nUserGroupId.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetUserGroup@8",*pTaDynamicObject,nUserGroupId)
EndProcedure

Procedure.b TaDynamicObject_SetUserGroupItemId(*pTaDynamicObject.l,nUserGroupItemId.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetUserGroupItemId@8",*pTaDynamicObject,nUserGroupItemId)
EndProcedure

Procedure.b TaDynamicObject_DisallowCollisionWithUserGroupItemId(*pTaDynamicObject.l,nUserGroupItemId.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_DisallowCollisionWithUserGroupItemId@8",*pTaDynamicObject,nUserGroupItemId)
EndProcedure

Procedure.b TaDynamicObject_AllowCollisionWithUserGroupItemId(*pTaDynamicObject.l,nUserGroupItemId.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_AllowCollisionWithUserGroupItemId@8",*pTaDynamicObject,nUserGroupItemId)
EndProcedure

Procedure.b TaDynamicObject_SetCollisionUserData(*pTaDynamicObject.l,*pData.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_SetCollisionUserData@8",*pTaDynamicObject,*pData)
EndProcedure

Procedure.l TaDynamicObject_GetCollisionUserData(*pTaDynamicObject.l) ;Returns a Pointer to void
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_GetCollisionUserData@4",*pTaDynamicObject)
EndProcedure

Procedure.l TaDynamicObject_CreateUserGroup() ;Returns a Long
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_CreateUserGroup@0")
EndProcedure

Procedure.l TaDynamicObject_CreateNew() ;Returns a Pointer to TaDynamicObject
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_CreateNew@0")
EndProcedure

Procedure.b TaDynamicObject_Release(*pTaDynamicObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaDynamicObject_Release@4",*pTaDynamicObject)
EndProcedure

Procedure.b TaStaticObject_Initialise(*pTaStaticObject.l,*pCollisionObjectComplex.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_Initialise@8",*pTaStaticObject,*pCollisionObjectComplex)
EndProcedure

Procedure.b TaStaticObject_Finalise(*pTaStaticObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_Finalise@4",*pTaStaticObject)
EndProcedure

Procedure.l TaStaticObject_GetFrame(*pTaStaticObject.l) ;Returns a Pointer to TaMFrame
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_GetFrame@4",*pTaStaticObject)
EndProcedure

Procedure.b TaStaticObject_SetFrame(*pTaStaticObject.l,*frame.TaMFrame) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_SetFrame@8",*pTaStaticObject,*frame)
EndProcedure

Procedure.l TaStaticObject_GetNextFrame(*pTaStaticObject.l) ;Returns a Pointer to TaMFrame
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_GetNextFrame@4",*pTaStaticObject)

EndProcedure

Procedure.b TaStaticObject_SetNextFrame(*pTaStaticObject.l,*nextFrame.TaMFrame) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_SetNextFrame@8",*pTaStaticObject,*nextFrame)
EndProcedure

Procedure.l TaStaticObject_AtInitialPosition(*pTaStaticObject.l) ;Returns a Pointer to TaBoo
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_AtInitialPosition@4",*pTaStaticObject)
EndProcedure

Procedure.l TaStaticObject_GetCollisionObject(*pTaStaticObject.l) ;Returns a Pointer to TaCollisionObjectComplex
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_GetCollisionObject@4",*pTaStaticObject)
EndProcedure

Procedure.l TaStaticObject_GetWorldAABB(*pTaStaticObject.l) ;Returns a Pointer to TaAABB
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_GetWorldAABB@4",*pTaStaticObject)
EndProcedure

Procedure.b TaStaticObject_TestLineForCollision(*pTaStaticObject.l,*v3Start.taVec3,*v3Normal.taVec3,fLength.f,*collision.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_TestLineForCollision@20",*pTaStaticObject,*v3Start,*v3Normal,fLength,*collision)
EndProcedure

Procedure.l TaStaticObject_CreateNew() ;Returns a Pointer to TaStaticObject
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_CreateNew@0")
EndProcedure

Procedure.b TaStaticObject_Release(*pTaStaticObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_Release@4",*pTaStaticObject)
EndProcedure

Procedure.b TaStaticObject_UpdateMovedObjects() ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_UpdateMovedObjects@0")
EndProcedure

Procedure.b TaStaticObject_CalculateWorldAABB(*pTaStaticObject.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_CalculateWorldAABB@4",*pTaStaticObject)
EndProcedure

Procedure.l TaStaticObject_GetMovedListHead() ;Returns a Pointer to TaStaticObject
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_GetMovedListHead@0")
EndProcedure

Procedure.l TaStaticObject_GetMovedListNext(*pTaStaticObject.l) ;Returns a Pointer to TaStaticObject
  ProcedureReturn CallFunction(#TA_DLL,"_TaStaticObject_GetMovedListNext@4",*pTaStaticObject)
EndProcedure

Procedure.l TaCollisionObjectAABBMesh_GetTaCollisionObjectComplex(*pTaCollisionObjectAABBMesh.l) ;Returns a Pointer to TaCollisionObjectComplex
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_GetTaCollisionObjectComplex@4",*pTaCollisionObjectAABBMesh)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_Initialise(*pTaCollisionObjectAABBMesh.l,nNumVertices.l,nNumPolygons.l,nNumPolygonIndices.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_Initialise@16",*pTaCollisionObjectAABBMesh,nNumVertices,nNumPolygons,nNumPolygonIndices)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_Finalise(*pTaCollisionObjectAABBMesh.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_Finalise@4",*pTaCollisionObjectAABBMesh)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_Render(*pTaCollisionObjectAABBMesh.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_Render@4",*pTaCollisionObjectAABBMesh)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_AddVertex(*pTaCollisionObjectAABBMesh.l,*v3Pos.taVec3) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_AddVertex@8",*pTaCollisionObjectAABBMesh,*v3Pos)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_AddPolygon(*pTaCollisionObjectAABBMesh.l,nNumVertices.l,*pnIndexList.l,nAttribute.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_AddPolygon@16",*pTaCollisionObjectAABBMesh,nNumVertices,*pnIndexList,nAttribute)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_FinishedAddingGeometry(*pTaCollisionObjectAABBMesh.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_FinishedAddingGeometry@4",*pTaCollisionObjectAABBMesh)
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_TestLineForCollision(*pTaCollisionObjectAABBMesh.l,*v3Start.taVec3,*v3Normal.taVec3,fLength.f,*collision.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_TestLineForCollision@20",*pTaCollisionObjectAABBMesh,*v3Start,*v3Normal,fLength,*collision)
EndProcedure

Procedure.l TaCollisionObjectAABBMesh_GetAABB(*pTaCollisionObjectAABBMesh.l) ;Returns a Pointer to TaAABB
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_GetAABB@4",*pTaCollisionObjectAABBMesh)
EndProcedure

Procedure.l TaCollisionObjectAABBMesh_CreateNew() ;Returns a Pointer to TaCollisionObjectAABBMesh
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_CreateNew@0")
EndProcedure

Procedure.b TaCollisionObjectAABBMesh_Release(*pTaCollisionObjectAABBMesh.l) ;Returns Nothing
  ProcedureReturn CallFunction(#TA_DLL,"_TaCollisionObjectAABBMesh_Release@4",*pTaCollisionObjectAABBMesh)
EndProcedure
~Dreglor
dagcrack
Addict
Addict
Posts: 1868
Joined: Sun Mar 07, 2004 8:47 am
Location: Argentina
Contact:

Post by dagcrack »

I'll check out as soon as I get spare time.
Sounds promising, lets inform the developer of True Axis and see what he thinks about it :)
Polo
Addict
Addict
Posts: 2422
Joined: Tue May 06, 2003 5:07 pm
Location: UK

Post by Polo »

It would be interesting if :
- The source code of the engine was provided ;)
- And, important, it was free to use for ANY project, which is unfortunately not the case...
dagcrack
Addict
Addict
Posts: 1868
Joined: Sun Mar 07, 2004 8:47 am
Location: Argentina
Contact:

Post by dagcrack »

:roll: You want everything in this life!...
Polo
Addict
Addict
Posts: 2422
Joined: Tue May 06, 2003 5:07 pm
Location: UK

Post by Polo »

No, I just hate when good stuffs are limited :)
When you do an application, or it is free, or we need to buy it, but i hate the "free for non commercial" which makes the lib useless. The author should choose if he wants to make money or not with his lib, but doing something like this is quite disappointing ;)
So sad ode is so hard to use...
User avatar
Psychophanta
Always Here
Always Here
Posts: 5153
Joined: Wed Jun 11, 2003 9:33 pm
Location: Anare
Contact:

Post by Psychophanta »

This is interesting, thanks. :)
http://www.zeitgeistmovie.com

while (world==business) world+=mafia;
User avatar
fsw
Addict
Addict
Posts: 1603
Joined: Tue Apr 29, 2003 9:18 pm
Location: North by Northwest

Post by fsw »

Polo wrote: So sad ode is so hard to use...
This one is easy to use:

http://photoneffect.com/coldet/

and comes with sources (GPL).
Polo
Addict
Addict
Posts: 2422
Joined: Tue May 06, 2003 5:07 pm
Location: UK

Post by Polo »

I already know it and i've managed to got it working in pb... but i don't like having dll ;) But if someone want to convert this to c, and to compile it as a Purelibrary, well :shock:

Yes, i'm exigeant :wink:
dagcrack
Addict
Addict
Posts: 1868
Joined: Sun Mar 07, 2004 8:47 am
Location: Argentina
Contact:

Post by dagcrack »

ODE hard to use? HA!!!
Its as easy as tokamak.

So you think it will be easyer to programm a physics engine from scratch?
... I dont see the point here. This physics engines are high level enough. Anyone that doesnt know maths can setup a mesh as a floor and a cube as an object with mass.

:? But maybe you want a button in your desktop: "Automatically Integrate ODE to my leet game" :lol:
Polo
Addict
Addict
Posts: 2422
Joined: Tue May 06, 2003 5:07 pm
Location: UK

Post by Polo »

No.
But do me an example showing sliding collision using ode. Just do it ;) Then i'll say it's good... I just need a proof i can do it, and i want to see it :)
Dreglor
Enthusiast
Enthusiast
Posts: 759
Joined: Sat Aug 02, 2003 11:22 pm
Location: OR, USA

Post by Dreglor »

Here is a working example in ogre enjoy!

note find a mesh to load and put it into line 176 other wise there will be no mesh to show
and it might be a good idea to have a skydome file too on line 167

Code: Select all

;/ True Axis Frame Work
;/ by Dreglor
;/ 3-22-05
;/ Shows how to set up the physics simulation
;/ Converted From DllTestC.c

;-Includes

IncludeFile "TrueAxisPhysics.pbi" ;include all the nice functions

;-Constants

#k_fWorldExtent = 1000.0
#k_fGroundExtent = 10.0
#k_Display=0
#k_SreeenX=800
#k_SreeenY=600
#k_ObjectMesh=0
#k_ObjectEnitiy=0
#k_ObjectMaterial=0
#k_ObjectTexture=0
#k_Camera=0
#k_CameraSpeed=10

;-Program Code

;//---------------------------------------------------------------------------------
;// A simple physics simulation
;// y is up.
;//---------------------------------------------------------------------------------

aabb.taAABB

v3Gravity.taVec3
v3Gravity\x = 0
v3Gravity\y = -9.81
v3Gravity\z = 0

v3Position.taVec3
pPhysics.l = 0
pDynamicObject.l = 0
pStaticObject.l = 0
pStaticCollisionObject.l = 0

*mfChange.TaMFrame
Force.taVec3

;//---------------------------------------------------------------------------------
;// Initialise physics.
;//---------------------------------------------------------------------------------

aabb\v3Center\x = 0.0
aabb\v3Center\y = 0.0
aabb\v3Center\z = 0.0
aabb\v3Extent\x = #k_fWorldExtent
aabb\v3Extent\y = #k_fWorldExtent
aabb\v3Extent\z = #k_fWorldExtent

If InitTA() = 0
  MessageRequester("Error", "TaPhysics.dll Couldn't be opened")
  End
EndIf


TaPhysics_CreateInstance(aabb, v3Gravity, #TA_PHYSICS_FLAG_XZ_COLLISION_GRID, 10.0, $40000) ;World bounding box,Gravity,Flags,Min sub-division,Max memory
pPhysics = TaPhysics_GetInstance()

;//---------------------------------------------------------------------------------
;// Add a dynamic object.
;//---------------------------------------------------------------------------------

pDynamicObject = TaDynamicObject_CreateNew()

;// Make a 1 by 1 by 1 box.

aabb\v3Center\x = 0.0
aabb\v3Center\y = 0.0
aabb\v3Center\z = 0.0
aabb\v3Extent\x = 0.5
aabb\v3Extent\y = 0.5
aabb\v3Extent\z = 0.5
TaDynamicObject_InitialiseAsABox(pDynamicObject, aabb)

;// Place the dynamic object.

v3Position\x = 0.0
v3Position\y = 5.0
v3Position\z = 0.0
TaDynamicObject_SetPosition(pDynamicObject, v3Position)

;// Add the dynamic object to the simulation.

TaPhysics_AddDynamicObject(pPhysics, pDynamicObject, #TA_TRUE)
TaPhysics_SetDynamicObjectIsMoving(pPhysics, pDynamicObject) ;got to set this becasue if you don't it will just sit there

;//---------------------------------------------------------------------------------
;// Add a static object for the ground.
;//---------------------------------------------------------------------------------

pStaticObject = TaStaticObject_CreateNew()

;// Create a collision object to add to the static object.

pStaticCollisionObject = TaCollisionObjectAABBMesh_CreateNew()
TaCollisionObjectAABBMesh_Initialise(pStaticCollisionObject, 4, 1, 4); StaticCollisionObject,Num vertices,Num polygons,Num polygon indices

v3Position\x = #k_fGroundExtent
v3Position\y = 0
v3Position\z = #k_fGroundExtent
TaCollisionObjectAABBMesh_AddVertex(pStaticCollisionObject, v3Position)

v3Position\x = -#k_fGroundExtent
v3Position\y = 0
v3Position\z = #k_fGroundExtent
TaCollisionObjectAABBMesh_AddVertex(pStaticCollisionObject, v3Position)

v3Position\x = -#k_fGroundExtent
v3Position\y = 0
v3Position\z = -#k_fGroundExtent
TaCollisionObjectAABBMesh_AddVertex(pStaticCollisionObject, v3Position)

v3Position\x = #k_fGroundExtent
v3Position\y = 0
v3Position\z = -#k_fGroundExtent
TaCollisionObjectAABBMesh_AddVertex(pStaticCollisionObject, v3Position)

Dim pnPolygonIndexList.l(3)
pnPolygonIndexList(0)=0
pnPolygonIndexList(1)=1
pnPolygonIndexList(2)=2
pnPolygonIndexList(3)=3

TaCollisionObjectAABBMesh_AddPolygon(pStaticCollisionObject, 3, pnPolygonIndexList(), 0)

TaCollisionObjectAABBMesh_FinishedAddingGeometry(pStaticCollisionObject)

;// Initialise the static object with the collision object

TaStaticObject_Initialise(pStaticObject, TaCollisionObjectAABBMesh_GetTaCollisionObjectComplex(pStaticCollisionObject))

TaCollisionObjectAABBMesh_Release(pStaticCollisionObject) ;We no longer need the reference.
pStaticCollisionObject = 0

;// Add the static object to the simulation.

TaPhysics_AddStaticObject(pPhysics, pStaticObject)

TaStaticObject_Release(pStaticObject);We no longer need the reference.
pStaticObject = 0

;//---------------------------------------------------------------------------------
;// Other initialisation.
;//---------------------------------------------------------------------------------
;//.
;//.
;//.

OpenWindow(#k_Display, 0, 0, #k_SreeenX, #k_SreeenY, #PB_Window_ScreenCentered, "Feel The Power of Pure Basic ... With True Axis Physics!")
InitEngine3D()
InitSprite()
InitMouse()
InitKeyboard()

OpenWindowedScreen(WindowID(#k_Display), 0, 0, #k_SreeenX, #k_SreeenY, 0, 0, 0)
SetFrameRate(60)

SkyDome("Clouds.jpg", 30)

AmbientColor(RGB(255, 255, 255))

CreateCamera(#k_Camera,0,0,100,100)
MoveCamera(#k_Camera, 0, 50,-100)
CameraLookAt(#k_Camera,0,2,0)
;CameraRenderMode(#k_Camera, #PB_Camera_Wireframe)

LoadMesh(#k_ObjectMesh,"DevObject.mesh")
Debug "replace 'DevObject.mesh' on line 176 to a mesh that it can load otherwise it won't show anything"
CallDebugger

CreateTexture(#k_ObjectTexture, 2, 2)
StartDrawing(TextureOutput(#k_ObjectTexture))
Box(0, 0, 2, 2, #White)
StopDrawing()

CreateMaterial(#k_ObjectMaterial, TextureID(#k_ObjectTexture))
DisableMaterialLighting(#k_ObjectMaterial,1)

CreateEntity(#k_ObjectEnitiy, MeshID(#k_ObjectMesh), MaterialID(#k_ObjectMaterial), 0, 2, 0)
ResizeEntity(#k_ObjectEnitiy,0.5,0.5,0.5)

oldx.f=0
oldy.f=0
oldz.f=0

;//---------------------------------------------------------------------------------
;// Main loop.
;//---------------------------------------------------------------------------------

Repeat
  
  fDt.f = 1.0/ 60.0 ;time of current frame
  
  ;// Calculate Value For fDt
  ;//.
  ;//.
  ;//.
  
  
  
  ;// Update the simulation
  
  TaPhysics_Update(pPhysics, fDt)
  
  ;// Do game logic and render the scene
  ;//.
  ;//.
  ;//.
  
  If ExamineKeyboard()
    
    If KeyboardPushed(#PB_Key_Left)
      KeyX = -#k_CameraSpeed 
    ElseIf KeyboardPushed(#PB_Key_Right)
      KeyX = #k_CameraSpeed 
    Else
      KeyX = 0
    EndIf
    
    If KeyboardPushed(#PB_Key_Up)
      KeyY = -#k_CameraSpeed 
    ElseIf KeyboardPushed(#PB_Key_Down)
      KeyY = #k_CameraSpeed 
    Else
      KeyY = 0
    EndIf
    
  EndIf
  MoveCamera(#k_Camera, KeyX, 0, KeyY)
  
  If ExamineMouse()
     MouseX = -(MouseDeltaX()/10)*#k_CameraSpeed
     MouseY = -(MouseDeltaY()/10)*#k_CameraSpeed
    
    ; If MouseButton(1)
      ; Force\x=0
      ; Force\y=20
      ; Force\z=0
      ; TaDynamicObject_ApplyLinearImpulse(pDynamicObject,Force)
    ; EndIf
    
  EndIf
  RotateCamera(#k_Camera, MouseX, MouseY, 0)
  
  If KeyboardPushed(#PB_Key_Escape)
    Break
  EndIf
  
  RenderWorld()
  FlipBuffers(1)

  ;// Use TaDynamicObject_GetFrame() To get Position
  ;// and rotation values of the Dynamic Object
  ;//.
  ;//.
  ;//.
  
  *mfChange = TaDynamicObject_GetFrame(pDynamicObject) 
  
  EntityLocate(#k_ObjectEnitiy, *mfChange\v3Translation\x, *mfChange\v3Translation\y, *mfChange\v3Translation\z)
  
  If *mfChange\m33Rotation\v3X\y <> oldx Or *mfChange\m33Rotation\v3X\z <> oldy Or *mfChange\m33Rotation\v3Y\z <> oldz
    
    RotateEntity(#k_ObjectEnitiy, oldx - *mfChange\m33Rotation\v3X\x, oldy - *mfChange\m33Rotation\v3y\y, oldz - *mfChange\m33Rotation\v3z\z)
    oldx=*mfChange\m33Rotation\v3X\x
    oldy=*mfChange\m33Rotation\v3y\y
    oldz=*mfChange\m33Rotation\v3Y\z
    
  EndIf
  
  Debug "Posistion"
  Debug StrF(*mfChange\v3Translation\x) + ", " + StrF(*mfChange\v3Translation\y)+", " + StrF(*mfChange\v3Translation\z)
  Debug "Rotation"
  Debug StrF(*mfChange\m33Rotation\v3X\x) + ", " + StrF(*mfChange\m33Rotation\v3X\y) + ", " + StrF(*mfChange\m33Rotation\v3X\z)
  Debug StrF(*mfChange\m33Rotation\v3Y\x) + ", " + StrF(*mfChange\m33Rotation\v3Y\y) + ", " + StrF(*mfChange\m33Rotation\v3Y\z)
  Debug StrF(*mfChange\m33Rotation\v3Z\x) + ", " + StrF(*mfChange\m33Rotation\v3Z\y) + ", " + StrF(*mfChange\m33Rotation\v3Z\z)
  
ForEver

;//---------------------------------------------------------------------------------
;// Finalise physics.
;//---------------------------------------------------------------------------------

TaPhysics_DestroyInstance()

TaDynamicObject_Release(pDynamicObject)
pDynamicObject = 0

;//---------------------------------------------------------------------------------
;// Other finalisation.
;//---------------------------------------------------------------------------------
;//.
;//.
;//.


;// And were done!

DeInitTA()
End
Last edited by Dreglor on Fri Mar 25, 2005 4:34 am, edited 1 time in total.
~Dreglor
benny
Enthusiast
Enthusiast
Posts: 465
Joined: Fri Apr 25, 2003 7:44 pm
Location: end of www
Contact:

Post by benny »

@Dreglor:

I had a look on the offiicial TrueAxis-Demos and I am very impressed :!:
So, nice to see to have the possibility to use it with PB.

Unfortunately your demo-snippet doesn't work for me. I used the roboter.mesh
and the clouds.jpg for skydome.

When I start the programm ... a window opens and after 1 seconds it quits
with no debugger error or something like that :?:

I am using PureBasic V3.93 - GeForce FX 5200 - any help / hints appreciated!
regards,
benny!
-
pe0ple ar3 str4nge!!!
Dreglor
Enthusiast
Enthusiast
Posts: 759
Joined: Sat Aug 02, 2003 11:22 pm
Location: OR, USA

Post by Dreglor »

robot.mesh requires the robot.skeleton to be in the same place
then it should work
~Dreglor
benny
Enthusiast
Enthusiast
Posts: 465
Joined: Fri Apr 25, 2003 7:44 pm
Location: end of www
Contact:

Post by benny »

@Dreglor:

That's it ... thx. Nice work :!:
regards,
benny!
-
pe0ple ar3 str4nge!!!
User avatar
Rings
Moderator
Moderator
Posts: 1435
Joined: Sat Apr 26, 2003 1:11 am

Post by Rings »

yes , works now.
could you make a 'more' physics demo of it pejhaps ?
something of a bumping jumping model ?
SPAMINATOR NR.1
Post Reply