А можно функцию BodyCreateHull и BodyCreateMesh с Xors3D дать?
|
Блитзовые BodyCreateHull и BodyCreateMesh переделываются на ксорс таким образом: в командах движка дописываем x и заменяем нумерацию во всех счётчиках на диапазон от 0 до xCount....()-1.
- Ваш Кэп
Function BodyCreateHull%(mesh%, mass#)
Local nsurf = CountSurfaces(mesh)
Local nvert = 0
For ns = 1 To nsurf
Local surf = GetSurface(mesh,ns)
nvert = nvert + CountVertices(surf)
Next
vbank = CreateBank(nvert*4*3)
nv = 0
For ns = 1 To nsurf
surf = GetSurface(mesh,ns)
nvv = CountVertices(surf)
For nvc = 0 To nvv - 1
PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
nv = nv+1
Next
Next
Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
FreeBank vbank
Return bbb
End Function
Function BodyCreateMesh(mesh%)
nsurf = xCountSurfaces(mesh)
nvert = 0
nface=0
For ns = 0 To nsurf-1
Local surf = xGetSurface(mesh,ns)
nface = nface+xCountTriangles(surf)
nvert = nvert +xCountVertices(surf)
Next
fbank = CreateBank(nface*4*3)
nf = 0
vbank = CreateBank(nvert*4*3)
nv = 0
For ns = 0 To nsurf-1
surf = xGetSurface(mesh,ns)
nfv = xCountTriangles(surf)
For nfc = 0 To nfv -1
PokeInt fbank,nf*12+0,xTriangleVertex(surf,nfc,0)
PokeInt fbank,nf*12+4,xTriangleVertex(surf,nfc,1)
PokeInt fbank,nf*12+8,xTriangleVertex(surf,nfc,2)
nf=nf+1
Next
nvv = xCountVertices(surf)
For nvc = 0 To nvv - 1
PokeFloat vbank,nv*12+0,xVertexX(surf,nvc)
PokeFloat vbank,nv*12+4,xVertexY(surf,nvc)
PokeFloat vbank,nv*12+8,xVertexZ(surf,nvc)
nv = nv+1
Next
Next
bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface,0)
FreeBank vbank
FreeBank fbank
Return bbb%
End Function
http://forum.boolean.name/showpost.p...50&postcount=4
Блин ну для кого писал.
Между прочим там дано описание структуры банка, который передаётся в dll, чтобы можно было написать такие функции для любого движка (специально подробно разъяснил) и для загрузки из файла и т.д.