From 3103dbbec423f6d2328a2ea540209789939b13a3 Mon Sep 17 00:00:00 2001 From: hadjiszs Date: Thu, 29 Sep 2016 03:46:36 +0200 Subject: [PATCH 01/37] basic voxelization --- src/DGtal/shapes/MeshVoxelizer.h | 135 ++++++++ src/DGtal/shapes/MeshVoxelizer.ih | 477 ++++++++++++++++++++++++++ tests/shapes/CMakeLists.txt | 1 + tests/shapes/testMeshVoxelization.cpp | 186 ++++++++++ 4 files changed, 799 insertions(+) create mode 100755 src/DGtal/shapes/MeshVoxelizer.h create mode 100755 src/DGtal/shapes/MeshVoxelizer.ih create mode 100755 tests/shapes/testMeshVoxelization.cpp diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h new file mode 100755 index 0000000000..307d76cee3 --- /dev/null +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -0,0 +1,135 @@ +/** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + **/ + +#pragma once + +/** + * @file MeshVoxelizer.h + * @brief Compute a voxelization of a Mesh into a DigitalSet + * @date 2016/01/24 + * + * Header file for module MeshVoxelizer.ih + * + * This file is part of the DGtal library. + */ + +#if !defined MeshVoxelizer_h +/** Prevents repeated inclusion of headers. */ +#define MeshVoxelizer_h + +////////////////////////////////////////////////////////////////////////////// +// Inclusions +#include "DGtal/helpers/StdDefs.h" +#include "DGtal/shapes/Mesh.h" +#include "DGtal/kernel/sets/CDigitalSet.h" +#include "DGtal/geometry/tools/determinant/PredicateFromOrientationFunctor2.h" +#include "DGtal/geometry/tools/determinant/InHalfPlaneBySimple3x3Matrix.h" +#include +////////////////////////////////////////////////////////////////////////////// + +namespace DGtal +{ + struct arete { + using PointR3 = PointVector<3, double>; + PointR3 f, s; + + arete() {} + arete(PointR3 mf, PointR3 ms) : f(mf), s(ms) {} + }; + + /* + struct OverlapTestFunctor { + using PointR3 = PointVector<3, double>; + using PointR2 = PointVector<2, double>; + using PointZ3 = PointVector<3, int>; + double d; + + arete target; + + PointR3 A, B, C; + PointR2 AA, BB, CC; + PointZ3 v; + }; +*/ + ///////////////////////////////////////////////////////////////////////////// + /** + Description of template class 'MeshVoxelizer'

