Removed several unusefull asserts on polychord splitting.
This commit is contained in:
parent
6e0fe4fb49
commit
ad7f96a642
|
|
@ -1069,7 +1069,6 @@ public:
|
||||||
if (!runPos.F()->IsV()) {
|
if (!runPos.F()->IsV()) {
|
||||||
runPos.F()->SetV();
|
runPos.F()->SetV();
|
||||||
faceSubdivisionsIt = faceSubdivisions.insert(std::make_pair(runPos.F(), FaceSubdivision())).first;
|
faceSubdivisionsIt = faceSubdivisions.insert(std::make_pair(runPos.F(), FaceSubdivision())).first;
|
||||||
assert(faceSubdivisionsIt != faceSubdivisions.end());
|
|
||||||
faceSubdivisionsIt->second.firstEdge = runPos.E();
|
faceSubdivisionsIt->second.firstEdge = runPos.E();
|
||||||
faceSubdivisionsIt->second.firstVertex = runPos.VInd();
|
faceSubdivisionsIt->second.firstVertex = runPos.VInd();
|
||||||
if (runPos.F()->IsS())
|
if (runPos.F()->IsS())
|
||||||
|
|
@ -1137,20 +1136,17 @@ public:
|
||||||
// get current and previous subdivision
|
// get current and previous subdivision
|
||||||
faceSubdivisionsPrevIt = faceSubdivisionsIt;
|
faceSubdivisionsPrevIt = faceSubdivisionsIt;
|
||||||
faceSubdivisionsIt = faceSubdivisions.find(runPos.F());
|
faceSubdivisionsIt = faceSubdivisions.find(runPos.F());
|
||||||
assert(faceSubdivisionsIt != faceSubdivisions.end());
|
|
||||||
|
|
||||||
// get original indices
|
// get original indices
|
||||||
bottomEdge = faceSubdivisionsIt->second.firstEdge;
|
bottomEdge = faceSubdivisionsIt->second.firstEdge;
|
||||||
rightEdge = runPos.F()->Next(bottomEdge);
|
rightEdge = runPos.F()->Next(bottomEdge);
|
||||||
topEdge = runPos.F()->Next(rightEdge);
|
topEdge = runPos.F()->Next(rightEdge);
|
||||||
leftEdge = runPos.F()->Next(topEdge);
|
leftEdge = runPos.F()->Next(topEdge);
|
||||||
assert(runPos.F()->Prev(bottomEdge) == leftEdge);
|
|
||||||
blVInd = faceSubdivisionsIt->second.firstVertex;
|
blVInd = faceSubdivisionsIt->second.firstVertex;
|
||||||
brVInd = runPos.F()->Next(blVInd);
|
brVInd = runPos.F()->Next(blVInd);
|
||||||
trVInd = runPos.F()->Next(brVInd);
|
trVInd = runPos.F()->Next(brVInd);
|
||||||
tlVInd = runPos.F()->Next(trVInd);
|
tlVInd = runPos.F()->Next(trVInd);
|
||||||
if (faceSubdivisionsPrevIt != faceSubdivisions.end()) {
|
if (faceSubdivisionsPrevIt != faceSubdivisions.end()) {
|
||||||
assert(!runPos.IsBorder());
|
|
||||||
pbottomEdge = faceSubdivisionsPrevIt->second.firstEdge;
|
pbottomEdge = faceSubdivisionsPrevIt->second.firstEdge;
|
||||||
prightEdge = runPos.FFlip()->Next(pbottomEdge);
|
prightEdge = runPos.FFlip()->Next(pbottomEdge);
|
||||||
ptopEdge = runPos.FFlip()->Next(prightEdge);
|
ptopEdge = runPos.FFlip()->Next(prightEdge);
|
||||||
|
|
@ -1200,7 +1196,7 @@ public:
|
||||||
faceSubdivisionsPrevIt->second.subfaces.at(n-j-1).back().ffiAdj.at(prightEdge) = bottomEdge;
|
faceSubdivisionsPrevIt->second.subfaces.at(n-j-1).back().ffiAdj.at(prightEdge) = bottomEdge;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(runPos.F()->FFi(bottomEdge) == pleftEdge);
|
// must be pleftEdge
|
||||||
// update face-to-vertex adjacency
|
// update face-to-vertex adjacency
|
||||||
for (size_t i = 0; i < n - 1; ++i) {
|
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);
|
faceSubdivisionsPrevIt->second.subfaces.at(i).front().fvpAdj.at(ptlVInd) = faceSubdivisionsIt->second.subfaces.front().at(i).fvpAdj.at(brVInd);
|
||||||
|
|
@ -1215,7 +1211,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(runPos.IsBorder());
|
// must be on border
|
||||||
// update face-to-face adjacency
|
// update face-to-face adjacency
|
||||||
for (size_t j = 0; j < n; ++j) {
|
for (size_t j = 0; j < n; ++j) {
|
||||||
faceSubdivisionsIt->second.subfaces.front().at(j).ffpAdj.at(bottomEdge) = faceSubdivisionsIt->second.subfaces.front().at(j).faceP;
|
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).front().fvpAdj.at(tlVInd) = &*firstAddedVertexIt;
|
||||||
faceSubdivisionsIt->second.subfaces.at(i+1).front().fvpAdj.at(blVInd) = &*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) {
|
if (runPos.F()->FFi(leftEdge) == ptopEdge) {
|
||||||
// update face-to-vertex adjacency
|
// update face-to-vertex adjacency
|
||||||
for (size_t j = 0; j < n - 1; ++j) {
|
for (size_t j = 0; j < n - 1; ++j) {
|
||||||
|
|
@ -1260,7 +1256,7 @@ public:
|
||||||
faceSubdivisionsPrevIt->second.subfaces.at(i).back().ffiAdj.at(prightEdge) = leftEdge;
|
faceSubdivisionsPrevIt->second.subfaces.at(i).back().ffiAdj.at(prightEdge) = leftEdge;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(runPos.F()->FFi(leftEdge) == pleftEdge);
|
// must be runPos.F()->FFi(leftEdge) == pleftEdge
|
||||||
// update face-to-vertex adjacency
|
// update face-to-vertex adjacency
|
||||||
for (size_t i = 0; i < n - 1; ++i) {
|
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);
|
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 {
|
} else {
|
||||||
assert(runPos.E() == rightEdge);
|
// must be runPos.E() == rightEdge
|
||||||
// get pre-existing coords
|
// get pre-existing coords
|
||||||
fromPoint = faceSubdivisionsIt->second.subfaces.front().back().fvpAdj.at(brVInd)->P();
|
fromPoint = faceSubdivisionsIt->second.subfaces.front().back().fvpAdj.at(brVInd)->P();
|
||||||
toPoint = faceSubdivisionsIt->second.subfaces.back().back().fvpAdj.at(trVInd)->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).back().fvpAdj.at(trVInd) = &*firstAddedVertexIt;
|
||||||
faceSubdivisionsIt->second.subfaces.at(i+1).back().fvpAdj.at(brVInd) = &*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) {
|
if (runPos.F()->FFi(rightEdge) == ptopEdge) {
|
||||||
// update face-to-vertex adjacency
|
// update face-to-vertex adjacency
|
||||||
for (size_t j = 0; j < n - 1; ++j) {
|
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;
|
faceSubdivisionsPrevIt->second.subfaces.at(n-i-1).back().ffiAdj.at(prightEdge) = rightEdge;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(runPos.F()->FFi(rightEdge) == pleftEdge);
|
// must be runPos.F()->FFi(rightEdge) == pleftEdge
|
||||||
// update face-to-vertex adjacency
|
// update face-to-vertex adjacency
|
||||||
for (size_t i = 0; i < n - 1; ++i) {
|
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);
|
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();
|
runPos.FlipV();
|
||||||
if (runPos.IsBorder()) {
|
if (runPos.IsBorder()) {
|
||||||
if (!runPos.F()->IsS()) {
|
if (!runPos.F()->IsS()) {
|
||||||
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) = faceSubdivisionsIt->second.subfaces.front().front().faceP;
|
faceSubdivisionsIt->second.subfaces.front().front().ffpAdj.at(leftEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP;
|
||||||
faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = leftEdge;
|
faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = leftEdge;
|
||||||
}
|
}
|
||||||
} else if (!runPos.FFlip()->IsV()) {
|
} 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);
|
assert(faceSubdivisionsIt->second.subfaces.size() == 1);
|
||||||
faceSubdivisionsIt->second.subfaces.front().front().ffpAdj.at(leftEdge) = runPos.FFlip();
|
faceSubdivisionsIt->second.subfaces.front().front().ffpAdj.at(leftEdge) = runPos.FFlip();
|
||||||
faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = runPos.F()->FFi(leftEdge);
|
faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = runPos.F()->FFi(leftEdge);
|
||||||
|
|
@ -1350,11 +1345,9 @@ public:
|
||||||
runPos.F()->FFi(leftEdge),
|
runPos.F()->FFi(leftEdge),
|
||||||
leftEdge));
|
leftEdge));
|
||||||
} else if (!runPos.FFlip()->IsS() && !runPos.F()->IsS()) {
|
} else if (!runPos.FFlip()->IsS() && !runPos.F()->IsS()) {
|
||||||
assert(runPos.E() == leftEdge);
|
// must be runPos.E() == leftEdge and faceSubdivisionsIt->second.subfaces.size() == 1
|
||||||
assert(faceSubdivisionsIt->second.subfaces.size() == 1);
|
|
||||||
faceSubdivisionsNeighbourIt = faceSubdivisions.find(runPos.FFlip());
|
faceSubdivisionsNeighbourIt = faceSubdivisions.find(runPos.FFlip());
|
||||||
assert(faceSubdivisionsNeighbourIt != faceSubdivisions.end());
|
// must be faceSubdivisionsNeighbourIt != faceSubdivisions.end() and faceSubdivisionsNeighbourIt->second.subfaces.size() == 1
|
||||||
assert(faceSubdivisionsNeighbourIt->second.subfaces.size() == 1);
|
|
||||||
pbottomEdge = faceSubdivisionsNeighbourIt->second.firstEdge;
|
pbottomEdge = faceSubdivisionsNeighbourIt->second.firstEdge;
|
||||||
prightEdge = runPos.FFlip()->Next(pbottomEdge);
|
prightEdge = runPos.FFlip()->Next(pbottomEdge);
|
||||||
ptopEdge = runPos.FFlip()->Next(prightEdge);
|
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().ffpAdj.at(pleftEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP;
|
||||||
faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffiAdj.at(pleftEdge) = leftEdge;
|
faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffiAdj.at(pleftEdge) = leftEdge;
|
||||||
} else {
|
} 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().ffpAdj.at(leftEdge) = faceSubdivisionsNeighbourIt->second.subfaces.front().back().faceP;
|
||||||
faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = prightEdge;
|
faceSubdivisionsIt->second.subfaces.front().front().ffiAdj.at(leftEdge) = prightEdge;
|
||||||
faceSubdivisionsNeighbourIt->second.subfaces.front().back().ffpAdj.at(prightEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP;
|
faceSubdivisionsNeighbourIt->second.subfaces.front().back().ffpAdj.at(prightEdge) = faceSubdivisionsIt->second.subfaces.front().front().faceP;
|
||||||
|
|
@ -1378,14 +1371,12 @@ public:
|
||||||
runPos.FlipE();
|
runPos.FlipE();
|
||||||
if (runPos.IsBorder()) {
|
if (runPos.IsBorder()) {
|
||||||
if (!runPos.F()->IsS()) {
|
if (!runPos.F()->IsS()) {
|
||||||
assert(runPos.E() == rightEdge);
|
// must be runPos.E() == rightEdge and faceSubdivisionsIt->second.subfaces.size() == 1
|
||||||
assert(faceSubdivisionsIt->second.subfaces.size() == 1);
|
|
||||||
faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP;
|
faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP;
|
||||||
faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = rightEdge;
|
faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = rightEdge;
|
||||||
}
|
}
|
||||||
} else if (!runPos.FFlip()->IsV()) {
|
} else if (!runPos.FFlip()->IsV()) {
|
||||||
assert(runPos.E() == rightEdge);
|
// must be runPos.E() == rightEdge and faceSubdivisionsIt->second.subfaces.size() == 1
|
||||||
assert(faceSubdivisionsIt->second.subfaces.size() == 1);
|
|
||||||
faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = runPos.FFlip();
|
faceSubdivisionsIt->second.subfaces.front().back().ffpAdj.at(rightEdge) = runPos.FFlip();
|
||||||
faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = runPos.F()->FFi(rightEdge);
|
faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = runPos.F()->FFi(rightEdge);
|
||||||
externalFaces.push_back(ExternalFaceData(runPos.FFlip(),
|
externalFaces.push_back(ExternalFaceData(runPos.FFlip(),
|
||||||
|
|
@ -1393,11 +1384,9 @@ public:
|
||||||
runPos.F()->FFi(rightEdge),
|
runPos.F()->FFi(rightEdge),
|
||||||
rightEdge));
|
rightEdge));
|
||||||
} else if (!runPos.FFlip()->IsS() && !runPos.F()->IsS()) {
|
} else if (!runPos.FFlip()->IsS() && !runPos.F()->IsS()) {
|
||||||
assert(runPos.E() == rightEdge);
|
// must be runPos.E() == rightEdge and faceSubdivisionsIt->second.subfaces.size() == 1
|
||||||
assert(faceSubdivisionsIt->second.subfaces.size() == 1);
|
|
||||||
faceSubdivisionsNeighbourIt = faceSubdivisions.find(runPos.FFlip());
|
faceSubdivisionsNeighbourIt = faceSubdivisions.find(runPos.FFlip());
|
||||||
assert(faceSubdivisionsNeighbourIt != faceSubdivisions.end());
|
// must be faceSubdivisionsNeighbourIt != faceSubdivisions.end() and faceSubdivisionsNeighbourIt->second.subfaces.size() == 1
|
||||||
assert(faceSubdivisionsNeighbourIt->second.subfaces.size() == 1);
|
|
||||||
pbottomEdge = faceSubdivisionsNeighbourIt->second.firstEdge;
|
pbottomEdge = faceSubdivisionsNeighbourIt->second.firstEdge;
|
||||||
prightEdge = runPos.FFlip()->Next(pbottomEdge);
|
prightEdge = runPos.FFlip()->Next(pbottomEdge);
|
||||||
ptopEdge = runPos.FFlip()->Next(prightEdge);
|
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().ffpAdj.at(pleftEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP;
|
||||||
faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffiAdj.at(pleftEdge) = rightEdge;
|
faceSubdivisionsNeighbourIt->second.subfaces.front().front().ffiAdj.at(pleftEdge) = rightEdge;
|
||||||
} else {
|
} 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().ffpAdj.at(rightEdge) = faceSubdivisionsNeighbourIt->second.subfaces.front().back().faceP;
|
||||||
faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = prightEdge;
|
faceSubdivisionsIt->second.subfaces.front().back().ffiAdj.at(rightEdge) = prightEdge;
|
||||||
faceSubdivisionsNeighbourIt->second.subfaces.front().back().ffpAdj.at(prightEdge) = faceSubdivisionsIt->second.subfaces.front().back().faceP;
|
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;
|
faceSubdivisionsIt->second.subfaces.at(i).front().ffiAdj.at(leftEdge) = leftEdge;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(runPos.E() == rightEdge);
|
// must be runPos.E() == rightEdge
|
||||||
// get pre-existing coords
|
// get pre-existing coords
|
||||||
fromPoint = faceSubdivisionsIt->second.subfaces.front().back().fvpAdj.at(brVInd)->P();
|
fromPoint = faceSubdivisionsIt->second.subfaces.front().back().fvpAdj.at(brVInd)->P();
|
||||||
toPoint = faceSubdivisionsIt->second.subfaces.back().back().fvpAdj.at(trVInd)->P();
|
toPoint = faceSubdivisionsIt->second.subfaces.back().back().fvpAdj.at(trVInd)->P();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue