Add examples project.

This commit is contained in:
wo80
2022-02-15 17:45:36 +01:00
parent 940ae18061
commit ea6d39e1da
16 changed files with 730 additions and 27 deletions
@@ -6,7 +6,7 @@ namespace TriangleNet.Rendering.Text
using System.IO;
/// <summary>
///
/// A <see cref="StreamWriter"/> class allowing to specify the <see cref="IFormatProvider"/>.
/// </summary>
/// <remarks>
/// From http://stackoverflow.com/questions/12011789/streamwriter-and-iformatprovider
@@ -62,12 +62,6 @@ namespace TriangleNet.Rendering.Text
/// <summary>
/// Gets an object that controls formatting.
/// </summary>
public override IFormatProvider FormatProvider
{
get
{
return this.formatProvider;
}
}
public override IFormatProvider FormatProvider => formatProvider;
}
}
+25 -14
View File
@@ -11,6 +11,7 @@ namespace TriangleNet.Rendering.Text
using System.Text;
using TriangleNet;
using TriangleNet.Geometry;
using TriangleNet.Meshing;
using TriangleNet.Meshing.Iterators;
/// <summary>
@@ -24,17 +25,31 @@ namespace TriangleNet.Rendering.Text
float scale = 1f;
/// <summary>
/// Export the mesh to SVG format.
/// Exports a mesh to SVG format.
/// </summary>
/// <param name="mesh">The mesh.</param>
/// <param name="file">The SVG filename.</param>
/// <param name="width">The desired width (pixel) of the image.</param>
/// <param name="regions">Enable rendering of regions.</param>
/// <param name="points">Enable rendering of points.</param>
public static void Save(IMesh mesh, string file = null, int width = 800,
bool regions = false, bool points = true)
{
new SvgImage().Export(mesh, file, width);
}
/// <summary>
/// Export a mesh to SVG format.
/// </summary>
/// <param name="mesh">The current mesh.</param>
/// <param name="filename">The SVG filename.</param>
/// <param name="width">The desired width of the image.</param>
public void Export(Mesh mesh, string filename, int width)
public void Export(IMesh mesh, string filename, int width)
{
// Check file name
if (String.IsNullOrWhiteSpace(filename))
if (string.IsNullOrWhiteSpace(filename))
{
filename = String.Format("mesh-{0}.svg", DateTime.Now.ToString("yyyy-M-d-hh-mm-ss"));
filename = string.Format("mesh-{0}.svg", DateTime.Now.ToString("yyyy-M-d-hh-mm-ss"));
}
if (!filename.EndsWith(".svg"))
@@ -79,11 +94,11 @@ namespace TriangleNet.Rendering.Text
}
}
private void DrawTriangles(StreamWriter svg, Mesh mesh, bool label)
private void DrawTriangles(StreamWriter svg, IMesh mesh, bool label)
{
svg.Write("\t<path d=\"");
StringBuilder labels = new StringBuilder();
var labels = new StringBuilder();
Vertex v1, v2, v3;
double x1, y1, x2, y2, x3, y3, xa, ya;
@@ -136,12 +151,10 @@ namespace TriangleNet.Rendering.Text
}
}
private void DrawEdges(StreamWriter svg, Mesh mesh)
private void DrawEdges(StreamWriter svg, IMesh mesh)
{
svg.Write("\t<path d=\"");
StringBuilder labels = new StringBuilder();
Vertex v1, v2;
double x1, y1, x2, y2;
@@ -172,12 +185,10 @@ namespace TriangleNet.Rendering.Text
svg.WriteLine("\" style=\"stroke:#c2c2c2; fill:none; stroke-linejoin:bevel;\"/>");
}
private void DrawSegments(StreamWriter svg, Mesh mesh)
private void DrawSegments(StreamWriter svg, IMesh mesh)
{
svg.Write("\t<path d=\"");
StringBuilder labels = new StringBuilder();
double x1, y1, x2, y2;
int i = 1;
@@ -204,7 +215,7 @@ namespace TriangleNet.Rendering.Text
svg.WriteLine("\" style=\"stroke:#4682B4; fill:none; stroke-linejoin:bevel; stroke-width:2px;\"/>");
}
private void DrawPoints(StreamWriter svg, Mesh mesh, bool label)
private void DrawPoints(StreamWriter svg, IMesh mesh, bool label)
{
int n = mesh.Vertices.Count;
@@ -223,7 +234,7 @@ namespace TriangleNet.Rendering.Text
double x, y;
StringBuilder labels = new StringBuilder();
var labels = new StringBuilder();
foreach (var node in mesh.Vertices)
{