public void DeepAnalysis(InfoProgressPanel ipp) { originalModel.ipp = ipp; originalModel.Analyse(); if (ipp.IsKilled) { return; } originalModel.updateBad(); if (originalModel.intersectingTriangles.Count > 0 || originalModel.badTriangles > 0 || originalModel.manifold == false || originalModel.manyShardEdges != 0 || originalModel.loopEdges != 0 || originalModel.normalsOriented == false) { if (repairedModel == null) { repairedModel = originalModel.Copy(); } repairedModel.ipp = ipp; repairedModel.RepairUnobtrusive(); repairedModel.Analyse(); originalModel.Analyse(); if (ipp.IsKilled) { originalModel.clear(); repairedModel.clear(); return; } repairedModel.updateBad(); ShowRepaired(true); repairedModel.ipp = null; } originalModel.ipp = null; }
public void Load(string file, InfoProgressPanel ipp) { filename = file; DateTime lastModified2 = File.GetLastWriteTime(filename); lastModified = lastModified2.Ticks; originalModel.ipp = ipp; string lname = filename.ToLower(); if (lname.EndsWith(".stl")) { originalModel.importSTL(filename); } else if (lname.EndsWith(".obj")) { originalModel.importObj(filename); } FileInfo info = new FileInfo(file); name = info.Name; originalModel.Analyse(); if (ipp.IsKilled) { originalModel.clear(); return; } originalModel.Analyse(); if (ipp.IsKilled) { originalModel.clear(); return; } originalModel.updateBad(); if (originalModel.intersectingTriangles.Count > 0 || originalModel.badTriangles > 0 || originalModel.manifold == false || originalModel.manyShardEdges != 0 || originalModel.loopEdges != 0 || originalModel.normalsOriented == false) { if (repairedModel == null) { repairedModel = originalModel.Copy(); } repairedModel.ipp = ipp; repairedModel.RepairUnobtrusive(); repairedModel.Analyse(); originalModel.Analyse(); if (ipp.IsKilled) { originalModel.clear(); repairedModel.clear(); return; } repairedModel.updateBad(); ShowRepaired(true); repairedModel.ipp = null; } originalModel.ipp = null; }
public void RunTest() { if (repairedModel == null) { repairedModel = originalModel.Copy(); repairedModel.RepairUnobtrusive(); } repairedModel.RetestIntersectingTriangles(); //repairedModel.JoinTouchedOpenEdges(0.1); //repairedModel.UpdateNormals(); repairedModel.Analyse(); repairedModel.updateBad(); ShowRepaired(true); }