JV-ODE Physics Thread 11

Blitz3D Forums/Blitz3D Userlibs/JV-ODE Physics Thread 11

Regarding the code below can someone clarify whether the tribank and vertbank continue to be used by ode after the trimesh is created?. In other words you couldn't use this function to create two trimeshs from two or more different b3d's as they would share the same tribank/vertbank.

Function CreateTriMesh:Int(trispace:Int,xscale:Float=1.0,yscale:Float=1.0,zscale:Float=1.0)

Global TriBank:TBank=CreateBank(NTris*3*4)
Global VertBank:TBank=CreateBank(NVerts*4*4)

Local Offset:Int=0
Local TriOffset:Int=0

Local VertData:Vrts
Local TriData:Tris

For VertData:Vrts=EachIn B3DVrtsList
	PokeFloat(VertBank,Offset,xscale*VertData.X)
	Offset:+4
	PokeFloat(VertBank,Offset,yscale*VertData.Y)
	Offset:+4
	PokeFloat(VertBank,Offset,zscale*VertData.Z)
	Offset:+8
Next

For TriData:Tris=EachIn B3DTrisList
	PokeInt(TriBank,TriOffset,TriData.V0)
	TriOffset:+4
	PokeInt(TriBank,TriOffset,TriData.V1)
	TriOffset:+4
	PokeInt(TriBank,TriOffset,TriData.V2)
	TriOffset:+4
Next

Local TriMeshData:Int=dGeomTriMeshDataCreate()

dGeomTriMeshDataBuildSimple(TriMeshData,BankBuf(VertBank),NVerts,BankBuf(TriBank),NTris*3)

Return dCreateTriMesh(trispace,TriMeshData)

End Function