Skip to content

Commit dbb0b97

Browse files
committed
Update cornerAngles function
1 parent 5eacff4 commit dbb0b97

1 file changed

Lines changed: 12 additions & 15 deletions

File tree

src/surface/embedded_geometry_interface.cpp

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -281,23 +281,20 @@ void EmbeddedGeometryInterface::computeCornerAngles() {
281281

282282
cornerAngles = CornerData<double>(mesh);
283283

284-
for (Corner c : mesh.corners()) {
285-
286-
// WARNING: Logic duplicated between cached and immediate version
287-
Halfedge he = c.halfedge();
288-
Vector3 pA = vertexPositions[he.vertex()];
289-
he = he.next();
290-
Vector3 pB = vertexPositions[he.vertex()];
291-
do {
292-
he = he.next();
293-
} while (he.next() != c.halfedge());
294-
Vector3 pC = vertexPositions[he.vertex()];
284+
for (Face f : mesh.faces()) {
285+
for (Halfedge he : f.adjacentHalfedges()) {
286+
// WARNING: Logic duplicated between cached and immediate version
287+
Vector3 pA = vertexPositions[he.vertex()];
288+
Halfedge heNext = he.next();
289+
Vector3 pB = vertexPositions[heNext.vertex()];
290+
Vector3 pC = vertexPositions[heNext.next().vertex()];
295291

296-
double q = dot(unit(pB - pA), unit(pC - pA));
297-
q = clamp(q, -1.0, 1.0);
298-
double angle = std::acos(q);
292+
double q = dot(unit(pC - pB), unit(pA - pB));
293+
q = clamp(q, -1.0, 1.0);
294+
double angle = std::acos(q);
299295

300-
cornerAngles[c] = angle;
296+
cornerAngles[heNext.corner()] = angle;
297+
}
301298
}
302299
}
303300

0 commit comments

Comments
 (0)