Countvertices and Counttriangles don't work?
Blitz3D Forums/Blitz3D Programming/Countvertices and Counttriangles don't work?
| ||
For some reason, however I code it, it always returns zero. |
| ||
Maybe there are zero vertices/tris in the surface you are checking... Try this: function DebugMeshCounts(mesh) n_surfs = countsurfaces(mesh) debuglog "surfaces: "+n_surfs for s = 1 to n_surfs surf = getsurface(mesh,s) n_verts = countvertices(surf) n_tris = counttriangles(surf) debuglog "surface "+s+" verts: "+n_verts+" tris: "+n_tris t_verts = t_verts+n_verts t_tris = t_tris+n_tris next debuglog "total verts: "+t_verts debuglog "total tris: "+t_tris end function |
| ||
Thanks. I just found a funny thing though which explains it all. I'm using AddMesh to add one to another, and it always seems to add the mesh to surface 2 of the destination mesh. I didn't even create surface 2. |
| ||
If the mesh you are adding has different surface attributes to the target mesh Blitz will create new surfaces in the target mesh. |
| ||
Mmmm... what attributes could they be? I haven't even done anything with the surface. I created a surface, then used AddMesh straight away. Maybe I need to PaintSurface the first surface? [edit] No, that doesn't work. Even if I don't create surface 1, using AddMesh results in 2 surfaces. |
| ||
Are you saying you have a completely empty mesh and you add a mesh to this that has only one surface and you end up with two surfaces? (that would be weird). Or does the mesh you are adding to already have a surface? If it does and the two surfaces have been painted with the same brush then I would expect the surfaces to be merged, unless of course the vertex limit would be exceeded in which case I would expect a second surface to be created. If you have not painted both the surfaces though maybe they are being created with different attributes or some attributes are undefined. I have not tried that but it would not suprise me. |
| ||
Check out this example, it may clear things up, then again lolGraphics3D 800,600 mesh=CreateMesh() s1=CountSurfaces(mesh) surf=CreateSurface(mesh) s2=CountSurfaces(mesh) cube=CreateCube() AddMesh cube,mesh s3=CountSurfaces(mesh) sphere=CreateSphere() brush=CreateBrush(255,0,0) PaintMesh sphere,brush AddMesh sphere,mesh s4=CountSurfaces(mesh) While Not KeyHit(1) Text 0,0,"Surfcount of mesh "+s1+" because we haven't made any surfaces yet" Text 0,10,"Surfcount after creating a surface "+s2+" we just created one surface" Text 0,20,"Surfcount after addmeshing the cube "+s3+" the cube has the same brush properties as the empty surface" Text 0,30,"Surfcount after addmeshing the sphere "+s4+" the sphere has different brush properties to the cube" Flip Wend |
| ||
That's what I thought. I've been using the same brush though so I don't know what's up. Also I am adding the mesh to a mesh with no surfaces, and still getting 2. I need to really take a good look at my code. |