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 http://www.gnu.org/licenses/.
- Author
- Jacques-Olivier Lachaud (
jacqu.nosp@m.es-o.nosp@m.livie.nosp@m.r.la.nosp@m.chaud.nosp@m.@uni.nosp@m.v-sav.nosp@m.oie..nosp@m.fr
) Laboratory of Mathematics (CNRS, UMR 5127), University of Savoie, France
- Date
- 2015/08/28
Functions for testing class Shortcuts.
This file is part of the DGtal library.
Definition in file testShortcuts.cpp.
SCENARIO |
( |
"Shortcuts< K3 > pointel ordering" | , |
|
|
"" | [shortcuts][pointel] ) |
Definition at line 45 of file testShortcuts.cpp.
46{
49
51 const double h = 0.25;
52 params( "polynomial", "goursat" )( "gridstep", h );
59
60 GIVEN(
"A digital surface, its associated polygonal surface, and its pointel range" ) {
64 THEN( "The polygonal surface and the pointel range have the same number of pointels" ) {
65 REQUIRE( pointels.size() == polySurf->nbVertices() );
66 }
67 THEN( "The vertices of the polygonal surface are in the same order as the pointel range" ) {
68 unsigned int nb_ok = 0, nb_ko = 0;
69 for ( size_t i = 0; i < polySurf->nbVertices(); i++ )
70 {
71 auto p = pointels[ i ];
72 auto idx = c2i[ p ];
73 if ( i != idx )
74 {
75 DGtal::trace.
error() <<
"Pointel " << p <<
" of primal polygonal surface has not the same index in the polygonal surface (" << idx <<
") and in the pointel range (" << i <<
")." << std::endl;
76 nb_ko += 1;
77 }
78 else nb_ok += 1;
79 }
80 (void)nb_ok;
82 }
83 }
84}
Aim: This class is a model of CCellularGridSpaceND. It represents the cubical grid as a cell complex,...
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
static KSpace getKSpace(const Point &low, const Point &up, Parameters params=parametersKSpace())
static CountedPtr< DigitizedImplicitShape3D > makeDigitizedImplicitShape3D(CountedPtr< ImplicitShape3D > shape, Parameters params=parametersDigitizedImplicitShape3D())
std::map< Cell, IdxVertex > Cell2Index
static PointelRange getPointelRange(Cell2Index &c2i, CountedPtr< ::DGtal::DigitalSurface< TDigitalSurfaceContainer > > surface)
static CountedPtr< LightDigitalSurface > makeLightDigitalSurface(CountedPtr< BinaryImage > bimage, const KSpace &K, const Parameters ¶ms=parametersDigitalSurface())
static CountedPtr< PolygonalSurface > makePrimalPolygonalSurface(Cell2Index &c2i, CountedPtr< ::DGtal::DigitalSurface< TContainer > > aSurface)
static Parameters defaultParameters()
static CountedPtr< BinaryImage > makeBinaryImage(Domain shapeDomain)
static CanonicCellEmbedder< KSpace > getCellEmbedder(const KSpace &K)
static CountedPtr< ImplicitShape3D > makeImplicitShape3D(const Parameters ¶ms=parametersImplicitShape3D())
CountedPtr< SH3::DigitalSurface > surface
CountedPtr< SH3::BinaryImage > binary_image
GIVEN("A cubical complex with random 3-cells")
REQUIRE(domain.isInside(aPoint))
References binary_image, DGtal::Shortcuts< TKSpace >::defaultParameters(), DGtal::Trace::error(), DGtal::Shortcuts< TKSpace >::getCellEmbedder(), DGtal::Shortcuts< TKSpace >::getKSpace(), DGtal::Shortcuts< TKSpace >::getPointelRange(), GIVEN(), K, DGtal::Shortcuts< TKSpace >::makeBinaryImage(), DGtal::Shortcuts< TKSpace >::makeDigitizedImplicitShape3D(), DGtal::Shortcuts< TKSpace >::makeImplicitShape3D(), DGtal::Shortcuts< TKSpace >::makeLightDigitalSurface(), DGtal::Shortcuts< TKSpace >::makePrimalPolygonalSurface(), REQUIRE(), surface, and DGtal::trace.