Commit 337aca5f authored by Mark Olesen's avatar Mark Olesen
Browse files

ENH: reduce some isoSurfaceCell regularise failures (closes #870)

- when the iso-surface (eg, a cut plane, or distanceSurface) passes
  exactly through the cell centre, zero-sized triangles can occur.
  These should be merged away.
parent e7d81dfe
......@@ -284,16 +284,18 @@ Foam::pointIndexHit Foam::isoSurfaceCell::collapseSurface
if (shared[0] != -1)
{
vector n0 = tri0.normal(localPoints);
n0 /= mag(n0);
vector n1 = tri1.normal(localPoints);
n1 /= mag(n1);
const vector n0 = tri0.normal(localPoints);
const vector n1 = tri1.normal(localPoints);
if ((n0 & n1) < 0)
{
// Too big an angle. Do not simplify.
}
else
// Merge any zero-sized triangles,
// or if they point in the same direction.
if
(
mag(n0) <= ROOTVSMALL
|| mag(n1) <= ROOTVSMALL
|| (n0 & n1) >= 0
)
{
info.setPoint
(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment