TOKSIM_SetCInfoBank(CInfoBank)
Parameters:
CInfoBank = Handle of the blitz bank where collision data is stored.
Return value:
None
Description:
Tells tokamak where to store the collision info - a blitz bank.
For each collision, 104 bytes are stored in the bank. They are layed out like this:

  • 0 bodyA (int)
  • 4 bodyB (int)
  • 8 typeA (int) / 0=Terrain, 1=Rigid Body, 2=Animated Body
  • 12 typeB (int) / If TypeB is 0(Terrain) then BodyB & geometryB will be empty
  • 16 geometryA (int)
  • 20 geometryB (int)
  • 24 materialIdA (int)
  • 28 materialIdB (int)
  • 32 bodyContactPointA X (float)
  • 36 bodyContactPointA Y (float)
  • 40 bodyContactPointA Z (float)
  • 44 bodyContactPointB X (float)
  • 48 bodyContactPointB Y (float)
  • 52 bodyContactPointB Z (float)
  • 56 worldContactPointA X (float)
  • 60 worldContactPointA Y (float)
  • 64 worldContactPointA Z (float)
  • 68 worldContactPointB X (float)
  • 72 worldContactPointB Y (float)
  • 76 worldContactPointB Z (float)
  • 80 relativeVelocity X (float)
  • 84 relativeVelocity Y (float)
  • 88 relativeVelocity Z (float)
  • 92 collisionNormal X (float)
  • 96 collisionNormal Y (float)
  • 100 collisionNormal Z (float)
A demo of collision bank setup, along with some functions for easier retrieval of collision data
ColBank=CreateBank(104*ENTS)
TOKSIM_SetCInfoBank ColBank

Function TOKCOL_bodyA(bank,index)
Return PeekInt(bank,index*104)
End Function

Function TOKCOL_bodyB(bank,index)
Return PeekInt(bank,index*104+4)
End Function

Function TOKCOL_TypeA(bank,index)
Return PeekInt(bank,index*104+8)
End Function

Function TOKCOL_TypeB(bank,index)
Return PeekInt(bank,index*104+12)
End Function

Function TOKCOL_GeometryA(bank,index)
Return PeekInt(bank,index*104+16)
End Function

Function TOKCOL_GeometryB(bank,index)
Return PeekInt(bank,index*104+20)
End Function

Function TOKCOL_MaterialIdA(bank,index)
Return PeekInt(bank,index*104+24)
End Function

Function TOKCOL_MaterialIdB(bank,index)
Return PeekInt(bank,index*104+28)
End Function

Function TOKCOL_BodyContactPointAX#(bank,index)
Return PeekFloat(bank,index*104+32)
End Function

Function TOKCOL_BodyContactPointAY#(bank,index)
Return PeekFloat(bank,index*104+36)
End Function

Function TOKCOL_BodyContactPointAZ#(bank,index)
Return PeekFloat(bank,index*104+40)
End Function

Function TOKCOL_BodyContactPointBX#(bank,index)
Return PeekFloat(bank,index*104+44)
End Function

Function TOKCOL_BodyContactPointBY#(bank,index)
Return PeekFloat(bank,index*104+48)
End Function

Function TOKCOL_BodyContactPointBZ#(bank,index)
Return PeekFloat(bank,index*104+52)
End Function

Function TOKCOL_WorldContactPointAX#(bank,index)
Return PeekFloat(bank,index*104+56)
End Function

Function TOKCOL_WorldContactPointAY#(bank,index)
Return PeekFloat(bank,index*104+60)
End Function

Function TOKCOL_WorldContactPointAZ#(bank,index)
Return PeekFloat(bank,index*104+64)
End Function

Function TOKCOL_WorldContactPointBX#(bank,index)
Return PeekFloat(bank,index*104+68)
End Function

Function TOKCOL_WorldContactPointBY#(bank,index)
Return PeekFloat(bank,index*104+72)
End Function

Function TOKCOL_WorldContactPointBZ#(bank,index)
Return PeekFloat(bank,index*104+76)
End Function

Function TOKCOL_RelativeVelocityX#(bank,index)
Return PeekFloat(bank,index*104+80)
End Function

Function TOKCOL_RelativeVelocityY#(bank,index)
Return PeekFloat(bank,index*104+84)
End Function

Function TOKCOL_RelativeVelocityZ#(bank,index)
Return PeekFloat(bank,index*104+88)
End Function

Function TOKCOL_CollisionNormalX#(bank,index)
Return PeekFloat(bank,index*104+92)
End Function

Function TOKCOL_CollisionNormalY#(bank,index)
Return PeekFloat(bank,index*104+96)
End Function

Function TOKCOL_CollisionNormalZ#(bank,index)
Return PeekFloat(bank,index*104+100)
End Function

;Some handy functions from RepeatUntil
Function TOKCOL_GetCollisionIdA(bank, index)
If TOKCOL_TypeA(bank, index) = 0 Then Return -1
If TOKCOL_TypeA(bank, index) = 1 Then Return TOKRB_GetCollisionID(TOKCOL_BodyA(bank, index))
If TOKCOL_TypeA(bank, index) = 2 Then Return TOKAB_GetCollisionID(TOKCOL_BodyA(bank, index))
Return 0
End Function

Function TOKCOL_GetCollisionIdB(bank, index)
If TOKCOL_TypeB(bank, index) = 0 Then Return -1
If TOKCOL_TypeB(bank, index) = 1 Then Return TOKRB_GetCollisionID(TOKCOL_BodyB(bank, index))
If TOKCOL_TypeB(bank, index) = 2 Then Return TOKAB_GetCollisionID(TOKCOL_BodyB(bank, index))
Return 0
End Function



Documentation generated by Cod2Doc on 20 Jun 2004.