added a few security assert on deletion of simplexes that you are actually deleting objects that belongs to the given mesh

This commit is contained in:
Paolo Cignoni 2012-03-30 23:43:04 +00:00
parent e3d0a6d0cb
commit b43fffd46f
1 changed files with 7 additions and 4 deletions

View File

@ -544,6 +544,7 @@ namespace vcg {
*/ */
static void DeleteFace(MeshType &m, FaceType &f) static void DeleteFace(MeshType &m, FaceType &f)
{ {
assert(&f >= &m.face.front() && &f <= &m.face.back());
assert(!f.IsD()); assert(!f.IsD());
f.SetD(); f.SetD();
--m.fn; --m.fn;
@ -554,6 +555,7 @@ namespace vcg {
*/ */
static void DeleteVertex(MeshType &m, VertexType &v) static void DeleteVertex(MeshType &m, VertexType &v)
{ {
assert(&v >= &m.vert.front() && &v <= &m.vert.back());
assert(!v.IsD()); assert(!v.IsD());
v.SetD(); v.SetD();
--m.vn; --m.vn;
@ -562,11 +564,12 @@ namespace vcg {
/** Function to delete an edge from the mesh. /** Function to delete an edge from the mesh.
NOTE: THIS FUNCTION ALSO UPDATE en NOTE: THIS FUNCTION ALSO UPDATE en
*/ */
static void DeleteEdge(MeshType &m, EdgeType &e) static void DeleteEdge(MeshType &m, EdgeType &e)
{ {
assert(!e.IsD()); assert(&e >= &m.edge.front() && &e <= &m.edge.back());
e.SetD(); assert(!e.IsD());
--m.en; e.SetD();
--m.en;
} }
/** Function to delete a hedge from the mesh. /** Function to delete a hedge from the mesh.