private static Dictionary <Triangle, TriangleHL> ConvertFace(Face face, Matrix44D cameraBodyFrame, double nearPlane) { var faceHL = new FaceHL() { HasBorder = face.HasBorder, HasFacets = face.HasFacets }; var triangleDict = face.Triangles.ToDictionary(t => t, t => ConvertTriangle(t, faceHL, cameraBodyFrame, nearPlane)); return(triangleDict); }
private static TriangleHL ConvertTriangle(Triangle triangle, FaceHL face, Matrix44D cameraBodyFrame, double nearPlane) { // var normal = cameraBodyFrame * triangle.Normal; var p1 = cameraBodyFrame * triangle.P1.Point.Position; var p2 = cameraBodyFrame * triangle.P2.Point.Position; var p3 = cameraBodyFrame * triangle.P3.Point.Position; var ex = p2 - p1; var ey = p3 - p1; var normal = (ex & ey).Normalize(); var triangleHL = new TriangleHL() { Normal = normal, P1 = p1, P2 = p2, P3 = p3, Face = face, Spin = DetermineTriangleSpin(p1, p2, p3, nearPlane), Triangle = triangle }; return(triangleHL); }