From a24cca1f0621b9245ff15540934d654112191c62 Mon Sep 17 00:00:00 2001 From: Taylor Holliday Date: Wed, 25 Sep 2024 23:07:11 -0700 Subject: [PATCH] remove face index on HalfEdge (#955) * remove face index on HalfEdge doesn't appear to actually be used * remove face index on HalfEdge --- src/manifold/src/boolean_result.cpp | 4 ++-- src/manifold/src/edge_op.cpp | 18 +++++++++--------- src/manifold/src/impl.cpp | 2 +- src/manifold/src/shared.h | 1 - src/manifold/src/sort.cpp | 2 +- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/manifold/src/boolean_result.cpp b/src/manifold/src/boolean_result.cpp index 93631e2ca..c92288fec 100644 --- a/src/manifold/src/boolean_result.cpp +++ b/src/manifold/src/boolean_result.cpp @@ -286,7 +286,7 @@ std::vector PairUp(std::vector &edgePos) { std::stable_sort(middle, edgePos.end(), cmp); std::vector edges; for (size_t i = 0; i < nEdges; ++i) - edges.push_back({edgePos[i].vert, edgePos[i + nEdges].vert, -1, -1}); + edges.push_back({edgePos[i].vert, edgePos[i + nEdges].vert, -1}); return edges; } @@ -463,7 +463,7 @@ struct DuplicateHalfedges { halfedgesR[forwardEdge] = halfedge; halfedgesR[backwardEdge] = {halfedge.endVert, halfedge.startVert, - forwardEdge, faceRight}; + forwardEdge}; halfedgeRef[forwardEdge] = forwardRef; halfedgeRef[backwardEdge] = backwardRef; diff --git a/src/manifold/src/edge_op.cpp b/src/manifold/src/edge_op.cpp index df6de00da..174fc765f 100644 --- a/src/manifold/src/edge_op.cpp +++ b/src/manifold/src/edge_op.cpp @@ -301,9 +301,9 @@ void Manifold::Impl::DedupeEdge(const int edge) { int newFace = newHalfedge / 3; int oldFace = current / 3; int outsideVert = halfedge_[current].startVert; - halfedge_.push_back({endVert, newVert, -1, newFace}); - halfedge_.push_back({newVert, outsideVert, -1, newFace}); - halfedge_.push_back({outsideVert, endVert, -1, newFace}); + halfedge_.push_back({endVert, newVert, -1}); + halfedge_.push_back({newVert, outsideVert, -1}); + halfedge_.push_back({outsideVert, endVert, -1}); PairUp(newHalfedge + 2, halfedge_[current].pairedHalfedge); PairUp(newHalfedge + 1, current); if (meshRelation_.triRef.size() > 0) @@ -317,9 +317,9 @@ void Manifold::Impl::DedupeEdge(const int edge) { ++newFace; oldFace = opposite / 3; outsideVert = halfedge_[opposite].startVert; - halfedge_.push_back({newVert, endVert, -1, newFace}); - halfedge_.push_back({endVert, outsideVert, -1, newFace}); - halfedge_.push_back({outsideVert, newVert, -1, newFace}); + halfedge_.push_back({newVert, endVert, -1}); + halfedge_.push_back({endVert, outsideVert, -1}); + halfedge_.push_back({outsideVert, newVert, -1}); PairUp(newHalfedge + 2, halfedge_[opposite].pairedHalfedge); PairUp(newHalfedge + 1, opposite); PairUp(newHalfedge, newHalfedge - 3); @@ -421,7 +421,7 @@ void Manifold::Impl::CollapseTri(const ivec3& triEdge) { halfedge_[pair1].pairedHalfedge = pair2; halfedge_[pair2].pairedHalfedge = pair1; for (int i : {0, 1, 2}) { - halfedge_[triEdge[i]] = {-1, -1, -1, -1}; + halfedge_[triEdge[i]] = {-1, -1, -1}; } } @@ -447,8 +447,8 @@ void Manifold::Impl::RemoveIfFolded(int edge) { PairUp(halfedge_[tri0edge[2]].pairedHalfedge, halfedge_[tri1edge[1]].pairedHalfedge); for (int i : {0, 1, 2}) { - halfedge_[tri0edge[i]] = {-1, -1, -1, -1}; - halfedge_[tri1edge[i]] = {-1, -1, -1, -1}; + halfedge_[tri0edge[i]] = {-1, -1, -1}; + halfedge_[tri1edge[i]] = {-1, -1, -1}; } } } diff --git a/src/manifold/src/impl.cpp b/src/manifold/src/impl.cpp index 225eae704..a8ab3981c 100644 --- a/src/manifold/src/impl.cpp +++ b/src/manifold/src/impl.cpp @@ -469,7 +469,7 @@ void Manifold::Impl::CreateHalfedges(const Vec& triVerts) { for (const int i : {0, 1, 2}) { const int j = (i + 1) % 3; const int e = 3 * tri + i; - halfedge_[e] = {verts[i], verts[j], -1, tri}; + halfedge_[e] = {verts[i], verts[j], -1}; // Sort the forward halfedges in front of the backward ones // by setting the highest-order bit. edge[e] = uint64_t(verts[i] < verts[j] ? 1 : 0) << 63 | diff --git a/src/manifold/src/shared.h b/src/manifold/src/shared.h index 9d18f273c..a40bc04b8 100644 --- a/src/manifold/src/shared.h +++ b/src/manifold/src/shared.h @@ -123,7 +123,6 @@ inline vec3 GetBarycentric(const vec3& v, const mat3& triPos, struct Halfedge { int startVert, endVert; int pairedHalfedge; - int face; bool IsForward() const { return startVert < endVert; } bool operator<(const Halfedge& other) const { return startVert == other.startVert ? endVert < other.endVert diff --git a/src/manifold/src/sort.cpp b/src/manifold/src/sort.cpp index 6a1c5653b..6dd962b59 100644 --- a/src/manifold/src/sort.cpp +++ b/src/manifold/src/sort.cpp @@ -235,7 +235,7 @@ void Manifold::Impl::Finish() { return std::min(a, b) < 0 ? -1 : std::max(a, b); }; int face = 0; - Halfedge extrema = {0, 0, 0, 0}; + Halfedge extrema = {0, 0, 0}; for (size_t i = 0; i < halfedge_.size(); i++) { Halfedge e = halfedge_[i]; if (!e.IsForward()) std::swap(e.startVert, e.endVert);