remove face index on HalfEdge (#955)
* remove face index on HalfEdge doesn't appear to actually be used * remove face index on HalfEdge
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -463,7 +463,7 @@ struct DuplicateHalfedges {
|
||||
|
||||
halfedgesR[forwardEdge] = halfedge;
|
||||
halfedgesR[backwardEdge] = {halfedge.endVert, halfedge.startVert,
|
||||
forwardEdge, faceRight};
|
||||
forwardEdge};
|
||||
halfedgeRef[forwardEdge] = forwardRef;
|
||||
halfedgeRef[backwardEdge] = backwardRef;
|
||||
|
||||
|
||||
@@ -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};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user