iMiniB3D : Remove tri bug?
BlitzMax Forums/MiniB3D Module/iMiniB3D : Remove tri bug?
| ||
I haven't used remove tri in a long time, and never before in iMiniB3D, but it looks like there's a bug in it. Per documentation it doesn't remove verts (there's no way to remove verts) just the tri connecting them, however when I remove a tri it seems like everything gets all kinds of out of allignment and broken...Mesh *test = Mesh::CreateCube(); Surface *surf = test->GetSurface(1); surf->RemoveTri(1); |
| ||
| yeah, weird. but i wouldn't use TriangleVertex() since it reads things backwards and makes it confusing to debug. try this, and play with the ordering of v0, v1, v2
// removes a tri from a surface
void Surface::RemoveTri(int tri){
int temp_num = no_tris;
int* src=new int[no_tris*3];
for(int t=0;t<no_tris-1;t++){
src[t*3+0]=tris[t*3+0];
src[t*3+1]=tris[t*3+1];
src[t*3+2]=tris[t*3+2];
}
ClearSurface(false,true);
for(int t=0;t<temp_num-1;t++){
int v0=src[t*3+0];
int v1=src[t*3+1];
int v2=src[t*3+2];
if(t!=tri) AddTriangle(v0,v1,v2);
}
delete[] src;
}
Last edited 2012 |
| ||
| Just tried with your updated removetri and its better/different, but still quite wrong from what should be happening. Re-ordering the verts seems to oddly have little/no effect... Last edited 2012 |
| ||
| I've updated the code above, I found an error. |
| ||
| Better still, but it seems to warp the texture coords for some reason... |