diff --git a/src/MeshExplorer/IO/Formats/JsonFile.cs b/src/MeshExplorer/IO/Formats/JsonFile.cs
index 6946a67..4dacc1c 100644
--- a/src/MeshExplorer/IO/Formats/JsonFile.cs
+++ b/src/MeshExplorer/IO/Formats/JsonFile.cs
@@ -96,7 +96,7 @@ namespace MeshExplorer.IO.Formats
}
}
- return Converter.ToMesh(geometry, triangles);
+ return Converter.Instance.ToMesh(geometry, triangles);
}
public void Write(IMesh mesh, string filename)
diff --git a/src/Triangle/IO/TriangleFormat.cs b/src/Triangle/IO/TriangleFormat.cs
index 2a85e8d..2bc858a 100644
--- a/src/Triangle/IO/TriangleFormat.cs
+++ b/src/Triangle/IO/TriangleFormat.cs
@@ -42,7 +42,7 @@ namespace TriangleNet.IO
if (geometry != null && triangles != null)
{
- return Converter.ToMesh(geometry, triangles.ToArray());
+ return Converter.Instance.ToMesh(geometry, triangles.ToArray());
}
}
diff --git a/src/Triangle/Meshing/Converter.cs b/src/Triangle/Meshing/Converter.cs
index edd32fc..7ce5b54 100644
--- a/src/Triangle/Meshing/Converter.cs
+++ b/src/Triangle/Meshing/Converter.cs
@@ -20,14 +20,25 @@ namespace TriangleNet.Meshing
///
/// The Converter class provides methods for mesh reconstruction and conversion.
///
- public static class Converter
+ public class Converter
{
+ private static readonly Lazy lazy = new Lazy(() => new Converter());
+
+ ///
+ /// Gets the instance.
+ ///
+ public static Converter Instance { get { return lazy.Value; } }
+
+ private Converter()
+ {
+ }
+
#region Triangle mesh conversion
///
/// Reconstruct a triangulation from its raw data representation.
///
- public static Mesh ToMesh(Polygon polygon, ICollection triangles)
+ public Mesh ToMesh(Polygon polygon, ICollection triangles)
{
return ToMesh(polygon, triangles.ToArray());
}
@@ -35,7 +46,7 @@ namespace TriangleNet.Meshing
///
/// Reconstruct a triangulation from its raw data representation.
///
- public static Mesh ToMesh(Polygon polygon, ITriangle[] triangles, Configuration config = null)
+ public Mesh ToMesh(Polygon polygon, ITriangle[] triangles, Configuration config = null)
{
Otri tri = default(Otri);
Osub subseg = default(Osub);
@@ -82,7 +93,7 @@ namespace TriangleNet.Meshing
/// Finds the adjacencies between triangles by forming a stack of triangles for
/// each vertex. Each triangle is on three different stacks simultaneously.
///
- private static List[] SetNeighbors(Mesh mesh, ITriangle[] triangles)
+ private List[] SetNeighbors(Mesh mesh, ITriangle[] triangles)
{
Otri tri = default(Otri);
Otri triangleleft = default(Otri);
@@ -199,7 +210,7 @@ namespace TriangleNet.Meshing
///
/// Finds the adjacencies between triangles and subsegments.
///
- private static void SetSegments(Mesh mesh, Polygon polygon, List[] vertexarray)
+ private void SetSegments(Mesh mesh, Polygon polygon, List[] vertexarray)
{
Otri checktri = default(Otri);
Otri nexttri; // Triangle
@@ -224,7 +235,6 @@ namespace TriangleNet.Meshing
if (mesh.behavior.Poly)
{
// Link the segments to their neighboring triangles.
- boundmarker = 0;
i = 0;
foreach (var item in mesh.subsegs.Values)
{
@@ -341,7 +351,7 @@ namespace TriangleNet.Meshing
#region DCEL conversion
- public static DcelMesh ToDCEL(Mesh mesh)
+ public DcelMesh ToDCEL(Mesh mesh)
{
var dcel = new DcelMesh();
@@ -379,7 +389,7 @@ namespace TriangleNet.Meshing
}
Otri tri = default(Otri), neighbor = default(Otri);
- TriangleNet.Geometry.Vertex org, dest;
+ TVertex org, dest;
int id, nid, count = mesh.triangles.Count;
diff --git a/src/Triangle/Meshing/GenericMesher.cs b/src/Triangle/Meshing/GenericMesher.cs
index 3d8c2cb..fe62bbe 100644
--- a/src/Triangle/Meshing/GenericMesher.cs
+++ b/src/Triangle/Meshing/GenericMesher.cs
@@ -227,7 +227,7 @@ namespace TriangleNet.Meshing
}
}
- return Converter.ToMesh(polygon, triangles);
+ return Converter.Instance.ToMesh(polygon, triangles);
}
}
}