34 #include "DGtal/base/Common.h"
35 #include "ConfigTest.h"
36 #include "DGtal/helpers/StdDefs.h"
37 #include "DGtal/geometry/volumes/distance/ChamferNorm2D.h"
38 #include "DGtal/geometry/volumes/distance/CMetricSpace.h"
39 #include "DGtal/geometry/volumes/distance/CSeparableMetric.h"
41 #include "DGtal/geometry/volumes/distance/VoronoiMap.h"
43 #include "DGtal/io/colormaps/HueShadeColorMap.h"
44 #include "DGtal/io/colormaps/RandomColorMap.h"
46 #include "DGtal/io/boards/Board2D.h"
49 using namespace DGtal;
55 template <
typename VoroMap>
56 void saveVoroMap(
const std::string &filename,
const VoroMap &output)
63 if ( output(*it) > maxdt)
71 itend = output.domain().end();
78 board.
saveSVG(filename.c_str());
84 bool testChamferVoro()
86 unsigned int nbok = 0;
92 Metric::Directions dirs5711;
93 Metric::Directions normals5711;
113 Metric mask5711(dirs5711,normals5711);
124 mySet.insertNew( *it );
161 VoroChamf voro(&
domain, &mySet,&mask5711);
168 itend = voro.domain().end();
172 int c =
abs(p[1]*11+ p[0]*17);
187 for(
int j= -20; j <= 20 ; j++)
196 bool testChamferVoroLarge()
198 unsigned int nbok = 0;
204 Metric::Directions dirs5711;
205 Metric::Directions normals5711;
225 Metric mask5711(dirs5711,normals5711);
237 mySet.insertNew( *it );
241 for(
unsigned int i = 0; i < N; i++)
242 sites.insert(
Z2i::Point( rand() % N , rand()% N ));
244 std::copy(sites.begin(), sites.end() , std::ostream_iterator<Z2i::Point>(std::cout,
", "));
251 VoroChamf voro(&
domain, &mySet,&mask5711);
256 itend = voro.domain().end();
260 int c =
abs(p[1]*11+ p[0]*17);
274 board.
saveSVG(
"Voromap-large.svg");
284 int main(
int argc,
char** argv )
288 for (
int i = 0; i < argc; ++i )
292 bool res = testChamferVoro()&& testChamferVoroLarge();
293 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << std::endl;
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Structure representing an RGB triple with alpha component.
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Container::const_iterator ConstIterator
ConstIterator type of the container;.
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
Iterator for HyperRectDomain.
const ConstIterator & end() const
const ConstIterator & begin() const
Aim: access to random color from a gradientColorMap.
void beginBlock(const std::string &keyword="")
Aim: Implementation of the linear in time Voronoi map construction.
Aim: implements a model of CSeparableMetric for Chamfer and path based norms.
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
MyDigitalSurface::ConstIterator ConstIterator
DGtal is the top-level namespace which contains all DGtal functions and types.
Custom style class redefining the pen color and the fill color. You may use Board2D::Color::None for ...
int main(int argc, char **argv)
void saveVoroMap(const std::string &filename, const VoroMap &output, const double p)