32#include "DGtal/base/Common.h"
33#include "ConfigTest.h"
34#include "DGtalCatch.h"
35#include "DGtal/helpers/StdDefs.h"
37#include "DGtal/topology/CubicalComplex.h"
38#include "DGtal/topology/ParDirCollapse.h"
40#include "DGtal/shapes/GaussDigitizer.h"
41#include "DGtal/shapes/Shapes.h"
42#include "DGtal/shapes/EuclideanShapesDecorator.h"
43#include "DGtal/shapes/parametric/Flower2D.h"
54template <
typename CC,
typename KSpace>
58 MyEuclideanShape shape(
RealPoint( 0.0, 0.0 ), 16, 5, 5, M_PI_2/2. );
61 MyGaussDigitizer digShape;
63 digShape.init ( shape.getLowerBound(), shape.getUpperBound(), 1.0 );
64 Domain domainShape = digShape.getDomain();
70 complex.construct ( aSet );
75 typedef map<Cell, CubicalCellData>
Map;
79 ParDirCollapse < CC > thinning (
K );
81 SECTION(
"Testing the basic algorithm of ParDirCollapse")
84 int eulerBefore = complex.euler();
85 thinning.
attach ( &complex );
87 REQUIRE( (eulerBefore == complex.euler()) );
90 SECTION(
"Testing ParDirCollapse::collapseSurface")
93 int eulerBefore = complex.euler();
94 thinning.
attach ( &complex );
96 REQUIRE( (eulerBefore == complex.euler()) );
98 SECTION(
"Testing ParDirCollapse::collapseIsthmus")
101 int eulerBefore = complex.euler();
102 thinning.
attach ( &complex );
104 REQUIRE( (eulerBefore == complex.euler()) );
Aim: This class represents an arbitrary cubical complex living in some Khalimsky space....
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Aim: Model of the concept StarShaped represents any flower with k-petals in the plane.
void attach(ConstAlias< EuclideanShape > shape)
const Point & lowerBound() const
const Point & upperBound() const
Aim: This class is a model of CCellularGridSpaceND. It represents the cubical grid as a cell complex,...
bool init(const Point &lower, const Point &upper, bool isClosed)
Specifies the upper and lower bounds for the maximal cells in this space.
void attach(Alias< CC > pComplex)
unsigned int eval(unsigned int iterations)
static void digitalShaper(TDigitalSet &aSet, const TShapeFunctor &aFunctor)
Space::RealPoint RealPoint
DGtal is the top-level namespace which contains all DGtal functions and types.
std::unordered_map< Cell, CubicalCellData > Map
CubicalComplex< KSpace, Map > CC
void getComplex(CC &complex, KSpace &K)
TEST_CASE("Testing ParDirCollapse")
SECTION("Testing constant forward iterators")
REQUIRE(domain.isInside(aPoint))