public static void TestObjReader() { foreach (var f in GetInputFiles("angel.obj")) { WriteFileStats(f); Console.WriteLine("HelixToolkit OBJ Reader"); Console.WriteLine("======================="); var helixObjModel3DGroup = Util.TimeIt( () => Helix.LoadFileModel3DGroup(f), "Loading OBJ with Helix"); var gFromHelix = helixObjModel3DGroup.ToIGeometry(); TestWritingGeometry(gFromHelix, Path.Combine(TestOutputFolder, "helix"), f); Console.WriteLine("geometry3Sharp OBJ Reader"); Console.WriteLine("========================="); var g3SharpObjList = Util.TimeIt( () => G3Sharp.LoadMeshes(f), $"Loading OBJ with geometry3Sharp"); for (var i = 0; i < g3SharpObjList.Count; ++i) { var dmesh = g3SharpObjList[i]; CompareDMesh(dmesh, dmesh.ToIGeometry(), TestGeometries.SmallTolerance); } var gFromG3SharpObjList = g3SharpObjList.ToIGeometry(); TestWritingGeometry(gFromG3SharpObjList, Path.Combine(TestOutputFolder, "g3sharp"), f); } }
public static void TestWritingProceduralGeometries() { var i = 0; var outputFolder = Path.Combine(TestOutputFolder, "procedural"); foreach (var g in TestGeometries.AllGeometries) { TestWritingGeometry(g, outputFolder, i.ToString()); var g1 = G3Sharp.LoadGeometry(Path.Combine(outputFolder, $"{i}.ara.obj")); TestGeometries.BasicCompareGeometries(g.ToTriMesh(), g1); var g2 = G3Sharp.LoadGeometry(Path.Combine(outputFolder, $"{i}.g3.obj")); TestGeometries.BasicCompareGeometries(g.ToTriMesh(), g2); // STL files are odd, because they don't share vertices, // var g3 = G3Sharp.LoadGeometry(Path.Combine(outputFolder, $"{i}.g3.stl")); // TestGeometries.BasicCompareGeometries(g.ToTriMesh(), g3, true); i++; } }