Please post example code. Can't get this to work.
Code archives/3D Graphics - Misc/PlaceBallOnEachVertex(mesh) Function
This code has been declared by its author to be Public Domain code.
Download source code
| This code will place a number on each vertex in a mesh to help you when you need to know each vertex's number. |
Function PlaceBallOnEachVertex(mesh) surface = GetSurface(mesh,1) For temp = 0 To CountVertices(surface) - 1 tempball = CreateSphere(8) PositionEntity tempball,VertexX#(surface,temp), VertexY#(surface,temp), VertexZ#(surface,temp) EntityColor tempball,190,0,0 EntityAlpha tempball,.4 EntityParent tempball, mesh NameEntity tempball,"Vertex " + temp tempimg = CreateTexture(Len(temp) * 10,15) SetBuffer TextureBuffer(tempimg) Cls Text 1,1,temp SetBuffer BackBuffer() vert_sprite = CreateSprite() EntityTexture vert_sprite,tempimg PositionEntity vert_sprite,VertexX#(surface,temp), VertexY#(surface,temp), VertexZ#(surface,temp),1 EntityParent vert_sprite, tempball Next End Function ;;;;;;;;;;;;;;;;;;;;;;;;;EXAMPLE The following is the example of how to use this function Graphics3D 800,600,16,2 SetBuffer BackBuffer() SeedRnd MilliSecs() Global camera = CreateCamera() Global light = CreateLight(camera) MoveEntity camera,5,4,-6 meshy_terrain = CreateTerrainMesh(5,7) PlaceBallOnEachVertex(meshy_terrain) ;<======== HERE IT IS While Not KeyDown(1) Get_Input() RenderWorld Text 1,1, "Arrow keys, A key, and Z key move camera" Flip Cls Wend End Function PlaceBallOnEachVertex(mesh) surface = GetSurface(mesh,1) For temp = 0 To CountVertices(surface) - 1 tempball = CreateSphere(8) PositionEntity tempball,VertexX#(surface,temp), VertexY#(surface,temp), VertexZ#(surface,temp) EntityColor tempball,190,0,0 EntityAlpha tempball,.4 EntityParent tempball, mesh NameEntity tempball,"Vertex " + temp tempimg = CreateTexture(Len(temp) * 10,15) SetBuffer TextureBuffer(tempimg) Cls Text 1,1,temp SetBuffer BackBuffer() vert_sprite = CreateSprite() EntityTexture vert_sprite,tempimg PositionEntity vert_sprite,VertexX#(surface,temp), VertexY#(surface,temp), VertexZ#(surface,temp),1 EntityParent vert_sprite, tempball Next End Function Function CreateTerrainMesh(x,y) ;x = how many horizontal vertices ;y = how many vertical vertices mesh = CreateMesh() surf = CreateSurface(mesh) If x < 2 Or y < 2 Then Return mesh ;in case user gives a bad number simply return the mesh For tempx = 1 To x For tempy = 1 To y AddVertex(surf,tempx*4,0,tempy*4) Next Next For v0 = 0 To (x*y)-y-2 For Z = 1 To x*y If v0 = z*y-1 Then v0 = v0 + 1 Next v1 = V0 + 1 v2 = v1 + y v3 = v0 + y AddTriangle(surf,v0,v1,v2) AddTriangle(surf,v0,v2,v3) Next Return mesh End Function Function Get_Input() shift = 0 up = 0 down = 0 left_key = 0 right_key = 0 a = 0 z = 0 If KeyDown(shiftkey) = 1 Then shift = 1 If KeyDown(200) = 1 Then up = 1 If KeyDown(208) = 1 Then down = 1 If KeyDown(203) = 1 Then Left_key = 1 If KeyDown(205) = 1 Then Right_key = 1 If KeyDown(30) = 1 Then a = 1 If KeyDown(44) = 1 Then z = 1 If right_key = 1 Then MoveEntity camera,1,0,0 If left_key = 1 Then MoveEntity camera,-1,0,0 If up = 1 Then MoveEntity camera,0,0,1 If down = 1 Then MoveEntity camera,0,0,-1 If a = 1 Then MoveEntity camera,0,1,0 If z = 1 Then MoveEntity camera,0,-1,0 If KeyDown(211) Then TurnEntity camera,0,2,0 If KeyDown(209) Then TurnEntity camera,0,-2,0 End Function |
Comments
I found out that I needed to scale the sprite and ball so it was visible. It was way too small for me to see.
Added Example. BTW does anyone know how to make my code public domain?
I think you just did.
Thank you...It is now PD...though now that I'm running it on a mesh and resizing the mesh...I can see a slight problem of the spheres becoming larger in size. I kinda just wanted them to stay the same size once made.
Should I make a function to normalize the spheres back to original size(though I dislike giving a function out and forcing you to add more code to your program) or leave this as is since this is mostly for use in debugging a mesh's vertice?
Should I make a function to normalize the spheres back to original size(though I dislike giving a function out and forcing you to add more code to your program) or leave this as is since this is mostly for use in debugging a mesh's vertice?