Skip to content

Commit

Permalink
remove face index on HalfEdge (#955)
Browse files Browse the repository at this point in the history
* remove face index on HalfEdge

doesn't appear to actually be used

* remove face index on HalfEdge
  • Loading branch information
wtholliday authored Sep 26, 2024
1 parent c1d96a6 commit a24cca1
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 14 deletions.
4 changes: 2 additions & 2 deletions src/manifold/src/boolean_result.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ std::vector<Halfedge> PairUp(std::vector<EdgePos> &edgePos) {
std::stable_sort(middle, edgePos.end(), cmp);
std::vector<Halfedge> 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;
}

Expand Down Expand Up @@ -463,7 +463,7 @@ struct DuplicateHalfedges {

halfedgesR[forwardEdge] = halfedge;
halfedgesR[backwardEdge] = {halfedge.endVert, halfedge.startVert,
forwardEdge, faceRight};
forwardEdge};
halfedgeRef[forwardEdge] = forwardRef;
halfedgeRef[backwardEdge] = backwardRef;

Expand Down
18 changes: 9 additions & 9 deletions src/manifold/src/edge_op.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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);
Expand Down Expand Up @@ -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};
}
}

Expand All @@ -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};
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/manifold/src/impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ void Manifold::Impl::CreateHalfedges(const Vec<ivec3>& 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 |
Expand Down
1 change: 0 additions & 1 deletion src/manifold/src/shared.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/manifold/src/sort.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit a24cca1

Please sign in to comment.