//this face is one of the srrounding faces attahed to vold public void ReplaceVertex(Vertex vold, Vertex vnew) { for (int i = 0; i < 3; i++) { if (vertex[i].position == vold.position) { vertex[i] = vnew; vold.RemoveFace(this); if (vnew != null) { vnew.AddFace(this); } break; } } //remove reff of vold from Neighborhood vold.RemoveIfNonNeighbor(vertex[0]); vertex[0].RemoveIfNonNeighbor(vold); vold.RemoveIfNonNeighbor(vertex[1]); vertex[1].RemoveIfNonNeighbor(vold); vold.RemoveIfNonNeighbor(vertex[2]); vertex[2].RemoveIfNonNeighbor(vold); vertex[0].AddNeighbor(vertex[1]); vertex[0].AddNeighbor(vertex[2]); vertex[1].AddNeighbor(vertex[0]); vertex[1].AddNeighbor(vertex[2]); vertex[2].AddNeighbor(vertex[0]); vertex[2].AddNeighbor(vertex[1]); ComputeNormal(); }
//this face is one of the srrounding faces attahed to vold public void ReplaceVertex(Vertex vold,Vertex vnew) { for(int i = 0; i < 3; i++) { if(vertex[i].position == vold.position ) { vertex[i] = vnew; vold.RemoveFace( this ); if(vnew!=null) vnew.AddFace( this ); break; } } //remove reff of vold from Neighborhood vold.RemoveIfNonNeighbor( vertex[0] ); vertex[0].RemoveIfNonNeighbor( vold ); vold.RemoveIfNonNeighbor( vertex[1] ); vertex[1].RemoveIfNonNeighbor( vold ); vold.RemoveIfNonNeighbor( vertex[2] ); vertex[2].RemoveIfNonNeighbor( vold ); vertex[0]. AddNeighbor(vertex[1]); vertex[0]. AddNeighbor(vertex[2]); vertex[1]. AddNeighbor(vertex[0]); vertex[1]. AddNeighbor(vertex[2]); vertex[2]. AddNeighbor(vertex[0]); vertex[2]. AddNeighbor(vertex[1]); ComputeNormal(); }