diff --git a/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java b/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java index e3312f554cecd16463f468c300dd92faafb8fdec..44b1f66152dcb982ac2a19c9124d3ef465c49b1f 100644 --- a/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java +++ b/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java @@ -113,34 +113,38 @@ public class SymmetryEstimator extends MeshVisitor { Vector3d normal = symmetryPlane.getNormal(); Point3d midPoint = bbox.getMidPoint(); - double alpha = -((normal.x * midPoint.x) + - (normal.y * midPoint.y) + (normal.z * midPoint.z) + - symmetryPlane.getDistance()) / (normal.dot(normal)); + double alpha = + -((normal.x * midPoint.x) + + (normal.y * midPoint.y) + + (normal.z * midPoint.z) + + symmetryPlane.getDistance()) / (normal.dot(normal)); Point3d midPointOnPlane = new Point3d(midPoint); Vector3d nn = new Vector3d(normal); nn.scale(alpha); midPointOnPlane.add(nn); - double val = normal.x * midPointOnPlane.x + normal.y * - midPointOnPlane.y + normal.z * - midPointOnPlane.z + symmetryPlane.getDistance(); + double val = + normal.x * midPointOnPlane.x + + normal.y * midPointOnPlane.y + + normal.z * midPointOnPlane.z + + symmetryPlane.getDistance(); - Vector3d a = new Vector3d(); + Vector3d frontDir = new Vector3d(); if (Math.abs(normal.dot(new Vector3d(0.0, 1.0, 0.0))) > Math.abs(normal.dot(new Vector3d (1.0, 0.0, 0.0)))) { - a.cross(normal, new Vector3d(1.0, 0.0, 0.0)); + frontDir.cross(normal, new Vector3d(1.0, 0.0, 0.0)); } else { - a.cross(normal, new Vector3d(0.0, 1.0, 0.0)); + frontDir.cross(normal, new Vector3d(0.0, 1.0, 0.0)); } - a.normalize(); + frontDir.normalize(); - Vector3d b = new Vector3d(); - b.cross(normal,a); - b.normalize(); + Vector3d upDir = new Vector3d(); + upDir.cross(normal,frontDir); + upDir.normalize(); double scale = bbox.getMaxPoint().x - bbox.getMinPoint().x; - return createMeshFacet(midPointOnPlane, a, b, symmetryPlane.getNormal(), scale); + return createMeshFacet(midPointOnPlane, frontDir, upDir, symmetryPlane.getNormal(), scale); } /** @@ -229,11 +233,12 @@ public class SymmetryEstimator extends MeshVisitor { setSymmetryPlane(planes); } - protected static MeshFacet createMeshFacet(Point3d centroid, Vector3d a, Vector3d b, Vector3d normal, double scale) { + protected static MeshFacet createMeshFacet(Point3d centroid, Vector3d frontDir, Vector3d upDir, Vector3d normal, double scale) { + Point3d[] points = new Point3d[4]; - Point3d aScaled = new Point3d(a); - Point3d bScaled = new Point3d(b); + Point3d aScaled = new Point3d(frontDir); + Point3d bScaled = new Point3d(upDir); aScaled.scale(scale); bScaled.scale(scale);