\brief Aim: A + class for computing a voxelization of a Mesh, use topological + target intersection to make a n-separating voxelization + with n parameterizable + + @tparam TDigitalSet a model of DigitalSet using std::vector, std::set, or an SVO + @tparam separation strategy of the voxelization (6, 18 or 26) + */ + template + class MeshVoxelizer + { + friend struct OverlapTestFunctor; + + using MeshFace = std::vector< unsigned int >; + using Space3Dint = SpaceND<3>; + using Domain = HyperRectDomain; + using PointR3 = PointVector<3, double>; + using VectorR3 = PointVector<3, double>; + using PointR2 = PointVector<2, double>; + using VectorR2 = PointVector<2, double>; + using PointZ3 = PointVector<3, int>; + using PointZ2 = PointVector<2, int>; + + using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; + + private: + std::vector myIntersectionTarget; + Mesh myMesh; + TDigitalSet myDigitalSet; + + public: + + /** + * Constructor + */ + MeshVoxelizer(const Mesh&, Domain&, size_t resolution); + + /** + * Voxelize the mesh into the digital set + */ + void voxelize(); + + const TDigitalSet& digitalSet() const; + + static double distance(const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const PointZ3& voxel); + static int pointIsInside2DTriangle(PointR2& A, PointR2& B, PointR2& C, PointR2& v); + static bool pointIsInsideVoxel(PointR3& P, PointZ3& v); + + bool voxelizeTriangle(PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) + { + // tag dispatching + voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); + } + + bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); + bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); + }; +} + +/////////////////////////////////////////////////////////////////////////////// +// Includes inline functions. +#include "DGtal/shapes/MeshVoxelizer.ih" + +// // +/////////////////////////////////////////////////////////////////////////////// + +#endif // !defined MeshVoxelizer_h diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih new file mode 100755 index 0000000000..b9b299d0a1 --- /dev/null +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -0,0 +1,477 @@ +/** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + **/ + +/** + * @file MeshVoxelizer.ih + * + * @date 2016/01/24 + * + * Implementation of inline methods defined in MeshVoxelizer.h + * + * This file is part of the DGtal library. + */ + +///////////////////////////////////////////////////////////////////////////// +//#include +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// IMPLEMENTATION of inline methods. +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// ----------------------- Standard services -------------------------------- + +// --------------------------------------------------------- +template +inline +DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh & aMesh, Domain& aDomain, size_t aResolution) + : myMesh(aMesh), myDigitalSet(aDomain) +{ + std::pair bbox = myMesh.getBoundingBox(); + + myMesh.changeScale(aResolution / bbox.second[0]); + + if(separation == 6) + { + // 26 connecté - 6 séparé + PointR3 AA(0.5, 0, 0); + PointR3 BB(-0.5, 0, 0); + PointR3 CC(0, 0, 0.5); + PointR3 DD(0, 0, -0.5); + PointR3 EE(0, 0.5, 0); + PointR3 FF(0, -0.5, 0); + + myIntersectionTarget.push_back( arete(AA, BB) ); + myIntersectionTarget.push_back( arete(CC, DD) ); + myIntersectionTarget.push_back( arete(EE, FF) ); + } + else + { + // 6 connecté - 26 séparé + PointR3 AA(-0.5, 0.5, 0.5); + PointR3 BB(0.5, 0.5, 0.5); + PointR3 CC(0.5, 0.5, -0.5); + PointR3 DD(-0.5, 0.5, -0.5); + PointR3 EE(-0.5, -0.5, 0.5); + PointR3 FF(0.5, -0.5, 0.5); + PointR3 GG(0.5, -0.5, -0.5); + PointR3 HH(-0.5, -0.5, -0.5); + + myIntersectionTarget.push_back( arete(AA, GG) ); + myIntersectionTarget.push_back( arete(BB, HH) ); + myIntersectionTarget.push_back( arete(CC, EE) ); + myIntersectionTarget.push_back( arete(DD, FF) ); + } +} + +// --------------------------------------------------------- +template +inline +double +DGtal::MeshVoxelizer::distance(const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const PointZ3& voxel) +{ + double distance = 0.; + + // coef d de l'équation cartesienne du plan + double d = n.dot(C); + + distance = n.dot(voxel) - d;//n.x * voxel[0] + n.y * voxel[1] + n.z * voxel[2] - d; + + if(distance < 0) + distance *= -1; + + distance /= n.norm();//sqrt(n.x * n.x + n.y * n.y + n.z * n.z); + + return distance; +} + +// --------------------------------------------------------- +template +inline +int +DGtal::MeshVoxelizer::pointIsInside2DTriangle(PointR2& A, PointR2& B, PointR2& C, PointR2& v) +{ + // AC + double val1 = (C[1] - A[1])*(v[0] - A[0]) + (C[0] - A[0])*(A[1] - v[1]); + // CB + double val2 = (B[1] - C[1])*(v[0] - C[0]) + (B[0] - C[0])*(C[1] - v[1]); + // BA + double val3 = (A[1] - B[1])*(v[0] - B[0]) + (A[0] - B[0])*(B[1] - v[1]); + + // 0 : outside + // 1 : inside + // 2 : on edge + // 3 : on vertex + if( ( val1 == 0 && val2 == 0 ) || + ( val1 == 0 && val3 == 0 ) || + ( val2 == 0 && val3 == 0 ) ) + return 3; + else if(val1 == 0 || val2 == 0 || val3 == 0) + return 2; + else if(val1 < 0 || val2 < 0 || val3 < 0) + return 0; + else + return 1; +} + +// --------------------------------------------------------- +template +inline +bool +DGtal::MeshVoxelizer::pointIsInsideVoxel(PointR3& P, PointZ3& v) +{ + P -= v; + for(int i(0); i < 3; i++) + if(! (-0.5 <= P[i] && P[i] <= 0.5) ) + { + P += v; + return false; + } + + P += v; + return true; +} + +// --------------------------------------------------------- +template +inline +bool +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) +{ + OrientationFunctor orientationFunctor; + + //geometric predicate + PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); + + PointR2 AA, BB, CC, tmp; + PointZ3 v; + + // Pour chaque cible d'intersection + for(arete& target : myIntersectionTarget) + { + // Projection 2D de A ; B ; C + + if(target.f[0] == 0.5) { + // ignore X composante + AA[0] = A[1]; + BB[0] = B[1]; + CC[0] = C[1]; + + AA[1] = A[2]; + BB[1] = B[2]; + CC[1] = C[2]; + } + else if(target.f[1] == 0.5) + { + // ignore Y composante + AA[0] = A[0]; + BB[0] = B[0]; + CC[0] = C[0]; + + AA[1] = A[2]; + BB[1] = B[2]; + CC[1] = C[2]; + } + else + { + // ignore Z composante + AA[0] = A[0]; + BB[0] = B[0]; + CC[0] = C[0]; + + AA[1] = A[1]; + BB[1] = B[1]; + CC[1] = C[1]; + } + + if(! pointPredicate(AA, BB, CC)) + { + tmp = AA; + AA = CC; + CC = tmp; + } + + // parcours de tous les voxel de la bouding box de la face courante + v = bbox.first; + for(; v[1] <= bbox.second[1]; v[1]++) + for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) + for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) + { + // -- check if points are on different side + target.f += v; + target.s += v; + + VectorR3 d1, d2; + + d1 = A - target.f; + d2 = A - target.s; + + bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; + + target.f -= v; + target.s -= v; + + if( ! isDifferentSide ) + continue; + + PointR2 pp; + + if(target.f[0] == 0.5) { + // ignore X composante + pp[0] = v[1]; + pp[1] = v[2]; + } + else if(target.f[1] == 0.5) + { + // ignore Y composante + pp[0] = v[0]; + pp[1] = v[2]; + } + else + { + // ignore Z composante + pp[0] = v[0]; + pp[1] = v[1]; + } + + if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) + myDigitalSet.insert(v); + } + } + + return true; +} + +// --------------------------------------------------------- +template +inline +bool +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) +{ + OrientationFunctor orientationFunctor; + + //geometric predicate + PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); + + double d = n[0] * C[0] + n[1] * C[1] + n[2] * C[2]; + d *= -1; + + auto intersectionPoint = + [&](arete a, PointR3& p) + { + // point d'intersection + VectorR3 w; // vecteur directeur + + w = a.s - a.f; + + double lambda = -( n.dot(a.f) + d ); + double den = n.dot(w); + + if(den == 0) + return false; + + lambda /= den; + + p[0] = a.f[0] + lambda*w[0]; + p[1] = a.f[1] + lambda*w[1]; + p[2] = a.f[2] + lambda*w[2]; + + return true; + }; + + auto abs = [=](double a) { return a < 0 ? -a : a; }; + auto max = [=](double a, double b) { return abs(a) > abs(b) ? a : b; }; + + double maxv = max(n[0], max(n[1], n[2])); + + PointZ3 v; + PointR2 AA, BB, CC, tmp, pp; + + if(maxv == n[0]) + { + AA[0] = A[1]; + AA[1] = A[2]; + + BB[0] = B[1]; + BB[1] = B[2]; + + CC[0] = C[1]; + CC[1] = C[2]; + } + else if(maxv == n[1]) + { + AA[0] = A[0]; + AA[1] = A[2]; + + BB[0] = B[0]; + BB[1] = B[2]; + + CC[0] = C[0]; + CC[1] = C[2]; + } + else + { + AA[0] = A[0]; + AA[1] = A[1]; + + BB[0] = B[0]; + BB[1] = B[1]; + + CC[0] = C[0]; + CC[1] = C[1]; + } + + if(! pointPredicate(AA, BB, CC)) + { + tmp = AA; + AA = CC; + CC = tmp; + } + + for(arete& target : myIntersectionTarget) + { + // parcours de tous les voxels de la bouding box de la face courante + v = bbox.first; + for(; v[1] <= bbox.second[1]; v[1]++) + for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) + for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) + { + target.f += v; + target.s += v; + + VectorR3 d1, d2; + + d1 = A - target.f; + d2 = A - target.s; + + bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; + + // check si différent côté du plan + if( ! isDifferentSide ) + { + target.f -= v; + target.s -= v; + continue; + } + + PointR3 p; // point d'intersection + if(! intersectionPoint(target, p)) // est à faux si parallel + { + target.f -= v; + target.s -= v; + continue; + } + + // projection du point d'intersection + if(maxv == n[0]) + { + pp[0] = p[1]; + pp[1] = p[2]; + } + else if(maxv == n[1]) + { + pp[0] = p[0]; + pp[1] = p[2]; + } + else + { + pp[0] = p[0]; + pp[1] = p[1]; + } + + if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) + myDigitalSet.insert(v); + + target.f -= v; + target.s -= v; + } + } + + return true; +} + +// --------------------------------------------------------- +template +inline +void +DGtal::MeshVoxelizer::voxelize() +{ + VectorR3 n, e1, e2; + + MeshFace currentFace; + + std::pair bbox; + + PointR3 A, B, C; + + for(int i = 0; i < myMesh.nbFaces(); i++) + { + // face courante + currentFace = myMesh.getFace(i); + + A = myMesh.getVertex(currentFace[0]); + B = myMesh.getVertex(currentFace[1]); + C = myMesh.getVertex(currentFace[2]); + + e1 = B - A; + e2 = C - A; + n = e1.crossProduct(e2).getNormalized(); + + // transforme en mesh + Mesh currentMesh; + currentMesh.addVertex(A); + currentMesh.addVertex(B); + currentMesh.addVertex(C); + currentMesh.addTriangularFace(0, 1, 2); + + // recupere la bounding box + bbox = currentMesh.getBoundingBox(); + + // floor et ceil pour que ce soit axis aligned sur Z^3 + for(int i(0); i < 3; i++) + { + if(bbox.first[i] < bbox.second[i]) + { + bbox.first[i] = floor(bbox.first[i]); + bbox.second[i] = ceil(bbox.second[i]); + } + else + { + bbox.second[i] = floor(bbox.second[i]); + bbox.first[i] = ceil(bbox.first[i]); + } + + if(bbox.first[i] > bbox.second[i]) + { + double tmp = bbox.first[i]; + bbox.first[i] = bbox.second[i]; + bbox.second[i] = tmp; + } + } + + voxelizeTriangle(A, B, C, n, bbox); + } +} + +// --------------------------------------------------------- +template +inline +const TDigitalSet& +DGtal::MeshVoxelizer::digitalSet() const +{ + return this->myDigitalSet; +} diff --git a/tests/shapes/CMakeLists.txt b/tests/shapes/CMakeLists.txt index cbcffe3483..a083baccbd 100644 --- a/tests/shapes/CMakeLists.txt +++ b/tests/shapes/CMakeLists.txt @@ -25,6 +25,7 @@ SET(DGTAL_TESTS_SRC testImplicitFunctionModels testShapesFromPoints testMesh + testMeshVoxelization testBall3DSurface testEuclideanShapesDecorator testDigitalShapesDecorator diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp new file mode 100755 index 0000000000..fae953fa4b --- /dev/null +++ b/tests/shapes/testMeshVoxelization.cpp @@ -0,0 +1,186 @@ +/** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + **/ + +/** + * @file testMeshVoxelization.cpp + * @ingroup Tests + * + * @date 2016/01/25 + * + * Functions for testing class MeshVoxelizer + * + * This file is part of the DGtal library. + */ + +/////////////////////////////////////////////////////////////////////////////// +#include +#include "../tests/DGtalCatch.h" +#include "DGtal/shapes/MeshVoxelizer.h" +#include "DGtal/kernel/sets/CDigitalSet.h" +#include "DGtal/kernel/domains/HyperRectDomain.h" +#include "DGtal/io/readers/MeshReader.h" +#include "DGtal/io/Display3D.h" +/////////////////////////////////////////////////////////////////////////////// + +#include + +using namespace DGtal; +using namespace Z3i; + +#define SEP 26 + +TEST_CASE("Basic voxelization test", "[voxelization]") +{ + using Space3Dint = SpaceND<3>; + using Domain = HyperRectDomain; + using PointR3 = PointVector<3, double>; + using VectorR3 = PointVector<3, double>; + using PointR2 = PointVector<2, double>; + using VectorR2 = PointVector<2, double>; + using PointZ3 = PointVector<3, int>; + using PointZ2 = PointVector<2, int>; + + using MeshVoxelizer = MeshVoxelizer, SEP>; + + // --------------------------------------------------------- + SECTION("Test distance point/plan 3D") + { + // Triangle ABC in R3 + PointR3 A(38.6908 , 14.5441 , -0.71205); + PointR3 B(34.6171 , 13.5999 , 2.44455); + PointR3 C(37.4205 , 2.44239 , 6.31301); + + // Point v + PointZ3 v(35, 2, 5); + + VectorR3 e1 = A - B; + VectorR3 e2 = A - C; + + double distance = MeshVoxelizer::distance(A, B, C, e1.crossProduct(e2), v); + + REQUIRE( 2.40 < distance ); + REQUIRE( distance < 2.41 ); + } + + // --------------------------------------------------------- + SECTION("Test if 2D point is inside triangle 2D") + { + // Triangle ABC in R2 + PointR2 A(1.0, 1.0); + PointR2 B(2.0, 3.0); + PointR2 C(3.0, 1.0); + + typedef InHalfPlaneBySimple3x3Matrix OrientationFunctor; + OrientationFunctor orientationFunctor; + + //geometric predicate + PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); + + if(! pointPredicate(A, B, C)) + { + PointR2 tmp = A; + A = C; + C = tmp; + } + + // Test if point v is inside triangle ABC + // 0 : outside + // 1 : inside + // 2 : on edge + // 3 : on vertex + PointR2 v; + + v[0] = 3.0; + v[1] = 3.0; + REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 0); // outside + + v[0] = 2.0; + v[1] = 2.0; + REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 1); // inside + + v[0] = 2; + v[1] = 1; + REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 2); // on edge + + v[0] = 3; + v[1] = 1; + REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 3); // on vertex + + // another triangle + A[0] = -0.891282; A[1] = 9.91201; + B[0] = -1.40823; B[1] = 9.91261; + C[0] = -1.36963; C[1] = 9.37414; + + v[0] = -1.16961; + v[1] = 9.83039; + REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 1); // inside + } + + // --------------------------------------------------------- + SECTION("Test if 3D point is inside voxel") + { + // Triangle ABC in R2 + PointR3 P(-0.89, 9.91, 0.86); + PointZ3 v(-1, 10, 1); + + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside + + P[0] = -1.41; + P[1] = 9.91; + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside + + P[0] = -1.37; + P[1] = 9.37; + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside + + P[0] = -1.17; + P[1] = 9.83; + P[2] = 0; + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside + } + + // --------------------------------------------------------- + SECTION("Voxelization") + { + // Import from a .off + Mesh aMesh; + + int resolution = 64; + + Domain aDomain( PointZ3(-resolution/2, -resolution/2, -resolution/2), + PointZ3( resolution/2, resolution/2, resolution/2) ); + + std::string filename = "m_octaflower.off"; + //std::string filename = "m_triangle1.off"; + MeshReader::importOFFFile(filename.c_str(), aMesh); + + MeshVoxelizer aVoxelizer(aMesh, aDomain, resolution); + + auto start = std::chrono::high_resolution_clock::now(); + aVoxelizer.voxelize(); + auto end = std::chrono::high_resolution_clock::now(); + + auto diff = end - start; + std::cout << "-- time: " << std::chrono::duration (diff).count() << " ms" << std::endl; + + // Export the digital set to a off file + std::string exportname = ""; + exportname += filename.substr(0,filename.size()-4) + "_s"+ std::to_string(SEP) +"_v" + std::to_string(resolution) + ".off"; + Display3D<> viewer; + viewer << aVoxelizer.digitalSet(); + viewer >> exportname.c_str(); + } +} From eb2724018111b2de29ea00868e7f10802083b504 Mon Sep 17 00:00:00 2001 From: hadjiszs Date: Thu, 29 Sep 2016 22:03:37 +0200 Subject: [PATCH 02/37] minor change --- src/DGtal/shapes/MeshVoxelizer.h | 87 +++++++++++++++++---------- src/DGtal/shapes/MeshVoxelizer.ih | 51 ++++++++-------- tests/shapes/testMeshVoxelization.cpp | 42 ++----------- 3 files changed, 88 insertions(+), 92 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 307d76cee3..9174451b3f 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -37,7 +37,6 @@ #include "DGtal/kernel/sets/CDigitalSet.h" #include "DGtal/geometry/tools/determinant/PredicateFromOrientationFunctor2.h" #include "DGtal/geometry/tools/determinant/InHalfPlaneBySimple3x3Matrix.h" -#include ////////////////////////////////////////////////////////////////////////////// namespace DGtal @@ -50,20 +49,6 @@ namespace DGtal arete(PointR3 mf, PointR3 ms) : f(mf), s(ms) {} }; - /* - struct OverlapTestFunctor { - using PointR3 = PointVector<3, double>; - using PointR2 = PointVector<2, double>; - using PointZ3 = PointVector<3, int>; - double d; - - arete target; - - PointR3 A, B, C; - PointR2 AA, BB, CC; - PointZ3 v; - }; -*/ ///////////////////////////////////////////////////////////////////////////// /** Description of template class 'MeshVoxelizer'

\brief Aim: A @@ -71,23 +56,21 @@ namespace DGtal target intersection to make a n-separating voxelization with n parameterizable - @tparam TDigitalSet a model of DigitalSet using std::vector, std::set, or an SVO - @tparam separation strategy of the voxelization (6, 18 or 26) + @tparam TDigitalSet a DigitalSet using std::vector, std::set, or SVO + @tparam separation strategy of the voxelization (6 or 26) */ template class MeshVoxelizer { - friend struct OverlapTestFunctor; - - using MeshFace = std::vector< unsigned int >; using Space3Dint = SpaceND<3>; - using Domain = HyperRectDomain; - using PointR3 = PointVector<3, double>; + using MeshFace = std::vector< unsigned int >; + using Domain = HyperRectDomain; + using PointR3 = PointVector<3, double>; using VectorR3 = PointVector<3, double>; - using PointR2 = PointVector<2, double>; + using PointR2 = PointVector<2, double>; using VectorR2 = PointVector<2, double>; - using PointZ3 = PointVector<3, int>; - using PointZ2 = PointVector<2, int>; + using PointZ3 = PointVector<3, int>; + using PointZ2 = PointVector<2, int>; using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; @@ -99,28 +82,70 @@ namespace DGtal public: /** - * Constructor + * @brief Constructor of the voxelizer + * @param aMesh mesh to voxelize + * @param aDomain digital space of the voxelization + * @param aResolution resolution of the voxelization grid */ - MeshVoxelizer(const Mesh&, Domain&, size_t resolution); + MeshVoxelizer(const Mesh& aMesh, Domain& aDomain, size_t aResolution); /** - * Voxelize the mesh into the digital set + * @brief voxelize the mesh into the digital set */ void voxelize(); + /** + * @brief getter for digitalSet + * @return current digital set + */ const TDigitalSet& digitalSet() const; - static double distance(const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const PointZ3& voxel); - static int pointIsInside2DTriangle(PointR2& A, PointR2& B, PointR2& C, PointR2& v); - static bool pointIsInsideVoxel(PointR3& P, PointZ3& v); + private: + // some internal private static functions + + /** + * @brief compute distance between triangle ABC and point p + * @param n normal of ABC + * @param p point p + * @return distance + */ + static double distance(const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const PointZ3& p); + /** + * @brief predicat to know if p (2D point) is inside ABC (2D triangle) + * @param p point p + * @return true if p is inside ABC + */ + static int pointIsInside2DTriangle(PointR2& A, PointR2& B, PointR2& C, PointR2& p); + + /** + * @brief predicat to know if point P is inside voxel v + * @param P point P + * @param v voxel v + * @return + */ + static bool pointIsInsideVoxel(PointR3& P, PointZ3& v); + + /** + * @brief voxelize ABC to the digitalSet + * @param n normal of ABC + * @param bbox bounding box of ABC + * @return true if ok + */ bool voxelizeTriangle(PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) { // tag dispatching voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); } + /** + * @brief function specialization of voxelizeTriangle for 6-separated voxelization using tag dispatching + */ bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); + + /** + * @brief function specialization of voxelizeTriangle for 26-separated voxelization using tag dispatching + */ bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); }; } diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index b9b299d0a1..4fef3ab879 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -24,10 +24,6 @@ * This file is part of the DGtal library. */ -///////////////////////////////////////////////////////////////////////////// -//#include -///////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////////////// // IMPLEMENTATION of inline methods. ///////////////////////////////////////////////////////////////////////////// @@ -47,7 +43,7 @@ DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh if(separation == 6) { - // 26 connecté - 6 séparé + // 26 connected - 6 separated PointR3 AA(0.5, 0, 0); PointR3 BB(-0.5, 0, 0); PointR3 CC(0, 0, 0.5); @@ -59,9 +55,9 @@ DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh myIntersectionTarget.push_back( arete(CC, DD) ); myIntersectionTarget.push_back( arete(EE, FF) ); } - else + else if(separation == 26) { - // 6 connecté - 26 séparé + // 6 connected - 26 separated PointR3 AA(-0.5, 0.5, 0.5); PointR3 BB(0.5, 0.5, 0.5); PointR3 CC(0.5, 0.5, -0.5); @@ -160,10 +156,10 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co PointR2 AA, BB, CC, tmp; PointZ3 v; - // Pour chaque cible d'intersection + // foreach intersection target for(arete& target : myIntersectionTarget) { - // Projection 2D de A ; B ; C + // 2D projection of A ; B ; C if(target.f[0] == 0.5) { // ignore X composante @@ -198,6 +194,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co CC[1] = C[1]; } + // check orientation if(! pointPredicate(AA, BB, CC)) { tmp = AA; @@ -205,13 +202,13 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co CC = tmp; } - // parcours de tous les voxel de la bouding box de la face courante + // traverse all voxel of current face bounding box v = bbox.first; for(; v[1] <= bbox.second[1]; v[1]++) for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) { - // -- check if points are on different side + // check if points are on different side target.f += v; target.s += v; @@ -230,6 +227,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co PointR2 pp; + // 2d projection of current voxel if(target.f[0] == 0.5) { // ignore X composante pp[0] = v[1]; @@ -248,6 +246,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co pp[1] = v[1]; } + // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) myDigitalSet.insert(v); } @@ -270,6 +269,8 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co double d = n[0] * C[0] + n[1] * C[1] + n[2] * C[2]; d *= -1; + // lambda function to return compute intersection point (p) + // intersection point between arete a and ABC triangle auto intersectionPoint = [&](arete a, PointR3& p) { @@ -301,6 +302,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co PointZ3 v; PointR2 AA, BB, CC, tmp, pp; + // 2D projection of ABC if(maxv == n[0]) { AA[0] = A[1]; @@ -335,6 +337,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co CC[1] = C[1]; } + // check orientation if(! pointPredicate(AA, BB, CC)) { tmp = AA; @@ -342,14 +345,16 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co CC = tmp; } + // foreach intersection target for(arete& target : myIntersectionTarget) { - // parcours de tous les voxels de la bouding box de la face courante + // traverse all voxel of current face bounding box v = bbox.first; for(; v[1] <= bbox.second[1]; v[1]++) for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) { + // check if points are on different side target.f += v; target.s += v; @@ -360,7 +365,6 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; - // check si différent côté du plan if( ! isDifferentSide ) { target.f -= v; @@ -368,15 +372,16 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co continue; } - PointR3 p; // point d'intersection - if(! intersectionPoint(target, p)) // est à faux si parallel + // get intersection point between target intersection and ABC + PointR3 p; // intersection point to compute + if( ! intersectionPoint(target, p)) // false if target is on ABC plane { target.f -= v; target.s -= v; continue; } - // projection du point d'intersection + // 2d projection of intersection point if(maxv == n[0]) { pp[0] = p[1]; @@ -393,6 +398,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co pp[1] = p[1]; } + // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) myDigitalSet.insert(v); @@ -409,18 +415,15 @@ template inline void DGtal::MeshVoxelizer::voxelize() -{ - VectorR3 n, e1, e2; - +{ MeshFace currentFace; - std::pair bbox; + VectorR3 n, e1, e2; PointR3 A, B, C; for(int i = 0; i < myMesh.nbFaces(); i++) { - // face courante currentFace = myMesh.getFace(i); A = myMesh.getVertex(currentFace[0]); @@ -431,17 +434,15 @@ DGtal::MeshVoxelizer::voxelize() e2 = C - A; n = e1.crossProduct(e2).getNormalized(); - // transforme en mesh Mesh currentMesh; currentMesh.addVertex(A); currentMesh.addVertex(B); currentMesh.addVertex(C); currentMesh.addTriangularFace(0, 1, 2); - // recupere la bounding box bbox = currentMesh.getBoundingBox(); - // floor et ceil pour que ce soit axis aligned sur Z^3 + // floor and ceil to have an axis aligned bounding box in Z^3 for(int i(0); i < 3; i++) { if(bbox.first[i] < bbox.second[i]) @@ -457,12 +458,14 @@ DGtal::MeshVoxelizer::voxelize() if(bbox.first[i] > bbox.second[i]) { + // swap double tmp = bbox.first[i]; bbox.first[i] = bbox.second[i]; bbox.second[i] = tmp; } } + // voxelize current triangle to myDigitalSet voxelizeTriangle(A, B, C, n, bbox); } } diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index fae953fa4b..4aaffdc8f5 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -45,13 +45,13 @@ using namespace Z3i; TEST_CASE("Basic voxelization test", "[voxelization]") { using Space3Dint = SpaceND<3>; - using Domain = HyperRectDomain; - using PointR3 = PointVector<3, double>; + using Domain = HyperRectDomain; + using PointR3 = PointVector<3, double>; using VectorR3 = PointVector<3, double>; - using PointR2 = PointVector<2, double>; + using PointR2 = PointVector<2, double>; using VectorR2 = PointVector<2, double>; - using PointZ3 = PointVector<3, int>; - using PointZ2 = PointVector<2, int>; + using PointZ3 = PointVector<3, int>; + using PointZ2 = PointVector<2, int>; using MeshVoxelizer = MeshVoxelizer, SEP>; @@ -151,36 +151,4 @@ TEST_CASE("Basic voxelization test", "[voxelization]") P[2] = 0; REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside } - - // --------------------------------------------------------- - SECTION("Voxelization") - { - // Import from a .off - Mesh aMesh; - - int resolution = 64; - - Domain aDomain( PointZ3(-resolution/2, -resolution/2, -resolution/2), - PointZ3( resolution/2, resolution/2, resolution/2) ); - - std::string filename = "m_octaflower.off"; - //std::string filename = "m_triangle1.off"; - MeshReader::importOFFFile(filename.c_str(), aMesh); - - MeshVoxelizer aVoxelizer(aMesh, aDomain, resolution); - - auto start = std::chrono::high_resolution_clock::now(); - aVoxelizer.voxelize(); - auto end = std::chrono::high_resolution_clock::now(); - - auto diff = end - start; - std::cout << "-- time: " << std::chrono::duration (diff).count() << " ms" << std::endl; - - // Export the digital set to a off file - std::string exportname = ""; - exportname += filename.substr(0,filename.size()-4) + "_s"+ std::to_string(SEP) +"_v" + std::to_string(resolution) + ".off"; - Display3D<> viewer; - viewer << aVoxelizer.digitalSet(); - viewer >> exportname.c_str(); - } } From 4e9663c0f5eb06cdc9d6762fe535e7270166a6be Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Fri, 30 Sep 2016 19:14:01 +0200 Subject: [PATCH 03/37] Update MeshVoxelizer.h minor change --- src/DGtal/shapes/MeshVoxelizer.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 9174451b3f..1ac971ddc8 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -99,10 +99,11 @@ namespace DGtal * @return current digital set */ const TDigitalSet& digitalSet() const; - - private: - // some internal private static functions - + + // + // some internal static functions + // + /** * @brief compute distance between triangle ABC and point p * @param n normal of ABC From 67c1b67549b470ed60f3a3ed8b84a6ac09f96cf6 Mon Sep 17 00:00:00 2001 From: hadjiszs Date: Fri, 30 Sep 2016 21:59:56 +0200 Subject: [PATCH 04/37] fix debug warn --- src/DGtal/shapes/MeshVoxelizer.h | 18 +++++------ src/DGtal/shapes/MeshVoxelizer.ih | 30 ++++++++--------- tests/shapes/testMeshVoxelization.cpp | 46 +++++++++++++-------------- 3 files changed, 45 insertions(+), 49 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 9174451b3f..9434a2f45f 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -68,9 +68,7 @@ namespace DGtal using PointR3 = PointVector<3, double>; using VectorR3 = PointVector<3, double>; using PointR2 = PointVector<2, double>; - using VectorR2 = PointVector<2, double>; using PointZ3 = PointVector<3, int>; - using PointZ2 = PointVector<2, int>; using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; @@ -100,16 +98,18 @@ namespace DGtal */ const TDigitalSet& digitalSet() const; - private: - // some internal private static functions + // + // some internal static functions + // /** - * @brief compute distance between triangle ABC and point p - * @param n normal of ABC + * @brief compute distance between p and plan defined by normal n and point M + * @param M point + * @param n normal * @param p point p * @return distance */ - static double distance(const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const PointZ3& p); + static double distance(const PointR3& M, const VectorR3& n, const PointZ3& p); /** * @brief predicat to know if p (2D point) is inside ABC (2D triangle) @@ -122,7 +122,7 @@ namespace DGtal * @brief predicat to know if point P is inside voxel v * @param P point P * @param v voxel v - * @return + * @return true if P is inside v */ static bool pointIsInsideVoxel(PointR3& P, PointZ3& v); @@ -135,7 +135,7 @@ namespace DGtal bool voxelizeTriangle(PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) { // tag dispatching - voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); + return voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); } /** diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 4fef3ab879..aa13a0fb79 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -78,19 +78,17 @@ DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh template inline double -DGtal::MeshVoxelizer::distance(const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const PointZ3& voxel) +DGtal::MeshVoxelizer::distance(const PointR3& M, const VectorR3& n, const PointZ3& voxel) { double distance = 0.; + double d = n.dot(M); - // coef d de l'équation cartesienne du plan - double d = n.dot(C); - - distance = n.dot(voxel) - d;//n.x * voxel[0] + n.y * voxel[1] + n.z * voxel[2] - d; + distance = n.dot(voxel) - d; if(distance < 0) distance *= -1; - distance /= n.norm();//sqrt(n.x * n.x + n.y * n.y + n.z * n.z); + distance /= n.norm(); return distance; } @@ -443,25 +441,25 @@ DGtal::MeshVoxelizer::voxelize() bbox = currentMesh.getBoundingBox(); // floor and ceil to have an axis aligned bounding box in Z^3 - for(int i(0); i < 3; i++) + for(int j(0); j < 3; j++) { - if(bbox.first[i] < bbox.second[i]) + if(bbox.first[j] < bbox.second[j]) { - bbox.first[i] = floor(bbox.first[i]); - bbox.second[i] = ceil(bbox.second[i]); + bbox.first[j] = floor(bbox.first[j]); + bbox.second[j] = ceil(bbox.second[j]); } else { - bbox.second[i] = floor(bbox.second[i]); - bbox.first[i] = ceil(bbox.first[i]); + bbox.second[j] = floor(bbox.second[j]); + bbox.first[j] = ceil(bbox.first[j]); } - if(bbox.first[i] > bbox.second[i]) + if(bbox.first[j] > bbox.second[j]) { // swap - double tmp = bbox.first[i]; - bbox.first[i] = bbox.second[i]; - bbox.second[i] = tmp; + double tmp = bbox.first[j]; + bbox.first[j] = bbox.second[j]; + bbox.second[j] = tmp; } } diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 4aaffdc8f5..4f0737fbd4 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -49,9 +49,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") using PointR3 = PointVector<3, double>; using VectorR3 = PointVector<3, double>; using PointR2 = PointVector<2, double>; - using VectorR2 = PointVector<2, double>; using PointZ3 = PointVector<3, int>; - using PointZ2 = PointVector<2, int>; using MeshVoxelizer = MeshVoxelizer, SEP>; @@ -69,7 +67,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") VectorR3 e1 = A - B; VectorR3 e2 = A - C; - double distance = MeshVoxelizer::distance(A, B, C, e1.crossProduct(e2), v); + double distance = MeshVoxelizer::distance(A, e1.crossProduct(e2), v); REQUIRE( 2.40 < distance ); REQUIRE( distance < 2.41 ); @@ -130,25 +128,25 @@ TEST_CASE("Basic voxelization test", "[voxelization]") } // --------------------------------------------------------- - SECTION("Test if 3D point is inside voxel") - { - // Triangle ABC in R2 - PointR3 P(-0.89, 9.91, 0.86); - PointZ3 v(-1, 10, 1); - - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside - - P[0] = -1.41; - P[1] = 9.91; - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside - - P[0] = -1.37; - P[1] = 9.37; - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside - - P[0] = -1.17; - P[1] = 9.83; - P[2] = 0; - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside - } +// SECTION("Test if 3D point is inside voxel") +// { +// // Triangle ABC in R2 +// PointR3 P(-0.89, 9.91, 0.86); +// PointZ3 v(-1, 10, 1); + +// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside + +// P[0] = -1.41; +// P[1] = 9.91; +// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside + +// P[0] = -1.37; +// P[1] = 9.37; +// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside + +// P[0] = -1.17; +// P[1] = 9.83; +// P[2] = 0; +// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside +// } } From bbc3cca007829e45f4ab35923682aa1842a888a7 Mon Sep 17 00:00:00 2001 From: hadjiszs Date: Thu, 6 Oct 2016 06:00:59 +0200 Subject: [PATCH 05/37] fix doxygen warn --- src/DGtal/shapes/MeshVoxelizer.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 17803e7f7b..739fff3def 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -113,6 +113,9 @@ namespace DGtal /** * @brief predicat to know if p (2D point) is inside ABC (2D triangle) + * @param A Point A + * @param B Point B + * @param C Point C * @param p point p * @return true if p is inside ABC */ @@ -128,6 +131,9 @@ namespace DGtal /** * @brief voxelize ABC to the digitalSet + * @param A Point A + * @param B Point B + * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC * @return true if ok @@ -139,12 +145,24 @@ namespace DGtal } /** - * @brief function specialization of voxelizeTriangle for 6-separated voxelization using tag dispatching + * @brief voxelizeTriangle specialization for 6-separated + * @param A Point A + * @param B Point B + * @param C Point C + * @param n normal of ABC + * @param bbox bounding box of ABC + * @return true if ok */ bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); /** - * @brief function specialization of voxelizeTriangle for 26-separated voxelization using tag dispatching + * @brief voxelizeTriangle specialization for 26-separated + * @param A Point A + * @param B Point B + * @param C Point C + * @param n normal of ABC + * @param bbox bounding box of ABC + * @return true if ok */ bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); }; From d2edf6818748ed703b8192212d83578baf8a37d2 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 8 Oct 2016 14:49:15 +0200 Subject: [PATCH 06/37] Refactoring the code --- src/DGtal/shapes/GaussDigitizer.h | 6 +- src/DGtal/shapes/MeshVoxelizer.h | 140 +++++++++++++++++--------- src/DGtal/shapes/MeshVoxelizer.ih | 54 +++++----- tests/shapes/testMeshVoxelization.cpp | 16 ++- 4 files changed, 126 insertions(+), 90 deletions(-) diff --git a/src/DGtal/shapes/GaussDigitizer.h b/src/DGtal/shapes/GaussDigitizer.h index 198a92425e..b3df8ea6d9 100644 --- a/src/DGtal/shapes/GaussDigitizer.h +++ b/src/DGtal/shapes/GaussDigitizer.h @@ -88,12 +88,8 @@ namespace DGtal typedef HyperRectDomain Domain; typedef RegularPointEmbedder PointEmbedder; - // JOL: GaussDigitizer do not need a bounded shape. - // BOOST_CONCEPT_ASSERT(( CEuclideanBoundedShape )); - BOOST_CONCEPT_ASSERT(( concepts::CEuclideanOrientedShape )); - - + /** * Destructor. */ diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 739fff3def..7f9f25190c 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -34,6 +34,7 @@ // Inclusions #include "DGtal/helpers/StdDefs.h" #include "DGtal/shapes/Mesh.h" +#include "DGtal/kernel/SpaceND.h" #include "DGtal/kernel/sets/CDigitalSet.h" #include "DGtal/geometry/tools/determinant/PredicateFromOrientationFunctor2.h" #include "DGtal/geometry/tools/determinant/InHalfPlaneBySimple3x3Matrix.h" @@ -41,94 +42,122 @@ namespace DGtal { - struct arete { - using PointR3 = PointVector<3, double>; - PointR3 f, s; - - arete() {} - arete(PointR3 mf, PointR3 ms) : f(mf), s(ms) {} - }; - + ///////////////////////////////////////////////////////////////////////////// /** - Description of template class 'MeshVoxelizer'

\brief Aim: A - class for computing a voxelization of a Mesh, use topological - target intersection to make a n-separating voxelization - with n parameterizable - - @tparam TDigitalSet a DigitalSet using std::vector, std::set, or SVO - @tparam separation strategy of the voxelization (6 or 26) - */ + Description of template class 'MeshVoxelizer' + + \brief Aim: A + class for computing a voxelization of a Mesh, use topological + target intersection to make a n-separating voxelization + with n parameterizable + + @tparam TDigitalSet a DigitalSet (model of concepts::CDigitalSet) + @tparam Separation strategy of the voxelization (6 or 26) + */ template class MeshVoxelizer { - using Space3Dint = SpaceND<3>; - using MeshFace = std::vector< unsigned int >; - using Domain = HyperRectDomain; - using PointR3 = PointVector<3, double>; - using VectorR3 = PointVector<3, double>; - using PointR2 = PointVector<2, double>; - using PointZ3 = PointVector<3, int>; + + public: + + ///Concept Checking + BOOST_CONCEPT_ASSERT(( concepts::CDigitalSet )); + ///Digital Set Type + typedef TDigitalSet DigitalSet; + BOOST_STATIC_ASSERT_MSG( DigitalSet::Space::dimension == 3, "DigitalSet dimension must be 3"); + + + /****** Associated types *********************/ + using Space = typename DigitalSet::Space; + using Space2D = SpaceND<2, typename Space::Integer>; + using MeshFace = std::vector< unsigned int >; + using Domain = typename DigitalSet::Domain; + using PointR3 = typename Space::RealPoint; + using VectorR3 = typename Space::RealPoint; + using PointR2 = typename Space2D::RealPoint; + using PointZ3 = typename Space::Point; + using Mesh3 = Mesh; using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; - + /****** Associated types *********************/ + + private: - std::vector myIntersectionTarget; - Mesh myMesh; - TDigitalSet myDigitalSet; - + struct Edge + { + PointR3 myFirst, mySecond; + Edge() {} + Edge(PointR3 mf, PointR3 ms) : myFirst(mf), mySecond(ms) {} + }; + public: - + /** * @brief Constructor of the voxelizer * @param aMesh mesh to voxelize * @param aDomain digital space of the voxelization * @param aResolution resolution of the voxelization grid */ - MeshVoxelizer(const Mesh& aMesh, Domain& aDomain, size_t aResolution); - + MeshVoxelizer(ConstAlias aMesh, + ConstAlias aDomain, + size_t aResolution); + + // ----------------------- Standard services ------------------------------ /** * @brief voxelize the mesh into the digital set */ void voxelize(); - + /** * @brief getter for digitalSet * @return current digital set */ const TDigitalSet& digitalSet() const; - // - // some internal static functions - // + + // ----------------------- Internal services ------------------------------ + + ///Enum type when deciding if a 2D point belongs to a 2D triangle. + enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE,ONVERTEX}; /** - * @brief compute distance between p and plan defined by normal n and point M + * Compute distance between @a p and the Euclidean plan + * defined by normal vector @a n and point @a M * @param M point * @param n normal * @param p point p * @return distance */ - static double distance(const PointR3& M, const VectorR3& n, const PointZ3& p); - + static + double distance(const PointR3& M, + const VectorR3& n, + const PointZ3& p) ; + /** - * @brief predicat to know if p (2D point) is inside ABC (2D triangle) + * Predicate to know if @a p (2D point) is inside ABC (2D triangle) * @param A Point A * @param B Point B * @param C Point C * @param p point p - * @return true if p is inside ABC + * @return Either {OUTSIDE, INSIDE, ONEDGE, ONVERTEX} */ - static int pointIsInside2DTriangle(PointR2& A, PointR2& B, PointR2& C, PointR2& p); - + static + TriangleOrientation pointIsInside2DTriangle(const PointR2& A, + const PointR2& B, + const PointR2& C, + const PointR2& p) ; + /** - * @brief predicat to know if point P is inside voxel v + * @brief predicat to know if a real point @a P is inside voxel @a v * @param P point P * @param v voxel v * @return true if P is inside v */ - static bool pointIsInsideVoxel(PointR3& P, PointZ3& v); - + static + bool pointIsInsideVoxel(const PointR3& P, + const PointZ3& v) ; + /** * @brief voxelize ABC to the digitalSet * @param A Point A @@ -143,9 +172,9 @@ namespace DGtal // tag dispatching return voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); } - + /** - * @brief voxelizeTriangle specialization for 6-separated + * @brief voxelizeTriangle specialization for 6-separated * @param A Point A * @param B Point B * @param C Point C @@ -154,7 +183,7 @@ namespace DGtal * @return true if ok */ bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); - + /** * @brief voxelizeTriangle specialization for 26-separated * @param A Point A @@ -165,6 +194,21 @@ namespace DGtal * @return true if ok */ bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); + + + // ----------------------- Members ------------------------------ + + private: + + ///Intersection target + std::vector myIntersectionTarget; + + ///Input mesh + Mesh3 myMesh; + + ///Digital set containing the digitization of the mesh + DigitalSet myDigitalSet; + }; } diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index aa13a0fb79..89a4109d08 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -34,8 +34,9 @@ // --------------------------------------------------------- template inline -DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh & aMesh, Domain& aDomain, size_t aResolution) - : myMesh(aMesh), myDigitalSet(aDomain) +DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias aMesh, + ConstAlias aDomain, size_t aResolution) + : myMesh(&aMesh), myDigitalSet(&aDomain) { std::pair bbox = myMesh.getBoundingBox(); @@ -51,9 +52,9 @@ DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh PointR3 EE(0, 0.5, 0); PointR3 FF(0, -0.5, 0); - myIntersectionTarget.push_back( arete(AA, BB) ); - myIntersectionTarget.push_back( arete(CC, DD) ); - myIntersectionTarget.push_back( arete(EE, FF) ); + myIntersectionTarget.push_back( Edge(AA, BB) ); + myIntersectionTarget.push_back( Edge(CC, DD) ); + myIntersectionTarget.push_back( Edge(EE, FF) ); } else if(separation == 26) { @@ -67,10 +68,10 @@ DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh PointR3 GG(0.5, -0.5, -0.5); PointR3 HH(-0.5, -0.5, -0.5); - myIntersectionTarget.push_back( arete(AA, GG) ); - myIntersectionTarget.push_back( arete(BB, HH) ); - myIntersectionTarget.push_back( arete(CC, EE) ); - myIntersectionTarget.push_back( arete(DD, FF) ); + myIntersectionTarget.push_back( Edge(AA, GG) ); + myIntersectionTarget.push_back( Edge(BB, HH) ); + myIntersectionTarget.push_back( Edge(CC, EE) ); + myIntersectionTarget.push_back( Edge(DD, FF) ); } } @@ -78,7 +79,8 @@ DGtal::MeshVoxelizer::MeshVoxelizer(const Mesh template inline double -DGtal::MeshVoxelizer::distance(const PointR3& M, const VectorR3& n, const PointZ3& voxel) +DGtal::MeshVoxelizer::distance(const PointR3& M, + const VectorR3& n, const PointZ3& voxel) { double distance = 0.; double d = n.dot(M); @@ -96,8 +98,8 @@ DGtal::MeshVoxelizer::distance(const PointR3& M, const // --------------------------------------------------------- template inline -int -DGtal::MeshVoxelizer::pointIsInside2DTriangle(PointR2& A, PointR2& B, PointR2& C, PointR2& v) +typename DGtal::MeshVoxelizer::TriangleOrientation +DGtal::MeshVoxelizer::pointIsInside2DTriangle(const PointR2& A, const PointR2& B, const PointR2& C, const PointR2& v) { // AC double val1 = (C[1] - A[1])*(v[0] - A[0]) + (C[0] - A[0])*(A[1] - v[1]); @@ -113,30 +115,26 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(PointR2& if( ( val1 == 0 && val2 == 0 ) || ( val1 == 0 && val3 == 0 ) || ( val2 == 0 && val3 == 0 ) ) - return 3; + return ONVERTEX; else if(val1 == 0 || val2 == 0 || val3 == 0) - return 2; + return ONEDGE; else if(val1 < 0 || val2 < 0 || val3 < 0) - return 0; + return OUTSIDE; else - return 1; + return INSIDE; } // --------------------------------------------------------- template inline bool -DGtal::MeshVoxelizer::pointIsInsideVoxel(PointR3& P, PointZ3& v) +DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, const PointZ3& v) { - P -= v; + PointR3 PP = P - v; for(int i(0); i < 3; i++) - if(! (-0.5 <= P[i] && P[i] <= 0.5) ) - { - P += v; + if(! (-0.5 <= PP[i] && PP[i] <= 0.5) ) return false; - } - - P += v; + return true; } @@ -155,7 +153,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co PointZ3 v; // foreach intersection target - for(arete& target : myIntersectionTarget) + for(Edge& target : myIntersectionTarget) { // 2D projection of A ; B ; C @@ -268,9 +266,9 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co d *= -1; // lambda function to return compute intersection point (p) - // intersection point between arete a and ABC triangle + // intersection point between Edge a and ABC triangle auto intersectionPoint = - [&](arete a, PointR3& p) + [&](Edge a, PointR3& p) { // point d'intersection VectorR3 w; // vecteur directeur @@ -344,7 +342,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co } // foreach intersection target - for(arete& target : myIntersectionTarget) + for(Edge& target : myIntersectionTarget) { // traverse all voxel of current face bounding box v = bbox.first; diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 4f0737fbd4..62b348a91e 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -27,7 +27,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include "../tests/DGtalCatch.h" +#include "DGtalCatch.h" #include "DGtal/shapes/MeshVoxelizer.h" #include "DGtal/kernel/sets/CDigitalSet.h" #include "DGtal/kernel/domains/HyperRectDomain.h" @@ -35,8 +35,6 @@ #include "DGtal/io/Display3D.h" /////////////////////////////////////////////////////////////////////////////// -#include - using namespace DGtal; using namespace Z3i; @@ -57,15 +55,15 @@ TEST_CASE("Basic voxelization test", "[voxelization]") SECTION("Test distance point/plan 3D") { // Triangle ABC in R3 - PointR3 A(38.6908 , 14.5441 , -0.71205); - PointR3 B(34.6171 , 13.5999 , 2.44455); - PointR3 C(37.4205 , 2.44239 , 6.31301); + const PointR3 A(38.6908 , 14.5441 , -0.71205); + const PointR3 B(34.6171 , 13.5999 , 2.44455); + const PointR3 C(37.4205 , 2.44239 , 6.31301); // Point v - PointZ3 v(35, 2, 5); + const PointZ3 v(35, 2, 5); - VectorR3 e1 = A - B; - VectorR3 e2 = A - C; + const VectorR3 e1 = A - B; + const VectorR3 e2 = A - C; double distance = MeshVoxelizer::distance(A, e1.crossProduct(e2), v); From 1d9e75a7ac11032c4785760791f6523c830a3daf Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 8 Oct 2016 14:58:56 +0200 Subject: [PATCH 07/37] Refactoring again --- src/DGtal/shapes/MeshVoxelizer.h | 28 ++++++++++++++++++++-------- src/DGtal/shapes/MeshVoxelizer.ih | 16 +++++----------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 7f9f25190c..99affa2db7 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -159,33 +159,40 @@ namespace DGtal const PointZ3& v) ; /** - * @brief voxelize ABC to the digitalSet + * Voxelize ABC to the digitalSet * @param A Point A * @param B Point B * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC - * @return true if ok */ - bool voxelizeTriangle(PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) + void voxelizeTriangle(const PointR3& A, + const PointR3& B, + const PointR3& C, + const VectorR3& n, + const std::pair& bbox) { // tag dispatching return voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); } /** - * @brief voxelizeTriangle specialization for 6-separated + * VoxelizeTriangle specialization for 6-separated * @param A Point A * @param B Point B * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC - * @return true if ok */ - bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); + void voxelizeTriangle(std::integral_constant, + const PointR3& A, + const PointR3& B, + const PointR3& C, + const VectorR3& n, + const std::pair& bbox); /** - * @brief voxelizeTriangle specialization for 26-separated + * VoxelizeTriangle specialization for 26-separated * @param A Point A * @param B Point B * @param C Point C @@ -193,7 +200,12 @@ namespace DGtal * @param bbox bounding box of ABC * @return true if ok */ - bool voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox); + void voxelizeTriangle(std::integral_constant, + const PointR3& A, + const PointR3& B, + const PointR3& C, + const VectorR3& n, + const std::pair& bbox); // ----------------------- Members ------------------------------ diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 89a4109d08..fde064aabe 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -141,8 +141,8 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& // --------------------------------------------------------- template inline -bool -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) +void +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -247,15 +247,13 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co myDigitalSet.insert(v); } } - - return true; } // --------------------------------------------------------- template inline -bool -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, PointR3& A, PointR3& B, PointR3& C, const VectorR3& n, std::pair& bbox) +void +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -278,8 +276,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co double lambda = -( n.dot(a.f) + d ); double den = n.dot(w); - if(den == 0) - return false; + ASSERT(den != 0); lambda /= den; @@ -287,7 +284,6 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co p[1] = a.f[1] + lambda*w[1]; p[2] = a.f[2] + lambda*w[2]; - return true; }; auto abs = [=](double a) { return a < 0 ? -a : a; }; @@ -402,8 +398,6 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co target.s -= v; } } - - return true; } // --------------------------------------------------------- From cc506545f5ce0b328b902b22633d54a61a070976 Mon Sep 17 00:00:00 2001 From: hadjiszs Date: Sun, 9 Oct 2016 11:21:07 +0200 Subject: [PATCH 08/37] minor rename and fix doxygen warn --- src/DGtal/shapes/MeshVoxelizer.h | 5 +- src/DGtal/shapes/MeshVoxelizer.ih | 127 +++++++++++++----------------- 2 files changed, 57 insertions(+), 75 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 99affa2db7..719ab50f3d 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -55,7 +55,7 @@ namespace DGtal @tparam TDigitalSet a DigitalSet (model of concepts::CDigitalSet) @tparam Separation strategy of the voxelization (6 or 26) */ - template + template class MeshVoxelizer { @@ -173,7 +173,7 @@ namespace DGtal const std::pair& bbox) { // tag dispatching - return voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); + return voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); } /** @@ -198,7 +198,6 @@ namespace DGtal * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC - * @return true if ok */ void voxelizeTriangle(std::integral_constant, const PointR3& A, diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index fde064aabe..e6e5fa3900 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -32,17 +32,17 @@ // ----------------------- Standard services -------------------------------- // --------------------------------------------------------- -template +template inline -DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias aMesh, - ConstAlias aDomain, size_t aResolution) +DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias aMesh, + ConstAlias aDomain, size_t aResolution) : myMesh(&aMesh), myDigitalSet(&aDomain) { std::pair bbox = myMesh.getBoundingBox(); myMesh.changeScale(aResolution / bbox.second[0]); - if(separation == 6) + if(Separation == 6) { // 26 connected - 6 separated PointR3 AA(0.5, 0, 0); @@ -56,7 +56,7 @@ DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias myIntersectionTarget.push_back( Edge(CC, DD) ); myIntersectionTarget.push_back( Edge(EE, FF) ); } - else if(separation == 26) + else if(Separation == 26) { // 6 connected - 26 separated PointR3 AA(-0.5, 0.5, 0.5); @@ -76,10 +76,10 @@ DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias } // --------------------------------------------------------- -template +template inline double -DGtal::MeshVoxelizer::distance(const PointR3& M, +DGtal::MeshVoxelizer::distance(const PointR3& M, const VectorR3& n, const PointZ3& voxel) { double distance = 0.; @@ -96,10 +96,10 @@ DGtal::MeshVoxelizer::distance(const PointR3& M, } // --------------------------------------------------------- -template +template inline -typename DGtal::MeshVoxelizer::TriangleOrientation -DGtal::MeshVoxelizer::pointIsInside2DTriangle(const PointR2& A, const PointR2& B, const PointR2& C, const PointR2& v) +typename DGtal::MeshVoxelizer::TriangleOrientation +DGtal::MeshVoxelizer::pointIsInside2DTriangle(const PointR2& A, const PointR2& B, const PointR2& C, const PointR2& v) { // AC double val1 = (C[1] - A[1])*(v[0] - A[0]) + (C[0] - A[0])*(A[1] - v[1]); @@ -125,10 +125,10 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi } // --------------------------------------------------------- -template +template inline bool -DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, const PointZ3& v) +DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, const PointZ3& v) { PointR3 PP = P - v; for(int i(0); i < 3; i++) @@ -139,10 +139,10 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& } // --------------------------------------------------------- -template +template inline void -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -157,7 +157,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co { // 2D projection of A ; B ; C - if(target.f[0] == 0.5) { + if(target.myFirst[0] == 0.5) { // ignore X composante AA[0] = A[1]; BB[0] = B[1]; @@ -167,7 +167,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co BB[1] = B[2]; CC[1] = C[2]; } - else if(target.f[1] == 0.5) + else if(target.myFirst[1] == 0.5) { // ignore Y composante AA[0] = A[0]; @@ -205,18 +205,18 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) { // check if points are on different side - target.f += v; - target.s += v; + target.myFirst += v; + target.mySecond += v; VectorR3 d1, d2; - d1 = A - target.f; - d2 = A - target.s; + d1 = A - target.myFirst; + d2 = A - target.mySecond; bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; - target.f -= v; - target.s -= v; + target.myFirst -= v; + target.mySecond -= v; if( ! isDifferentSide ) continue; @@ -224,12 +224,12 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co PointR2 pp; // 2d projection of current voxel - if(target.f[0] == 0.5) { + if(target.myFirst[0] == 0.5) { // ignore X composante pp[0] = v[1]; pp[1] = v[2]; } - else if(target.f[1] == 0.5) + else if(target.myFirst[1] == 0.5) { // ignore Y composante pp[0] = v[0]; @@ -250,10 +250,10 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co } // --------------------------------------------------------- -template +template inline void -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -263,29 +263,6 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co double d = n[0] * C[0] + n[1] * C[1] + n[2] * C[2]; d *= -1; - // lambda function to return compute intersection point (p) - // intersection point between Edge a and ABC triangle - auto intersectionPoint = - [&](Edge a, PointR3& p) - { - // point d'intersection - VectorR3 w; // vecteur directeur - - w = a.s - a.f; - - double lambda = -( n.dot(a.f) + d ); - double den = n.dot(w); - - ASSERT(den != 0); - - lambda /= den; - - p[0] = a.f[0] + lambda*w[0]; - p[1] = a.f[1] + lambda*w[1]; - p[2] = a.f[2] + lambda*w[2]; - - }; - auto abs = [=](double a) { return a < 0 ? -a : a; }; auto max = [=](double a, double b) { return abs(a) > abs(b) ? a : b; }; @@ -347,32 +324,38 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) { // check if points are on different side - target.f += v; - target.s += v; + target.myFirst += v; + target.mySecond += v; VectorR3 d1, d2; - d1 = A - target.f; - d2 = A - target.s; + d1 = A - target.myFirst; + d2 = A - target.mySecond; - bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; + VectorR3 w = target.mySecond - target.myFirst; + double den = n.dot(w); - if( ! isDifferentSide ) - { - target.f -= v; - target.s -= v; - continue; - } + bool isSameSide = d1.dot(n) * d2.dot(n) > 0 + && den != 0; - // get intersection point between target intersection and ABC - PointR3 p; // intersection point to compute - if( ! intersectionPoint(target, p)) // false if target is on ABC plane + // if target is on the same side -> skip current iteration + if( isSameSide ) { - target.f -= v; - target.s -= v; + target.myFirst -= v; + target.mySecond -= v; continue; } + // compute intersection point (p) between target intersection and ABC + PointR3 p; + double lambda = -( n.dot(target.myFirst) + d ); + + lambda /= den; + + p[0] = target.myFirst[0] + lambda*w[0]; + p[1] = target.myFirst[1] + lambda*w[1]; + p[2] = target.myFirst[2] + lambda*w[2]; + // 2d projection of intersection point if(maxv == n[0]) { @@ -394,17 +377,17 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) myDigitalSet.insert(v); - target.f -= v; - target.s -= v; + target.myFirst -= v; + target.mySecond -= v; } } } // --------------------------------------------------------- -template +template inline void -DGtal::MeshVoxelizer::voxelize() +DGtal::MeshVoxelizer::voxelize() { MeshFace currentFace; std::pair bbox; @@ -412,7 +395,7 @@ DGtal::MeshVoxelizer::voxelize() VectorR3 n, e1, e2; PointR3 A, B, C; - for(int i = 0; i < myMesh.nbFaces(); i++) + for(unsigned int i = 0; i < myMesh.nbFaces(); i++) { currentFace = myMesh.getFace(i); @@ -461,10 +444,10 @@ DGtal::MeshVoxelizer::voxelize() } // --------------------------------------------------------- -template +template inline const TDigitalSet& -DGtal::MeshVoxelizer::digitalSet() const +DGtal::MeshVoxelizer::digitalSet() const { return this->myDigitalSet; } From db41176050b19e75b0c296a297761cc1601f2690 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Wed, 12 Oct 2016 18:39:53 +0200 Subject: [PATCH 09/37] minor edits --- src/DGtal/shapes/MeshVoxelizer.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 719ab50f3d..317312a8a6 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -33,6 +33,7 @@ ////////////////////////////////////////////////////////////////////////////// // Inclusions #include "DGtal/helpers/StdDefs.h" +#include "DGtal/base/ConstAlias.h" #include "DGtal/shapes/Mesh.h" #include "DGtal/kernel/SpaceND.h" #include "DGtal/kernel/sets/CDigitalSet.h" @@ -84,6 +85,9 @@ namespace DGtal private: + + ///Internal Edge structure + /// @todo replace structure element to integer only vertices for exact computations. struct Edge { PointR3 myFirst, mySecond; @@ -101,16 +105,16 @@ namespace DGtal */ MeshVoxelizer(ConstAlias aMesh, ConstAlias aDomain, - size_t aResolution); + const size_t aResolution); // ----------------------- Standard services ------------------------------ /** - * @brief voxelize the mesh into the digital set + * Voxelize the mesh into the digital set */ void voxelize(); /** - * @brief getter for digitalSet + * Getter for digitalSet * @return current digital set */ const TDigitalSet& digitalSet() const; @@ -149,7 +153,7 @@ namespace DGtal const PointR2& p) ; /** - * @brief predicat to know if a real point @a P is inside voxel @a v + * Predicate to decide if a real point @a P is inside voxel @a v * @param P point P * @param v voxel v * @return true if P is inside v From 9326508077fd89275e7f1bad0323ee131301b3da Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Wed, 19 Oct 2016 09:25:26 +0200 Subject: [PATCH 10/37] Changing interface --- src/DGtal/shapes/MeshVoxelizer.h | 34 +++--- src/DGtal/shapes/MeshVoxelizer.ih | 145 ++++++++++++++++---------- tests/io/readers/testMeshReader.cpp | 6 -- tests/shapes/testMeshVoxelization.cpp | 78 +++++++------- 4 files changed, 149 insertions(+), 114 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 317312a8a6..6cbc9ba965 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -79,9 +79,8 @@ namespace DGtal using VectorR3 = typename Space::RealPoint; using PointR2 = typename Space2D::RealPoint; using PointZ3 = typename Space::Point; - using Mesh3 = Mesh; using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; - /****** Associated types *********************/ + /*********************************************/ private: @@ -99,19 +98,31 @@ namespace DGtal /** * @brief Constructor of the voxelizer - * @param aMesh mesh to voxelize * @param aDomain digital space of the voxelization - * @param aResolution resolution of the voxelization grid */ - MeshVoxelizer(ConstAlias aMesh, - ConstAlias aDomain, - const size_t aResolution); + MeshVoxelizer(ConstAlias aDomain); // ----------------------- Standard services ------------------------------ /** - * Voxelize the mesh into the digital set + * Voxelize the mesh into the digital set. + * + * @param [in] aMesh the mesh to voxelize + * @param [in] scaleFactor the scale factor to apply to the mesh (default=1.0) */ - void voxelize(); + void voxelize(const Mesh &aMesh, + const double scaleFactor = 1.0); + + /** + * Voxelize a unique triangle (a,b,c) into the digital set. + * + * @param [in] a the first point of the triangle + * @param [in] b the second point of the triangle + * @param [in] c the third point of the triangle + * @param [in] scaleFactor the scale factor to apply to the triangle (default=1.0) + * + */ + void voxelize(const PointR3 &a, const PointR3 &b, const PointR3 &c, + const double scaleFactor = 1.0); /** * Getter for digitalSet @@ -126,7 +137,7 @@ namespace DGtal enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE,ONVERTEX}; /** - * Compute distance between @a p and the Euclidean plan + * Compute (unsigned) distance between @a p and the Euclidean plan * defined by normal vector @a n and point @a M * @param M point * @param n normal @@ -218,9 +229,6 @@ namespace DGtal ///Intersection target std::vector myIntersectionTarget; - ///Input mesh - Mesh3 myMesh; - ///Digital set containing the digitization of the mesh DigitalSet myDigitalSet; diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index e6e5fa3900..111fc04da9 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -34,14 +34,10 @@ // --------------------------------------------------------- template inline -DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias aMesh, - ConstAlias aDomain, size_t aResolution) - : myMesh(&aMesh), myDigitalSet(&aDomain) +DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias aDomain) +: myDigitalSet(&aDomain) { - std::pair bbox = myMesh.getBoundingBox(); - - myMesh.changeScale(aResolution / bbox.second[0]); - + if(Separation == 6) { // 26 connected - 6 separated @@ -80,8 +76,10 @@ template inline double DGtal::MeshVoxelizer::distance(const PointR3& M, - const VectorR3& n, const PointZ3& voxel) + const VectorR3& n, + const PointZ3& voxel) { + ASSERT( n.norm()!=0 ); double distance = 0.; double d = n.dot(M); @@ -99,7 +97,10 @@ DGtal::MeshVoxelizer::distance(const PointR3& M, template inline typename DGtal::MeshVoxelizer::TriangleOrientation -DGtal::MeshVoxelizer::pointIsInside2DTriangle(const PointR2& A, const PointR2& B, const PointR2& C, const PointR2& v) +DGtal::MeshVoxelizer::pointIsInside2DTriangle(const PointR2& A, + const PointR2& B, + const PointR2& C, + const PointR2& v) { // AC double val1 = (C[1] - A[1])*(v[0] - A[0]) + (C[0] - A[0])*(A[1] - v[1]); @@ -128,7 +129,8 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi template inline bool -DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, const PointZ3& v) +DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, + const PointZ3& v) { PointR3 PP = P - v; for(int i(0); i < 3; i++) @@ -142,7 +144,12 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& template inline void -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, + const PointR3& A, + const PointR3& B, + const PointR3& C, + const VectorR3& n, + const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -253,7 +260,12 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co template inline void -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) +DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, + const PointR3& A, + const PointR3& B, + const PointR3& C, + const VectorR3& n, + const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -387,59 +399,80 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co template inline void -DGtal::MeshVoxelizer::voxelize() +DGtal::MeshVoxelizer::voxelize(const PointR3 &a, + const PointR3 &b, + const PointR3 &c, + const double scaleFactor) { - MeshFace currentFace; std::pair bbox; - VectorR3 n, e1, e2; PointR3 A, B, C; - for(unsigned int i = 0; i < myMesh.nbFaces(); i++) + A = a*scaleFactor; + B = b*scaleFactor; + C = c*scaleFactor; + + e1 = B - A; + e2 = C - A; + n = e1.crossProduct(e2).getNormalized(); + + + ///@FIXME remove this mesh construction to get the bbox + Mesh currentMesh; + currentMesh.addVertex(A); + currentMesh.addVertex(B); + currentMesh.addVertex(C); + currentMesh.addTriangularFace(0, 1, 2); + + bbox = currentMesh.getBoundingBox(); + + // floor and ceil to have an axis aligned bounding box in Z^3 + for(int j(0); j < 3; j++) { - currentFace = myMesh.getFace(i); - - A = myMesh.getVertex(currentFace[0]); - B = myMesh.getVertex(currentFace[1]); - C = myMesh.getVertex(currentFace[2]); - - e1 = B - A; - e2 = C - A; - n = e1.crossProduct(e2).getNormalized(); - - Mesh currentMesh; - currentMesh.addVertex(A); - currentMesh.addVertex(B); - currentMesh.addVertex(C); - currentMesh.addTriangularFace(0, 1, 2); - - bbox = currentMesh.getBoundingBox(); - - // floor and ceil to have an axis aligned bounding box in Z^3 - for(int j(0); j < 3; j++) + if(bbox.first[j] < bbox.second[j]) + { + bbox.first[j] = floor(bbox.first[j]); + bbox.second[j] = ceil(bbox.second[j]); + } + else + { + bbox.second[j] = floor(bbox.second[j]); + bbox.first[j] = ceil(bbox.first[j]); + } + + if(bbox.first[j] > bbox.second[j]) { - if(bbox.first[j] < bbox.second[j]) - { - bbox.first[j] = floor(bbox.first[j]); - bbox.second[j] = ceil(bbox.second[j]); - } - else - { - bbox.second[j] = floor(bbox.second[j]); - bbox.first[j] = ceil(bbox.first[j]); - } - - if(bbox.first[j] > bbox.second[j]) - { - // swap - double tmp = bbox.first[j]; - bbox.first[j] = bbox.second[j]; - bbox.second[j] = tmp; - } + // swap + double tmp = bbox.first[j]; + bbox.first[j] = bbox.second[j]; + bbox.second[j] = tmp; } + } + + // voxelize current triangle to myDigitalSet + voxelizeTriangle(A, B, C, n, bbox); +} + +// --------------------------------------------------------- +template +inline +void +DGtal::MeshVoxelizer::voxelize(const Mesh &aMesh, + const double scaleFactor) +{ + MeshFace currentFace; + std::pair bbox; - // voxelize current triangle to myDigitalSet - voxelizeTriangle(A, B, C, n, bbox); + VectorR3 n, e1, e2; + PointR3 A, B, C; + + for(unsigned int i = 0; i < aMesh.nbFaces(); i++) + { + currentFace = aMesh.getFace(i); + voxelize( aMesh.getVertex(currentFace[0]), + aMesh.getVertex(currentFace[1]), + aMesh.getVertex(currentFace[2]), + scaleFactor); } } diff --git a/tests/io/readers/testMeshReader.cpp b/tests/io/readers/testMeshReader.cpp index 7b387dd18b..3d89934271 100644 --- a/tests/io/readers/testMeshReader.cpp +++ b/tests/io/readers/testMeshReader.cpp @@ -122,12 +122,6 @@ bool testMeshReader() trace.info() << "(" << nbok << "/" << nb << ") " << "true == true" << std::endl; trace.endBlock(); - - - - - - return nbok == nb; diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 62b348a91e..c14b88ef68 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -48,9 +48,9 @@ TEST_CASE("Basic voxelization test", "[voxelization]") using VectorR3 = PointVector<3, double>; using PointR2 = PointVector<2, double>; using PointZ3 = PointVector<3, int>; - + using MeshVoxelizer = MeshVoxelizer, SEP>; - + // --------------------------------------------------------- SECTION("Test distance point/plan 3D") { @@ -58,19 +58,19 @@ TEST_CASE("Basic voxelization test", "[voxelization]") const PointR3 A(38.6908 , 14.5441 , -0.71205); const PointR3 B(34.6171 , 13.5999 , 2.44455); const PointR3 C(37.4205 , 2.44239 , 6.31301); - + // Point v const PointZ3 v(35, 2, 5); - + const VectorR3 e1 = A - B; const VectorR3 e2 = A - C; - + double distance = MeshVoxelizer::distance(A, e1.crossProduct(e2), v); - + REQUIRE( 2.40 < distance ); REQUIRE( distance < 2.41 ); } - + // --------------------------------------------------------- SECTION("Test if 2D point is inside triangle 2D") { @@ -78,73 +78,73 @@ TEST_CASE("Basic voxelization test", "[voxelization]") PointR2 A(1.0, 1.0); PointR2 B(2.0, 3.0); PointR2 C(3.0, 1.0); - + typedef InHalfPlaneBySimple3x3Matrix OrientationFunctor; OrientationFunctor orientationFunctor; - + //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - + if(! pointPredicate(A, B, C)) { PointR2 tmp = A; A = C; C = tmp; } - + // Test if point v is inside triangle ABC // 0 : outside // 1 : inside // 2 : on edge // 3 : on vertex PointR2 v; - + v[0] = 3.0; v[1] = 3.0; REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 0); // outside - + v[0] = 2.0; v[1] = 2.0; REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 1); // inside - + v[0] = 2; v[1] = 1; REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 2); // on edge - + v[0] = 3; v[1] = 1; REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 3); // on vertex - + // another triangle A[0] = -0.891282; A[1] = 9.91201; B[0] = -1.40823; B[1] = 9.91261; C[0] = -1.36963; C[1] = 9.37414; - + v[0] = -1.16961; v[1] = 9.83039; REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 1); // inside } - + // --------------------------------------------------------- -// SECTION("Test if 3D point is inside voxel") -// { -// // Triangle ABC in R2 -// PointR3 P(-0.89, 9.91, 0.86); -// PointZ3 v(-1, 10, 1); - -// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside - -// P[0] = -1.41; -// P[1] = 9.91; -// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside - -// P[0] = -1.37; -// P[1] = 9.37; -// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside - -// P[0] = -1.17; -// P[1] = 9.83; -// P[2] = 0; -// REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside -// } + SECTION("Test if 3D point is inside voxel") + { + // Triangle ABC in R2 + PointR3 P(-0.89, 9.91, 0.86); + PointZ3 v(-1, 10, 1); + + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside + + P[0] = -1.41; + P[1] = 9.91; + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside + + P[0] = -1.37; + P[1] = 9.37; + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside + + P[0] = -1.17; + P[1] = 9.83; + P[2] = 0; + REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside + } } From 5c46393db9f67dafeaa709938a2f5c8e21820a41 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Wed, 19 Oct 2016 09:35:31 +0200 Subject: [PATCH 11/37] fixing BBOX computation --- src/DGtal/shapes/MeshVoxelizer.ih | 42 ++++++++----------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 111fc04da9..afaaf70c41 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -416,38 +416,18 @@ DGtal::MeshVoxelizer::voxelize(const PointR3 &a, e2 = C - A; n = e1.crossProduct(e2).getNormalized(); + //Boundingbox + bbox.first = A; + bbox.second = A; + if (B < bbox.first ) bbox.first = B; + if (C < bbox.first ) bbox.first = C; + if (B > bbox.second) bbox.second = B; + if (C > bbox.second) bbox.second = C; + ASSERT( bbox.lower <= bbox.upper); - ///@FIXME remove this mesh construction to get the bbox - Mesh currentMesh; - currentMesh.addVertex(A); - currentMesh.addVertex(B); - currentMesh.addVertex(C); - currentMesh.addTriangularFace(0, 1, 2); - - bbox = currentMesh.getBoundingBox(); - - // floor and ceil to have an axis aligned bounding box in Z^3 - for(int j(0); j < 3; j++) - { - if(bbox.first[j] < bbox.second[j]) - { - bbox.first[j] = floor(bbox.first[j]); - bbox.second[j] = ceil(bbox.second[j]); - } - else - { - bbox.second[j] = floor(bbox.second[j]); - bbox.first[j] = ceil(bbox.first[j]); - } - - if(bbox.first[j] > bbox.second[j]) - { - // swap - double tmp = bbox.first[j]; - bbox.first[j] = bbox.second[j]; - bbox.second[j] = tmp; - } - } + //Rounding the bbox + std::transform( bbox.lower.begin(), bbox.lower.end(), [](typename PointR3::Component c) { return std::floor(c);}); + std::transform( bbox.upper.begin(), bbox.upper.end(), [](typename PointR3::Component c) { return std::ceil(c);}); // voxelize current triangle to myDigitalSet voxelizeTriangle(A, B, C, n, bbox); From d0565f1650f6769a97c56736f208f9cb8e8152d6 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Mon, 7 Nov 2016 11:31:17 +0100 Subject: [PATCH 12/37] Lambda exp. fix --- src/DGtal/shapes/MeshVoxelizer.ih | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index afaaf70c41..faa4c4f703 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -426,8 +426,8 @@ DGtal::MeshVoxelizer::voxelize(const PointR3 &a, ASSERT( bbox.lower <= bbox.upper); //Rounding the bbox - std::transform( bbox.lower.begin(), bbox.lower.end(), [](typename PointR3::Component c) { return std::floor(c);}); - std::transform( bbox.upper.begin(), bbox.upper.end(), [](typename PointR3::Component c) { return std::ceil(c);}); + std::transform( bbox.lower.begin(), bbox.lower.end(), [](typename PointR3::Component cc) { return std::floor(cc);}); + std::transform( bbox.upper.begin(), bbox.upper.end(), [](typename PointR3::Component cc) { return std::ceil(cc);}); // voxelize current triangle to myDigitalSet voxelizeTriangle(A, B, C, n, bbox); From 67e0fe5e274ad59e080b95723a7a80fa9728a8f9 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 12 Nov 2016 13:44:24 +0100 Subject: [PATCH 13/37] class doc --- src/DGtal/doc/global.bib | 39 ++++++++++++++++++++++++++++++- src/DGtal/doc/images/26-sep.png | Bin 0 -> 12424 bytes src/DGtal/doc/images/6-sep.png | Bin 0 -> 9337 bytes src/DGtal/shapes/MeshVoxelizer.h | 26 +++++++++++++++++---- 4 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 src/DGtal/doc/images/26-sep.png create mode 100644 src/DGtal/doc/images/6-sep.png diff --git a/src/DGtal/doc/global.bib b/src/DGtal/doc/global.bib index 9384913b25..591b480a28 100644 --- a/src/DGtal/doc/global.bib +++ b/src/DGtal/doc/global.bib @@ -1,9 +1,46 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Misc + +@book{KletteRosenfeld_book, + author = {Reinhard Klette and + Azriel Rosenfeld}, + title = {Digital geometry - geometric methods for digital picture analysis}, + publisher = {Morgan Kaufmann}, + year = {2004}, + isbn = {978-1-55860-861-0}, + timestamp = {Thu, 14 Apr 2011 14:43:22 +0200}, + biburl = {http://dblp.uni-trier.de/rec/bib/books/daglib/0013534}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Images +%% Shapes Voxelization + +@article{Laine13, + added-at = {2013-08-18T00:00:00.000+0200}, + author = {Laine, Samuli}, + biburl = {http://www.bibsonomy.org/bibtex/270e10190a2b8fc35721e7e3e58be920c/dblp}, + ee = {http://dx.doi.org/10.1111/cgf.12153}, + interhash = {9327ac1bf79fa410ea45865566098671}, + intrahash = {70e10190a2b8fc35721e7e3e58be920c}, + journal = {Comput. Graph. Forum}, + keywords = {dblp}, + number = 4, + pages = {77-86}, + timestamp = {2013-08-20T11:34:58.000+0200}, + title = {A Topological Approach to Voxelization.}, + url = {http://dblp.uni-trier.de/db/journals/cgf/cgf32.html#Laine13}, + volume = 32, + year = 2013 +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Images + @Misc{belongieRot, author = {Belongie, Serge}, diff --git a/src/DGtal/doc/images/26-sep.png b/src/DGtal/doc/images/26-sep.png new file mode 100644 index 0000000000000000000000000000000000000000..5008dd5029c4568dbb47a5258c4bb61cabd7cc53 GIT binary patch literal 12424 zcmXY1by!s0*B!b$1*8Q;kXE{-1w^E~LmKIBMMOkE8bzd}ySqU}q#IPar2DsdziKt=iYPnS$plh)=PC&c|2??Yy<*G#Sfj}U^Tf|#TWO%hfV(f-LC~neb978g-(l9F z$f2sLy82CK(b$tJz2j;PPF3e}R5aB0O$;n1n3Hua5=)VZpLj!Z+ zW##5{%}x*!O8twCZnH9ksF%8gugBG!+X0S_vDa_uF<;8QOHWUai*wnTYZ@F>iBn)E z#1w@P6APFASXgMEtC~JIbQ8%cEb)E(e0)q!f>=Rs2+~zq;}rV)`(M3!1;12KP$0_~ zr^$YJaDa=Ajg61*;p}X~uR|y5#s9+YUm_<;Xh_CsHE;6Q+S=NztgO<~(!9L9^740b z*}D4r`g(eLy1MXYdUDdG&ftEMz4=XaSn&2)o3>`f)hwKT)X3kSZ^?w)Jl>v7NueT- zwsde9TG@xC+5RuC43M(lDc!TT%Q(IwCnp#GFYvBaImor2J$t6D9Sygq;Jz~_c60rK z1f?9g?8QB=;{W2?w{NPds#;oFzxf!EOcv-dKNS?Lj}_^=xVSuYnyaj-IX*rnz{1+w z-7PIETXYsoOiUbl%CcTx-#;})eqoOu%0P&TiY$e))%(XaSw+j(m@8=@Mr`$-{^bn`26{1Upy-g4o*i$hx{9w zy62O;_mifl9%>C(JmW-`%;x6ftAIr-EwwpOjHMOJ@R)-Id-?KZUteE?$5y@X@%_-Y z)ww2L8=Jg2(}udbC;7j6%#x%T==j%=GQu?SzZMmdMR$>rkxfocCMPGuD?F~Lsp;kU z@eVxcbUa^Oowtsw8yg#j1~-wGmPYem z2)|gju(h={HEpx1fCN#Dyxc(!(kdi-DH|RhURPHKuNwK4#l@<*Bi>$KCnqPU=;&7? zz14V#x{n|4C2>yk1d3P5G#2V`jQMW-{Q2|WKi4uHmF(dUDqrgAghJa&%gcWbaEfP^ zJe+hFPJb_1V$y3-4!{2E*RS8dE%G((AW7gn{Qdj)_kXduITMiVrK~KS!$^wlj){2g za1)`Sp@;MRe_Z1f4t5tiQf`7OPT_rKX5jgeL%t?^f)ZAUvxmpgzkmOBcb#F+ot?e( zeBuz?O>CT;O#zoaus22eHL$@73JUJ-m9eq02?+^CD2=FwX0}*WDe7!L@}Kt16Ou>g zXv^aH<*Bp1zs4!k@q_d9_3PJY3NCUovX@TfXe8eS~2+R=m z!cn^_J@y1EE359Fo=kv%#>PhN5+j*Ne8W1|oTeuKNI!0Sd%h|v>~Nkre)fd3$_@`t zPe@1GldWv|SXj1q@7|f2n?H1z(lju5Zf{RbO8N`#_glJ%uebN!sULc%RQ9k9KUIQ~ zz!MSEDMVgL$#}!W(vn$IITt(olCxlNaPY=h5e^oXDL3Wqb1Y6y(@KOFk$chk(bja0 z(>(g=`=q2KNSf4CY7&yCT3YBq-&aJ0h1ZkTy+kvLiZ~-X%Bmr@J1uw>5S7X{{3!qn z7zDHy78bu(R_v?vV&u#%E&r^q3;P_{NJvNoOPYvQ#3hjNQ^ljUO8kk>{4cKbtMm-v zs6vA2>9G^Pgp4C0CO+^+!@%glB4LT46$?QPV#uzpejp+u!oaY2cDQkPc!(S<$wrD# z$ql!(?SFjE?#uBGL1`tJ{9O=st)SJ)>> z`NKe0K<&D|_UOaso|L)ztapS-{%*?e74YAY@x6gNu z(*#ZZ_ZU^vr4^#AR#b1Nt1=<|=oj=kIGCwZw&1N(x8d_~Kj@8Pf-?zuUQ|@{m>}+FRwQ6IslG%K)@B8UdY`NqbBjogQvc}E1k0a*Ozpw?iUw)qM}(^Bvdio zy~&e#Na|0X{3z1DK071Quzlg+uvTW?gC(6iYNyMQn46nhQc_Y_SSU#k5X4O;Ix)$> zMZi+CP&{nYKQI8dzqGu(vA#};8vzvqj(WpR^F31Rp~1mUv*%M`sSkOqa3csJV}{H} z3x;h}Y#vRnB3jML+S^Y?a@8g(A{CV0`Jb4^#KrC` zhzDGFh0tS$J)K6%r@3a`xTQKV`{c|hm1GFlIs+#< zR+ZK)DV`0WHo?PwQ%HcTX=o7%`e$v(y)Uht15q!H|T4DJ|U&n?x(_2Sf^r zF%uIL>?TB}gaw^g`}VAYs+>E2_ZxpH%R;>(mRqfF5eUhg_Hhav@`WpZzdf|2<-I;u z8=I=#ucg)1jyg@_c2yernk?~m6O>-celmVC*Af^A&zY`DKtQlFUUGwLsi~=^_Cbdv z1r>a*ZbU@GNXPN?m{1*Hi_%3rt*otmeSHb2A8;@-ws&`TkBwCe1>~0#(*b^t3mbCQvfIW*4G zEa>d){P5ue)BvcAW50eu)y2Op%+J9w2*C91+nYX%b>-Xo+QzbkVNjX*T9t9qRdbCi zl~h&d0PausSJKncx?|~D{LhafM1F{th27Jpr7pdr{3DH85;@C|a$#-t7glEA8(Oj5 z4uV>DEE3lC9*m+d2I!%CmEmk`Y_(7`_4KAnTCVhf`B?A*=YcrBLyk z#tlhQDa*q&DAye=f8PK zr?4mC(!)E{l~q+hP!Eod$T3lA@K?g6+xxJ*y|-TURO&fcT3P}Pm6i@sV1B2-j2xV$ zoOJ)`7Zof_OdB+pHTS6Kj<(PR*S*VQuEdlWM3z>eB09GY`Kk~D;lgsP%Rb8++DCq( z#;*^Y2K)9Zcu zkU>a<74(27NGa#14gXNz;18RqD9IW}K`+9RriePXy>B90<>!fQCj6S$>#Ra>e&$0H zGcp2zmcj{!L!!eN=jG#rPbc1}mMIQLTR2@c6LV>gK3*J?&O!;QtW&vU13TJB4HOY2hgGOJ-Kq72w%I zLPEE0-J-$Ig)Cu`e}jvU|KL~g!w^YR27Ed>X=JN!vYMn*8rsjEKIOCimiArZx)DAI z_`i;FL&YBFXjJt}n2d3_@4UG@-&@P2l%SP~$jW99<>26uh8zqHZ8_f-adX>0-NzYS zKNlBIFe?+};n{;_!bK15GUK7d1wI)Rga9%LbjW|}F)$}3rT$U4`+N895WkF!j4UbH z3Bw{mMnS=A*n6DQe!4H{j=8;ka%S)4OKpYCBqo^}(q~bPk3i&UhDEe@pxnJXQHrEp z4B0I54*OuAKSpl<`1otyuHObHAu2qJg zODig}HS)K#{~GE?PgY3fEJe~S{Ix0_5@xXui788phF*pmDT_c~-)|pJ{0uXid@+(v zT^&(WjUv}Vi^#}eyK6h8F=E4y9@=KXi-zo3C;Ga_4Gx(FH{}-pS&l|$HzPZCK)^&9 z%Jz1|Oo1G45D}7ONz~OoU0As32#eo8tnOHOO-*~(X$JyU)?dFQKeoE@`*}Qg^~%I) z-l(EkHL_8ZMlk67xXef3Dye~&d*Lw-qPrL2u!ndYkxD)GwJp_Ysh{ktPVnYtk~;$_ zb`FEKxg);)2E}tcWi|O10>i2zVpzzq8HFX1IcB2;9=9$L2Lx~4OWxi@O5x3pded#4 zDaF>Q?_@eJo;S*MUVq}J`AlrTM(GYO@4{-HIWJx;A{@C;dwHXT$Cg<91c9z6YQy;3 zRVYE}&K-6AJ8w;IWg(#)9et3XGw(K;5u_1&b-1zkJM3tialG{BKR<+~)~8R%&CPiw z5BXLD3SZbNyA7{a!cq2Og9L4=F}l3Q8T_ zwn1DCTauRkZxIIg5)%BH>NSk+!ldM8!;CXc(PF-Y#6OW#~L9?s8frBK=<4D z&?es}x-Y%=3CTv|485R=#c=$<$zO<9YqeOqJSHL;`GWoFFM^(rWOOuk;1HN!v{Dcz zvWtsOIjWy{^9gb&hNm-uUHm>muAY#E_@%I`7I$ca2>Jca-Ng_5SPTp&r`9N%gkm@d z9v({mRhM@e^ih9(5k=%J7a>LZWma(TrT9W36?ubfm9ug~Rpr$Qw`W5u_`ayL(FO8v z8K=@c_JL1Ze_yH^*E`a(6L59qcA&aCL0S1`x~iT{c}YKxWQ2ruK!6wO)ZF%GV4{vh zQIYZ?J`xgVVTKKNn+nUsb5Wmznhsu9x4m74v*SRs6ysh*EG+{IIu8#fR$C7p^>`ii zXRLrx1R_XIMw3+7Q%(g}{F(*@ePOF+uLX~jiyNU9YsG%(B9*6f$Smc(+`W9EhN72| ziAMZ#cU1d_-QIS?>Tt)ZYC6N6AB9Z8RN<-ARzvL%=Yb^-X2ghi>Q!j{$R{Di=Fdu{ zcU}hi^_(SsVd)X>ZERLn4&yhw&XlG@Inp1wInm)^^yJV0YHEpOBF$z5(*%c?P~)lu z-YfBEHPlj)kzo=z9T?j@#^dlizHRlryDb#90XaA>Lr|_5l^PcjR+f=3oxNC8<9s1_ zwB7akmV%MHRK-r9pstPcVOHM)y80D;IF*;|Z+TVy06=V%=*h8hgG=ziC6rZr9Ig8&Yv6Di=UEwW_GN7c)J#~jt7Y@{crrhUY)lCcuq z=R4WWS6#G{^A|PsRJ^ys+FSCyi?ozKs$(MW?ZMZtu1>Ce57tna#L?pU+alSh7i{{etJdYD?;{7g>oz}6j zun3YmLMuY`l;kJ*n(-zt;&cz4K9v)9bz$NMT*$mcjV2H7l2(8Ft-oJWUcxp6?{2V49Q<^j zY^M0hdZFG+W{(T6rI|WbEXK>RlM3s_9Rhp|)Zj{fRJ68HGW)UCaSC_gQP~o`+!5$w zG>|W+0T2g=Mnlp6JdztLHXIQ4CRR>tojff=74{+BX~rp|6!C<$b6HiFIX7x|FVX&} zuFgjK4oLysE5rikl-si|e{pLKICO$gFtSEI)>G9ub!xEw*0;=1-D zun;497&cb!JNRm9G~%x%u4Qvob?QkC8y=L!b-CYaCB4D))lrimxwzz)k5kp3g+~(X zjp_G(ce)4(B=1O0L}k3yYVzMF(8ZXDp&#Cy3}ui}*N?UxAtaCRoNN2tM=3&nbfhLm z9RKqNGs;_*6Eu^twJ7DJ(&x9fXWG6zUU2@AgY$2n$Aja6gS09>Kw{6E7p-doTS!4# zbUz;RN}3bw+9}ZIzn>@%@9k|3!=mIvSGw~mn#YdxXa@r!A@SAV<%G`WbYvLnV1~n# zE`5#$prI+k#LDUjn;RiD!OYV9%*e6Dj*LYOJvF9LR7a1I1J~O-*0{sUe30_1J_ZGa zN=jHX1r~OfCPn-D#)cx|Eej=rpNf<;%hQQHv*hfba$L#IvPRU5!Ng?SJe|f}JG+d= zxnUx=zY9HdPYh$0%zllwk*1dd1_@!wCdyEYD=C$_Fj)<@z9J()LB>a(x>khYoeW!8 zm4Jca6TPVu0w%`YDSKHn#y=9*P(=x&6-h3f4iPMNAuoiPS(e6)p^f)H&l+J6IqxG< zB*yAo>Jg(C6;;QX|h+~F7R-i|qO0A|YW1~Vr&XzM>*Gv-(Zt|Vpv*`(}KxG_9 znxay=bKju#0}mxHYFU}H^U3sTV0|eo1Cps}?BQSqV%MGOym&Rrd$^?~t{#~e=V0fZJ6Nb^v1u?m;aIh2`Nq+kSc+cI5!y)M3C1*ktuP^lesKWMz93uqlTHec7|FnV2Vm??DU z;fIA#44&r`@tOL1Aw%5~YEoXRZZoRsP&Ktm&=X!I^AS;4yW68#Q2jE&ZMEQqd9zlb zKzo1bx*dlRZa8wwHNJcgg)t5y9Y2!bdW(=58|`Mk_B^>NM}1*A^jkU+aftUm@bpAZ zCMb7o!7$~M%eMWc)`m&T{Vsm*Y-9JJ^Jt5U_7acfWJ=&*b+0Cdixm60!|-n*L9Q7> znH)x5Vv734$RTmJDQ%T zz&Jk!9v_!@q_O`QRqCxSJqn+sJW^Hxw!~Fbw)|cj#>vJ00|9o9yGZGC`~ibQQrQAe zW`87B1Iuo2-yKmaEo&=yHc^eowbg1_q*eIebh`nXd`6IOsorqNcK=*i`8> zkT-ako_mCawGz7BicvjYok}=%CpgHx6{O^Vi;&?Ac$&XDj1mwK71PCW!+<| z7UVHddHNh|Snm8VZ_!r|^4@>@KCD(yR+jQ+^PcDz{&j8g7FG0b`g%&-8x%cHP7bJi zeze$*hD-Z81i5m4EtO@Qd_3>gf~69D0(RhKxc@oe_p`#*#mYlGOI}?VR=T+CCEUZJ z!aI(Y!2i1<;;}uGJY>}X^O%N)4Gg7t;ykhbOq$y+3y7nwju14c^5#A5z*Cg1*c1AH zdvv@d#`N}{Xre|#`yfpA1e)JLt^}o6I*E+*bZFo?IXUNH00sIJTo81U+?*U3=ukg& zg#Mm9nv9U}M}wyXsAeftgq`t=c_V96C@Aj2b3QmkL~u>}F?wMtCi!=`CI`4biV^gf z26Z8HfiN_%`W9B0;p8+Q1o z^78V$JO#!$P+B%;>iF*6E0B*h3Pl$Z7MZSzgzPmk(y7E$RD@2UC)RvRPbNcD5xI32 z_eTJ+LT<-g6a3%UFSu8s(x;aQH7+^1&VB9Y($W%F%Y`fGC1Yb_pyy^9{TLj4J!FM* zGksMc43o=#!baNQX&+1bn1n@r{D0Mlm;Q~c5{LfX8YT7O%2}ru-L+ZR~O>`XZ+WDPuWOe29-N9 zJ4-|>?zPxXny#9bl2UIw@?~OT;@2EGU7*QcrjrJ< zy6Y={c=O={TYMj=iS6y}=y+5XFsmeFcXn-G>Z)}`gHEZROeOQp+qYUi3_vB6=$9>n z4&41Nc+QS{Fz8y_K3Zm9_b1$=e(>CcH+dNbixL5i4GkixLl2@fc7ClnArL=;y#HUs zZp)GieXsPVBa#5-NQDIjjx)7ojW_-t6)7sg?VUdyFQy+2(3Vu+^d9c=!N>W|z zwf|UF*5n%vjc`~;WSd#lYitE93wK@mBJ#<}iRRmX{?rDxxIDV5C>MrR0tI@!*s#I% z&#RV}>#k^uo6*$T%zb5L9o>(gQRn73Qz~v{WMu5Ge7{}@C6Hx&0y8v7e~l+kK+*?= zabN9*>P0;vrW4Mmo6Za^5G65Ow(CiE@qxjLfpL zvm^0u>uGCi>*#o`{mg-pA}AUUQiuM4TvXiB5}0(~Fh$~FYU*+a0nx3OU`;r_FBc;% zi<+|Ru7J+XNT9CwYP9f)acs?;bcvDImD{jgRnME-B7s+ppzpvWu-0W6CV`wB97d{! z+Dr)1T+V*C_QAoysVQOln*dmU)wKj>0E!#2dI=_`ARIW?%|t~-wS{7ULF2&+-sJ`C z_I=~-YKM~zE)K(26j!%xLt^gWxc|XUtQsDWPnd~8#YqS0HJYn=Vb3crE)KTe6GZrr z_kcLhHkhA#;8I7Fw8&jwLDT*c7m<}SOSG}>yh&N@(D8~a>h*J<)eUz5;d&SvzStNu ztaUaW{J;agm7nJW_*lVNWvINrL{k3~utAO4_iBWU06|3aqdLHAhPb~EfT_E1lYA_# zQ{!GlNeNeIn@PpwwXApoHU$N!WuHEky5BYO#T)q&JmAlQqNA@LkKm?6`C-HVtRmX; zh46n9o!wQU2Tl>0#w6Lsa9yw`SXzQgm5`VS)AfsZHF4Ygr~F>Kr!jZb&qt9#N(Yq+ zg43Y3w4i{UhsOo+dYp z^6|8-Z%wVNFii(PdN3|w*t%4=$FOfUQU zBeAyFXpW92OE?#&tVcUNIm#adiLS0J$n$QGFaciA(V(+&c1>0Nu!DBGy`3tl3O00W zw&5WI0|OhI!nG`%y4QA}$}3R9L;kte)>jMSSP*{s<1E;?EVg3c4ArZ;L)d#%grBuTF7VqpolDY9H_z&jJr#9G@-xQ!<0&)QI+kERqR zb^9CCahkf>_x-zZqnC@S>bLiIpN^Fn?||vTg!{E~N5&OlP)JA*!p4xiR~=b#C*!cI zKq*IqnRpgVL?G`%x%$}9a2`d(bd$Hge{uc`XEX=J!d^VL+NlQCNYz^ToTHFy8W z1G$lEy_kc8o`B=kCzv2@eQIoEgsbu0#K_c?59m2?eE1Vq7S~^0T(IiWGkv}bm6G@- z$}Rfdfkg{|=)(s}u*{g6u5E0b9Zfec_Z;_rWBH&$j)jonZIuuU3Sb(jvR|F0UhWC) zU;t+EJxwS+HPznUeq(8=+@uW|G|ds>Y)8jhzf&xPuoAMs{>R#zQ&<1y7T*`}e}FMS zKwxx;bEBk%x1yqggX1f>L9$WbDR2jhSLzLB5(EY=b;k?{qW(Bs%lDC^oo}^mLh_Z81X`_N~QJ%4xhDIJF4G7952h? z&ab-j>+bae_G1S-^Yg#!<1XWos1QNbFCu)CpJ-`Sd+jZO{^mH>=>042$rl^M>sb`g zNkiym8EM1{rpsi&l_uou`0w{U^R$A(lXZFnTCa}8Fr9@|o+~ky@bx`^upRcGfZON_n_wsT z9kK7#1y@xS0S25h$URVcN5LL5K2F^?tQcV#^a{K6L%F0~Ree^LNm~dScmVv*4ut$p zc7ON9gVt}HGwk#W7ZKED79JT1ems4~IA#_WS`m-ufMVd_0IPsuy}OI6tE-EPw?IZ@ z;XPs!y1>~**<5utAbr#n6rP9cqee|WcUW2XQ!3Kmqe_aP-54sWfZ49TWstcchck8Y zV4caxDAve7@oTQB@dOA{XXCe3Twj0nG*^=Fb|c{zO?Icb##_|X`p=&I+1k3?s+srk z_HHtJ+PsFeV9Pu)JxxF>>eU*AMEvq|Ru(-7Wqf@5V3`4CE9P@RDdO=pYc%rKi%Qgj zd?|l1;dOPI5PFa#!O8&y_3UWtd`#b|uA!ktDZg4934te-J96qLp81^s2j?k!0;sub zYiq!!jGKI_pu%>(B)Q(ty#6q@&5V!1Pt|F*K%L(To26hIZWGkC+cB1;z3CPKy(eF5vs--LKbX8*0F81`&tD%ubdr zEQa2yypK@I0p4!|sR35OWPaP9$Mbmz=EI5zqol z^7{2_@I66UgDlzgY77br0=^DbPD*MNXF;!%(%HwQdPS-#DxxpeH7zZ3GBf9Y<|zC7 z`KfGMh!7)&Xr5{MZ#hDj0)+|u8ejr2Gh0gJ)CaE@BNJ030i7eW@&Fz*Ld0yWtk#!j zhfqKOAwW9iub%yQo20YlE*Jp8*OZ?x1P&P>GpNXIAP2|N2z?s15k3mdAMFHB)85d- z`Zy+eqeidcg&i*P=#|0b<;~4TtD%(jb-PO`6$?UCsdMd*>CnmK{{k`_LnUDMyEhJg zEQ!l_4ypiw#04RsvGamtU|`_=r1O6x^j21-6*8s_zwBhJg5N7yIyyS4s0`*m&Gk9n z_FwLf!QTv$Rie*E0h3_|0H3(+&(H1c(*DM8TdvNaRRag!i?yF!Jv}{>lc#^^K@~E% zZ^7GZ5fLZJp1=+wGT2m^m^y}rwg80w9UljVN9O}-_VI7TZc{yUGyuN6Img3^a#ChOWNOfxN z>+PlFvl`r-tN=TRLaK7gLUn`!^HiPNN)QqX5O&tbDeh+nYoOESXxQr9OHO}0m{H{7 zO63CEmv~hKn^jPt*X&mpA3p-78)aqXzFfH!lTfszfpo~7O52ft`}(Nh z#M4|=@SlR?x!z^D8yr5X?)AX*GBb_U)!)X)Kh=jOjyJhDnfPX%K7R(QH5f*rb`|TC zF#@uVPUIYFxG{YB8QFm;b3Z95ApsghODikLh?2a#-hqKaF4~=S!V0!RqM{kbo4AMV(4PC#R{cUE}(vA6k;w+aexNQeZ(U z>zEP3?`7_if?#dJElBewDQO%oVW^{X(nA;Mw?Fg{Y^Jn=&I{l-L_t9TUl#ZXGM=u; zd~6-l>Mo44nVR4|VuTZe)23o~h}c#T}i((JwhUKsVV%M5YG@ zHaZ9-Hs_i|>OMb8F?osy?npQS&=Y|d_5J(zKYwaSNVG7>MBq~KE6f{k-c`JszkYLm zdAx&+j10+9?FioRlqqmA5i!Ymfrn_GiUte8Yh(v*kQh0zu6k^OrjLOSmx5kXEt&Tb zJ!S^a@?i{h%TEe3Twvz-R!KaBqSjT$qLz9R>n;?A-Tv(2+2;yP1hdD&dSav zd;O39kEff5cb(rk-*e9AyixkP>NJ$Bln4ZZMpHx80D&Ml3;%yZP6+?L%kw;%@O>GM#pXC`vr8-LRpXKD9wXK`tltnd^VhmAdnV9$wn0k78E?l@UFSIA>A~>6D=~X+1#bP(-y3%ByzArA; z=f`xUDJTdC*y6%zm@k<-*x7x^%j>Z(GcDYn?MUH{7v$r+k!_G?_%SPsS3V7m{r|7NK4}@5S1r?nr^`h9?Q`V|v1*xc1>pqcjF%d`|LV_p6C#cB%Suac7Y&S8 zKg)+zR8&+~m)2y($H$kQlhZomDx9!ii_Xf*GBh;wOGJ74ph6qEfB*hHe7ZgkEIP`t zVOp#ulBr2UTdZBH%*HAvTx6+9iO}koMY;93>X$v(sKdcpZ{NPn$>HaYZ?+VdWsg(k zj*5$Wqm_+9u9B&_X=!QQy*t$0hg;mDrJ>pS_s`wab7%W>vBs)JH(8aLI?ANrCewTD zZr!@Y5Tz=@q^_p6vFFFD6Nx$|N$D`UecNsQPg6AWrMDfkySrW@@@FW+M3|yGY|t*v zIayg|wLb8~F~gj4sk)^@4kae=yCH{_g@wnCj*gEXKYsG$iL#C}%n~7p~@(eSvqq#aM9(x-z zw=i?+MO8I5H6K5I{PN}BaM=^q*qq#40T~&O{eKI+IXbt66QZJ`wD}n$a0G~L0YdJs z!QGO{$p@J|gT1}Izkiz<8|U`ek&==c3g0m@>R%cvB_V7G4U9G|6cZ9UFR<}Ds-dAF zJUo1HplJN7_wC%?XC5A(O+?yfqg3BVMv^1Zcx#CTcOQ+@MgG|@61786I#e*QnDX|m zyWD*Xi}AI!;!&qL*D4AMircxm32igh65iBxP9ZIBw&9tXnM9jjsi~=?p$!Y}27+gW z6SVj-kEK}Cx|pL>!CkuMHoZ`!p}}h8ro2a&D$PD^Z+pb5-8MBH9vp18mIzbMFcHz! z(}O>@DoMgk##m6cMKGR^Rl~iSs7S-r*CXCMXJKKPUtPs>e}LzJ=Pn&;w<(?a^T+Dp zL%4e8`}ezk$GlR$kthU$AF}}VyK&=2SXdZS^o=}28ylNXcT2-@lidsMu!+2J2ceCV zF7U_};Uw|RbDPdZEk3p85jZ&Ml1B}0Qaq(2$^W|d2Jagwfp`sw7g%8Y_4RdzC~FDp z7J*Dhw<CdjyDgHcOIJC! zu`;QIGmU0t=bT3-v@{`2RLwFEpaPrSx+=QHdQ(s!Gu+~vr~ z$b5Z#hDS#3nVv3IR@MTeCk6%vV6~X@lFyYhoX71ZUd`!l4)yijF*Y`aP5SxMb+Nzj z_&5NG7GQ{KY;5#GA#)zH(?&E|m6#ON)1-yGLxqNh78Vu`MzgcBy2_<`q2#%_x%v6k zGW45gHYnB}Vq#IAR(5t8MFSOOW#_5Gu~=kigQYl&+_h`qA7*C1$vFLjnx`(g)Qom? zblkafhgrmJ6l?YK0mr?XD1k? z%8hAJ(3hE|0BE-v!$@Ic7yEDd4azWqCASQSlHnexq~&{908_q^8w zG-xI}yMw)bwfllWK)|<=WvoKrv9X1Jw!Wa#_+xc-vRE~h>2(4)QQ*PIxOt67hf{^E zwe{ECKhb%4dEo3FHe~E>Aw)>@oX5){5YOMgm)zwT85tFJCy2^S{cUM`ZAvd}?6xaz z?j3rL`!gfJw9>3P-riLMi(6i(GiT0#vps$K)I|F7$97I4 zUcGw7Bx3UN_3M8`EmAe3am`biHw75(iWuqY>KYop?pD20@2NIM`m6 zWTA%qvH-I6_%Un~KPJ{ur(R-3Ylm3FJ zm>9UetwgfI{?n8WrtXB%U>#(|NGy#kLliGPxf8Qp=UZv21JA@ZP@V0q0gJ%h$%wMD zGPTU7{RMYH=-`64bF?R2tB&2Sd7;K;TuHPv+@^lShLX{(jMb(na*5piJY645WL3fv zfg3eu?RBakbH{|&^P}-oRZleAmMb*)F}CeVmmmJ1UP`DaFE_7r$@u*F^M?-~YHL&R zQxEvC;CI~dk+{j{;o(2+q$tBeS~u#L+d-xaK79TBc>`RKA0x!WGo^5{rw6g~fl5NZ zeF{BYm3Zlu7NpF7dAV4^py1$Okj8<&zGv?4kgTX_XfCr*%ctq(_L2|=L(bFS^^=Fh zrZa5s=TQ1lH#h&&CnvBZD1XhUYt>(`%wY8mFTXXUAJA@?P`|~FxSVb-t+`CGJtbtLd3bo9=zxhRRoC>;`J-_U?pnTwC zpy=1NZeNIfjmNi2&OSN>*%-MNbtLy~mL@T6P(E!vTe-8IHPxc4uoJOmgrq(}~ zmd>>&^CY&FkcO#ppMm{a-|dMljnZTBsx_||aV#Bro06i3MOC@Y>7wx%45suUK90h~ zPOWuH@})*ri2?S^uyB;>#!_jQ{J~NwLL7xM`(NmMKt!+mZiC<55< zoRpdx8{3qVlLKW$d3kwUT--(DPlFCJ4$K^}Y8VY(*DCg#3NhAO55I<Fm@kSZ*l1S7HC; zNmuH%2uIvm%CPgWZFzYhx`Jl|JXO9|zELtM?1wuD2?=RSymULyFwgL9eEb;>4h}Z9 zMI6&NnG_wtv)miI;V4=5&V|4`7zde@Bgb=6Ot)m&X%pKXiL-R3Uh|x7PrhH{ah{r# zGE4$Wi7+Z=NVHL^638K$#J23-g*f)B8>@jQYzPTS$?<@L<)kE*0?neX{5SfI^@-CL z=*eYLI?^t^QslBcra=%B1{>rZ&RhzN3eyI^xf*b|`{{noKcCtbYtXhfSk29mFJ3T^ z6GPI}%B~(&E!vTP?@=&>DBmlntn@lLK2poP%*QvQ7r5W6N-D`y;rOAk-gf!|LsWn+ zmXkag(i<#9{eruUv^3bK(@qL0?^l_h-?q4=rmo&*{kc=O+??}MpPJBFZhnkrX3t6j zfn>6_Pwh9@DA10tUw>OmJjhRuW)j^PA$ai`pBPUXrAn#4;m6F&pedHdVYG@gXDjasPPSFnY-gw>8L{T1hg=nSwW z@$tU#bLQ<7b{n#(x}ew1p|5Qn#3?0+SK^Fwdo{V}4|5+vn7kCA4xxZ&bWSPZ8e!rs z7d1)1Pr4BAAA4k>jzbPcy~CSO1dbywH@Ie$SopmE|D*`*87U8PT0gfoO~F5N{zfCB z2^9%n;zO+VnMq_rGHLN-n_e2;^zfy2o`=MzoTdpSuk!NI2!CJ8w1&5SyQEG1qzmTb z>4DAVdlIu0b|c}h@jK;?5_nXw)9KYlW^d*)S5i0?G$Qz@{WOuey$f_YD){FVI|<_T zx)vN;1Kz0aak|h@4R1Ac(CPyOLMBBt-E(s+&YPeAfn{m15tVU~vN~CT2?5>p>6{AgNUbPb*p%%-d)kTtu*OB6^lL{xn`NqLGf&|Lhc7iH)p)PAax_AxV zcnzlLF#J^Pj%QhU<14I)9^(5PkA{<@FEI!6z))TqbiAUK`zZQu%#ym&b49;y&If zwm*kZ^t{3@Pwnk3E)G}u(8q-#NTs#9+-$9wJysz$>fDH+!hBOl7BM@>blaupQM9(E zSDoi&5ELdX8C*3tqc7OxnmNz+TzT*dg^VL%5i=`mdKNJ&tECr<2vfR#kTO9Ay-j=2 zbK-P^2fTaMguyNr6rronx}Mf#WRvK=L)0QkNfkxHuewbXR@6Jwp_MPAEdzQbL&Zle5Ib^A47CegquMS}UVZ*tQPJeW5_^WC1@DbkNpr6FZ|Cvsw1>w# zYX{>*2)nYEiDaCC)E?Ia6N;TUzW-3xAa{|SSf4<+D9Fs#JCKGF3=dC?dS-lVJ=jcB z36L)~A=vK!?Nre=^WGp&!<+wMyQG|8!dj0y0>MOemKj&_&}Evu(u|&o^onz*T)?}5 z0WvK<@-Ri-BZk6fy7brx#GSwhF58yptn|pd*SRK1*r+hyY2a#&fut*464@NAYSyyGVMPeBv&_;%8}@UwF!E1#f+d~)4|F!ovEQQ z)Lt8!Udz&hHOxPIFQC|E9D??JT&j>?#DC4ThT^A)Qc(@*D8LKB0n8rP1|5FBWt|Ns za#>*b-lX(c=sRBJ>1Dqo>4LjNDOZRP?#~+L(r_n-bksD#qqMvX=J`zoh!mRmczOoH z;P)y?AOPX7=YqR?2@W@v=E={1QrKer=}xH zpnNjWcw0}&tFo^7i~%w*%KI=4r7JM#;4(#u+NAzc*6@nY?$V5yS85h1hqLi^4-*ffFuTB5L&6h1}^O^8Hv8C*J zNt{K$_VFQF-yA6_RF4S zl7F4ziBBX>$%LiAoF?BmbcE*qeF%*tZE-1Li$Izh4}vhljErJeJ`pqWsi)IoAH~<0 zH+EIZJ0^ovA|{S@8Z3h>jws8WNJxoTV%DXVAO6H9Dh4%cM8q%Sg z7|LuOG+-V&hgE51%({#&f`&Svw{{_vF1?uE>ft1g?t-M->skUePp!tmI0Y0ksoiu6eF4U-mxmlQjOoP`-KzhjIGqjH%ftQ_S^#3fwhI=i19(cty)UHFxc;z_@z7Z!;U zsjz{_96ip`50)G6UIq1gA2yX=P1Q|oyYX&NS8HhKW$N`GZ)U%Jb|e^`=g1c)cb}mM z|7c${@T7Ezf7drKy$oT1)qIa4&_e>6;-U|kD0tqZgR@fr0}?e2NwGTqNx*Z`SC-SX zm0uW{^?m;QIWd{{%9UBAa+-KsYFE;Rr{DXI-pu_r&h)e%q4!?V#d7ImeIHS+@A`_B zLmB@IK^#A)V9#pza zh738_NF=wkw4}&5LbDHG!MMo0&rZszq9#2ZlE}i^8g(tU(?)&lDY;p?2Q{?GO5HQp zHJTYsE~7ha+Pbyd%MtF{?d=;xiB#Dq7nvX_e; zN5(sB{H?90Ki=yI0|K-DRRagoNsNEkZ$qmw__O zb#5LiBVL9mKv{c!`RDfcQFZ$Xlo4#elsE$q*L(F8M9)&DdCw+8zd+vZP==pM-WBBq zj>d~_vECTDTb`ePvuGf2Zzi#+sVU#MNK908#zmHg^B?eFt!!7>Nm#�I1g19zjD4 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 literal 0 HcmV?d00001 diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 6cbc9ba965..d46449f3a5 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -48,10 +48,28 @@ namespace DGtal /** Description of template class 'MeshVoxelizer' - \brief Aim: A - class for computing a voxelization of a Mesh, use topological - target intersection to make a n-separating voxelization - with n parameterizable + \brief Aim: A class for computing the digitization of a triangle or + a Mesh. + + This class is parametrized by a Separation strategy (either 6 or + 26). This value corresponds to the separability of a digitized + continuous plane. For instance, if the value is set to 6, then + the digitization of an Euclidean plane is such that no 6-path + exists to go from one side to the other of the Euclidean plane (see + @cite KletteRosenfeld_book). + + From the separability parameter, a template is constructed. A voxel + belongs to the digitization if and only if the template centered at + a given voxel intersects the triangle. + + This approach is a CPU straightforward implementation of + @cite Laine13. + + 6 and 26 templates are the following ones: + + @image html 6-sep.png "Template for 6-separating digitization" + @image html 26-sep.png "Template for 26-separating digitization" + @tparam TDigitalSet a DigitalSet (model of concepts::CDigitalSet) @tparam Separation strategy of the voxelization (6 or 26) From 1109f99d2f1dc0f033ba3c7c706b40a7001785f9 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 12 Nov 2016 13:47:07 +0100 Subject: [PATCH 14/37] minor edits --- src/DGtal/shapes/MeshVoxelizer.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index d46449f3a5..f4583917ae 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -104,7 +104,6 @@ namespace DGtal private: ///Internal Edge structure - /// @todo replace structure element to integer only vertices for exact computations. struct Edge { PointR3 myFirst, mySecond; @@ -155,12 +154,12 @@ namespace DGtal enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE,ONVERTEX}; /** - * Compute (unsigned) distance between @a p and the Euclidean plan + * Compute (unsigned) distance between @a p and the Euclidean plane * defined by normal vector @a n and point @a M * @param M point * @param n normal * @param p point p - * @return distance + * @return distance the distance to the plane */ static double distance(const PointR3& M, @@ -173,7 +172,7 @@ namespace DGtal * @param B Point B * @param C Point C * @param p point p - * @return Either {OUTSIDE, INSIDE, ONEDGE, ONVERTEX} + * @return TriangleOrientation either {OUTSIDE, INSIDE, ONEDGE, ONVERTEX} */ static TriangleOrientation pointIsInside2DTriangle(const PointR2& A, From 9cdeeda166292248f0cca02f378b31ae86c855ad Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 12 Nov 2016 14:25:17 +0100 Subject: [PATCH 15/37] preparing doc --- .../shapes/doc/moduleMeshVoxelization.dox | 31 +++++++++++++++++++ src/DGtal/shapes/doc/packageShapes.dox | 1 + 2 files changed, 32 insertions(+) create mode 100644 src/DGtal/shapes/doc/moduleMeshVoxelization.dox diff --git a/src/DGtal/shapes/doc/moduleMeshVoxelization.dox b/src/DGtal/shapes/doc/moduleMeshVoxelization.dox new file mode 100644 index 0000000000..1587f9b3dc --- /dev/null +++ b/src/DGtal/shapes/doc/moduleMeshVoxelization.dox @@ -0,0 +1,31 @@ +/** + * @file moduleMeshVoxelization.dox + * @author David Coeurjolly (\c david.coeurjolly@liris.cnrs.fr ) + * Laboratoire d'InfoRmatique en Image et Systemes d'information - LIRIS (CNRS, UMR 5205), CNRS, France + * + * @date 2016/11/12 + * + * Documentation file for feature MeshVoxelization + * + * This file is part of the DGtal library. + */ + +/* + * Useful to avoid writing DGtal:: in front of every class. + * Do not forget to add an entry in src/DGtal/base/Config.h.in ! + */ +namespace DGtal { +//---------------------------------------- +/*! +@page moduleMeshVoxelization Mesh Digitization +@writers David Coeurjolly, Monir Hadji + +[TOC] + +\section sectMeshVoxelization1 First Section + +\subsection subsectMeshVoxelization11 Subsection 1.1 + +*/ + +} diff --git a/src/DGtal/shapes/doc/packageShapes.dox b/src/DGtal/shapes/doc/packageShapes.dox index b32aaac84f..63a512037d 100644 --- a/src/DGtal/shapes/doc/packageShapes.dox +++ b/src/DGtal/shapes/doc/packageShapes.dox @@ -55,6 +55,7 @@ make concrete such objects in a given grid step grid. - \ref moduleShape (Jacques-Olivier Lachaud, David Coeurjolly) - \ref moduleMesh (Bertrand Kerautret) +- \ref moduleMeshVoxelization (David Coeurjolly, Monir Hadji) @b Package @b Concepts @b Overview From cddf5bea2dd9812f179b33b4d4252d4ee2bd7d87 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 12 Nov 2016 15:25:38 +0100 Subject: [PATCH 16/37] refactoring --- src/DGtal/shapes/MeshVoxelizer.h | 38 +++---- src/DGtal/shapes/MeshVoxelizer.ih | 161 +++++++++++++++--------------- 2 files changed, 99 insertions(+), 100 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index f4583917ae..9874f111ca 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -114,38 +114,37 @@ namespace DGtal public: /** - * @brief Constructor of the voxelizer - * @param aDomain digital space of the voxelization + * Constructor of the voxelizer */ - MeshVoxelizer(ConstAlias aDomain); + MeshVoxelizer(); // ----------------------- Standard services ------------------------------ /** * Voxelize the mesh into the digital set. * + * @param [out] outputSet the set that collects the voxels. * @param [in] aMesh the mesh to voxelize * @param [in] scaleFactor the scale factor to apply to the mesh (default=1.0) */ - void voxelize(const Mesh &aMesh, + void voxelize(DigitalSet &outputSet, + const Mesh &aMesh, const double scaleFactor = 1.0); /** * Voxelize a unique triangle (a,b,c) into the digital set. + * voxels are inserted to the @e outputSet. * + * @param [out] outputSet the set that collects the voxels. * @param [in] a the first point of the triangle * @param [in] b the second point of the triangle * @param [in] c the third point of the triangle * @param [in] scaleFactor the scale factor to apply to the triangle (default=1.0) * */ - void voxelize(const PointR3 &a, const PointR3 &b, const PointR3 &c, + void voxelize(DigitalSet &outputSet, + const PointR3 &a, const PointR3 &b, const PointR3 &c, const double scaleFactor = 1.0); - /** - * Getter for digitalSet - * @return current digital set - */ - const TDigitalSet& digitalSet() const; // ----------------------- Internal services ------------------------------ @@ -192,31 +191,35 @@ namespace DGtal /** * Voxelize ABC to the digitalSet + * @param [out] outputSet the set that collects the voxels. * @param A Point A * @param B Point B * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC */ - void voxelizeTriangle(const PointR3& A, + void voxelizeTriangle(DigitalSet &outputSet, + const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, const std::pair& bbox) { // tag dispatching - return voxelizeTriangle(std::integral_constant{}, A, B, C, n, bbox); + return voxelizeTriangle(outputSet, std::integral_constant{}, A, B, C, n, bbox); } /** * VoxelizeTriangle specialization for 6-separated + * @param [out] outputSet the set that collects the voxels. * @param A Point A * @param B Point B * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC */ - void voxelizeTriangle(std::integral_constant, + void voxelizeTriangle(DigitalSet &outputSet, + std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, @@ -225,13 +228,15 @@ namespace DGtal /** * VoxelizeTriangle specialization for 26-separated + * @param [out] outputSet the set that collects the voxels. * @param A Point A * @param B Point B * @param C Point C * @param n normal of ABC * @param bbox bounding box of ABC */ - void voxelizeTriangle(std::integral_constant, + void voxelizeTriangle(DigitalSet &outputSet, + std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, @@ -245,10 +250,7 @@ namespace DGtal ///Intersection target std::vector myIntersectionTarget; - - ///Digital set containing the digitization of the mesh - DigitalSet myDigitalSet; - + }; } diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index faa4c4f703..9dddaee5b6 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -27,15 +27,14 @@ ///////////////////////////////////////////////////////////////////////////// // IMPLEMENTATION of inline methods. ///////////////////////////////////////////////////////////////////////////// - +#include ///////////////////////////////////////////////////////////////////////////// // ----------------------- Standard services -------------------------------- // --------------------------------------------------------- template inline -DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias aDomain) -: myDigitalSet(&aDomain) +DGtal::MeshVoxelizer::MeshVoxelizer() { if(Separation == 6) @@ -47,7 +46,7 @@ DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias PointR3 DD(0, 0, -0.5); PointR3 EE(0, 0.5, 0); PointR3 FF(0, -0.5, 0); - + myIntersectionTarget.push_back( Edge(AA, BB) ); myIntersectionTarget.push_back( Edge(CC, DD) ); myIntersectionTarget.push_back( Edge(EE, FF) ); @@ -63,7 +62,7 @@ DGtal::MeshVoxelizer::MeshVoxelizer(ConstAlias PointR3 FF(0.5, -0.5, 0.5); PointR3 GG(0.5, -0.5, -0.5); PointR3 HH(-0.5, -0.5, -0.5); - + myIntersectionTarget.push_back( Edge(AA, GG) ); myIntersectionTarget.push_back( Edge(BB, HH) ); myIntersectionTarget.push_back( Edge(CC, EE) ); @@ -82,14 +81,14 @@ DGtal::MeshVoxelizer::distance(const PointR3& M, ASSERT( n.norm()!=0 ); double distance = 0.; double d = n.dot(M); - + distance = n.dot(voxel) - d; - + if(distance < 0) distance *= -1; - + distance /= n.norm(); - + return distance; } @@ -108,14 +107,14 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi double val2 = (B[1] - C[1])*(v[0] - C[0]) + (B[0] - C[0])*(C[1] - v[1]); // BA double val3 = (A[1] - B[1])*(v[0] - B[0]) + (A[0] - B[0])*(B[1] - v[1]); - + // 0 : outside // 1 : inside // 2 : on edge // 3 : on vertex if( ( val1 == 0 && val2 == 0 ) || - ( val1 == 0 && val3 == 0 ) || - ( val2 == 0 && val3 == 0 ) ) + ( val1 == 0 && val3 == 0 ) || + ( val2 == 0 && val3 == 0 ) ) return ONVERTEX; else if(val1 == 0 || val2 == 0 || val3 == 0) return ONEDGE; @@ -136,7 +135,7 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& for(int i(0); i < 3; i++) if(! (-0.5 <= PP[i] && PP[i] <= 0.5) ) return false; - + return true; } @@ -144,32 +143,33 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& template inline void -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, +DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outputSet, + std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, const VectorR3& n, - const std::pair& bbox) + const std::pair& bbox ) { OrientationFunctor orientationFunctor; - + //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - + PointR2 AA, BB, CC, tmp; PointZ3 v; - + // foreach intersection target for(Edge& target : myIntersectionTarget) { // 2D projection of A ; B ; C - + if(target.myFirst[0] == 0.5) { // ignore X composante AA[0] = A[1]; BB[0] = B[1]; CC[0] = C[1]; - + AA[1] = A[2]; BB[1] = B[2]; CC[1] = C[2]; @@ -180,7 +180,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co AA[0] = A[0]; BB[0] = B[0]; CC[0] = C[0]; - + AA[1] = A[2]; BB[1] = B[2]; CC[1] = C[2]; @@ -191,12 +191,12 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co AA[0] = A[0]; BB[0] = B[0]; CC[0] = C[0]; - + AA[1] = A[1]; BB[1] = B[1]; CC[1] = C[1]; } - + // check orientation if(! pointPredicate(AA, BB, CC)) { @@ -204,7 +204,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co AA = CC; CC = tmp; } - + // traverse all voxel of current face bounding box v = bbox.first; for(; v[1] <= bbox.second[1]; v[1]++) @@ -214,22 +214,22 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co // check if points are on different side target.myFirst += v; target.mySecond += v; - + VectorR3 d1, d2; - + d1 = A - target.myFirst; d2 = A - target.mySecond; - + bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; - + target.myFirst -= v; target.mySecond -= v; - + if( ! isDifferentSide ) continue; - + PointR2 pp; - + // 2d projection of current voxel if(target.myFirst[0] == 0.5) { // ignore X composante @@ -248,10 +248,10 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co pp[0] = v[0]; pp[1] = v[1]; } - + // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) - myDigitalSet.insert(v); + outputSet(v); } } } @@ -260,7 +260,8 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co template inline void -DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_constant, +DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outputSet, + std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, @@ -268,30 +269,30 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co const std::pair& bbox) { OrientationFunctor orientationFunctor; - + //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - + double d = n[0] * C[0] + n[1] * C[1] + n[2] * C[2]; d *= -1; - + auto abs = [=](double a) { return a < 0 ? -a : a; }; auto max = [=](double a, double b) { return abs(a) > abs(b) ? a : b; }; - + double maxv = max(n[0], max(n[1], n[2])); - + PointZ3 v; PointR2 AA, BB, CC, tmp, pp; - + // 2D projection of ABC if(maxv == n[0]) { AA[0] = A[1]; AA[1] = A[2]; - + BB[0] = B[1]; BB[1] = B[2]; - + CC[0] = C[1]; CC[1] = C[2]; } @@ -299,10 +300,10 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co { AA[0] = A[0]; AA[1] = A[2]; - + BB[0] = B[0]; BB[1] = B[2]; - + CC[0] = C[0]; CC[1] = C[2]; } @@ -310,14 +311,14 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co { AA[0] = A[0]; AA[1] = A[1]; - + BB[0] = B[0]; BB[1] = B[1]; - + CC[0] = C[0]; CC[1] = C[1]; } - + // check orientation if(! pointPredicate(AA, BB, CC)) { @@ -325,7 +326,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co AA = CC; CC = tmp; } - + // foreach intersection target for(Edge& target : myIntersectionTarget) { @@ -338,18 +339,18 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co // check if points are on different side target.myFirst += v; target.mySecond += v; - + VectorR3 d1, d2; - + d1 = A - target.myFirst; d2 = A - target.mySecond; - + VectorR3 w = target.mySecond - target.myFirst; double den = n.dot(w); - + bool isSameSide = d1.dot(n) * d2.dot(n) > 0 - && den != 0; - + && den != 0; + // if target is on the same side -> skip current iteration if( isSameSide ) { @@ -357,17 +358,17 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co target.mySecond -= v; continue; } - + // compute intersection point (p) between target intersection and ABC PointR3 p; double lambda = -( n.dot(target.myFirst) + d ); - + lambda /= den; - + p[0] = target.myFirst[0] + lambda*w[0]; p[1] = target.myFirst[1] + lambda*w[1]; p[2] = target.myFirst[2] + lambda*w[2]; - + // 2d projection of intersection point if(maxv == n[0]) { @@ -384,11 +385,11 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co pp[0] = p[0]; pp[1] = p[1]; } - + // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) - myDigitalSet.insert(v); - + outputSet(v); + target.myFirst -= v; target.mySecond -= v; } @@ -399,7 +400,8 @@ DGtal::MeshVoxelizer::voxelizeTriangle(std::integral_co template inline void -DGtal::MeshVoxelizer::voxelize(const PointR3 &a, +DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, + const PointR3 &a, const PointR3 &b, const PointR3 &c, const double scaleFactor) @@ -407,7 +409,7 @@ DGtal::MeshVoxelizer::voxelize(const PointR3 &a, std::pair bbox; VectorR3 n, e1, e2; PointR3 A, B, C; - + A = a*scaleFactor; B = b*scaleFactor; C = c*scaleFactor; @@ -423,44 +425,39 @@ DGtal::MeshVoxelizer::voxelize(const PointR3 &a, if (C < bbox.first ) bbox.first = C; if (B > bbox.second) bbox.second = B; if (C > bbox.second) bbox.second = C; - ASSERT( bbox.lower <= bbox.upper); + ASSERT( bbox.first <= bbox.second); //Rounding the bbox - std::transform( bbox.lower.begin(), bbox.lower.end(), [](typename PointR3::Component cc) { return std::floor(cc);}); - std::transform( bbox.upper.begin(), bbox.upper.end(), [](typename PointR3::Component cc) { return std::ceil(cc);}); + std::transform( bbox.first.begin(), bbox.first.end(), + [](typename PointR3::Component cc) { return std::floor(cc);}); + std::transform( bbox.second.begin(), bbox.second.end(), + [](typename PointR3::Component cc) { return std::ceil(cc);}); // voxelize current triangle to myDigitalSet - voxelizeTriangle(A, B, C, n, bbox); + voxelizeTriangle( outputSet, A, B, C, n, bbox); } // --------------------------------------------------------- template inline void -DGtal::MeshVoxelizer::voxelize(const Mesh &aMesh, +DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, + const Mesh &aMesh, const double scaleFactor) { MeshFace currentFace; std::pair bbox; - + VectorR3 n, e1, e2; PointR3 A, B, C; - + for(unsigned int i = 0; i < aMesh.nbFaces(); i++) { currentFace = aMesh.getFace(i); - voxelize( aMesh.getVertex(currentFace[0]), - aMesh.getVertex(currentFace[1]), - aMesh.getVertex(currentFace[2]), - scaleFactor); + voxelize(outputSet, aMesh.getVertex(currentFace[0]), + aMesh.getVertex(currentFace[1]), + aMesh.getVertex(currentFace[2]), + scaleFactor); } } -// --------------------------------------------------------- -template -inline -const TDigitalSet& -DGtal::MeshVoxelizer::digitalSet() const -{ - return this->myDigitalSet; -} From 1b500749d81773208b4e321f1d46d6bd545144b4 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 12 Nov 2016 15:37:18 +0100 Subject: [PATCH 17/37] Debugging --- src/DGtal/shapes/MeshVoxelizer.ih | 8 ++++---- tests/shapes/testMeshVoxelization.cpp | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 9dddaee5b6..516cdc1844 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -251,7 +251,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) - outputSet(v); + outputSet.insert(v); } } } @@ -388,7 +388,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) - outputSet(v); + outputSet.insert(v); target.myFirst -= v; target.mySecond -= v; @@ -428,9 +428,9 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, ASSERT( bbox.first <= bbox.second); //Rounding the bbox - std::transform( bbox.first.begin(), bbox.first.end(), + std::transform( bbox.first.begin(), bbox.first.end(), bbox.first.begin(), [](typename PointR3::Component cc) { return std::floor(cc);}); - std::transform( bbox.second.begin(), bbox.second.end(), + std::transform( bbox.second.begin(), bbox.second.end(), bbox.second.begin(), [](typename PointR3::Component cc) { return std::ceil(cc);}); // voxelize current triangle to myDigitalSet diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index c14b88ef68..17164970db 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -48,8 +48,8 @@ TEST_CASE("Basic voxelization test", "[voxelization]") using VectorR3 = PointVector<3, double>; using PointR2 = PointVector<2, double>; using PointZ3 = PointVector<3, int>; - - using MeshVoxelizer = MeshVoxelizer, SEP>; + using DigitalSet = DigitalSetBySTLSet; + using MeshVoxelizer = MeshVoxelizer< DigitalSet, SEP>; // --------------------------------------------------------- SECTION("Test distance point/plan 3D") @@ -147,4 +147,14 @@ TEST_CASE("Basic voxelization test", "[voxelization]") P[2] = 0; REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside } + + // --------------------------------------------------------- + SECTION("Voxelization of a single triange") + { + Domain domain(Point(0,0,0), Point(10,10,10)); + DigitalSet outputSet(domain); + MeshVoxelizer voxelizer; + voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); + REQUIRE( outputSet.size() == 12); + } } From c6db84d51081bbd065b18dec795fc63489addac1 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 12 Nov 2016 15:57:13 +0100 Subject: [PATCH 18/37] Debugging --- src/Board/Shapes.cpp | 3 ++- src/DGtal/shapes/MeshVoxelizer.ih | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Board/Shapes.cpp b/src/Board/Shapes.cpp index 5ccea1cb88..a5e87313c0 100644 --- a/src/Board/Shapes.cpp +++ b/src/Board/Shapes.cpp @@ -2078,7 +2078,8 @@ Rectangle::flushTikZ( std::ostream & stream, stream << "\\path[" << tikzProperties(transform) << "] (" << _path[0].x << ',' << _path[0].y << ')' << " rectangle (" - << _path[1].x << ',' << _path[3].y << ");" << std::endl; + << _path[1].x << ',' << _path[3].y << "); " + << std::endl; /* if ( _path[0].y == _path[1].y ) { stream << "::voxelizeTriangle(DigitalSet &outp const PointR3& B, const PointR3& C, const VectorR3& n, - const std::pair& bbox ) + const std::pair& bbox) { OrientationFunctor orientationFunctor; @@ -421,10 +421,11 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, //Boundingbox bbox.first = A; bbox.second = A; - if (B < bbox.first ) bbox.first = B; - if (C < bbox.first ) bbox.first = C; - if (B > bbox.second) bbox.second = B; - if (C > bbox.second) bbox.second = C; + bbox.first = bbox.first.inf( B ); + bbox.first = bbox.first.inf( C ); + bbox.second = bbox.second.sup( B ); + bbox.second = bbox.second.sup( C ); + ASSERT( bbox.first <= bbox.second); //Rounding the bbox From 30c6981931339054effa399770b5fe1a83bc27dc Mon Sep 17 00:00:00 2001 From: mhadji Date: Mon, 5 Jun 2017 16:05:52 +0200 Subject: [PATCH 19/37] for 26 sep, adding approach with projections only to avoid intersection point computation with division --- src/DGtal/shapes/MeshVoxelizer.h | 69 +++---- src/DGtal/shapes/MeshVoxelizer.ih | 251 +++++++++++--------------- tests/shapes/testMeshVoxelization.cpp | 115 ++++++++---- 3 files changed, 219 insertions(+), 216 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 9874f111ca..157d570bee 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -43,26 +43,26 @@ namespace DGtal { - + ///////////////////////////////////////////////////////////////////////////// /** - Description of template class 'MeshVoxelizer' - + Description of template class 'MeshVoxelizer' + \brief Aim: A class for computing the digitization of a triangle or a Mesh. - + This class is parametrized by a Separation strategy (either 6 or 26). This value corresponds to the separability of a digitized continuous plane. For instance, if the value is set to 6, then the digitization of an Euclidean plane is such that no 6-path exists to go from one side to the other of the Euclidean plane (see @cite KletteRosenfeld_book). - + From the separability parameter, a template is constructed. A voxel belongs to the digitization if and only if the template centered at a given voxel intersects the triangle. - This approach is a CPU straightforward implementation of + This approach is a CPU straightforward implementation of @cite Laine13. 6 and 26 templates are the following ones: @@ -70,24 +70,26 @@ namespace DGtal @image html 6-sep.png "Template for 6-separating digitization" @image html 26-sep.png "Template for 26-separating digitization" - + @tparam TDigitalSet a DigitalSet (model of concepts::CDigitalSet) @tparam Separation strategy of the voxelization (6 or 26) */ template class MeshVoxelizer { - + public: - + ///Concept Checking BOOST_CONCEPT_ASSERT(( concepts::CDigitalSet )); ///Digital Set Type typedef TDigitalSet DigitalSet; BOOST_STATIC_ASSERT_MSG( DigitalSet::Space::dimension == 3, "DigitalSet dimension must be 3"); - - + + ///Separation Checking + BOOST_STATIC_ASSERT_MSG( Separation == 6 || Separation == 26, "Separation must be 6 or 26"); + /****** Associated types *********************/ using Space = typename DigitalSet::Space; using Space2D = SpaceND<2, typename Space::Integer>; @@ -99,10 +101,9 @@ namespace DGtal using PointZ3 = typename Space::Point; using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; /*********************************************/ - - + private: - + ///Internal Edge structure struct Edge { @@ -110,14 +111,14 @@ namespace DGtal Edge() {} Edge(PointR3 mf, PointR3 ms) : myFirst(mf), mySecond(ms) {} }; - + public: - + /** * Constructor of the voxelizer */ MeshVoxelizer(); - + // ----------------------- Standard services ------------------------------ /** * Voxelize the mesh into the digital set. @@ -129,7 +130,7 @@ namespace DGtal void voxelize(DigitalSet &outputSet, const Mesh &aMesh, const double scaleFactor = 1.0); - + /** * Voxelize a unique triangle (a,b,c) into the digital set. * voxels are inserted to the @e outputSet. @@ -144,14 +145,14 @@ namespace DGtal void voxelize(DigitalSet &outputSet, const PointR3 &a, const PointR3 &b, const PointR3 &c, const double scaleFactor = 1.0); - - - + + + // ----------------------- Internal services ------------------------------ ///Enum type when deciding if a 2D point belongs to a 2D triangle. - enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE,ONVERTEX}; - + enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE, ONVERTEX}; + /** * Compute (unsigned) distance between @a p and the Euclidean plane * defined by normal vector @a n and point @a M @@ -164,7 +165,7 @@ namespace DGtal double distance(const PointR3& M, const VectorR3& n, const PointZ3& p) ; - + /** * Predicate to know if @a p (2D point) is inside ABC (2D triangle) * @param A Point A @@ -178,7 +179,7 @@ namespace DGtal const PointR2& B, const PointR2& C, const PointR2& p) ; - + /** * Predicate to decide if a real point @a P is inside voxel @a v * @param P point P @@ -187,8 +188,8 @@ namespace DGtal */ static bool pointIsInsideVoxel(const PointR3& P, - const PointZ3& v) ; - + const PointZ3& v) ; + /** * Voxelize ABC to the digitalSet * @param [out] outputSet the set that collects the voxels. @@ -206,9 +207,9 @@ namespace DGtal const std::pair& bbox) { // tag dispatching - return voxelizeTriangle(outputSet, std::integral_constant{}, A, B, C, n, bbox); + voxelizeTriangle(outputSet, std::integral_constant{}, A, B, C, n, bbox); } - + /** * VoxelizeTriangle specialization for 6-separated * @param [out] outputSet the set that collects the voxels. @@ -225,7 +226,7 @@ namespace DGtal const PointR3& C, const VectorR3& n, const std::pair& bbox); - + /** * VoxelizeTriangle specialization for 26-separated * @param [out] outputSet the set that collects the voxels. @@ -243,14 +244,16 @@ namespace DGtal const VectorR3& n, const std::pair& bbox); - // ----------------------- Members ------------------------------ private: - + ///Intersection target std::vector myIntersectionTarget; - + + //For 26 separation + std::vector myE1base; + std::vector myE2base; }; } diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index afed304fcb..99cb459080 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -36,7 +36,7 @@ template inline DGtal::MeshVoxelizer::MeshVoxelizer() { - + if(Separation == 6) { // 26 connected - 6 separated @@ -46,7 +46,7 @@ DGtal::MeshVoxelizer::MeshVoxelizer() PointR3 DD(0, 0, -0.5); PointR3 EE(0, 0.5, 0); PointR3 FF(0, -0.5, 0); - + myIntersectionTarget.push_back( Edge(AA, BB) ); myIntersectionTarget.push_back( Edge(CC, DD) ); myIntersectionTarget.push_back( Edge(EE, FF) ); @@ -62,11 +62,32 @@ DGtal::MeshVoxelizer::MeshVoxelizer() PointR3 FF(0.5, -0.5, 0.5); PointR3 GG(0.5, -0.5, -0.5); PointR3 HH(-0.5, -0.5, -0.5); - + myIntersectionTarget.push_back( Edge(AA, GG) ); myIntersectionTarget.push_back( Edge(BB, HH) ); myIntersectionTarget.push_back( Edge(CC, EE) ); myIntersectionTarget.push_back( Edge(DD, FF) ); + + // compute base foreach normal + + // normal + std::vector myNormal(4); + myNormal[0] = VectorR3( 1, -1, -1).getNormalized(); // AG + myNormal[1] = VectorR3(-1, -1, -1).getNormalized(); // BH + myNormal[2] = VectorR3(-1, -1, 1).getNormalized(); // CE + myNormal[3] = VectorR3( 1, -1, 1).getNormalized(); // DF + + // base + myE1base.resize(4); + myE2base.resize(4); + for(int i = 0; i < 4; i++) { + auto& x = myNormal[i][0]; + auto& y = myNormal[i][1]; + auto& z = myNormal[i][2]; + + myE1base[i] = std::move( VectorR3(-y, x, 0).getNormalized() ); + myE2base[i] = std::move( VectorR3(-x*z, -y*x, x*x + y*y).getNormalized() ); + } } } @@ -81,14 +102,14 @@ DGtal::MeshVoxelizer::distance(const PointR3& M, ASSERT( n.norm()!=0 ); double distance = 0.; double d = n.dot(M); - + distance = n.dot(voxel) - d; - + if(distance < 0) distance *= -1; - + distance /= n.norm(); - + return distance; } @@ -107,15 +128,16 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi double val2 = (B[1] - C[1])*(v[0] - C[0]) + (B[0] - C[0])*(C[1] - v[1]); // BA double val3 = (A[1] - B[1])*(v[0] - B[0]) + (A[0] - B[0])*(B[1] - v[1]); - + // 0 : outside // 1 : inside // 2 : on edge // 3 : on vertex if( ( val1 == 0 && val2 == 0 ) || - ( val1 == 0 && val3 == 0 ) || - ( val2 == 0 && val3 == 0 ) ) + ( val1 == 0 && val3 == 0 ) || + ( val2 == 0 && val3 == 0 ) ) { return ONVERTEX; + } else if(val1 == 0 || val2 == 0 || val3 == 0) return ONEDGE; else if(val1 < 0 || val2 < 0 || val3 < 0) @@ -135,7 +157,7 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& for(int i(0); i < 3; i++) if(! (-0.5 <= PP[i] && PP[i] <= 0.5) ) return false; - + return true; } @@ -152,24 +174,23 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp const std::pair& bbox) { OrientationFunctor orientationFunctor; - + //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - - PointR2 AA, BB, CC, tmp; + + PointR2 AA, BB, CC; PointZ3 v; - + // foreach intersection target for(Edge& target : myIntersectionTarget) { // 2D projection of A ; B ; C - if(target.myFirst[0] == 0.5) { // ignore X composante AA[0] = A[1]; BB[0] = B[1]; CC[0] = C[1]; - + AA[1] = A[2]; BB[1] = B[2]; CC[1] = C[2]; @@ -180,7 +201,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp AA[0] = A[0]; BB[0] = B[0]; CC[0] = C[0]; - + AA[1] = A[2]; BB[1] = B[2]; CC[1] = C[2]; @@ -191,20 +212,16 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp AA[0] = A[0]; BB[0] = B[0]; CC[0] = C[0]; - + AA[1] = A[1]; BB[1] = B[1]; CC[1] = C[1]; } - + // check orientation if(! pointPredicate(AA, BB, CC)) - { - tmp = AA; - AA = CC; - CC = tmp; - } - + std::swap(AA, CC); + // traverse all voxel of current face bounding box v = bbox.first; for(; v[1] <= bbox.second[1]; v[1]++) @@ -214,22 +231,24 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // check if points are on different side target.myFirst += v; target.mySecond += v; - - VectorR3 d1, d2; - - d1 = A - target.myFirst; - d2 = A - target.mySecond; - - bool isDifferentSide = d1.dot(n) * d2.dot(n) <= 0; - + + VectorR3 a2myFirst = A - target.myFirst; + VectorR3 a2mySecond = A - target.mySecond; + + VectorR3 w = target.mySecond - target.myFirst; + double den = n.dot(w); + + bool isSameSide = den == 0 // target on plane + || ( a2myFirst.dot(n) * a2mySecond.dot(n) > 0 ); // target on one side + target.myFirst -= v; target.mySecond -= v; - - if( ! isDifferentSide ) + + if( isSameSide ) continue; - + PointR2 pp; - + // 2d projection of current voxel if(target.myFirst[0] == 0.5) { // ignore X composante @@ -248,9 +267,9 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp pp[0] = v[0]; pp[1] = v[1]; } - + // check if current voxel projection is inside ABC projection - if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) + if(pointIsInside2DTriangle(AA, BB, CC, pp) != OUTSIDE) outputSet.insert(v); } } @@ -269,67 +288,35 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp const std::pair& bbox) { OrientationFunctor orientationFunctor; - + //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - + double d = n[0] * C[0] + n[1] * C[1] + n[2] * C[2]; d *= -1; - - auto abs = [=](double a) { return a < 0 ? -a : a; }; - auto max = [=](double a, double b) { return abs(a) > abs(b) ? a : b; }; - - double maxv = max(n[0], max(n[1], n[2])); - + + PointR2 AA, BB, CC; PointZ3 v; - PointR2 AA, BB, CC, tmp, pp; - - // 2D projection of ABC - if(maxv == n[0]) - { - AA[0] = A[1]; - AA[1] = A[2]; - - BB[0] = B[1]; - BB[1] = B[2]; - - CC[0] = C[1]; - CC[1] = C[2]; - } - else if(maxv == n[1]) - { - AA[0] = A[0]; - AA[1] = A[2]; - - BB[0] = B[0]; - BB[1] = B[2]; - - CC[0] = C[0]; - CC[1] = C[2]; - } - else - { - AA[0] = A[0]; - AA[1] = A[1]; - - BB[0] = B[0]; - BB[1] = B[1]; - - CC[0] = C[0]; - CC[1] = C[1]; - } - - // check orientation - if(! pointPredicate(AA, BB, CC)) - { - tmp = AA; - AA = CC; - CC = tmp; - } - + PointR2 pp; + // foreach intersection target - for(Edge& target : myIntersectionTarget) + for(unsigned int i(0); i < myIntersectionTarget.size(); i++) { + Edge& target = myIntersectionTarget[i]; + + // 2D projection of A ; B ; C + AA[0] = myE1base[i].dot(A); + AA[1] = myE2base[i].dot(A); + + BB[0] = myE1base[i].dot(B); + BB[1] = myE2base[i].dot(B); + + CC[0] = myE1base[i].dot(C); + CC[1] = myE2base[i].dot(C); + + if(! pointPredicate(AA, BB, CC)) + std::swap(AA, CC); + // traverse all voxel of current face bounding box v = bbox.first; for(; v[1] <= bbox.second[1]; v[1]++) @@ -339,18 +326,16 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // check if points are on different side target.myFirst += v; target.mySecond += v; - - VectorR3 d1, d2; - - d1 = A - target.myFirst; - d2 = A - target.mySecond; - + + VectorR3 a2myFirst = A - target.myFirst; + VectorR3 a2mySecond = A - target.mySecond; + VectorR3 w = target.mySecond - target.myFirst; double den = n.dot(w); - - bool isSameSide = d1.dot(n) * d2.dot(n) > 0 - && den != 0; - + + bool isSameSide = den == 0 // target on plane + || ( a2myFirst.dot(n) * a2mySecond.dot(n) > 0 ); // target on one side + // if target is on the same side -> skip current iteration if( isSameSide ) { @@ -358,38 +343,14 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp target.mySecond -= v; continue; } - - // compute intersection point (p) between target intersection and ABC - PointR3 p; - double lambda = -( n.dot(target.myFirst) + d ); - - lambda /= den; - - p[0] = target.myFirst[0] + lambda*w[0]; - p[1] = target.myFirst[1] + lambda*w[1]; - p[2] = target.myFirst[2] + lambda*w[2]; - - // 2d projection of intersection point - if(maxv == n[0]) - { - pp[0] = p[1]; - pp[1] = p[2]; - } - else if(maxv == n[1]) - { - pp[0] = p[0]; - pp[1] = p[2]; - } - else - { - pp[0] = p[0]; - pp[1] = p[1]; - } - + + pp[0] = myE1base[i].dot(target.myFirst); + pp[1] = myE2base[i].dot(target.myFirst); + // check if current voxel projection is inside ABC projection - if(pointIsInside2DTriangle(AA, BB, CC, pp) != 0) + if( pointIsInside2DTriangle(AA, BB, CC, pp) != OUTSIDE ) outputSet.insert(v); - + target.myFirst -= v; target.mySecond -= v; } @@ -409,15 +370,15 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, std::pair bbox; VectorR3 n, e1, e2; PointR3 A, B, C; - + A = a*scaleFactor; B = b*scaleFactor; C = c*scaleFactor; - + e1 = B - A; e2 = C - A; n = e1.crossProduct(e2).getNormalized(); - + //Boundingbox bbox.first = A; bbox.second = A; @@ -425,15 +386,15 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, bbox.first = bbox.first.inf( C ); bbox.second = bbox.second.sup( B ); bbox.second = bbox.second.sup( C ); - + ASSERT( bbox.first <= bbox.second); - + //Rounding the bbox std::transform( bbox.first.begin(), bbox.first.end(), bbox.first.begin(), - [](typename PointR3::Component cc) { return std::floor(cc);}); + [](typename PointR3::Component cc) { return std::floor(cc);}); std::transform( bbox.second.begin(), bbox.second.end(), bbox.second.begin(), - [](typename PointR3::Component cc) { return std::ceil(cc);}); - + [](typename PointR3::Component cc) { return std::ceil(cc);}); + // voxelize current triangle to myDigitalSet voxelizeTriangle( outputSet, A, B, C, n, bbox); } @@ -448,12 +409,13 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, { MeshFace currentFace; std::pair bbox; - + VectorR3 n, e1, e2; PointR3 A, B, C; - + for(unsigned int i = 0; i < aMesh.nbFaces(); i++) { + //std::cout << "\rvoxelize face [" << i << "] out of [" << aMesh.nbFaces() << "]" << std::flush; currentFace = aMesh.getFace(i); voxelize(outputSet, aMesh.getVertex(currentFace[0]), aMesh.getVertex(currentFace[1]), @@ -461,4 +423,3 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, scaleFactor); } } - diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 17164970db..14155515ad 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -38,8 +38,6 @@ using namespace DGtal; using namespace Z3i; -#define SEP 26 - TEST_CASE("Basic voxelization test", "[voxelization]") { using Space3Dint = SpaceND<3>; @@ -49,8 +47,10 @@ TEST_CASE("Basic voxelization test", "[voxelization]") using PointR2 = PointVector<2, double>; using PointZ3 = PointVector<3, int>; using DigitalSet = DigitalSetBySTLSet; - using MeshVoxelizer = MeshVoxelizer< DigitalSet, SEP>; - + + using MeshVoxelizer26 = MeshVoxelizer< DigitalSet, 26>; + using MeshVoxelizer6 = MeshVoxelizer< DigitalSet, 6>; + // --------------------------------------------------------- SECTION("Test distance point/plan 3D") { @@ -58,19 +58,19 @@ TEST_CASE("Basic voxelization test", "[voxelization]") const PointR3 A(38.6908 , 14.5441 , -0.71205); const PointR3 B(34.6171 , 13.5999 , 2.44455); const PointR3 C(37.4205 , 2.44239 , 6.31301); - + // Point v const PointZ3 v(35, 2, 5); - + const VectorR3 e1 = A - B; const VectorR3 e2 = A - C; - - double distance = MeshVoxelizer::distance(A, e1.crossProduct(e2), v); - + + double distance = MeshVoxelizer6::distance(A, e1.crossProduct(e2), v); + REQUIRE( 2.40 < distance ); REQUIRE( distance < 2.41 ); } - + // --------------------------------------------------------- SECTION("Test if 2D point is inside triangle 2D") { @@ -78,83 +78,122 @@ TEST_CASE("Basic voxelization test", "[voxelization]") PointR2 A(1.0, 1.0); PointR2 B(2.0, 3.0); PointR2 C(3.0, 1.0); - + typedef InHalfPlaneBySimple3x3Matrix OrientationFunctor; OrientationFunctor orientationFunctor; - + //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - + if(! pointPredicate(A, B, C)) { PointR2 tmp = A; A = C; C = tmp; } - + // Test if point v is inside triangle ABC // 0 : outside // 1 : inside // 2 : on edge // 3 : on vertex PointR2 v; - + v[0] = 3.0; v[1] = 3.0; - REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 0); // outside - + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 0); // outside + v[0] = 2.0; v[1] = 2.0; - REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 1); // inside - + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 1); // inside + v[0] = 2; v[1] = 1; - REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 2); // on edge - + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 2); // on edge + v[0] = 3; v[1] = 1; - REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 3); // on vertex - + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 3); // on vertex + // another triangle A[0] = -0.891282; A[1] = 9.91201; B[0] = -1.40823; B[1] = 9.91261; C[0] = -1.36963; C[1] = 9.37414; - + v[0] = -1.16961; v[1] = 9.83039; - REQUIRE(MeshVoxelizer::pointIsInside2DTriangle(A, B, C, v) == 1); // inside + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 1); // inside } - + // --------------------------------------------------------- SECTION("Test if 3D point is inside voxel") { // Triangle ABC in R2 PointR3 P(-0.89, 9.91, 0.86); PointZ3 v(-1, 10, 1); - - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside - + + REQUIRE(MeshVoxelizer6::pointIsInsideVoxel(P, v) == true); // inside + P[0] = -1.41; P[1] = 9.91; - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == true); // inside - + REQUIRE(MeshVoxelizer6::pointIsInsideVoxel(P, v) == true); // inside + P[0] = -1.37; P[1] = 9.37; - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside - + REQUIRE(MeshVoxelizer6::pointIsInsideVoxel(P, v) == false); // outside + P[0] = -1.17; P[1] = 9.83; P[2] = 0; - REQUIRE(MeshVoxelizer::pointIsInsideVoxel(P, v) == false); // outside + REQUIRE(MeshVoxelizer6::pointIsInsideVoxel(P, v) == false); // outside + } + + // --------------------------------------------------------- + SECTION("26-sep voxelization of a single triangle") + { + Domain domain(Point(0,0,0), Point(10,10,10)); + DigitalSet outputSet(domain); + MeshVoxelizer26 voxelizer; + voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); + + Display3D<> viewer; + viewer << outputSet; + viewer >> "26_outmesh.off"; + + REQUIRE( outputSet.size() == 46 ); } - + // --------------------------------------------------------- - SECTION("Voxelization of a single triange") + SECTION("6-sep voxelization of a single triangle") { Domain domain(Point(0,0,0), Point(10,10,10)); DigitalSet outputSet(domain); - MeshVoxelizer voxelizer; + MeshVoxelizer6 voxelizer; voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - REQUIRE( outputSet.size() == 12); + + Display3D<> viewer; + viewer << outputSet; + viewer >> "6_outmesh.off"; + + REQUIRE( outputSet.size() == 21 ); } + + // --------------------------------------------------------- + // SECTION("6-sep voxelization of octaflower") + // { + // Mesh aMesh; + // std::string filename = "m_bunny.off"; + // MeshReader::importOFFFile(filename.c_str(), aMesh); + + // int res = 128; + // Domain domain(PointZ3(-res, -res, -res), PointZ3(res, res, res)); + // DigitalSet outputSet(domain); + // MeshVoxelizer6 voxelizer; + + // voxelizer.voxelize(outputSet, aMesh, 128*4); + + // Display3D<> viewer; + // viewer << outputSet; + // viewer >> "6_m_bunny.off"; + // } } From 16b4941c662d9332bde4febaf2e71c8099edf2e7 Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Wed, 7 Jun 2017 10:56:22 +0200 Subject: [PATCH 20/37] fix error on e2 vector base expression --- src/DGtal/shapes/MeshVoxelizer.ih | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 99cb459080..739c63fe4f 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -86,7 +86,7 @@ DGtal::MeshVoxelizer::MeshVoxelizer() auto& z = myNormal[i][2]; myE1base[i] = std::move( VectorR3(-y, x, 0).getNormalized() ); - myE2base[i] = std::move( VectorR3(-x*z, -y*x, x*x + y*y).getNormalized() ); + myE2base[i] = std::move( VectorR3(-x*z, -y*z, x*x + y*y).getNormalized() ); } } } From 614c5e27c638cf0e7fefe6bdc23e0c8f3427cc6f Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Wed, 7 Jun 2017 11:18:20 +0200 Subject: [PATCH 21/37] minor change --- src/DGtal/shapes/MeshVoxelizer.h | 2 +- src/DGtal/shapes/MeshVoxelizer.ih | 12 ++++--- tests/shapes/testMeshVoxelization.cpp | 48 +++++++++++++++------------ 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 157d570bee..747b7b37fa 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -151,7 +151,7 @@ namespace DGtal // ----------------------- Internal services ------------------------------ ///Enum type when deciding if a 2D point belongs to a 2D triangle. - enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE, ONVERTEX}; + enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE, ONVERTEX }; /** * Compute (unsigned) distance between @a p and the Euclidean plane diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 739c63fe4f..72d85934b4 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -80,7 +80,8 @@ DGtal::MeshVoxelizer::MeshVoxelizer() // base myE1base.resize(4); myE2base.resize(4); - for(int i = 0; i < 4; i++) { + for(int i = 0; i < 4; i++) + { auto& x = myNormal[i][0]; auto& y = myNormal[i][1]; auto& z = myNormal[i][2]; @@ -135,9 +136,8 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi // 3 : on vertex if( ( val1 == 0 && val2 == 0 ) || ( val1 == 0 && val3 == 0 ) || - ( val2 == 0 && val3 == 0 ) ) { + ( val2 == 0 && val3 == 0 ) ) return ONVERTEX; - } else if(val1 == 0 || val2 == 0 || val3 == 0) return ONEDGE; else if(val1 < 0 || val2 < 0 || val3 < 0) @@ -185,7 +185,8 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp for(Edge& target : myIntersectionTarget) { // 2D projection of A ; B ; C - if(target.myFirst[0] == 0.5) { + if(target.myFirst[0] == 0.5) + { // ignore X composante AA[0] = A[1]; BB[0] = B[1]; @@ -250,7 +251,8 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp PointR2 pp; // 2d projection of current voxel - if(target.myFirst[0] == 0.5) { + if(target.myFirst[0] == 0.5) + { // ignore X composante pp[0] = v[1]; pp[1] = v[2]; diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 14155515ad..c63482e68a 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -51,6 +51,8 @@ TEST_CASE("Basic voxelization test", "[voxelization]") using MeshVoxelizer26 = MeshVoxelizer< DigitalSet, 26>; using MeshVoxelizer6 = MeshVoxelizer< DigitalSet, 6>; + using TriOr = MeshVoxelizer6::TriangleOrientation; + // --------------------------------------------------------- SECTION("Test distance point/plan 3D") { @@ -101,19 +103,19 @@ TEST_CASE("Basic voxelization test", "[voxelization]") v[0] = 3.0; v[1] = 3.0; - REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 0); // outside + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::OUTSIDE); v[0] = 2.0; v[1] = 2.0; - REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 1); // inside + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::INSIDE); v[0] = 2; v[1] = 1; - REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 2); // on edge + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::ONEDGE); v[0] = 3; v[1] = 1; - REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 3); // on vertex + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::ONVERTEX); // another triangle A[0] = -0.891282; A[1] = 9.91201; @@ -122,7 +124,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") v[0] = -1.16961; v[1] = 9.83039; - REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == 1); // inside + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::INSIDE); } // --------------------------------------------------------- @@ -154,6 +156,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") Domain domain(Point(0,0,0), Point(10,10,10)); DigitalSet outputSet(domain); MeshVoxelizer26 voxelizer; + voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); Display3D<> viewer; @@ -169,6 +172,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") Domain domain(Point(0,0,0), Point(10,10,10)); DigitalSet outputSet(domain); MeshVoxelizer6 voxelizer; + voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); Display3D<> viewer; @@ -179,21 +183,21 @@ TEST_CASE("Basic voxelization test", "[voxelization]") } // --------------------------------------------------------- - // SECTION("6-sep voxelization of octaflower") - // { - // Mesh aMesh; - // std::string filename = "m_bunny.off"; - // MeshReader::importOFFFile(filename.c_str(), aMesh); - - // int res = 128; - // Domain domain(PointZ3(-res, -res, -res), PointZ3(res, res, res)); - // DigitalSet outputSet(domain); - // MeshVoxelizer6 voxelizer; - - // voxelizer.voxelize(outputSet, aMesh, 128*4); - - // Display3D<> viewer; - // viewer << outputSet; - // viewer >> "6_m_bunny.off"; - // } + SECTION("6-sep voxelization of octaflower") + { + Mesh aMesh; + std::string filename = "m_octaflower.off"; + MeshReader::importOFFFile(filename.c_str(), aMesh); + + int res = 128; + Domain domain(PointZ3(-res, -res, -res), PointZ3(res, res, res)); + DigitalSet outputSet(domain); + MeshVoxelizer6 voxelizer; + + voxelizer.voxelize(outputSet, aMesh, res/aMesh.getBoundingBox().second[0]); + + Display3D<> viewer; + viewer << outputSet; + viewer >> "26_m_octaflower.off"; + } } From 86a39eaf2d286f28c7397ec4fdc9c012a2928655 Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Wed, 7 Jun 2017 12:27:07 +0200 Subject: [PATCH 22/37] take off outputSet export to off files on tests --- tests/shapes/testMeshVoxelization.cpp | 46 +++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index c63482e68a..eecfee26cf 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -159,9 +159,9 @@ TEST_CASE("Basic voxelization test", "[voxelization]") voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - Display3D<> viewer; - viewer << outputSet; - viewer >> "26_outmesh.off"; + // Display3D<> viewer; + // viewer << outputSet; + // viewer >> "26_outmesh.off"; REQUIRE( outputSet.size() == 46 ); } @@ -175,29 +175,29 @@ TEST_CASE("Basic voxelization test", "[voxelization]") voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - Display3D<> viewer; - viewer << outputSet; - viewer >> "6_outmesh.off"; + // Display3D<> viewer; + // viewer << outputSet; + // viewer >> "6_outmesh.off"; REQUIRE( outputSet.size() == 21 ); } // --------------------------------------------------------- - SECTION("6-sep voxelization of octaflower") - { - Mesh aMesh; - std::string filename = "m_octaflower.off"; - MeshReader::importOFFFile(filename.c_str(), aMesh); - - int res = 128; - Domain domain(PointZ3(-res, -res, -res), PointZ3(res, res, res)); - DigitalSet outputSet(domain); - MeshVoxelizer6 voxelizer; - - voxelizer.voxelize(outputSet, aMesh, res/aMesh.getBoundingBox().second[0]); - - Display3D<> viewer; - viewer << outputSet; - viewer >> "26_m_octaflower.off"; - } + // SECTION("6-sep voxelization of octaflower") + // { + // Mesh aMesh; + // std::string filename = "m_octaflower.off"; + // MeshReader::importOFFFile(filename.c_str(), aMesh); + + // int res = 128; + // Domain domain(PointZ3(-res, -res, -res), PointZ3(res, res, res)); + // DigitalSet outputSet(domain); + // MeshVoxelizer6 voxelizer; + + // voxelizer.voxelize(outputSet, aMesh, res/aMesh.getBoundingBox().second[0]); + + // Display3D<> viewer; + // viewer << outputSet; + // viewer >> "26_m_octaflower.off"; + // } } From d3f6b016a6a202ba6b33f83a17389ada01e6d24b Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Sat, 10 Jun 2017 18:14:17 +0200 Subject: [PATCH 23/37] refactoring construction and usage of intersection target --- src/DGtal/shapes/MeshVoxelizer.h | 144 +++++++++++++------ src/DGtal/shapes/MeshVoxelizer.ih | 230 ++---------------------------- 2 files changed, 112 insertions(+), 262 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 747b7b37fa..4b61391b98 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -109,7 +109,103 @@ namespace DGtal { PointR3 myFirst, mySecond; Edge() {} - Edge(PointR3 mf, PointR3 ms) : myFirst(mf), mySecond(ms) {} + Edge(const PointR3& mf, const PointR3& ms) : myFirst(mf), mySecond(ms) {} + Edge(const Edge&) = default; + }; + + /** + * Internal Intersection Target structure + * + * @tparam Dimension dimension of the intersection target + * @tparam Separation strategy of the voxelization (6 or 26) + * @tparam Dummy dummy parameter just to be able to specialize inside template class (FIXME with another location) + */ + template + struct IntersectionTarget { }; + + /** + * Specialization for 6-separated with 1D intersection target + */ + template + struct IntersectionTarget<6, 1, Dummy> + { + const std::array myTarget {{ + { { 0.5, 0.0, 0.0 }, { -0.5, 0.0, 0.0} } , // AB + { { 0.0, 0.0, 0.5 }, { 0.0, 0.0, -0.5} } , // CD + { { 0.0, 0.5, 0.0 }, { 0.0, -0.5, 0.0} } // EF + }}; + + const std::array& operator()() { + return myTarget; + } + + const Edge& operator()(int i) { + return myTarget[i]; + } + + PointR2 project(int i, const PointR3& p) const { + ASSERT( 0 <= i && i <= 2 ); + + if(myTarget[i].myFirst[0] == 0.5) + return { p[1], p[2] }; // ignore x + else if(myTarget[i].myFirst[1] == 0.5) + return { p[0], p[2] }; // ignore y + else + return { p[0], p[1] }; // ignore z + } + }; + + /** + * Specialization for 26-separated with 1D intersection target + */ + template + struct IntersectionTarget<26, 1, Dummy> + { + const std::array myTarget {{ + { { -0.5, 0.5, 0.5}, { 0.5, -0.5, -0.5} } , // AG + { { 0.5, 0.5, 0.5}, { -0.5, -0.5, -0.5} } , // BH + { { 0.5, 0.5, -0.5}, { -0.5, -0.5, 0.5} } , // CE + { { -0.5, 0.5, -0.5}, { 0.5, -0.5, 0.5} } // DF + }}; + + std::array myE1base; + std::array myE2base; + + IntersectionTarget<26, 1, Dummy>() + { + double coef = 1. / std::sqrt(3.); + + std::array myNormal; + + myNormal[0] = { coef, -coef, -coef }; + myNormal[1] = { -coef, -coef, -coef }; + myNormal[2] = { -coef, -coef, coef }; + myNormal[3] = { coef, -coef, coef }; + + for(int i = 0; i < 4; i++) + { + auto& x = myNormal[i][0]; + auto& y = myNormal[i][1]; + auto& z = myNormal[i][2]; + + myE1base[i] = std::move( VectorR3(-y, x, 0).getNormalized() ); + myE2base[i] = std::move( VectorR3(-x*z, -y*z, x*x + y*y).getNormalized() ); + } + } + + const std::array& operator()() const { + return myTarget; + } + + const Edge& operator()(int i) const { + return myTarget[i]; + } + + PointR2 project(int i, const PointR3& p) const { + ASSERT( 0 <= i && i <= 3 ); + + return { myE1base[i].dot(p), myE2base[i].dot(p) }; + } }; public: @@ -117,7 +213,7 @@ namespace DGtal /** * Constructor of the voxelizer */ - MeshVoxelizer(); + MeshVoxelizer() = default; // ----------------------- Standard services ------------------------------ /** @@ -200,44 +296,6 @@ namespace DGtal * @param bbox bounding box of ABC */ void voxelizeTriangle(DigitalSet &outputSet, - const PointR3& A, - const PointR3& B, - const PointR3& C, - const VectorR3& n, - const std::pair& bbox) - { - // tag dispatching - voxelizeTriangle(outputSet, std::integral_constant{}, A, B, C, n, bbox); - } - - /** - * VoxelizeTriangle specialization for 6-separated - * @param [out] outputSet the set that collects the voxels. - * @param A Point A - * @param B Point B - * @param C Point C - * @param n normal of ABC - * @param bbox bounding box of ABC - */ - void voxelizeTriangle(DigitalSet &outputSet, - std::integral_constant, - const PointR3& A, - const PointR3& B, - const PointR3& C, - const VectorR3& n, - const std::pair& bbox); - - /** - * VoxelizeTriangle specialization for 26-separated - * @param [out] outputSet the set that collects the voxels. - * @param A Point A - * @param B Point B - * @param C Point C - * @param n normal of ABC - * @param bbox bounding box of ABC - */ - void voxelizeTriangle(DigitalSet &outputSet, - std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, @@ -249,11 +307,7 @@ namespace DGtal private: ///Intersection target - std::vector myIntersectionTarget; - - //For 26 separation - std::vector myE1base; - std::vector myE2base; + IntersectionTarget myIntersectionTarget; }; } diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 72d85934b4..c51800df24 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -31,67 +31,6 @@ ///////////////////////////////////////////////////////////////////////////// // ----------------------- Standard services -------------------------------- -// --------------------------------------------------------- -template -inline -DGtal::MeshVoxelizer::MeshVoxelizer() -{ - - if(Separation == 6) - { - // 26 connected - 6 separated - PointR3 AA(0.5, 0, 0); - PointR3 BB(-0.5, 0, 0); - PointR3 CC(0, 0, 0.5); - PointR3 DD(0, 0, -0.5); - PointR3 EE(0, 0.5, 0); - PointR3 FF(0, -0.5, 0); - - myIntersectionTarget.push_back( Edge(AA, BB) ); - myIntersectionTarget.push_back( Edge(CC, DD) ); - myIntersectionTarget.push_back( Edge(EE, FF) ); - } - else if(Separation == 26) - { - // 6 connected - 26 separated - PointR3 AA(-0.5, 0.5, 0.5); - PointR3 BB(0.5, 0.5, 0.5); - PointR3 CC(0.5, 0.5, -0.5); - PointR3 DD(-0.5, 0.5, -0.5); - PointR3 EE(-0.5, -0.5, 0.5); - PointR3 FF(0.5, -0.5, 0.5); - PointR3 GG(0.5, -0.5, -0.5); - PointR3 HH(-0.5, -0.5, -0.5); - - myIntersectionTarget.push_back( Edge(AA, GG) ); - myIntersectionTarget.push_back( Edge(BB, HH) ); - myIntersectionTarget.push_back( Edge(CC, EE) ); - myIntersectionTarget.push_back( Edge(DD, FF) ); - - // compute base foreach normal - - // normal - std::vector myNormal(4); - myNormal[0] = VectorR3( 1, -1, -1).getNormalized(); // AG - myNormal[1] = VectorR3(-1, -1, -1).getNormalized(); // BH - myNormal[2] = VectorR3(-1, -1, 1).getNormalized(); // CE - myNormal[3] = VectorR3( 1, -1, 1).getNormalized(); // DF - - // base - myE1base.resize(4); - myE2base.resize(4); - for(int i = 0; i < 4; i++) - { - auto& x = myNormal[i][0]; - auto& y = myNormal[i][1]; - auto& z = myNormal[i][2]; - - myE1base[i] = std::move( VectorR3(-y, x, 0).getNormalized() ); - myE2base[i] = std::move( VectorR3(-x*z, -y*z, x*x + y*y).getNormalized() ); - } - } -} - // --------------------------------------------------------- template inline @@ -153,12 +92,13 @@ bool DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, const PointZ3& v) { + bool isInside = true; + PointR3 PP = P - v; for(int i(0); i < 3; i++) - if(! (-0.5 <= PP[i] && PP[i] <= 0.5) ) - return false; + isInside = isInside && ( -0.5 <= PP[i] && PP[i] <= 0.5 ); - return true; + return isInside; } // --------------------------------------------------------- @@ -166,7 +106,6 @@ template inline void DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outputSet, - std::integral_constant, const PointR3& A, const PointR3& B, const PointR3& C, @@ -178,153 +117,25 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp //geometric predicate PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - PointR2 AA, BB, CC; - PointZ3 v; - // foreach intersection target - for(Edge& target : myIntersectionTarget) + for(unsigned int i(0); i < myIntersectionTarget().size(); i++) { // 2D projection of A ; B ; C - if(target.myFirst[0] == 0.5) - { - // ignore X composante - AA[0] = A[1]; - BB[0] = B[1]; - CC[0] = C[1]; - - AA[1] = A[2]; - BB[1] = B[2]; - CC[1] = C[2]; - } - else if(target.myFirst[1] == 0.5) - { - // ignore Y composante - AA[0] = A[0]; - BB[0] = B[0]; - CC[0] = C[0]; - - AA[1] = A[2]; - BB[1] = B[2]; - CC[1] = C[2]; - } - else - { - // ignore Z composante - AA[0] = A[0]; - BB[0] = B[0]; - CC[0] = C[0]; - - AA[1] = A[1]; - BB[1] = B[1]; - CC[1] = C[1]; - } + PointR2 AA = myIntersectionTarget.project(i, A); + PointR2 BB = myIntersectionTarget.project(i, B); + PointR2 CC = myIntersectionTarget.project(i, C); // check orientation if(! pointPredicate(AA, BB, CC)) std::swap(AA, CC); // traverse all voxel of current face bounding box - v = bbox.first; - for(; v[1] <= bbox.second[1]; v[1]++) - for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) - for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) - { - // check if points are on different side - target.myFirst += v; - target.mySecond += v; - - VectorR3 a2myFirst = A - target.myFirst; - VectorR3 a2mySecond = A - target.mySecond; - - VectorR3 w = target.mySecond - target.myFirst; - double den = n.dot(w); - - bool isSameSide = den == 0 // target on plane - || ( a2myFirst.dot(n) * a2mySecond.dot(n) > 0 ); // target on one side - - target.myFirst -= v; - target.mySecond -= v; - - if( isSameSide ) - continue; - - PointR2 pp; - - // 2d projection of current voxel - if(target.myFirst[0] == 0.5) - { - // ignore X composante - pp[0] = v[1]; - pp[1] = v[2]; - } - else if(target.myFirst[1] == 0.5) - { - // ignore Y composante - pp[0] = v[0]; - pp[1] = v[2]; - } - else - { - // ignore Z composante - pp[0] = v[0]; - pp[1] = v[1]; - } - - // check if current voxel projection is inside ABC projection - if(pointIsInside2DTriangle(AA, BB, CC, pp) != OUTSIDE) - outputSet.insert(v); - } - } -} - -// --------------------------------------------------------- -template -inline -void -DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outputSet, - std::integral_constant, - const PointR3& A, - const PointR3& B, - const PointR3& C, - const VectorR3& n, - const std::pair& bbox) -{ - OrientationFunctor orientationFunctor; - - //geometric predicate - PredicateFromOrientationFunctor2 pointPredicate( orientationFunctor ); - - double d = n[0] * C[0] + n[1] * C[1] + n[2] * C[2]; - d *= -1; - - PointR2 AA, BB, CC; - PointZ3 v; - PointR2 pp; - - // foreach intersection target - for(unsigned int i(0); i < myIntersectionTarget.size(); i++) - { - Edge& target = myIntersectionTarget[i]; - - // 2D projection of A ; B ; C - AA[0] = myE1base[i].dot(A); - AA[1] = myE2base[i].dot(A); - - BB[0] = myE1base[i].dot(B); - BB[1] = myE2base[i].dot(B); - - CC[0] = myE1base[i].dot(C); - CC[1] = myE2base[i].dot(C); - - if(! pointPredicate(AA, BB, CC)) - std::swap(AA, CC); - - // traverse all voxel of current face bounding box - v = bbox.first; + PointZ3 v = bbox.first; for(; v[1] <= bbox.second[1]; v[1]++) for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) { + Edge target = myIntersectionTarget(i); // check if points are on different side target.myFirst += v; target.mySecond += v; @@ -340,21 +151,13 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // if target is on the same side -> skip current iteration if( isSameSide ) - { - target.myFirst -= v; - target.mySecond -= v; continue; - } - pp[0] = myE1base[i].dot(target.myFirst); - pp[1] = myE2base[i].dot(target.myFirst); + PointR2 pp = myIntersectionTarget.project(i, v); // check if current voxel projection is inside ABC projection - if( pointIsInside2DTriangle(AA, BB, CC, pp) != OUTSIDE ) + if(pointIsInside2DTriangle(AA, BB, CC, pp) != OUTSIDE) outputSet.insert(v); - - target.myFirst -= v; - target.mySecond -= v; } } } @@ -409,16 +212,9 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, const Mesh &aMesh, const double scaleFactor) { - MeshFace currentFace; - std::pair bbox; - - VectorR3 n, e1, e2; - PointR3 A, B, C; - for(unsigned int i = 0; i < aMesh.nbFaces(); i++) { - //std::cout << "\rvoxelize face [" << i << "] out of [" << aMesh.nbFaces() << "]" << std::flush; - currentFace = aMesh.getFace(i); + MeshFace currentFace = aMesh.getFace(i); voxelize(outputSet, aMesh.getVertex(currentFace[0]), aMesh.getVertex(currentFace[1]), aMesh.getVertex(currentFace[2]), From 04c0d5147041c811a1f3b5b9dd3a837bdbc3ff6d Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Sun, 11 Jun 2017 22:08:18 +0200 Subject: [PATCH 24/37] separation of intersection target implementation --- src/DGtal/shapes/IntersectionTarget.h | 226 ++++++++++++++++++++++++++ src/DGtal/shapes/MeshVoxelizer.h | 110 +------------ src/DGtal/shapes/MeshVoxelizer.ih | 2 +- tests/shapes/testMeshVoxelization.cpp | 27 --- 4 files changed, 230 insertions(+), 135 deletions(-) create mode 100644 src/DGtal/shapes/IntersectionTarget.h diff --git a/src/DGtal/shapes/IntersectionTarget.h b/src/DGtal/shapes/IntersectionTarget.h new file mode 100644 index 0000000000..7701a5327b --- /dev/null +++ b/src/DGtal/shapes/IntersectionTarget.h @@ -0,0 +1,226 @@ +/** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + **/ + +#pragma once + +/** + * @file IntersectionTarget.h + * @brief Description of intersection target according to separation and dimensions + * @date 2017/06/11 + * + * + * This file is part of the DGtal library. + */ + +#if !defined IntersectionTarget_h +/** Prevents repeated inclusion of headers. */ +#define IntersectionTarget_h + +#include "DGtal/helpers/StdDefs.h" +#include "DGtal/base/ConstAlias.h" +#include "DGtal/shapes/Mesh.h" +#include "DGtal/shapes/IntersectionTarget.h" +#include "DGtal/kernel/SpaceND.h" +#include "DGtal/kernel/sets/CDigitalSet.h" +#include "DGtal/geometry/tools/determinant/PredicateFromOrientationFunctor2.h" +#include "DGtal/geometry/tools/determinant/InHalfPlaneBySimple3x3Matrix.h" + +namespace DGtal +{ + + ///////////////////////////////////////////////////////////////////////////// + /** + Description of template class 'IntersectionTarget' + + \brief Aim: A class for intersection target used on voxelization + + @tparam TSpace space of the digitalset + @tparam TSeparation strategy of the voxelization (6 or 26) + @tparam TDimension dimension of the intersection target + */ + template + struct IntersectionTargetTrait + { + ///Digital Set dimension Checking + BOOST_STATIC_ASSERT_MSG( TSpace::dimension == 3, "DigitalSet dimension must be 3"); + + ///Separation Checking + BOOST_STATIC_ASSERT_MSG( TSeparation == 6 || TSeparation == 26, "Separation must be 6 or 26"); + + ///Dimension of the intersection target checking + BOOST_STATIC_ASSERT_MSG( TDimension == 1, "Currently only 1D intersection target is implemented"); + + /** + * Remove of default constructor + */ + IntersectionTargetTrait() = delete; + + ///Internal intersection target structure + template + struct IntersectionTarget; + + /****** Associated types *********************/ + using Space2D = SpaceND<2, typename TSpace::Integer>; + using PointR3 = typename TSpace::RealPoint; + using VectorR3 = typename TSpace::RealPoint; + using PointR2 = typename Space2D::RealPoint; + using Type = IntersectionTarget; + /*********************************************/ + + ///Internal Edge structure + struct Edge + { + PointR3 myFirst, mySecond; + Edge() = default; + Edge(const Edge&) = default; + Edge(const PointR3& mf, const PointR3& ms) : myFirst(mf), mySecond(ms) {} + }; + + /** + * Specialization for 6-separated with 1D intersection target + */ + template + struct IntersectionTarget + { + // ----------------------- Members ------------------------------ + + ///Target + const std::array myTarget {{ + { { 0.5, 0.0, 0.0 }, { -0.5, 0.0, 0.0} } , // AB + { { 0.0, 0.0, 0.5 }, { 0.0, 0.0, -0.5} } , // CD + { { 0.0, 0.5, 0.0 }, { 0.0, -0.5, 0.0} } // EF + }}; + + // ----------------------- Standard services -------------------- + + /** + * Get definition of the target + * @return intersection target + */ + const std::array& operator()() { + return myTarget; + } + + /** + * Get edge of index i + * @param i index + * @return intersection target + */ + const Edge& operator()(int i) { + return myTarget[i]; + } + + /** + * 2D Projection of 3D point on plane with normal represented by edge of index i + * @param i index of target's edge representing the normal of the plane for the projection + * @param p 3d point + * @return 2d point + */ + PointR2 project(int i, const PointR3& p) const { + ASSERT( 0 <= i && i <= 2 ); + + if(myTarget[i].myFirst[0] == 0.5) + return { p[1], p[2] }; // ignore x + else if(myTarget[i].myFirst[1] == 0.5) + return { p[0], p[2] }; // ignore y + else + return { p[0], p[1] }; // ignore z + } + }; + + /** + * Specialization for 26-separated with 1D intersection target + */ + template + struct IntersectionTarget + { + // ----------------------- Members ------------------------------ + + ///Target + const std::array myTarget {{ + { { -0.5, 0.5, 0.5}, { 0.5, -0.5, -0.5} } , // AG + { { 0.5, 0.5, 0.5}, { -0.5, -0.5, -0.5} } , // BH + { { 0.5, 0.5, -0.5}, { -0.5, -0.5, 0.5} } , // CE + { { -0.5, 0.5, -0.5}, { 0.5, -0.5, 0.5} } // DF + }}; + + ///E2 base for each target's edge + std::array myE1base; + + ///E2 base for each target's edge + std::array myE2base; + + /** + * Default constructor + */ + IntersectionTarget() + { + const double coef = 1. / std::sqrt(3.); + + std::array myNormal {{ + { coef, -coef, -coef } , + { -coef, -coef, -coef } , + { -coef, -coef, coef } , + { coef, -coef, coef } + }}; + + // computation of each e1/e2 bases foreach normal + for(int i = 0; i < 4; i++) + { + auto& x = myNormal[i][0]; + auto& y = myNormal[i][1]; + auto& z = myNormal[i][2]; + + myE1base[i] = std::move( VectorR3(-y, x, 0).getNormalized() ); + myE2base[i] = std::move( VectorR3(-x*z, -y*z, x*x + y*y).getNormalized() ); + } + } + + // ----------------------- Standard services -------------------- + + /** + * Get definition of the target + * @return intersection target + */ + const std::array& operator()() const { + return myTarget; + } + + /** + * Get edge of index i + * @param i index + * @return intersection target + */ + const Edge& operator()(int i) const { + return myTarget[i]; + } + + /** + * 2D Projection of 3D point on plane with normal represented by edge of index i + * @param i index of target's edge representing the normal of the plane for the projection + * @param p 3d point + * @return 2d point + */ + PointR2 project(int i, const PointR3& p) const { + ASSERT( 0 <= i && i <= 3 ); + + return { myE1base[i].dot(p), myE2base[i].dot(p) }; + } + }; + }; +} + +#endif // !defined MeshVoxelizer_h diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 4b61391b98..774eb57789 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -35,6 +35,7 @@ #include "DGtal/helpers/StdDefs.h" #include "DGtal/base/ConstAlias.h" #include "DGtal/shapes/Mesh.h" +#include "DGtal/shapes/IntersectionTarget.h" #include "DGtal/kernel/SpaceND.h" #include "DGtal/kernel/sets/CDigitalSet.h" #include "DGtal/geometry/tools/determinant/PredicateFromOrientationFunctor2.h" @@ -100,114 +101,9 @@ namespace DGtal using PointR2 = typename Space2D::RealPoint; using PointZ3 = typename Space::Point; using OrientationFunctor = InHalfPlaneBySimple3x3Matrix; + using IntersectionTarget = typename IntersectionTargetTrait::Type; /*********************************************/ - private: - - ///Internal Edge structure - struct Edge - { - PointR3 myFirst, mySecond; - Edge() {} - Edge(const PointR3& mf, const PointR3& ms) : myFirst(mf), mySecond(ms) {} - Edge(const Edge&) = default; - }; - - /** - * Internal Intersection Target structure - * - * @tparam Dimension dimension of the intersection target - * @tparam Separation strategy of the voxelization (6 or 26) - * @tparam Dummy dummy parameter just to be able to specialize inside template class (FIXME with another location) - */ - template - struct IntersectionTarget { }; - - /** - * Specialization for 6-separated with 1D intersection target - */ - template - struct IntersectionTarget<6, 1, Dummy> - { - const std::array myTarget {{ - { { 0.5, 0.0, 0.0 }, { -0.5, 0.0, 0.0} } , // AB - { { 0.0, 0.0, 0.5 }, { 0.0, 0.0, -0.5} } , // CD - { { 0.0, 0.5, 0.0 }, { 0.0, -0.5, 0.0} } // EF - }}; - - const std::array& operator()() { - return myTarget; - } - - const Edge& operator()(int i) { - return myTarget[i]; - } - - PointR2 project(int i, const PointR3& p) const { - ASSERT( 0 <= i && i <= 2 ); - - if(myTarget[i].myFirst[0] == 0.5) - return { p[1], p[2] }; // ignore x - else if(myTarget[i].myFirst[1] == 0.5) - return { p[0], p[2] }; // ignore y - else - return { p[0], p[1] }; // ignore z - } - }; - - /** - * Specialization for 26-separated with 1D intersection target - */ - template - struct IntersectionTarget<26, 1, Dummy> - { - const std::array myTarget {{ - { { -0.5, 0.5, 0.5}, { 0.5, -0.5, -0.5} } , // AG - { { 0.5, 0.5, 0.5}, { -0.5, -0.5, -0.5} } , // BH - { { 0.5, 0.5, -0.5}, { -0.5, -0.5, 0.5} } , // CE - { { -0.5, 0.5, -0.5}, { 0.5, -0.5, 0.5} } // DF - }}; - - std::array myE1base; - std::array myE2base; - - IntersectionTarget<26, 1, Dummy>() - { - double coef = 1. / std::sqrt(3.); - - std::array myNormal; - - myNormal[0] = { coef, -coef, -coef }; - myNormal[1] = { -coef, -coef, -coef }; - myNormal[2] = { -coef, -coef, coef }; - myNormal[3] = { coef, -coef, coef }; - - for(int i = 0; i < 4; i++) - { - auto& x = myNormal[i][0]; - auto& y = myNormal[i][1]; - auto& z = myNormal[i][2]; - - myE1base[i] = std::move( VectorR3(-y, x, 0).getNormalized() ); - myE2base[i] = std::move( VectorR3(-x*z, -y*z, x*x + y*y).getNormalized() ); - } - } - - const std::array& operator()() const { - return myTarget; - } - - const Edge& operator()(int i) const { - return myTarget[i]; - } - - PointR2 project(int i, const PointR3& p) const { - ASSERT( 0 <= i && i <= 3 ); - - return { myE1base[i].dot(p), myE2base[i].dot(p) }; - } - }; - public: /** @@ -307,7 +203,7 @@ namespace DGtal private: ///Intersection target - IntersectionTarget myIntersectionTarget; + IntersectionTarget myIntersectionTarget; }; } diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index c51800df24..69d1d9449f 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -135,7 +135,7 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp for(v[0] = bbox.first[0]; v[0] <= bbox.second[0]; v[0]++) for(v[2] = bbox.first[2]; v[2] <= bbox.second[2]; v[2]++) { - Edge target = myIntersectionTarget(i); + auto target = myIntersectionTarget(i); // check if points are on different side target.myFirst += v; target.mySecond += v; diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index eecfee26cf..11f49f0733 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -159,10 +159,6 @@ TEST_CASE("Basic voxelization test", "[voxelization]") voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - // Display3D<> viewer; - // viewer << outputSet; - // viewer >> "26_outmesh.off"; - REQUIRE( outputSet.size() == 46 ); } @@ -175,29 +171,6 @@ TEST_CASE("Basic voxelization test", "[voxelization]") voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - // Display3D<> viewer; - // viewer << outputSet; - // viewer >> "6_outmesh.off"; - REQUIRE( outputSet.size() == 21 ); } - - // --------------------------------------------------------- - // SECTION("6-sep voxelization of octaflower") - // { - // Mesh aMesh; - // std::string filename = "m_octaflower.off"; - // MeshReader::importOFFFile(filename.c_str(), aMesh); - - // int res = 128; - // Domain domain(PointZ3(-res, -res, -res), PointZ3(res, res, res)); - // DigitalSet outputSet(domain); - // MeshVoxelizer6 voxelizer; - - // voxelizer.voxelize(outputSet, aMesh, res/aMesh.getBoundingBox().second[0]); - - // Display3D<> viewer; - // viewer << outputSet; - // viewer >> "26_m_octaflower.off"; - // } } From d2711ffb80f0ca18f2b08aab8482fd38590a1839 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Tue, 5 Sep 2017 17:02:35 +0200 Subject: [PATCH 25/37] Update Shapes.cpp --- src/Board/Shapes.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Board/Shapes.cpp b/src/Board/Shapes.cpp index a5e87313c0..7a6817fd97 100644 --- a/src/Board/Shapes.cpp +++ b/src/Board/Shapes.cpp @@ -1,4 +1,3 @@ -/* -*- mode: c++ -*- */ /** * @file Shapes.cpp * @author Sebastien Fourey From 92c1b8e8c74e4fde3c1f9ce4b65250f063983a42 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Tue, 31 Oct 2017 15:17:41 +0100 Subject: [PATCH 26/37] unit test + naive triangulation --- src/Board/Shapes.cpp | 26 +---------------- src/DGtal/shapes/Mesh.ih | 3 +- src/DGtal/shapes/MeshVoxelizer.h | 8 +++-- src/DGtal/shapes/MeshVoxelizer.ih | 42 +++++++++++++++------------ tests/shapes/testMeshVoxelization.cpp | 38 ++++++++++++++++++++++-- 5 files changed, 67 insertions(+), 50 deletions(-) diff --git a/src/Board/Shapes.cpp b/src/Board/Shapes.cpp index a5e87313c0..0a29de8718 100644 --- a/src/Board/Shapes.cpp +++ b/src/Board/Shapes.cpp @@ -2078,31 +2078,7 @@ Rectangle::flushTikZ( std::ostream & stream, stream << "\\path[" << tikzProperties(transform) << "] (" << _path[0].x << ',' << _path[0].y << ')' << " rectangle (" - << _path[1].x << ',' << _path[3].y << "); " - << std::endl; -/* - if ( _path[0].y == _path[1].y ) { - stream << "" << std::endl; - } else { - Point v = _path[1] - _path[0]; - v /= v.norm(); - double angle = ( _path[1].y > _path[0].y ) ? acos( v * Point(1,0) ) : -acos( v * Point( 1, 0 ) ); - angle = ( angle * 180 ) / M_PI; - stream << "" << std::endl; - } - */ + << _path[1].x << ',' << _path[3].y << "); "; } /* diff --git a/src/DGtal/shapes/Mesh.ih b/src/DGtal/shapes/Mesh.ih index 497e1b2089..33175bf43c 100644 --- a/src/DGtal/shapes/Mesh.ih +++ b/src/DGtal/shapes/Mesh.ih @@ -730,7 +730,8 @@ DGtal::Mesh::createMeshFromHeightSequence(Mesh &aMesh, const st posY++; } // Generating faces... - i = 0, posY = 0; + i = 0; + posY = 0; while(i+lengthSequence-1 < anValueSequence.size() - lengthSequence){ for(unsigned int j = 0; j < lengthSequence-1; j++, i++){ aMesh.addQuadFace(nbVertexInitial+i, nbVertexInitial+i+1, diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index 774eb57789..ed545dcf2b 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -58,7 +58,7 @@ namespace DGtal the digitization of an Euclidean plane is such that no 6-path exists to go from one side to the other of the Euclidean plane (see @cite KletteRosenfeld_book). - + From the separability parameter, a template is constructed. A voxel belongs to the digitization if and only if the template centered at a given voxel intersects the triangle. @@ -75,7 +75,7 @@ namespace DGtal @tparam TDigitalSet a DigitalSet (model of concepts::CDigitalSet) @tparam Separation strategy of the voxelization (6 or 26) */ - template + template class MeshVoxelizer { @@ -114,6 +114,9 @@ namespace DGtal // ----------------------- Standard services ------------------------------ /** * Voxelize the mesh into the digital set. + * @warning if the mesh has non-trianuglar faces, we naively triangulate + * using a triangle fan at zero. If the face is not convex, the output + * will not be correct. * * @param [out] outputSet the set that collects the voxels. * @param [in] aMesh the mesh to voxelize @@ -141,7 +144,6 @@ namespace DGtal // ----------------------- Internal services ------------------------------ - ///Enum type when deciding if a 2D point belongs to a 2D triangle. enum TriangleOrientation { OUTSIDE, INSIDE, ONEDGE, ONVERTEX }; diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 69d1d9449f..78caa60d37 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -32,12 +32,12 @@ // ----------------------- Standard services -------------------------------- // --------------------------------------------------------- -template +template inline double -DGtal::MeshVoxelizer::distance(const PointR3& M, - const VectorR3& n, - const PointZ3& voxel) +DGtal::MeshVoxelizer::distance(const PointR3& M, + const VectorR3& n, + const PointZ3& voxel) { ASSERT( n.norm()!=0 ); double distance = 0.; @@ -54,9 +54,9 @@ DGtal::MeshVoxelizer::distance(const PointR3& M, } // --------------------------------------------------------- -template +template inline -typename DGtal::MeshVoxelizer::TriangleOrientation +typename DGtal::MeshVoxelizer::TriangleOrientation DGtal::MeshVoxelizer::pointIsInside2DTriangle(const PointR2& A, const PointR2& B, const PointR2& C, @@ -86,7 +86,7 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi } // --------------------------------------------------------- -template +template inline bool DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& P, @@ -102,7 +102,7 @@ DGtal::MeshVoxelizer::pointIsInsideVoxel(const PointR3& } // --------------------------------------------------------- -template +template inline void DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outputSet, @@ -163,14 +163,14 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp } // --------------------------------------------------------- -template +template inline void -DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, - const PointR3 &a, - const PointR3 &b, - const PointR3 &c, - const double scaleFactor) +DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, + const PointR3 &a, + const PointR3 &b, + const PointR3 &c, + const double scaleFactor) { std::pair bbox; VectorR3 n, e1, e2; @@ -205,19 +205,23 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, } // --------------------------------------------------------- -template +template inline void DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, const Mesh &aMesh, const double scaleFactor) { +#pragma omp parallel for schedule(dynamic) for(unsigned int i = 0; i < aMesh.nbFaces(); i++) { MeshFace currentFace = aMesh.getFace(i); - voxelize(outputSet, aMesh.getVertex(currentFace[0]), - aMesh.getVertex(currentFace[1]), - aMesh.getVertex(currentFace[2]), - scaleFactor); + for(auto i=0; i + 2 < currentFace.size(); ++i) + { + voxelize(outputSet, aMesh.getVertex(currentFace[0]), + aMesh.getVertex(currentFace[i+1]), + aMesh.getVertex(currentFace[i+2]), + scaleFactor); + } } } diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 11f49f0733..0f2a238e62 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -27,12 +27,15 @@ /////////////////////////////////////////////////////////////////////////////// #include +#include "ConfigTest.h" #include "DGtalCatch.h" #include "DGtal/shapes/MeshVoxelizer.h" #include "DGtal/kernel/sets/CDigitalSet.h" #include "DGtal/kernel/domains/HyperRectDomain.h" #include "DGtal/io/readers/MeshReader.h" #include "DGtal/io/Display3D.h" +#include "DGtal/io/readers/MeshReader.h" +#include "DGtal/io/boards/Board3D.h" /////////////////////////////////////////////////////////////////////////////// using namespace DGtal; @@ -158,7 +161,11 @@ TEST_CASE("Basic voxelization test", "[voxelization]") MeshVoxelizer26 voxelizer; voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - + Board3D board; + for(auto p: outputSet) + board << p ; + board.saveOBJ("triangle26-dig.obj"); + REQUIRE( outputSet.size() == 46 ); } @@ -170,7 +177,34 @@ TEST_CASE("Basic voxelization test", "[voxelization]") MeshVoxelizer6 voxelizer; voxelizer.voxelize(outputSet, Point(5,0,0), Point(0,5,0), Point(0,0,5)); - + Board3D board; + for(auto p: outputSet) + board << p ; + board.saveOBJ("triangle6-dig.obj"); + REQUIRE( outputSet.size() == 21 ); } + + // --------------------------------------------------------- + SECTION("6-sep voxelization of a OFF cube mesh") + { + //Importing OFF mesh + Mesh inputMesh; + MeshReader::importOFFFile(testPath +"/samples/box.off" , inputMesh); + Z3i::Domain domain( Point().diagonal(-30), Point().diagonal(30)); + DigitalSet outputSet(domain); + MeshVoxelizer6 voxelizer; + + CAPTURE(inputMesh.nbFaces()); + + voxelizer.voxelize(outputSet, inputMesh, 10.0 ); + Board3D board; + for(auto p: outputSet) + board << p ; + board.saveOBJ("box-dig.obj"); + + CAPTURE(outputSet.size()); + //hard coded test. + REQUIRE( outputSet.size() == 2566 ); + } } From 01ab2a8b1e5a367cd89be6036a76c7f5ec1c89ee Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Tue, 31 Oct 2017 15:23:28 +0100 Subject: [PATCH 27/37] box26 test --- tests/shapes/testMeshVoxelization.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 0f2a238e62..0ee84ae46a 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -201,10 +201,32 @@ TEST_CASE("Basic voxelization test", "[voxelization]") Board3D board; for(auto p: outputSet) board << p ; - board.saveOBJ("box-dig.obj"); + board.saveOBJ("box6-dig.obj"); CAPTURE(outputSet.size()); //hard coded test. REQUIRE( outputSet.size() == 2566 ); } + // --------------------------------------------------------- + SECTION("26-sep voxelization of a OFF cube mesh") + { + //Importing OFF mesh + Mesh inputMesh; + MeshReader::importOFFFile(testPath +"/samples/box.off" , inputMesh); + Z3i::Domain domain( Point().diagonal(-30), Point().diagonal(30)); + DigitalSet outputSet(domain); + MeshVoxelizer26 voxelizer; + + CAPTURE(inputMesh.nbFaces()); + + voxelizer.voxelize(outputSet, inputMesh, 10.0 ); + Board3D board; + for(auto p: outputSet) + board << p ; + board.saveOBJ("box26-dig.obj"); + + CAPTURE(outputSet.size()); + //hard coded test. + REQUIRE( outputSet.size() == 4162 ); + } } From 4fcd2d3a929c3d6f401f65b4ed85266b7cbdc6c3 Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Fri, 3 Nov 2017 13:55:50 +0100 Subject: [PATCH 28/37] Minor fix about omp race condition and shadowed declaration --- src/DGtal/shapes/IntersectionTarget.h | 2 +- src/DGtal/shapes/MeshVoxelizer.ih | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/DGtal/shapes/IntersectionTarget.h b/src/DGtal/shapes/IntersectionTarget.h index 7701a5327b..48bd8dd736 100644 --- a/src/DGtal/shapes/IntersectionTarget.h +++ b/src/DGtal/shapes/IntersectionTarget.h @@ -157,7 +157,7 @@ namespace DGtal { { -0.5, 0.5, -0.5}, { 0.5, -0.5, 0.5} } // DF }}; - ///E2 base for each target's edge + ///E1 base for each target's edge std::array myE1base; ///E2 base for each target's edge diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 78caa60d37..a7fc2955d2 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -212,16 +212,24 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, const Mesh &aMesh, const double scaleFactor) { + DigitalSet rawEmpty{outputSet.domain()}; + #pragma omp parallel for schedule(dynamic) for(unsigned int i = 0; i < aMesh.nbFaces(); i++) { + DigitalSet currentSet{rawEmpty}; MeshFace currentFace = aMesh.getFace(i); - for(auto i=0; i + 2 < currentFace.size(); ++i) + for(unsigned int j=0; j + 2 < currentFace.size(); ++j) { - voxelize(outputSet, aMesh.getVertex(currentFace[0]), - aMesh.getVertex(currentFace[i+1]), - aMesh.getVertex(currentFace[i+2]), + voxelize(currentSet, aMesh.getVertex(currentFace[0]), + aMesh.getVertex(currentFace[j+1]), + aMesh.getVertex(currentFace[j+2]), scaleFactor); } + + #pragma omp critical + { + outputSet += currentSet; + } } } From 71cf9c46fe571bca5e5b7508fad81242964eaa3a Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Tue, 7 Nov 2017 12:18:01 +0100 Subject: [PATCH 29/37] Fix wrong predicate order on pointIsInside2DTriangle --- src/DGtal/shapes/MeshVoxelizer.ih | 12 ++++++------ tests/shapes/testMeshVoxelization.cpp | 23 +++++++++++++---------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index a7fc2955d2..0da150dfff 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -73,14 +73,14 @@ DGtal::MeshVoxelizer::pointIsInside2DTriangle(const Poi // 1 : inside // 2 : on edge // 3 : on vertex - if( ( val1 == 0 && val2 == 0 ) || - ( val1 == 0 && val3 == 0 ) || - ( val2 == 0 && val3 == 0 ) ) + if( ( val1 == 0. && val2 == 0. ) || + ( val1 == 0. && val3 == 0. ) || + ( val2 == 0. && val3 == 0. ) ) return ONVERTEX; - else if(val1 == 0 || val2 == 0 || val3 == 0) - return ONEDGE; - else if(val1 < 0 || val2 < 0 || val3 < 0) + else if(val1 < 0. || val2 < 0. || val3 < 0.) return OUTSIDE; + else if(val1 == 0. || val2 == 0. || val3 == 0.) + return ONEDGE; else return INSIDE; } diff --git a/tests/shapes/testMeshVoxelization.cpp b/tests/shapes/testMeshVoxelization.cpp index 0ee84ae46a..7c2bcb93f7 100755 --- a/tests/shapes/testMeshVoxelization.cpp +++ b/tests/shapes/testMeshVoxelization.cpp @@ -92,9 +92,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") if(! pointPredicate(A, B, C)) { - PointR2 tmp = A; - A = C; - C = tmp; + std::swap(A, C); } // Test if point v is inside triangle ABC @@ -120,13 +118,18 @@ TEST_CASE("Basic voxelization test", "[voxelization]") v[1] = 1; REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::ONVERTEX); - // another triangle - A[0] = -0.891282; A[1] = 9.91201; - B[0] = -1.40823; B[1] = 9.91261; - C[0] = -1.36963; C[1] = 9.37414; + // another case + A = { 16.3299, 0. }; + B = { 0., 16.3299 }; + C = { -16.3299, 0. }; + v = { -17., 0.}; + REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::OUTSIDE); - v[0] = -1.16961; - v[1] = 9.83039; + // another case + A = { -0.891282, 9.91201 }; + B = { -1.40823, 9.91261 }; + C = { -1.36963, 9.37414 }; + v = { -1.16961, 9.83039 }; REQUIRE(MeshVoxelizer6::pointIsInside2DTriangle(A, B, C, v) == TriOr::INSIDE); } @@ -205,7 +208,7 @@ TEST_CASE("Basic voxelization test", "[voxelization]") CAPTURE(outputSet.size()); //hard coded test. - REQUIRE( outputSet.size() == 2566 ); + REQUIRE( outputSet.size() == 2562 ); } // --------------------------------------------------------- SECTION("26-sep voxelization of a OFF cube mesh") From d6621b965db8e80f385529c66c89004134a9fe57 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Thu, 16 Nov 2017 10:26:05 +0100 Subject: [PATCH 30/37] doc --- examples/shapes/CMakeLists.txt | 3 +- examples/shapes/exampleMeshVoxelizer.cpp | 106 ++++++++++++++++++ src/DGtal/shapes/MeshVoxelizer.h | 15 ++- src/DGtal/shapes/MeshVoxelizer.ih | 11 +- src/DGtal/{ => shapes}/doc/images/26-sep.png | Bin src/DGtal/{ => shapes}/doc/images/6-sep.png | Bin src/DGtal/shapes/doc/images/resultCube.png | Bin 0 -> 210585 bytes .../shapes/doc/moduleMeshVoxelization.dox | 69 +++++++++++- 8 files changed, 192 insertions(+), 12 deletions(-) create mode 100644 examples/shapes/exampleMeshVoxelizer.cpp rename src/DGtal/{ => shapes}/doc/images/26-sep.png (100%) rename src/DGtal/{ => shapes}/doc/images/6-sep.png (100%) create mode 100644 src/DGtal/shapes/doc/images/resultCube.png diff --git a/examples/shapes/CMakeLists.txt b/examples/shapes/CMakeLists.txt index bbc230974a..2e87b019ab 100644 --- a/examples/shapes/CMakeLists.txt +++ b/examples/shapes/CMakeLists.txt @@ -1,6 +1,7 @@ SET(DGTAL_EXAMPLES_SRC - exampleEuclideanShapesDecorator + exampleEuclideanShapesDecorator + exampleMeshVoxelizer ) diff --git a/examples/shapes/exampleMeshVoxelizer.cpp b/examples/shapes/exampleMeshVoxelizer.cpp new file mode 100644 index 0000000000..4a6d76bb97 --- /dev/null +++ b/examples/shapes/exampleMeshVoxelizer.cpp @@ -0,0 +1,106 @@ +/** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + **/ + +/** + * @file exampleMeshVoxelizer.cpp + * @ingroup Examples + * @author David Coeurjolly (\c david.coeurjolly@liris.cnrs.fr ) + * Laboratoire d'InfoRmatique en Image et Systemes d'information - LIRIS (CNRS, UMR 5205), CNRS, France + * + * @date 2017/11/16 + * + * An example file named exampleMeshVoxelizer + * + * This file is part of the DGtal library. + */ + + +/** + * \image html resultCube.png "Resulting digitization of a cube" + * + * \example shapes/exampleMeshVoxelizer.cpp + */ + +/////////////////////////////////////////////////////////////////////////////// +#include +#include "ConfigExamples.h" +#include "DGtal/helpers/StdDefs.h" +#include "DGtal/base/Common.h" +#include "DGtal/shapes/Mesh.h" +#include "DGtal/shapes/MeshVoxelizer.h" +#include "DGtal/io/boards/Board3D.h" +/////////////////////////////////////////////////////////////////////////////// + +using namespace std; +using namespace DGtal; + +/////////////////////////////////////////////////////////////////////////////// + +int main( int argc, char** argv ) +{ + trace.beginBlock ( "Example MeshVoxelizer" ); + + + //! [MeshVoxelizerCreatingMesh] + using namespace Z3i; + Mesh aMesh; + + trace.info()<<"Creating a cube"< voxelizer; + + trace.info()<<"Digitization..."< board; + for(auto voxel : outputSet) + board << voxel; + board.saveOBJ("voxelizedCube.obj"); + //! [MeshVoxelizerExport] + + + + trace.endBlock(); + return 0; +} +// // +/////////////////////////////////////////////////////////////////////////////// diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index ed545dcf2b..ca58eb6216 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -119,11 +119,15 @@ namespace DGtal * will not be correct. * * @param [out] outputSet the set that collects the voxels. - * @param [in] aMesh the mesh to voxelize - * @param [in] scaleFactor the scale factor to apply to the mesh (default=1.0) + * @param [in] aMesh the mesh to voxelize (vertex coordinates will + * be casted to @e PointR3 points. + * @param [in] scaleFactor the scale factor to apply to the mesh + * (default=1.0) + * @tparam MeshPoint the type of point of the mesh. */ + template void voxelize(DigitalSet &outputSet, - const Mesh &aMesh, + const Mesh &aMesh, const double scaleFactor = 1.0); /** @@ -135,10 +139,13 @@ namespace DGtal * @param [in] b the second point of the triangle * @param [in] c the third point of the triangle * @param [in] scaleFactor the scale factor to apply to the triangle (default=1.0) + * @tparam MeshPoint the type of point of the triangle (casted to + * PointR3 later). * */ + template void voxelize(DigitalSet &outputSet, - const PointR3 &a, const PointR3 &b, const PointR3 &c, + const MeshPoint &a, const MeshPoint &b, const MeshPoint &c, const double scaleFactor = 1.0); diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 0da150dfff..b4a8fc35f2 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -164,18 +164,20 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // --------------------------------------------------------- template +template inline void DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, - const PointR3 &a, - const PointR3 &b, - const PointR3 &c, + const MeshPoint &a, + const MeshPoint &b, + const MeshPoint &c, const double scaleFactor) { std::pair bbox; VectorR3 n, e1, e2; PointR3 A, B, C; + //Scaling + casting to PointR3 A = a*scaleFactor; B = b*scaleFactor; C = c*scaleFactor; @@ -206,10 +208,11 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, // --------------------------------------------------------- template +template inline void DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, - const Mesh &aMesh, + const Mesh &aMesh, const double scaleFactor) { DigitalSet rawEmpty{outputSet.domain()}; diff --git a/src/DGtal/doc/images/26-sep.png b/src/DGtal/shapes/doc/images/26-sep.png similarity index 100% rename from src/DGtal/doc/images/26-sep.png rename to src/DGtal/shapes/doc/images/26-sep.png diff --git a/src/DGtal/doc/images/6-sep.png b/src/DGtal/shapes/doc/images/6-sep.png similarity index 100% rename from src/DGtal/doc/images/6-sep.png rename to src/DGtal/shapes/doc/images/6-sep.png diff --git a/src/DGtal/shapes/doc/images/resultCube.png b/src/DGtal/shapes/doc/images/resultCube.png new file mode 100644 index 0000000000000000000000000000000000000000..43f44c75b279a07fbbcbeaa16695ddff8f8aa3f9 GIT binary patch literal 210585 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

IW3|m!B~hYATKH7 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

#xZE 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 Date: Thu, 16 Nov 2017 10:30:04 +0100 Subject: [PATCH 31/37] changelog --- ChangeLog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 4631dc4aef..0a3b9a8b9b 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -2,6 +2,12 @@ ## New Features / Critical Changes +- *Shapes* + + - Mesh Voxelizer using 6- or 26-separability templated + (DavidCoeurjolly, Monir Hadji, + [#1209](https://github.com/DGtal-team/DGtal/pull/1209)) + ## Changes - *Math package* From 15379e78935017dfae8ea38b2309e43c6ffa5897 Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Fri, 17 Nov 2017 15:04:03 +0100 Subject: [PATCH 32/37] Fixing build issue --- examples/shapes/exampleMeshVoxelizer.cpp | 2 +- src/DGtal/shapes/MeshVoxelizer.ih | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/shapes/exampleMeshVoxelizer.cpp b/examples/shapes/exampleMeshVoxelizer.cpp index 4a6d76bb97..a99d076d2d 100644 --- a/examples/shapes/exampleMeshVoxelizer.cpp +++ b/examples/shapes/exampleMeshVoxelizer.cpp @@ -49,7 +49,7 @@ using namespace DGtal; /////////////////////////////////////////////////////////////////////////////// -int main( int argc, char** argv ) +int main( ) { trace.beginBlock ( "Example MeshVoxelizer" ); diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index b4a8fc35f2..527e72ee50 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -216,8 +216,9 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, const double scaleFactor) { DigitalSet rawEmpty{outputSet.domain()}; - +#ifdef WITH_OPENMP #pragma omp parallel for schedule(dynamic) +#endif for(unsigned int i = 0; i < aMesh.nbFaces(); i++) { DigitalSet currentSet{rawEmpty}; From 3cb479f39453c4914802c4d6dff90b4ac157cdac Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Fri, 17 Nov 2017 15:48:38 +0100 Subject: [PATCH 33/37] Fixing build issue --- src/DGtal/shapes/MeshVoxelizer.ih | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 527e72ee50..3ba604f08d 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -231,7 +231,9 @@ DGtal::MeshVoxelizer::voxelize(DigitalSet &outputSet, scaleFactor); } - #pragma omp critical +#ifdef WITH_OPENMP + #pragma omp critical +#endif { outputSet += currentSet; } From da49226ca4bc14b70cc290581558063dc253427e Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Mon, 20 Nov 2017 09:33:01 +0100 Subject: [PATCH 34/37] Fixing issues --- examples/shapes/exampleMeshVoxelizer.cpp | 3 +++ .../mesh3DConstructionAndVisualisation.cpp | 2 +- src/DGtal/shapes/IntersectionTarget.h | 4 +++- src/DGtal/shapes/MeshVoxelizer.h | 3 +++ src/DGtal/shapes/MeshVoxelizer.ih | 5 ++++- src/DGtal/shapes/doc/images/resultCube.png | Bin 210585 -> 280913 bytes .../shapes/doc/moduleMeshVoxelization.dox | 9 ++++++--- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/examples/shapes/exampleMeshVoxelizer.cpp b/examples/shapes/exampleMeshVoxelizer.cpp index a99d076d2d..354f80b741 100644 --- a/examples/shapes/exampleMeshVoxelizer.cpp +++ b/examples/shapes/exampleMeshVoxelizer.cpp @@ -40,8 +40,11 @@ #include "DGtal/helpers/StdDefs.h" #include "DGtal/base/Common.h" #include "DGtal/shapes/Mesh.h" +//! [MeshVoxelizerInc] #include "DGtal/shapes/MeshVoxelizer.h" +//! [MeshVoxelizerInc] #include "DGtal/io/boards/Board3D.h" +#include "DGtal/io/writers/MeshWriter.h" /////////////////////////////////////////////////////////////////////////////// using namespace std; diff --git a/examples/shapes/mesh3DConstructionAndVisualisation.cpp b/examples/shapes/mesh3DConstructionAndVisualisation.cpp index 8a6552eff0..c717b1c1f2 100644 --- a/examples/shapes/mesh3DConstructionAndVisualisation.cpp +++ b/examples/shapes/mesh3DConstructionAndVisualisation.cpp @@ -107,7 +107,7 @@ int main( int argc, char** argv ) //! [MeshUseDisplay] bool res = application.exec(); FATAL_ERROR(res); - return true; + return 0; } // // /////////////////////////////////////////////////////////////////////////////// diff --git a/src/DGtal/shapes/IntersectionTarget.h b/src/DGtal/shapes/IntersectionTarget.h index 48bd8dd736..a1d9fd4671 100644 --- a/src/DGtal/shapes/IntersectionTarget.h +++ b/src/DGtal/shapes/IntersectionTarget.h @@ -45,7 +45,9 @@ namespace DGtal /** Description of template class 'IntersectionTarget' - \brief Aim: A class for intersection target used on voxelization + \brief Aim: A class for intersection target used for voxelization. + + @see MeshVoxelizer @tparam TSpace space of the digitalset @tparam TSeparation strategy of the voxelization (6 or 26) diff --git a/src/DGtal/shapes/MeshVoxelizer.h b/src/DGtal/shapes/MeshVoxelizer.h index ca58eb6216..b2a2777d63 100755 --- a/src/DGtal/shapes/MeshVoxelizer.h +++ b/src/DGtal/shapes/MeshVoxelizer.h @@ -118,6 +118,9 @@ namespace DGtal * using a triangle fan at zero. If the face is not convex, the output * will not be correct. * + * If one voxel is outside the digtial set (@a outputSet) domain, the voxel + * is skipped. + * * @param [out] outputSet the set that collects the voxels. * @param [in] aMesh the mesh to voxelize (vertex coordinates will * be casted to @e PointR3 points. diff --git a/src/DGtal/shapes/MeshVoxelizer.ih b/src/DGtal/shapes/MeshVoxelizer.ih index 3ba604f08d..66ba446ba0 100755 --- a/src/DGtal/shapes/MeshVoxelizer.ih +++ b/src/DGtal/shapes/MeshVoxelizer.ih @@ -157,7 +157,10 @@ DGtal::MeshVoxelizer::voxelizeTriangle(DigitalSet &outp // check if current voxel projection is inside ABC projection if(pointIsInside2DTriangle(AA, BB, CC, pp) != OUTSIDE) - outputSet.insert(v); + { + if (outputSet.domain().isInside( v ) ) + outputSet.insert(v); + } } } } diff --git a/src/DGtal/shapes/doc/images/resultCube.png b/src/DGtal/shapes/doc/images/resultCube.png index 43f44c75b279a07fbbcbeaa16695ddff8f8aa3f9..e38268d459549d388903460182d315f9fcfe01ad 100644 GIT binary patch literal 280913 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

@XzLjjxV^Y~8>f1)>O@s8w%0@(7vC7b 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

jK1@;6M1NgwgmOCLU#rJUu5Kv0{v)J51r-lkY; zJ$pLl{N@9f9^W=C0bQD`mx9DBt^k)I2sP=3U{PThB4V*Wc;x)P4U7N! zdf)$fz29R-+~NqSsLkh#W-ToZvJFA7%D4u_3M1unQegP@ftf#f?0kKU{q2vp93M*w zfT+QRR8oR|ZozpemIjsDowx%0H9zZd%oPmOIe+lTg+1NN|Mq&{=U>^ll#e7MOk3OQ zrcKk3LZG)DqiPbVivfUuU=WgIU85yk__g~k|I!^dt}ev??Af80E_6@?F_Zh8NcHx# zjMB47OIhjL|40CYltuj*<29V)dB=N8hpKtYx?>PSg=JWxLfxnU=|CT{}vB zgOn^K^fNRmj~V>*WY5>nZB0hJ_inxL@x90EW4WAX>e4R3;4+IzlC<24`F|KmhnX%j z8sqs0~ISN-_1HDa{f)A@-lv0{4si0rT+ObXH$Puof zR>Yg|I%U0vSiNEj9D{=;OlW5gfTIz$xlzU%7v3DLdt)^9@q;&0b@}FmyX+Z3m#I$c znv(AI(T3%M*^nsyyN52mc(LstU)k7GU-Sg_1py?>>@}iTH732eY(&GZrdhHa-Me|_ z+Cpq8Z$0x?cW-lM?}kN(Ab`%v{oF*FE9hz{Mhubj zN{Y$#z#0Kiq)O@O+k^q6p^YLKS!(*}&4Hyte7I%i@y+KNV>wrlz%my~88>i&!&G~? z(+XDQB}gbFBn}2Am8Vn-i^%az{i`$31Mk41~2+O$Ti#4_ch#<7$+7T=wRQ}-H z_7hVb+uNo;u;a9CcpfK{*>pp^Ktgf>rGOGSmrcZNH)8ljZeXlphCiE2f9KlZOCzn1 z4orM>=cybcInP80Xvq-)H^&M>VJ+XpNO_EASfZ!d^@@(isiZ_}Gy;^Urid$y5j9Nd z!JmQONx->>E1A`WzzSJ@ZDesfB3z4yfMAFta&04;$8e;BjW_4VKHXZW>iV>NNxc6+G`rfIofB5O9qH88B z#st(yy@E@b3|Fy~PT%Sx-crFL2=XqC+Wu$mzWfXOM_#xe*e$ zM0t-!O#c^dyZ)Q^U7pF>fBxL?>z7+?DorXWkwTU-==ES&0Wydr078aGatGg1T=4O5 z=h7cNdf}dpb5l9v$VlqcXhXshrXi%dg^Qz-Z%4Un%G;*CiPcguer_rCt@ArNlbO#P zIQ00I(=n@<^Gz;sHMcGlre#G+x&O0<6PHw22xJ>vDXb?MB`mg7Onv3l{x6=`A2a=5 zJ#hG4L#HWai;kuH-EMKI1>cMq46072mjbroBfwLR{gtEL>5Va}>OP z6wAdz%%Uu2dBI0W0SJX6CS$_5nvMUz}{0@k2YO9v+_5Q;qb_rzYxru0<>m*dL~2{>|m+ zBiko_|Izc`Inn)R&kenI`{V;#r<&uQFLA*$EQ5uO1{FYEl%1Q2NQE#4DRI`r+q)LG zv}Ip7*Y>S5ZOw5{2oklpHUwTJ-VxMC{JdjSjBf@2g1{F_Xl4P zibe2L!)=`5UAaU;VS*(>B5ujKT2~zOQ=4fG!jXNkI@uCyk)HokC#GB)t&t4vk z8T?oFz1dT@^7n`DsE;^OmJBZyfPrDQ5RV(4ZLorG0DwujMb#TOoBLXEI^sL7qUEJO z#@O>b%`RxT)M%jp6cqpTz)=8*L?Qu_>V#c4Zw4j3aACG)XKA&a0EEnht9A6Z@FCFj zj=nJ4w!>!(1S1*%sg4F=Tn+^3P|n1w>!{)CYcL5f>;tSfw7(c*Omp7>X%m)0>Xl1C z>{Qb@HR+(R$UUrfuc&N<8>aLr7-I_y3te4ZwrvM*3Fm?d=xb30&no&vf!f}+*x!`< z&WWBAvylVK@qImux+W}$?C z95p9ApX0o1Mr6(#2B~>8xWCB0h2FwF{GVUq0S*a=h-TU6ZCE7jsruqtAHR z6+o-tW1hlEv?!A^3ujXdv53hyC$}EEv|9+LMm$VspV(|vIn6i zX|u(=DUo{rzLEVK7QS<$`@cRj^xhql`}-C=0Xi{X%vtN@lDZy%0DMkNDg^*Rzy$UM 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

Ko>?Dv3tSw!l9qjaj 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%0DHCFh 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 literal 210585 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

IW3|m!B~hYATKH7 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

#xZE zWeKF9*K^l?;rS(UG0B)jwu7Mp&Pxn3;K;0E5^9pCwp~gJG75A4Omcdf*xun~A;D$I zzs|k@XzoAi*SFWh^67eMIXMkHMlg~$gNL0PORso;zV;>5Zad7_1DdbNrnEtV6Lzka_*Wn6|cMRP+ ztt|b^8iMtrdFHdj!ll?EWtrAE&31AsnJXULEw{e!Axp9X=$QR-YBq)Zyj%*>d*|M= z9hxLy3C5?G+Na4qVI*8*x?9_JhZVhvCr+ARN4C>GtpgH-mbzq7_AURhdNQt(Lee;+Y6zV0}ZB46&D?hOI8 zlMh`6g;bra)Q*eh7Ez*Pp0#VO?-v!#cic7J``T%0&MbTtmkrx_j_V9=!iv+5r-Q0$1L%mzWqstws1HfA1_Nku6{P-e_nzh$0Xa0O44j zH{IQ^OdQGP7y>AO%{J{yCCUM~DMHteJ;TWC>(Bw!KeWzn-powN;K=TtLlzc!y>}Mr zk!2L7L$AbUm-h=lw0+(0Od=cJ_0hbmTz#>n=B#iP>kx~zWHbjJMU~?=@l}%c4i01C z-RsqmgM~&L^hmVz!QR#$SKiqK!T=C+(yqlR41=KZ*m)l=#~@3kr+Y#Mi8JByt3lxM zoA#Z*H~PhI-`%U*^G;Tj5|%g|KM>55y)^T)(^OqV@YbyzvT_+GT)wOH+Q0XH_q^{# z%iN5?k5Glp=nv8CtkqnK~b^v&yFSK`Q98@6+U_C>d`M3L}= z+S;7=--xrbPrhrv`&LNz=DlrjoVbsvIQLhB)Ek}8ZAQ+%Fktq7%G)zK0|NH>@f!Zs z>W08bakOUf@kiBodkB!JUw{6bzu`9okv!0bN6Wo*R`wDI#}|Iu>~ejlOxf6_tI+I(CT=1?49LP^MJ6N?KzY{bk9 z+0Gc$f=-B8a3B5kIb7qr7vBcQC3e^+Ro*6%(LVvr!K~;bEhw3QcAlACBSqjO-lXhH zpaj^3#bb58zVe@JE<8Vf{(@QNjiDi0B_%gDIf&1^fFXUypNX0!W!~UBlrYQPIZ>qT zj25Ja_CZSxV~&dZV<#{B9|+c|Y)V(SlzN#{Bw+j|g@uKf8>rX=?{09hcXGOtnAi<| zzXSNOXF88IyX@M)^&|VOb}jNHFob&6%fNp{8!kV9Oo1svaYiIrK`aE?1SWf+kl%43 z`yP|#SBHT&FwZZ9)|(>x4D=`*pqPG(!JXPns$qo?B09rh)tj$Rp^JSS(Qa}a9xprp zy>~YL*9;0C9T%DtXXiqu__eB3u?m??y8MlT}n&8Xba~^Y?+9HWy2ho?ghm21d89*)}(^bCxVk~t#>-i2c&)l5fhK)Y-@vD8dUS5JGXWn$oZtUvHtjneE5nM9K za-?yea5&Fzqk1!1S(922+rcogDy4tcW1B(l^v+|dMd4CUBt17|@NE7NsCiRfP1w{yGP0wNEl8uUTcMSHB+DF%+O z4X(I$WKZv6Hx^-z&{S`E^OwOVEhDoZM+$s8Ff0ea^|Ga92G z$2^fnS^YG*Q^|Yj>k~o72f{`qwcCaymGE!6q79=*k^l$V#HNoQrKlv2;n#aoQzrod zJA4tsv>+_SES7X?=$Jp3XQuUT3f1rH%|V7u`|a2}G;eMSt5fe6UpM>oRg3PaM{~bJ zUljZ}MIA7^&br%3AWc#2qS$4%O2K-&ZH77|xBXhXEn7M6vi*IrqtS2F{`|Qlywm+s zYwLuO{5yI5JT+y`r%h$0rA=T(iHTi6h@0}r$3zz9hYxqY?WD7)KPDdVwIIGB$(F6M zHU|usUl*L8J5{GQm7Ngxct2YrcfLRd*pW5s#H6*2<4{oAW67wL6e{o4lNJ70&%lPU zxweKDr$~}`JpRm$!ZE0JWJE+m(2VLLb0Qs4Kphmh(ijs-Bn+;3`n_So1B5}A95PN$b_dNGtB9)6Fu zv_nv^JNgPN^#<0gu}sbU$^AGpKekNBZHz9O8mVU-OV(R%9+|3hAUK@#r0&Ru2xi%c zLA`xb2C^qID%I7^BGUPI(r*;Gh-Do!tcefW)LY(vu7W7pLxtnwykhC}B_SB_B>@t?o5^+BVYk*>8=T3(g1H0^H9@ z;LjMofe1S9zSO-0!W06ISE^l0?$frnzv6az!c{kCJ=inzE)Qt4QFGdN8c-3hVvC8< z?&$iX7*f6?eI;0l@azm%cRF3%P~Uh`-N;RDx|S2Vc&fm1l_nqOqy?vf|hXL45V?>JyQ2vrM9Kx4PjLEH0OaPv|&)u7Bw<=+s_bUfxgA zHo9HG&ttwj?uJRm=v4`sKvUxDRk-Nqg4maZ8C>dfKPQJaG^~$f^F87l1qAjjLo19w z!XG*@fVd}3{Bxc~y5uAANe+&?j9Bv6BSS(eus` zm3REtm;T!i$$J0muLm0UuMc56{5O~P|Geh^`kVgS5B+b~{D1$U|M^Y9OZ*DkmU@nP zN|`b+Fo=0;nR!!ey&aV7Jst2b23ctth3zsj+huke%SbE9C@RTIZ Date: Fri, 24 Nov 2017 09:35:55 +0100 Subject: [PATCH 35/37] Figs --- src/DGtal/shapes/doc/images/bunnies.png | Bin 0 -> 188240 bytes .../shapes/doc/moduleMeshVoxelization.dox | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 src/DGtal/shapes/doc/images/bunnies.png diff --git a/src/DGtal/shapes/doc/images/bunnies.png b/src/DGtal/shapes/doc/images/bunnies.png new file mode 100644 index 0000000000000000000000000000000000000000..d10e1e31bde97267afedf4032be33641e5ce2d9c GIT binary patch literal 188240 zcmeFYS6EZgw=arl|uanlYP&7+K)oAEDt+A7?w*2$!uJ=W_;H9 z>oUs=%q8u~DMh5;VY3JN2n0l*1|Bsx`VCxpe+JSP(g`mlv!>y9ZXoyi#A z^YdN~u;_Uc70PXCsZ3Teb+9D^V|}QYG85EVn~L1|)N&ngTO?m`PY8+o&dH z+w|65`Yao**VUaORcaoCnB6aL?2M}URSLv48LlScJkljG9|QR9-`fSHCOuj_!l?^vWWMXzY=f|qbilv{lpQzju(ic z`C{W2Vg#3bV(B|+B8r1m*2#jNA3Cz^R`k2y7v^=;71VhpuuTc(rLJe=r8T_dU~$!v zEYXq$`tr{UfSGWJ96#)uc+^6WCu8cb8|D4165mBc@R!ooI@4QDXPa=~VC-={+YuX? z42x#GJnK>g8TKdHL(!}#b}zmX$j$d2cN`;y{O*Rq8!Y3+QmGz4y!ny7Fl{dvwhiqasC zd3tZ^uNKse6nPe$Iu98`f`u6Ao`+WR26Wx1{J_a;&_#9a1OI1lA*RPc6!8?V$(_Qk zB@3|iZwmy|u zW7Chm9u^td`qkpqn_YlS8fD+rzDIpreT=r8QSBoYVTOL+m1MXxKbppf{@(mmV*#oN zm{i_iqYu|_PhT`~&6Q;lqe+b`{>k+_yM4BeZUMZg|m&f0)J+gT=@vQip zU?Fh~a3$kIzREY1FqMSg%Avy725-83r2Gi}$l0#Y9`JGXCY8NVhFE`8M}bqp_^8-O zSaSK}u*W+2FY;CLTOT()&g=QuBhv%uDNZg<))Uso2{l~G*3v_;j>e5_jVKL{rmX_v zKrZWz7$4wjz|-`y#nRs|?>)7DR-dB5`s2w##jV%4^;(>*hn7KIJ}=8H2vAf~iZ2r#E*;+-hYtb9BL7T%9sROrnEGw~bLMyB zB2+%82$9eFy;i+UYbyw>j8@J;v>3M-lY)bCmB0UD36=?74Z9zv(`wRsw^c*^h5#^6 zCr>^P)nRBwwIscy*a6hBxNdwMu9ed5r9U|~knGaXS?zMkHfZVcuMZ7Zh_=>J3{{R* zcdIUWH2B05?(WI#P0$>$+!dLrDEC_c(ilg1M)^jCfBN|8(x*%jkO=y9x?x30(RXKK z{qF%K6UMd1Efs(t3)34v>g}|v=xS!)plnXZ2j+CGCmexq%ItF9nmeJlJ})z3o-Vsi zF)d+nb#pt(OM-$Rga{%}H&8xP4k5?m32W|hWr98!mi;ixo)dCW+Pb`D#`7rWZO-Ey z!Djj9d(BUp^I$cwVxl||a2|9HIy+6jr6W_7Aa~1xr(9-Ug;!2OvRrc8K3*$c=$il= zJw5dt`g!S~n0g3>oJH2LYe=}1Y9M?qgG0k_TWI}birq0HfqOjrhWKdf

^W7{`upjGH=CPdJ)LmH)AF!ppxk9cd^%XjtF- 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 z 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

sK4*OBJfUXuQKEI|}i^ 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 z

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 Dh%T>i literal 0 HcmV?d00001 diff --git a/src/DGtal/shapes/doc/moduleMeshVoxelization.dox b/src/DGtal/shapes/doc/moduleMeshVoxelization.dox index 4072e97468..0111c18518 100644 --- a/src/DGtal/shapes/doc/moduleMeshVoxelization.dox +++ b/src/DGtal/shapes/doc/moduleMeshVoxelization.dox @@ -84,6 +84,11 @@ be automatically triangulated using a naive fan approach. Hence, if the face in not planar and/or convex, the resulting digitization might be incorrect. +Here you have another example with a more complex mesh (using DGtaltools tools for visualization): + +@image html bunnies.png "Voxelization at different resolution of a Stanford Bunny." + + \section sectVoxelization3 Limitations At this point intersection tests are performed using arithmetics on @e From adba70604963843286902ba9cc0f9cb9e8af882b Mon Sep 17 00:00:00 2001 From: David Coeurjolly Date: Sat, 2 Dec 2017 11:38:17 +0100 Subject: [PATCH 36/37] typo --- src/DGtal/shapes/doc/moduleMeshVoxelization.dox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DGtal/shapes/doc/moduleMeshVoxelization.dox b/src/DGtal/shapes/doc/moduleMeshVoxelization.dox index 0111c18518..5c141e6c3f 100644 --- a/src/DGtal/shapes/doc/moduleMeshVoxelization.dox +++ b/src/DGtal/shapes/doc/moduleMeshVoxelization.dox @@ -86,7 +86,7 @@ be incorrect. Here you have another example with a more complex mesh (using DGtaltools tools for visualization): -@image html bunnies.png "Voxelization at different resolution of a Stanford Bunny." +@image html bunnies.png "Voxelization at different resolutions of a Stanford Bunny." \section sectVoxelization3 Limitations From 5b1b71d2e69120ffec2f3393310239175be5e3e8 Mon Sep 17 00:00:00 2001 From: Monir Hadji Date: Sat, 2 Dec 2017 13:22:40 +0100 Subject: [PATCH 37/37] Minor typo on README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 213556c346..ef06a9feb8 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ More details are given in the [documentation pages](http://dgtal.org/download/). ```shell git clone https://github.com/DGtal-team/DGtal.git -cd DGtal ; mkdir buid ; cd build +cd DGtal ; mkdir build ; cd build cmake .. make install ```