diff --git a/vcg/complex/algorithms/polygon_polychord_collapse.h b/vcg/complex/algorithms/polygon_polychord_collapse.h index d1741107..f6fc0ef8 100644 --- a/vcg/complex/algorithms/polygon_polychord_collapse.h +++ b/vcg/complex/algorithms/polygon_polychord_collapse.h @@ -1069,7 +1069,6 @@ public: if (!runPos.F()->IsV()) { runPos.F()->SetV(); faceSubdivisionsIt = faceSubdivisions.insert(std::make_pair(runPos.F(), FaceSubdivision())).first; - assert(faceSubdivisionsIt != faceSubdivisions.end()); faceSubdivisionsIt->second.firstEdge = runPos.E(); faceSubdivisionsIt->second.firstVertex = runPos.VInd(); if (runPos.F()->IsS()) @@ -1137,20 +1136,17 @@ public: // get current and previous subdivision faceSubdivisionsPrevIt = faceSubdivisionsIt; faceSubdivisionsIt = faceSubdivisions.find(runPos.F()); - assert(faceSubdivisionsIt != faceSubdivisions.end()); // get original indices bottomEdge = faceSubdivisionsIt->second.firstEdge; rightEdge = runPos.F()->Next(bottomEdge); topEdge = runPos.F()->Next(rightEdge); leftEdge = runPos.F()->Next(topEdge); - assert(runPos.F()->Prev(bottomEdge) == leftEdge); blVInd = faceSubdivisionsIt->second.firstVertex; brVInd = runPos.F()->Next(blVInd); trVInd = runPos.F()->Next(brVInd); tlVInd = runPos.F()->Next(trVInd); if (faceSubdivisionsPrevIt != faceSubdivisions.end()) { - assert(!runPos.IsBorder()); pbottomEdge = faceSubdivisionsPrevIt->second.firstEdge; prightEdge = runPos.FFlip()->Next(pbottomEdge); ptopEdge = runPos.FFlip()->Next(prightEdge); @@ -1200,7 +1196,7 @@ public: faceSubdivisionsPrevIt->second.subfaces.at(n-j-1).back().ffiAdj.at(prightEdge) = bottomEdge; } } else { - assert(runPos.F()->FFi(bottomEdge) == pleftEdge); + // must be pleftEdge // update face-to-vertex adjacency for (size_t i = 0; i < n - 1; ++i) { faceSubdivisionsPrevIt->second.subfaces.at(i).front().fvpAdj.at(ptlVInd) = faceSubdivisionsIt->second.subfaces.front().at(i).fvpAdj.at(brVInd); @@ -1215,7 +1211,7 @@ public: } } } else { - assert(runPos.IsBorder()); + // must be on border // update face-to-face adjacency for (size_t j = 0; j < n; ++j) { faceSubdivisionsIt->second.subfaces.front().at(j).ffpAdj.at(bottomEdge) = faceSubdivisionsIt->second.subfaces.front().at(j).faceP; @@ -1232,7 +1228,7 @@ public: faceSubdivisionsIt->second.subfaces.at(i).front().fvpAdj.at(tlVInd) = &*firstAddedVertexIt; faceSubdivisionsIt->second.subfaces.at(i+1).front().fvpAdj.at(blVInd) = &*firstAddedVertexIt; } - assert(!runPos.IsBorder()); + // can't be on border if (runPos.F()->FFi(leftEdge) == ptopEdge) { // update face-to-vertex adjacency for (size_t j = 0; j < n - 1; ++j) { @@ -1260,7 +1256,7 @@ public: faceSubdivisionsPrevIt->second.subfaces.at(i).back().ffiAdj.at(prightEdge) = leftEdge; } } else { - assert(runPos.F()->FFi(leftEdge) == pleftEdge); + // must be runPos.F()->FFi(leftEdge) == pleftEdge // update face-to-vertex adjacency for (size_t i = 0; i < n - 1; ++i) { faceSubdivisionsPrevIt->second.subfaces.at(i).front().fvpAdj.at(ptlVInd) = faceSubdivisionsIt->second.subfaces.front().at(n-i-1).fvpAdj.at(blVInd); @@ -1275,7 +1271,7 @@ public: } } } else { - assert(runPos.E() == rightEdge); + // must be runPos.E() == rightEdge // get pre-existing coords fromPoint = faceSubdivisionsIt->second.subfaces.front().back().fvpAdj.at(brVInd)->P(); toPoint = faceSubdivisionsIt->second.subfaces.back().back().fvpAdj.at(trVInd)->P(); @@ -1285,7 +1281,7 @@ public: faceSubdivisionsIt->second.subfaces.at(i).back().fvpAdj.at(trVInd) = &*firstAddedVertexIt; faceSubdivisionsIt->second.subfaces.at(i+1).back().fvpAdj.at(brVInd) = &*firstAddedVertexIt; } - assert(!runPos.IsBorder()); + // can't be on border if (runPos.F()->FFi(rightEdge) == ptopEdge) { // update face-to-vertex adjacency for (size_t j = 0; j < n - 1; ++j) { @@ -1313,7 +1309,7 @@ public: faceSubdivisionsPrevIt->second.subfaces.at(n-i-1).back().ffiAdj.at(prightEdge) = rightEdge; } } else { - assert(runPos.F()->FFi(rightEdge) == pleftEdge); + // must be runPos.F()->FFi(rightEdge) == pleftEdge // update face-to-vertex adjacency for (size_t i = 0; i < n - 1; ++i) { faceSubdivisionsPrevIt->second.subfaces.at(i).front().fvpAdj.at(ptlVInd) = faceSubdivisionsIt->second.subfaces.at(i).back().fvpAdj.at(trVInd); @@ -1335,13 +1331,12 @@ public: runPos.FlipV(); if (runPos.IsBorder()) { if (!runPos.F()->IsS()) { - assert(runPos.E() == leftEdge); - assert(faceSubdivisionsIt->second.subfaces.size() == 1); + // must be runPos.E() == leftEdge and faceSubdivisionsIt->second.subfaces.size() == 1 faceSubdivisionsIt->second.subfaces.front().front().ffpAdj.at(leftEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP; faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = leftEdge; } } else if (!runPos.FFlip()->IsV()) { - assert(runPos.E() == leftEdge); + // must be runPos.E() == leftEdge and faceSubdivisionsIt->second.subfaces.size() == 1 assert(faceSubdivisionsIt->second.subfaces.size() == 1); faceSubdivisionsIt->second.subfaces.front().front().ffpAdj.at(leftEdge) = runPos.FFlip(); faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = runPos.F()->FFi(leftEdge); @@ -1350,11 +1345,9 @@ public: runPos.F()->FFi(leftEdge), leftEdge)); } else if (!runPos.FFlip()->IsS() && !runPos.F()->IsS()) { - assert(runPos.E() == leftEdge); - assert(faceSubdivisionsIt->second.subfaces.size() == 1); + // must be runPos.E() == leftEdge and faceSubdivisionsIt->second.subfaces.size() == 1 faceSubdivisionsNeighbourIt = faceSubdivisions.find(runPos.FFlip()); - assert(faceSubdivisionsNeighbourIt != faceSubdivisions.end()); - assert(faceSubdivisionsNeighbourIt->second.subfaces.size() == 1); + // must be faceSubdivisionsNeighbourIt != faceSubdivisions.end() and faceSubdivisionsNeighbourIt->second.subfaces.size() == 1 pbottomEdge = faceSubdivisionsNeighbourIt->second.firstEdge; prightEdge = runPos.FFlip()->Next(pbottomEdge); ptopEdge = runPos.FFlip()->Next(prightEdge); @@ -1365,7 +1358,7 @@ public: faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffpAdj.at(pleftEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP; faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffiAdj.at(pleftEdge) = leftEdge; } else { - assert(runPos.F()->FFi(leftEdge) == prightEdge); + // must be runPos.F()->FFi(leftEdge) == prightEdge faceSubdivisionsIt->second.subfaces.front().front().ffpAdj.at(leftEdge) = faceSubdivisionsNeighbourIt->second.subfaces.front().back().faceP; faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = prightEdge; faceSubdivisionsNeighbourIt->second.subfaces.front().back().ffpAdj.at(prightEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP; @@ -1378,14 +1371,12 @@ public: runPos.FlipE(); if (runPos.IsBorder()) { if (!runPos.F()->IsS()) { - assert(runPos.E() == rightEdge); - assert(faceSubdivisionsIt->second.subfaces.size() == 1); + // must be runPos.E() == rightEdge and faceSubdivisionsIt->second.subfaces.size() == 1 faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP; faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = rightEdge; } } else if (!runPos.FFlip()->IsV()) { - assert(runPos.E() == rightEdge); - assert(faceSubdivisionsIt->second.subfaces.size() == 1); + // must be runPos.E() == rightEdge and faceSubdivisionsIt->second.subfaces.size() == 1 faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = runPos.FFlip(); faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = runPos.F()->FFi(rightEdge); externalFaces.push_back(ExternalFaceData(runPos.FFlip(), @@ -1393,11 +1384,9 @@ public: runPos.F()->FFi(rightEdge), rightEdge)); } else if (!runPos.FFlip()->IsS() && !runPos.F()->IsS()) { - assert(runPos.E() == rightEdge); - assert(faceSubdivisionsIt->second.subfaces.size() == 1); + // must be runPos.E() == rightEdge and faceSubdivisionsIt->second.subfaces.size() == 1 faceSubdivisionsNeighbourIt = faceSubdivisions.find(runPos.FFlip()); - assert(faceSubdivisionsNeighbourIt != faceSubdivisions.end()); - assert(faceSubdivisionsNeighbourIt->second.subfaces.size() == 1); + // must be faceSubdivisionsNeighbourIt != faceSubdivisions.end() and faceSubdivisionsNeighbourIt->second.subfaces.size() == 1 pbottomEdge = faceSubdivisionsNeighbourIt->second.firstEdge; prightEdge = runPos.FFlip()->Next(pbottomEdge); ptopEdge = runPos.FFlip()->Next(prightEdge); @@ -1408,7 +1397,7 @@ public: faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffpAdj.at(pleftEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP; faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffiAdj.at(pleftEdge) = rightEdge; } else { - assert(runPos.F()->FFi(rightEdge) == prightEdge); + // must be runPos.F()->FFi(rightEdge) == prightEdge faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = faceSubdivisionsNeighbourIt->second.subfaces.front().back().faceP; faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = prightEdge; faceSubdivisionsNeighbourIt->second.subfaces.front().back().ffpAdj.at(prightEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP; @@ -1452,7 +1441,7 @@ public: faceSubdivisionsIt->second.subfaces.at(i).front().ffiAdj.at(leftEdge) = leftEdge; } } else { - assert(runPos.E() == rightEdge); + // must be runPos.E() == rightEdge // get pre-existing coords fromPoint = faceSubdivisionsIt->second.subfaces.front().back().fvpAdj.at(brVInd)->P(); toPoint = faceSubdivisionsIt->second.subfaces.back().back().fvpAdj.at(trVInd)->P();