diff --git a/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysis.java b/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysis.java index 4ceb431ab76e578792932b934413ea69f8752975..f5c90f37ccaf830b985d2e98ef4888f29e1d4468 100644 --- a/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysis.java +++ b/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysis.java @@ -106,8 +106,8 @@ public class ProcrustesAnalysis { transformation.setRotationMatrix(this.rotate()); // move faces back to so the centroid of vertices is in the origin point -// moveFaceModel(faceModel1, new Vector3d(this.modelCentroid1.x, this.modelCentroid1.y, this.modelCentroid1.z)); -// moveFaceModel(faceModel2, new Vector3d(this.modelCentroid1.x, this.modelCentroid1.y, this.modelCentroid1.z)); + moveFaceModel(faceModel1, new Vector3d(this.modelCentroid1.x, this.modelCentroid1.y, this.modelCentroid1.z)); + moveFaceModel(faceModel2, new Vector3d(this.modelCentroid1.x, this.modelCentroid1.y, this.modelCentroid1.z)); // readjustFace(faceModel2, // new Vector3d(this.modelCentroid2.x, this.modelCentroid2.y, this.modelCentroid2.z), diff --git a/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysisFaceModel.java b/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysisFaceModel.java index 132ab67fd6a6297643e19806610ea9fb340bf5ed..35be152d4f97b698daeae4ed5a933990f6aa646e 100644 --- a/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysisFaceModel.java +++ b/Comparison/src/main/java/cz/fidentis/analyst/procrustes/ProcrustesAnalysisFaceModel.java @@ -52,7 +52,9 @@ public class ProcrustesAnalysisFaceModel { */ public void setFeaturePointsMap(HashMap<Integer, FeaturePoint> featurePointsMap) { this.featurePointsMap = featurePointsMap; - this.humanFace.setFeaturePoints(getFeaturePointValues()); + readjustFeaturePoints(featurePointsMap); + +// this.humanFace.setFeaturePoints(getFeaturePointValues()); } public MeshModel getMeshModel() { @@ -125,4 +127,18 @@ public class ProcrustesAnalysisFaceModel { return map; } + private void readjustFeaturePoints(HashMap<Integer, FeaturePoint> featurePointsMap) { + this.humanFace.getFeaturePoints().forEach(fp -> { + FeaturePoint movedFp = featurePointsMap.get(fp.getFeaturePointType().getType()); + if (fp.getFeaturePointType().getType() + != movedFp.getFeaturePointType().getType()) { + throw new RuntimeException("Types do not correspond"); + } + fp.getPosition().x = movedFp.getX(); + fp.getPosition().y = movedFp.getY(); + fp.getPosition().z = movedFp.getZ(); + }); +// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + }