public static string BuildStatus(TriMesh mesh) { if (mesh == null) { return(null); } string status = "Name: " + mesh.FileName; status += " Vertice: " + mesh.Vertices.Count; status += " Edges: " + mesh.Edges.Count; status += " Faces: " + mesh.Faces.Count; status += " Boundaries: " + TriMeshUtil.CountBoundary(mesh).ToString(); status += " Genus: " + TriMeshUtil.CountGenus(mesh).ToString(); status += " Component: " + TriMeshUtil.CountComponents(mesh, false).ToString(); status += " Euler: " + CountEulerCharacteristic(mesh).ToString(); status += " Area: " + ComputeAreaTotal(mesh).ToString(); status += " Volumen: " + ComputeVolume(mesh).ToString(); status += " Radius: " + ComputeBoundingSphere(mesh).Radius.ToString(); return(status); }
public static Dictionary <string, string> BuildMeshInfo(TriMesh mesh) { Dictionary <string, string> meshinfo = new Dictionary <string, string>(); meshinfo.Add("Verties", mesh.Vertices.Count.ToString()); meshinfo.Add("Edges", mesh.Edges.Count.ToString()); meshinfo.Add("Faces", mesh.Faces.Count.ToString()); meshinfo.Add("Elur Formula For Genus=0", "V-E+F = 2"); meshinfo.Add("General Elur Formula on Genus !=0", "V-E+F=2(C-G)-B, C is Component Number,G is Genus Number,B is boundary Number"); meshinfo.Add("Elur Characteristic is ", "2(C-G)-B or V-E+F"); meshinfo.Add("Elur Characteristic on Current Mesh", "V-E+F = " + mesh.Vertices.Count.ToString() + " - " + mesh.Edges.Count.ToString() + " + " + mesh.Faces.Count.ToString() + " = " + CountEulerCharacteristic(mesh).ToString()); meshinfo.Add("Component", CountComponents(mesh, false).ToString()); meshinfo.Add("Boundary Number", TriMeshUtil.CountBoundary(mesh).ToString()); meshinfo.Add("Genus", "G=-((V-E+F)+B)/2+C"); meshinfo.Add("Genus on Current mesh", CountGenus(mesh).ToString()); meshinfo.Add("Total Gaussian Curvature is ", TriMeshUtil.ComputeTotalGaussianCurvarture(mesh).ToString()); meshinfo.Add("Gaussian-Bonnet Theroem", "2*PI*(V-E+F) = SUM(Gaussian Curvature)"); meshinfo.Add("Current Gaussian-Bonnet Theroem", "2*PI*(V-E+F)=" + "2 x 3.1415 x " + CountEulerCharacteristic(mesh).ToString() + " = " + (Math.PI * 2 * CountEulerCharacteristic(mesh)) + " ??= " + TriMeshUtil.ComputeTotalGaussianCurvarture(mesh) ); meshinfo.Add("Average Area", TriMeshUtil.ComputeAreaAverage(mesh).ToString()); meshinfo.Add("Volume", TriMeshUtil.ComputeVolume(mesh).ToString()); meshinfo.Add("Total Area", TriMeshUtil.ComputeAreaTotal(mesh).ToString()); return(meshinfo); }