Wipeout Style Physics for this custom mesh

Blitz3D Forums/Blitz3D Programming/Wipeout Style Physics for this custom mesh

any ideas how to align a model to this track
i might turn it into a 360% track a later date
it has 360 sufaces each with 7 quad so can take a lot of textures

just stick texture in brush1

Graphics3D 1024,768,32,1
AntiAlias 1

Dim Vertbox(8)
Dim Vert1x#(721)
Dim Vert2x#(721)
Dim Vert3x#(721)
Dim Vert4x#(721)
Dim Vert5x#(721)
Dim Vert6x#(721)
Dim Vert7x#(721)
Dim Vert8x#(721)
Dim Vert1y#(721)
Dim Vert2y#(721)
Dim Vert3y#(721)
Dim Vert4y#(721)
Dim Vert5y#(721)
Dim Vert6y#(721)
Dim Vert7y#(721)
Dim Vert8y#(721)
Dim Vert1z#(721)
Dim Vert2z#(721)
Dim Vert3z#(721)
Dim Vert4z#(721)
Dim Vert5z#(721)
Dim Vert6z#(721)
Dim Vert7z#(721)
Dim Vert8z#(721)


Global Ship,balll,ballr,ballf,ballb,ballpiv,temp1,temp2,dist#
Global box,x,y,z,track,camera
Global boxpivot,brush1,player,ball,ballpiv1,ballpiv2
brush1=CreateBrush(25,70,200)
BrushBlend brush1,4
x=10
y=10
z=10

camera=CreateCamera()


light=CreateLight()
Create_Vertbox
Create_vertdata
Create_vert_mesh
createship

SetBuffer BackBuffer()

While Not KeyHit(1)
updatecam
UpdateWorld
RenderWorld
Text 100,100,"trirendered+"+TrisRendered()

Flip 0
Wend
End

Function Create_Vertbox()
Vertbox(1)=CreateCube()
PositionEntity Vertbox(1),0,0,-1
Vertbox(2)=CreateCube()
PositionEntity Vertbox(2),0,1,-4
Vertbox(3)=CreateCube()
PositionEntity Vertbox(3),0,3,-6
Vertbox(4)=CreateCube()
PositionEntity Vertbox(4),0,6,-7
Vertbox(5)=CreateCube()
PositionEntity Vertbox(5),0,0,1
Vertbox(6)=CreateCube()
PositionEntity Vertbox(6),0,1,4
Vertbox(7)=CreateCube()
PositionEntity Vertbox(7),0,3,6
Vertbox(8)=CreateCube()
PositionEntity Vertbox(8),0,6,7
Boxpivot=CreatePivot()
PositionEntity boxpivot,0,0,15
TurnEntity boxpivot,0,90,0
For times=1 To 8
EntityParent Vertbox(times),boxpivot
Next
End Function



Function alignbox()

End Function

Function create_vertdata()
For a=1 To 361
collect_vertdata(a)
If a<46 Then TurnEntity boxpivot,0,-1,0,1
If a>45 And a<91 Then TurnEntity boxpivot,1,-1,0,1
If a>90 And a<136 Then TurnEntity boxpivot,-1,1,0,1
If a>135 And a<181 Then TurnEntity boxpivot,0,-1,0,1
MoveEntity boxpivot,0,0,4
Next

End Function


Function collect_vertdata(a)
Vert1x(a)=EntityX(vertbox(1),1)
Vert1y(a)=EntityY(vertbox(1),1)
Vert1z(a)=EntityZ(vertbox(1),1)
Vert2x(a)=EntityX(vertbox(2),1)
Vert2y(a)=EntityY(vertbox(2),1)
Vert2z(a)=EntityZ(vertbox(2),1)
Vert3x(a)=EntityX(vertbox(3),1)
Vert3y(a)=EntityY(vertbox(3),1)
Vert3z(a)=EntityZ(vertbox(3),1)
Vert4x(a)=EntityX(vertbox(4),1)
Vert4y(a)=EntityY(vertbox(4),1)
Vert4z(a)=EntityZ(vertbox(4),1)
Vert5x(a)=EntityX(vertbox(5),1)
Vert5y(a)=EntityY(vertbox(5),1)
Vert5z(a)=EntityZ(vertbox(5),1)
Vert6x(a)=EntityX(vertbox(6),1)
Vert6y(a)=EntityY(vertbox(6),1)
Vert6z(a)=EntityZ(vertbox(6),1)
Vert7x(a)=EntityX(vertbox(7),1)
Vert7y(a)=EntityY(vertbox(7),1)
Vert7z(a)=EntityZ(vertbox(7),1)
Vert8x(a)=EntityX(vertbox(8),1)
Vert8y(a)=EntityY(vertbox(8),1)
Vert8z(a)=EntityZ(vertbox(8),1)
End Function

