Loading FaceEngines/src/main/java/cz/fidentis/analyst/engines/face/FaceStateServices.java +0 −10 Original line number Diff line number Diff line Loading @@ -54,16 +54,6 @@ public interface FaceStateServices { impl().updateOctree(face, mode); } /** * Manages curvature values of the given human face. * * @param face Human face * @param mode Operation to be performed */ static void updateCurvature(HumanFace face, Mode mode) { impl().updateCurvature(face, mode); } /** * Manages vicinity of all landmarks of the given human face. * Loading FaceEngines/src/main/java/cz/fidentis/analyst/engines/face/impl/FaceStateServicesImpl.java +0 −26 Original line number Diff line number Diff line Loading @@ -11,8 +11,6 @@ import cz.fidentis.analyst.data.mesh.MeshPoint; import cz.fidentis.analyst.data.mesh.measurement.MeshDistances; import cz.fidentis.analyst.data.octree.Octree; import cz.fidentis.analyst.data.shapes.Plane; import cz.fidentis.analyst.engines.curvature.CurvatureConfig; import cz.fidentis.analyst.engines.curvature.CurvatureServices; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.face.FaceDistanceServices; import cz.fidentis.analyst.engines.face.FaceFrontalDirectionServices; Loading Loading @@ -114,30 +112,6 @@ public class FaceStateServicesImpl implements FaceStateServices { } } /** * Manages curvature values of the given human face. * * @param face Human face * @param mode Operation to be performed */ public void updateCurvature(HumanFace face, Mode mode) { switch (mode) { case RECOMPUTE_IF_PRESENT -> { if (face.getMeshModel().hasCurvature()) { CurvatureServices.computeAndSet(face.getMeshModel(), new CurvatureConfig()); } } case COMPUTE_IF_ABSENT -> { if (!face.getMeshModel().hasCurvature()) { CurvatureServices.computeAndSet(face.getMeshModel(), new CurvatureConfig()); } } case COMPUTE_ALWAYS -> CurvatureServices.computeAndSet(face.getMeshModel(), new CurvatureConfig()); case DELETE -> throw new UnsupportedOperationException(); default -> throw new IllegalStateException("Unexpected value: " + mode); } } /** * Computes vicinity of all landmarks of the given human face. * Loading GUI/src/main/java/cz/fidentis/analyst/gui/app/tools/SymmetryComputationStats.java +6 −4 Original line number Diff line number Diff line Loading @@ -9,12 +9,12 @@ import cz.fidentis.analyst.data.mesh.MeshModel; import cz.fidentis.analyst.data.shapes.Plane; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.face.FaceDistanceServices; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.engines.symmetry.SymmetryConfig; import cz.fidentis.analyst.gui.task.batch.Stopwatch; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import cz.fidentis.analyst.managers.CurvatureManager; import cz.fidentis.analyst.managers.SymmetryManager; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; Loading Loading @@ -88,10 +88,12 @@ public class SymmetryComputationStats implements CommandLineRunner { private static CSVWriterService avgPlanesWriter; private final SymmetryManager symmetryManager; private final CurvatureManager curvatureManager; @Autowired public SymmetryComputationStats(SymmetryManager symmetryManager) { public SymmetryComputationStats(SymmetryManager symmetryManager, CurvatureManager curvatureManager) { this.symmetryManager = symmetryManager; this.curvatureManager = curvatureManager; } /** Loading Loading @@ -128,7 +130,7 @@ public class SymmetryComputationStats implements CommandLineRunner { System.out.println(i + ": " + faces.get(i)); HumanFace face = HumanFaceFactory.create(faces.get(i).toFile()); FaceStateServices.updateCurvature(face, FaceStateServices.Mode.COMPUTE_IF_ABSENT); curvatureManager.computeAndSet(face, FaceStateUpdateMode.COMPUTE_IF_ABSENT); for (int densitySearchValue : SEARCH_DENSITY_VALUES) { for (int densityPruningValue : PRUNING_DENSITY_VALUES) { calculateSymmetryStats(densitySearchValue, densityPruningValue, face); Loading GUI/src/main/java/cz/fidentis/analyst/gui/app/tools/SymmetryOfChildren.java +6 −4 Original line number Diff line number Diff line Loading @@ -8,14 +8,14 @@ import cz.fidentis.analyst.data.mesh.MeshModel; import cz.fidentis.analyst.data.shapes.Plane; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.face.FaceDistanceServices; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.icp.IcpConfig; import cz.fidentis.analyst.engines.icp.IcpServices; import cz.fidentis.analyst.engines.landmarks.LandmarkServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.engines.symmetry.SymmetryConfig; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import cz.fidentis.analyst.managers.CurvatureManager; import cz.fidentis.analyst.managers.SymmetryManager; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; Loading Loading @@ -65,11 +65,13 @@ public class SymmetryOfChildren implements CommandLineRunner { ); private final SymmetryManager symmetryManager; private final CurvatureManager curvatureManager; private final IcpServices icpServices; @Autowired public SymmetryOfChildren(SymmetryManager symmetryManager, IcpServices icpServices) { public SymmetryOfChildren(SymmetryManager symmetryManager, IcpServices icpServices, CurvatureManager curvatureManager) { this.symmetryManager = symmetryManager; this.curvatureManager = curvatureManager; this.icpServices = icpServices; } Loading Loading @@ -109,7 +111,7 @@ public class SymmetryOfChildren implements CommandLineRunner { // Basic classification by age, gender, ... HumanFace face = HumanFaceFactory.create(faces.get(i).toFile()); FaceStateServices.updateCurvature(face, FaceStateServices.Mode.COMPUTE_IF_ABSENT); curvatureManager.computeAndSet(face, FaceStateUpdateMode.COMPUTE_IF_ABSENT); System.out.println(i + ": " + face.getShortName()); line.append(face.getShortName() + "|") .append(face.getShortName().split("_", 4)[0] + "-" + face.getShortName().split("_", 4)[1] + "|") Loading GUI/src/main/java/cz/fidentis/analyst/gui/app/tools/TestSymmetryAlgorithms.java +6 −4 Original line number Diff line number Diff line Loading @@ -8,12 +8,12 @@ import cz.fidentis.analyst.data.mesh.MeshFactory; import cz.fidentis.analyst.data.mesh.MeshModel; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.distance.MeshDistanceServices; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.engines.symmetry.SymmetryConfig; import cz.fidentis.analyst.gui.task.batch.Stopwatch; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import cz.fidentis.analyst.managers.CurvatureManager; import cz.fidentis.analyst.managers.SymmetryManager; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; Loading Loading @@ -72,10 +72,12 @@ public class TestSymmetryAlgorithms implements CommandLineRunner { private static final int MAX_SAMPLES = 500; private final SymmetryManager symmetryManager; private final CurvatureManager curvatureManager; @Autowired public TestSymmetryAlgorithms(SymmetryManager symmetryManager) { public TestSymmetryAlgorithms(SymmetryManager symmetryManager, CurvatureManager curvatureManager) { this.symmetryManager = symmetryManager; this.curvatureManager = curvatureManager; } /** Loading Loading @@ -127,7 +129,7 @@ public class TestSymmetryAlgorithms implements CommandLineRunner { System.out.println(i + ": " + faces.get(i)); HumanFace face = faceService.loadTemporaryInMemoryFace(faces.get(i).toFile()); FaceStateServices.updateCurvature(face, FaceStateServices.Mode.COMPUTE_IF_ABSENT); curvatureManager.computeAndSet(face, FaceStateUpdateMode.COMPUTE_IF_ABSENT); DoubleSummaryStatistics stats; Loading Loading
FaceEngines/src/main/java/cz/fidentis/analyst/engines/face/FaceStateServices.java +0 −10 Original line number Diff line number Diff line Loading @@ -54,16 +54,6 @@ public interface FaceStateServices { impl().updateOctree(face, mode); } /** * Manages curvature values of the given human face. * * @param face Human face * @param mode Operation to be performed */ static void updateCurvature(HumanFace face, Mode mode) { impl().updateCurvature(face, mode); } /** * Manages vicinity of all landmarks of the given human face. * Loading
FaceEngines/src/main/java/cz/fidentis/analyst/engines/face/impl/FaceStateServicesImpl.java +0 −26 Original line number Diff line number Diff line Loading @@ -11,8 +11,6 @@ import cz.fidentis.analyst.data.mesh.MeshPoint; import cz.fidentis.analyst.data.mesh.measurement.MeshDistances; import cz.fidentis.analyst.data.octree.Octree; import cz.fidentis.analyst.data.shapes.Plane; import cz.fidentis.analyst.engines.curvature.CurvatureConfig; import cz.fidentis.analyst.engines.curvature.CurvatureServices; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.face.FaceDistanceServices; import cz.fidentis.analyst.engines.face.FaceFrontalDirectionServices; Loading Loading @@ -114,30 +112,6 @@ public class FaceStateServicesImpl implements FaceStateServices { } } /** * Manages curvature values of the given human face. * * @param face Human face * @param mode Operation to be performed */ public void updateCurvature(HumanFace face, Mode mode) { switch (mode) { case RECOMPUTE_IF_PRESENT -> { if (face.getMeshModel().hasCurvature()) { CurvatureServices.computeAndSet(face.getMeshModel(), new CurvatureConfig()); } } case COMPUTE_IF_ABSENT -> { if (!face.getMeshModel().hasCurvature()) { CurvatureServices.computeAndSet(face.getMeshModel(), new CurvatureConfig()); } } case COMPUTE_ALWAYS -> CurvatureServices.computeAndSet(face.getMeshModel(), new CurvatureConfig()); case DELETE -> throw new UnsupportedOperationException(); default -> throw new IllegalStateException("Unexpected value: " + mode); } } /** * Computes vicinity of all landmarks of the given human face. * Loading
GUI/src/main/java/cz/fidentis/analyst/gui/app/tools/SymmetryComputationStats.java +6 −4 Original line number Diff line number Diff line Loading @@ -9,12 +9,12 @@ import cz.fidentis.analyst.data.mesh.MeshModel; import cz.fidentis.analyst.data.shapes.Plane; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.face.FaceDistanceServices; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.engines.symmetry.SymmetryConfig; import cz.fidentis.analyst.gui.task.batch.Stopwatch; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import cz.fidentis.analyst.managers.CurvatureManager; import cz.fidentis.analyst.managers.SymmetryManager; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; Loading Loading @@ -88,10 +88,12 @@ public class SymmetryComputationStats implements CommandLineRunner { private static CSVWriterService avgPlanesWriter; private final SymmetryManager symmetryManager; private final CurvatureManager curvatureManager; @Autowired public SymmetryComputationStats(SymmetryManager symmetryManager) { public SymmetryComputationStats(SymmetryManager symmetryManager, CurvatureManager curvatureManager) { this.symmetryManager = symmetryManager; this.curvatureManager = curvatureManager; } /** Loading Loading @@ -128,7 +130,7 @@ public class SymmetryComputationStats implements CommandLineRunner { System.out.println(i + ": " + faces.get(i)); HumanFace face = HumanFaceFactory.create(faces.get(i).toFile()); FaceStateServices.updateCurvature(face, FaceStateServices.Mode.COMPUTE_IF_ABSENT); curvatureManager.computeAndSet(face, FaceStateUpdateMode.COMPUTE_IF_ABSENT); for (int densitySearchValue : SEARCH_DENSITY_VALUES) { for (int densityPruningValue : PRUNING_DENSITY_VALUES) { calculateSymmetryStats(densitySearchValue, densityPruningValue, face); Loading
GUI/src/main/java/cz/fidentis/analyst/gui/app/tools/SymmetryOfChildren.java +6 −4 Original line number Diff line number Diff line Loading @@ -8,14 +8,14 @@ import cz.fidentis.analyst.data.mesh.MeshModel; import cz.fidentis.analyst.data.shapes.Plane; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.face.FaceDistanceServices; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.icp.IcpConfig; import cz.fidentis.analyst.engines.icp.IcpServices; import cz.fidentis.analyst.engines.landmarks.LandmarkServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.engines.symmetry.SymmetryConfig; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import cz.fidentis.analyst.managers.CurvatureManager; import cz.fidentis.analyst.managers.SymmetryManager; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; Loading Loading @@ -65,11 +65,13 @@ public class SymmetryOfChildren implements CommandLineRunner { ); private final SymmetryManager symmetryManager; private final CurvatureManager curvatureManager; private final IcpServices icpServices; @Autowired public SymmetryOfChildren(SymmetryManager symmetryManager, IcpServices icpServices) { public SymmetryOfChildren(SymmetryManager symmetryManager, IcpServices icpServices, CurvatureManager curvatureManager) { this.symmetryManager = symmetryManager; this.curvatureManager = curvatureManager; this.icpServices = icpServices; } Loading Loading @@ -109,7 +111,7 @@ public class SymmetryOfChildren implements CommandLineRunner { // Basic classification by age, gender, ... HumanFace face = HumanFaceFactory.create(faces.get(i).toFile()); FaceStateServices.updateCurvature(face, FaceStateServices.Mode.COMPUTE_IF_ABSENT); curvatureManager.computeAndSet(face, FaceStateUpdateMode.COMPUTE_IF_ABSENT); System.out.println(i + ": " + face.getShortName()); line.append(face.getShortName() + "|") .append(face.getShortName().split("_", 4)[0] + "-" + face.getShortName().split("_", 4)[1] + "|") Loading
GUI/src/main/java/cz/fidentis/analyst/gui/app/tools/TestSymmetryAlgorithms.java +6 −4 Original line number Diff line number Diff line Loading @@ -8,12 +8,12 @@ import cz.fidentis.analyst.data.mesh.MeshFactory; import cz.fidentis.analyst.data.mesh.MeshModel; import cz.fidentis.analyst.engines.distance.MeshDistanceConfig; import cz.fidentis.analyst.engines.distance.MeshDistanceServices; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.engines.symmetry.SymmetryConfig; import cz.fidentis.analyst.gui.task.batch.Stopwatch; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import cz.fidentis.analyst.managers.CurvatureManager; import cz.fidentis.analyst.managers.SymmetryManager; import cz.fidentis.analyst.managers.enums.FaceStateUpdateMode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; Loading Loading @@ -72,10 +72,12 @@ public class TestSymmetryAlgorithms implements CommandLineRunner { private static final int MAX_SAMPLES = 500; private final SymmetryManager symmetryManager; private final CurvatureManager curvatureManager; @Autowired public TestSymmetryAlgorithms(SymmetryManager symmetryManager) { public TestSymmetryAlgorithms(SymmetryManager symmetryManager, CurvatureManager curvatureManager) { this.symmetryManager = symmetryManager; this.curvatureManager = curvatureManager; } /** Loading Loading @@ -127,7 +129,7 @@ public class TestSymmetryAlgorithms implements CommandLineRunner { System.out.println(i + ": " + faces.get(i)); HumanFace face = faceService.loadTemporaryInMemoryFace(faces.get(i).toFile()); FaceStateServices.updateCurvature(face, FaceStateServices.Mode.COMPUTE_IF_ABSENT); curvatureManager.computeAndSet(face, FaceStateUpdateMode.COMPUTE_IF_ABSENT); DoubleSummaryStatistics stats; Loading