Search in sources :

Example 16 with Vertex

use of net.imagej.ops.geom.geom3d.mesh.Vertex in project imagej-ops by imagej.

the class MeshFeatureTests method marchingCubes.

@Test
public void marchingCubes() {
    final DefaultMesh result = (DefaultMesh) ops.run(DefaultMarchingCubes.class, ROI);
    final List<Facet> expectedFacets = mesh.getFacets();
    final List<Facet> resultFacets = result.getFacets();
    for (int i = 0; i < expectedFacets.size(); i++) {
        final TriangularFacet tmpR = (TriangularFacet) resultFacets.get(i);
        final TriangularFacet tmpE = (TriangularFacet) expectedFacets.get(i);
        for (int j = 0; j < 3; j++) {
            final Vertex resultVertex = tmpR.getVertex(j);
            final Vertex expectedVertex = tmpE.getVertex(j);
            assertEquals("Triangular Facet point " + j + " differes in x- coordinate:", expectedVertex.getDoublePosition(0), resultVertex.getDoublePosition(0), EPSILON);
            assertEquals("Triangular Facet point " + j + " differes in y- coordinate:", expectedVertex.getDoublePosition(1), resultVertex.getDoublePosition(1), EPSILON);
            assertEquals("Triangular Facet point " + j + " differes in z- coordinate:", expectedVertex.getDoublePosition(2), resultVertex.getDoublePosition(2), EPSILON);
        }
    }
}
Also used : Vertex(net.imagej.ops.geom.geom3d.mesh.Vertex) TriangularFacet(net.imagej.ops.geom.geom3d.mesh.TriangularFacet) DefaultMesh(net.imagej.ops.geom.geom3d.mesh.DefaultMesh) DefaultMarchingCubes(net.imagej.ops.geom.geom3d.DefaultMarchingCubes) Facet(net.imagej.ops.geom.geom3d.mesh.Facet) TriangularFacet(net.imagej.ops.geom.geom3d.mesh.TriangularFacet) Test(org.junit.Test) AbstractFeatureTest(net.imagej.ops.features.AbstractFeatureTest)

Example 17 with Vertex

use of net.imagej.ops.geom.geom3d.mesh.Vertex in project imagej-ops by imagej.

the class AbstractFeatureTest method getMesh.

protected static Mesh getMesh() {
    final List<Vertex> vertices = new ArrayList<>();
    try {
        Files.lines(Paths.get(AbstractFeatureTest.class.getResource("3d_geometric_features_mesh.txt").toURI())).forEach(l -> {
            String[] coord = l.split(" ");
            Vertex v = new Vertex(Double.parseDouble(coord[0]), Double.parseDouble(coord[1]), Double.parseDouble(coord[2]));
            vertices.add(v);
        });
    } catch (IOException | URISyntaxException exc) {
        exc.printStackTrace();
    }
    final DefaultMesh m = new DefaultMesh();
    for (int i = 0; i < vertices.size(); i += 3) {
        final TriangularFacet f = new TriangularFacet(vertices.get(i), vertices.get(i + 1), vertices.get(i + 2));
        m.addFace(f);
    }
    return m;
}
Also used : Vertex(net.imagej.ops.geom.geom3d.mesh.Vertex) TriangularFacet(net.imagej.ops.geom.geom3d.mesh.TriangularFacet) DefaultMesh(net.imagej.ops.geom.geom3d.mesh.DefaultMesh) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) RealPoint(net.imglib2.RealPoint)

Aggregations

Vertex (net.imagej.ops.geom.geom3d.mesh.Vertex)17 DefaultMesh (net.imagej.ops.geom.geom3d.mesh.DefaultMesh)8 TriangularFacet (net.imagej.ops.geom.geom3d.mesh.TriangularFacet)8 LinkedHashSet (java.util.LinkedHashSet)6 RealLocalizable (net.imglib2.RealLocalizable)6 Test (org.junit.Test)5 ArrayList (java.util.ArrayList)4 AbstractOpTest (net.imagej.ops.AbstractOpTest)4 DefaultConvexHull3D (net.imagej.ops.geom.geom3d.DefaultConvexHull3D)4 Vector3D (org.apache.commons.math3.geometry.euclidean.threed.Vector3D)2 IOException (java.io.IOException)1 URISyntaxException (java.net.URISyntaxException)1 Random (java.util.Random)1 AbstractFeatureTest (net.imagej.ops.features.AbstractFeatureTest)1 DefaultMarchingCubes (net.imagej.ops.geom.geom3d.DefaultMarchingCubes)1 Facet (net.imagej.ops.geom.geom3d.mesh.Facet)1 Horizon (net.imagej.ops.geom.geom3d.mesh.Horizon)1 FinalInterval (net.imglib2.FinalInterval)1 RandomAccessibleInterval (net.imglib2.RandomAccessibleInterval)1 RealPoint (net.imglib2.RealPoint)1