Tokamak - Convex Hull
Übersicht

![]() |
The_NiciBetreff: Tokamak - Convex Hull |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
folgender Code: Code: [AUSKLAPPEN] mesh=strecke Local nsurf = CountSurfaces(mesh) Local nvert = 0 For ns = 1 To nsurf Local surf = GetSurface(mesh,ns) nvert = nvert + CountVertices(surf) Next Local vbank = CreateBank(nvert*4*3) nv = 0 ; Poke vertices coordinates to bank 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 geomstrecke=TOKRB_AddConvex(rbstrecke,chbank,BankSize(chbank)) mode=2 EndIf Ich bekomme immer einen MAV bei TOKRB_AddConvex() Dabei sollte das doch irgendwie stimmen, oder? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du erstellst vbank aber übergibst chbank. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ouch. XD
Danke BladeRunner für den Hinweis. Jedoch bleibt der MAV auf weiteres bei dieser Zeile. |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry für das Hochholen dieses alten Beitrages, aber da ich mich selbst gerade damit beschäftige, hier der Weg, wie ich es geschafft habe:
Zunächst einmal musst Du ein Mesh in eine Liste von Vertizes umwandeln, die Du dann wiederum mit dem Tool "adjacency.exe" in ein binäres File konvertierst (das Tool befindet sich im tools-Ordner der Tokamak Engine: http://www.tokamakphysics.com/..._1_2_5.zip ). Schritt 1: Konvertieren des Meshes in eine Vertexliste Code: [AUSKLAPPEN] Graphics3D( 800, 600, 32, 2 ) entity = LoadMesh( "mesh.b3d" ) createTokHull( entity, "mesh.txt" ) End Function createTokHull( entity, file$ ) Local points%, surf% Local vx#,vy#,vz# Local k%,l% Local count% Local surfs=CountSurfaces(entity) If surfs=0 Return 0 For k=1 To surfs surf=GetSurface(entity,k) points=points+CountVertices(surf) Next Local file = WriteFile(file$) WriteLine( file,points ) count = 0 For k=1 To surfs surf=GetSurface(entity,k) For l = 0 To CountVertices( surf ) - 1 vx = VertexX( surf, l ) vy = VertexY( surf, l ) vz = VertexZ( surf, l ) TFormPoint( vx, vy, vz, entity, 0 ) WriteLine( file, TFormedX() + " " + TFormedY() + " " + TFormedZ() ) Next Next CloseFile file End Function Schritt 2: Konvertieren der Vertexliste in ein Bin-File In der Kommandozeile (cmd.exe) eintippen: Code: [AUSKLAPPEN] adjacency.exe mesh.txt mesh.bin Nun hast Du ein binäres File der konvexen Hülle Deines Meshes. Das kannst Du jetzt der Tokamak-Engine so übergeben: Code: [AUSKLAPPEN] size = FileSize( "mesh.bin" ) convex = CreateBank( size ) filein = ReadFile( "mesh.bin" ) For i = 0 To size-1 PokeByte( convex, i, ReadByte( filein ) ) Next CloseFile( filein ) ;convexe Hülle an Tokamak übergeben tokHandle = TOKRB_Create() TOKRB_AddConvex( tokHandle, convex, BankSize( convex ) ) FreeBank( convex ) Fertig. ![]() |
||
Cerberus X - Monkey X Reloaded! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group