Commit d5823c82 authored by Radek Ošlejšek's avatar Radek Ošlejšek
Browse files

Merge branch '288-restructure-the-spacepartitioning-osgi-bundle' into 'master'

Resolve "Restructure the SpacePartitioning OSGi bundle"

Closes #288

See merge request grp-fidentis/analyst2!308
parents cdc7c796 31fde74f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -110,6 +110,11 @@
            <artifactId>MeshModel</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>Landmarks</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>MeshAlgorithms</artifactId>
+5 −4
Original line number Diff line number Diff line
package cz.fidentis.analyst.gui.app.tools;

import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.avgmesh.AvgMeshConstructorOctree;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.face.HumanFaceFactory;
import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.mesh.MeshIO;
import cz.fidentis.analyst.registration.RegistrationUtils;
import cz.fidentis.analyst.mesh.io.MeshObjExporter;
import cz.fidentis.analyst.sampling.RandomSampling;
import cz.fidentis.analyst.avgmesh.AvgMeshConstructorOctree;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@@ -112,7 +113,7 @@ public class BatchOctreeTestsMultipleFaces {
            File tempFile = new File(PATH_AVG_TIME);
            avgFace = new HumanFace(avgFaceConstructorOctree.getAveragedMeshModel(), tempFile.getCanonicalPath());
            try {
                new MeshObjExporter(avgFace.getMeshModel()).exportModelToObj(tempFile);
                MeshIO.exportMeshModel(avgFace.getMeshModel(), tempFile);
            } catch (IOException ex) {
                System.err.println(ex.toString());
            }
+7 −6
Original line number Diff line number Diff line
package cz.fidentis.analyst.gui.app.tools;

import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.avgmesh.AvgMeshConstructorOctree;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.face.HumanFaceFactory;
import cz.fidentis.analyst.mesh.core.MeshModel;
import cz.fidentis.analyst.mesh.io.MeshObjExporter;
import cz.fidentis.analyst.avgmesh.AvgMeshConstructorOctree;
import cz.fidentis.analyst.mesh.core.MeshFacet;
import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.mesh.MeshFacet;
import cz.fidentis.analyst.mesh.MeshIO;
import cz.fidentis.analyst.mesh.MeshModel;

import java.io.File;
import java.io.IOException;

@@ -101,7 +102,7 @@ public class BatchOctreeTestsTwoFaces {
    protected static void writeToFile(MeshModel model, String path) {
        File file = new File(path);
        try {
            new MeshObjExporter(model).exportModelToObj(file);
            MeshIO.exportMeshModel(model, file);
        } catch (IOException ex) {
            System.err.println(ex.toString());
        }
+11 −8
Original line number Diff line number Diff line
@@ -2,12 +2,12 @@ package cz.fidentis.analyst.gui.app.tools;

import cz.fidentis.analyst.distance.surface2surface.MeshDistanceNN;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.registration.RegistrationUtils;
import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.icp.UndersampledMeshFacet;
import cz.fidentis.analyst.mesh.core.MeshFacet;
import cz.fidentis.analyst.mesh.core.MeshModel;
import cz.fidentis.analyst.mesh.core.MeshTriangle;
import cz.fidentis.analyst.mesh.MeshFacet;
import cz.fidentis.analyst.mesh.MeshFactory;
import cz.fidentis.analyst.mesh.MeshModel;
import cz.fidentis.analyst.mesh.MeshTriangle;
import cz.fidentis.analyst.registration.RegistrationUtils;
import cz.fidentis.analyst.sampling.*;

import java.io.File;
@@ -158,7 +158,9 @@ public class IcpDownsampling {
        double bestDist = Double.POSITIVE_INFINITY;
        System.out.println("Faces: " + secFaceFromFile.getShortName() + " -> " + priFace.getShortName());
        for (int numSamples: SUB_SAMPLE_TO) {
            HumanFace secFace = new HumanFace(new MeshModel(secFaceFromFile.getMeshModel()), secFaceFromFile.getId());
            HumanFace secFace = new HumanFace(
                    MeshFactory.cloneMeshModel(secFaceFromFile.getMeshModel()),
                    secFaceFromFile.getId());
            
            PointSampling secSampling;
            if (numSamples == 0) { // skip sub-sampling, use full resolution
@@ -215,8 +217,9 @@ public class IcpDownsampling {
    }

    private static HumanFace downsamplePriFace(HumanFace priFace, PointSampling sampling) {
        MeshFacet reducedFacet = new UndersampledMeshFacet(priFace.getMeshModel().getFacets().get(0), sampling);
        MeshModel model = new MeshModel();
        sampling.visitMeshFacet(priFace.getMeshModel().getFacets().get(0));
        MeshFacet reducedFacet = MeshFactory.createPointCloudFacet(sampling.getSamples());
        MeshModel model = MeshFactory.createEmptyMeshModel();
        model.setFacets(List.of(reducedFacet));
        HumanFace ret = new HumanFace(model, priFace.getId());
        return ret;
+10 −8
Original line number Diff line number Diff line
package cz.fidentis.analyst.gui.app.tools;

import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.mesh.core.MeshFacet;
import cz.fidentis.analyst.mesh.core.MeshModel;
import cz.fidentis.analyst.symmetry.SymmetryEstimatorMesh;
import cz.fidentis.analyst.symmetry.SymmetryEstimatorRobust;
import cz.fidentis.analyst.symmetry.SymmetryEstimatorRobustMesh;
import cz.fidentis.analyst.distance.surface2surface.MeshDistanceNN;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.gui.task.batch.Stopwatch;
import cz.fidentis.analyst.mesh.MeshFacet;
import cz.fidentis.analyst.mesh.MeshFactory;
import cz.fidentis.analyst.mesh.MeshModel;
import cz.fidentis.analyst.sampling.CurvatureSampling;
import cz.fidentis.analyst.sampling.CurvatureSampling.CurvatureAlg;
import cz.fidentis.analyst.sampling.RandomSampling;
import cz.fidentis.analyst.sampling.UniformSpaceSampling;
import cz.fidentis.analyst.symmetry.SymmetryEstimatorMesh;
import cz.fidentis.analyst.symmetry.SymmetryEstimatorRobust;
import cz.fidentis.analyst.symmetry.SymmetryEstimatorRobustMesh;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@@ -166,7 +168,7 @@ public class TestSymmetryAlgorithms {
    }

    protected static DoubleSummaryStatistics checkPecision(HumanFace face) {
        MeshModel clone = new MeshModel(face.getMeshModel());
        MeshModel clone = MeshFactory.cloneMeshModel(face.getMeshModel());
        
        if (face.getSymmetryPlane() == null) {
            System.out.println("No plane: " + face.getShortName());
Loading