// -----------------------------------------------------------------------
//
// Christian Woltering, Triangle.NET, http://triangle.codeplex.com/
//
// -----------------------------------------------------------------------
namespace MeshExplorer.IO.Formats
{
using System;
using System.IO;
using TriangleNet.Geometry;
using TriangleNet.IO;
using TriangleNet.Meshing;
///
/// Read and write files defined in classic Triangle format.
///
public class TriangleFile : IMeshFile
{
TriangleFormat format = new TriangleFormat();
///
/// Gets the supported file extensions.
///
public string[] Extensions
{
get { return new string[] { ".node", ".poly", ".ele" }; }
}
public bool ContainsMeshData(string filename)
{
string ext = Path.GetExtension(filename);
if (ext == ".node" || ext == ".poly")
{
if (File.Exists(Path.ChangeExtension(filename, ".ele")))
{
return true;
}
}
return (ext == ".ele");
}
public bool IsSupported(string file)
{
throw new NotImplementedException();
}
public IPolygon Read(string filename)
{
return format.Read(filename);
}
public void Write(IPolygon polygon, string filename)
{
format.Write(polygon, filename);
}
public void Write(IPolygon polygon, Stream stream)
{
format.Write(polygon, stream);
}
public IMesh Import(string filename)
{
return format.Import(filename);
}
public void Write(IMesh mesh, string filename)
{
if (mesh.Vertices.Count > 0)
{
format.Write(mesh, filename);
}
}
public void Write(IMesh mesh, Stream stream)
{
format.Write(mesh, stream);
}
}
}