Function Create_vert_mesh()
track=CreateMesh()
For a=1 To 360
surf=CreateSurface(track,brush1)
v0=AddVertex(surf,Vert1x(a),Vert1y(a),Vert1z(a),1,1)
v1=AddVertex(surf,Vert2x(a),Vert2y(a),Vert2z(a),1,0)
v2=AddVertex(surf,Vert3x(a),Vert3y(a),Vert3z(a),1,1)
v3=AddVertex(surf,Vert4x(a),Vert4y(a),Vert4z(a),1,0)
v4=AddVertex(surf,Vert5x(a),Vert5y(a),Vert5z(a),1,0)
v5=AddVertex(surf,Vert6x(a),Vert6y(a),Vert6z(a),1,1)
v6=AddVertex(surf,Vert7x(a),Vert7y(a),Vert7z(a),1,0)
v7=AddVertex(surf,Vert8x(a),Vert8y(a),Vert8z(a),1,1)
v8=AddVertex(surf,Vert1x(a+1),Vert1y(a+1),Vert1z(a+1),0,1)
v9=AddVertex(surf,Vert2x(a+1),Vert2y(a+1),Vert2z(a+1),0,0)
v10=AddVertex(surf,Vert3x(a+1),Vert3y(a+1),Vert3z(a+1),0,1)
v11=AddVertex(surf,Vert4x(a+1),Vert4y(a+1),Vert4z(a+1),0,0)
v12=AddVertex(surf,Vert5x(a+1),Vert5y(a+1),Vert5z(a+1),0,0)
v13=AddVertex(surf,Vert6x(a+1),Vert6y(a+1),Vert6z(a+1),0,1)
v14=AddVertex(surf,Vert7x(a+1),Vert7y(a+1),Vert7z(a+1),0,0)
v15=AddVertex(surf,Vert8x(a+1),Vert8y(a+1),Vert8z(a+1),0,1)
t0=AddTriangle(surf,v8,v9,v0)
t1=AddTriangle(surf,v9,v1,v0)
t2=AddTriangle(surf,v9,v10,v1)
t3=AddTriangle(surf,v10,v2,v1)
t4=AddTriangle(surf,v10,v11,v2)
t5=AddTriangle(surf,v11,v3,v2)
t6=AddTriangle(surf,v8,v0,v4)
t7=AddTriangle(surf,v12,v8,v4)
t8=AddTriangle(surf,v12,v4,v5)
t9=AddTriangle(surf,v13,v12,v5)
t10=AddTriangle(surf,v13,v5,v6)
t11=AddTriangle(surf,v14,v13,v6)
t12=AddTriangle(surf,v14,v6,v7)
t13=AddTriangle(surf,v15,v14,v7)
Next
UpdateNormals track
PositionEntity track,0,-12,20
FlipMesh track
For times=1 To 8
FreeEntity vertbox(times)
Next

End Function


Function updatecam()
PickedX()
If MouseDown(1) Then MoveEntity ship,-.01,0,0
If MouseDown(2) Then MoveEntity ship,.01,0,0
If KeyDown(44) Then TurnEntity ship,0,.1,0
If KeyDown(45) Then TurnEntity ship,0,-.1,0
MoveEntity Ship,0,0,0.01
PositionEntity camera,EntityX(ship,1),EntityY(ship,1),EntityZ(ship,1)
RotateEntity camera,EntityPitch(ship,1),EntityYaw(ship,1),EntityRoll(ship,1)
MoveEntity camera,0,6,-10
PointEntity camera,ship
End Function






Function CreateShip()
Ship=CreateSphere(2)
ballf=CreateSphere(2)
ballb=CreateSphere(2)
balll=CreateSphere(2)
ballr=CreateSphere(2)
ballpiv=CreatePivot()
PositionEntity Ship,0,-9,21,1
PositionEntity ballf,0,-9,23,1
PositionEntity ballb,0,-9,19,1
PositionEntity balll,-2,-9,21,1
PositionEntity ballr,2,-9,21,1
PositionEntity ballpiv,0,-9,21,1
RotateEntity ballr,0,90,0,1
RotateEntity balll,0,90,0,1
RotateEntity ballf,0,90,0,1
RotateEntity ballb,0,90,0,1
EntityParent ballpiv,Ship
EntityParent ballf,ballpiv
EntityParent ballb,ballpiv
EntityParent balll,ballpiv
EntityParent ballr,ballpiv
TurnEntity ship,0,90,0,1
EntityPickMode track,2
End Function

Sorry for my silly question just wanted to see what other people came up with