Skip to content

Commit 51cf5d7

Browse files
wdolinargagelarsen
authored andcommitted
Added return value to TrTin::OptimizeTriangulation.
1 parent 4a161e2 commit 51cf5d7

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

xmsinterp/triangulate/TrTin.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class TrTinImpl : public TrTin
113113
virtual bool SwapEdge(int a_triA, int a_triB, bool a_checkAngle = true) override;
114114
virtual void DeleteTriangles(const SetInt& a_trisToDelete) override;
115115
virtual void DeletePoints(const SetInt& a_points) override;
116-
virtual void OptimizeTriangulation() override;
116+
virtual bool OptimizeTriangulation() override;
117117
virtual void Clear() override;
118118
virtual void BuildTrisAdjToPts() override;
119119

@@ -1098,9 +1098,11 @@ void TrTinImpl::DeletePoints(const SetInt& a_points)
10981098
} // TrTinImpl::DeletePoints
10991099
//------------------------------------------------------------------------------
11001100
/// \brief Swaps triangle edges until they are a Delauney triangulation.
1101+
/// \return True if modified.
11011102
//------------------------------------------------------------------------------
1102-
void TrTinImpl::OptimizeTriangulation()
1103+
bool TrTinImpl::OptimizeTriangulation()
11031104
{
1105+
bool modified = false;
11041106
int nTri = NumTriangles();
11051107
VecInt flags(nTri, false);
11061108

@@ -1132,8 +1134,11 @@ void TrTinImpl::OptimizeTriangulation()
11321134
}
11331135
}
11341136
}
1137+
if (meshaltered)
1138+
modified = true;
11351139
} while (meshaltered);
11361140

1141+
return true;
11371142
} // TrTinImpl::OptimizeTriangulation
11381143
//------------------------------------------------------------------------------
11391144
/// \brief Delete the memory.
@@ -1767,7 +1772,7 @@ void TrTinUnitTests::testOptimizeTriangulation()
17671772
TS_ASSERT_EQUALS((VecInt{0, 1, 2, 3, 5, 6, 7, 8}), boundaryPoints);
17681773

17691774
// Optimize
1770-
tin->OptimizeTriangulation();
1775+
TS_ASSERT(tin->OptimizeTriangulation());
17711776
VecInt trisAfter = {0, 1, 3, 1, 6, 3, 1, 4, 6, 4, 7, 6, 1, 2, 4, 2, 7, 4, 2, 5, 7, 5, 8, 7};
17721777
TS_ASSERT_EQUALS_VEC(trisAfter, tin->Triangles());
17731778

xmsinterp/triangulate/TrTin.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class TrTin
9090
virtual bool SwapEdge(int a_triA, int a_triB, bool a_checkAngle = true) = 0;
9191
virtual void DeleteTriangles(const SetInt& a_triangles) = 0;
9292
virtual void DeletePoints(const SetInt& a_points) = 0;
93-
virtual void OptimizeTriangulation() = 0;
93+
virtual bool OptimizeTriangulation() = 0;
9494
virtual void BuildTrisAdjToPts() = 0; // Triangles adjacent to points
9595
virtual void Clear() = 0;
9696

0 commit comments

Comments
 (0)