Example of Preimage2D.
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/helpers/StdDefs.h"
#include "ConfigExamples.h"
#include "DGtal/geometry/tools/Preimage2D.h"
#include "DGtal/shapes/fromPoints/StraightLineFrom2Points.h"
#include "DGtal/shapes/fromPoints/CircleFrom2Points.h"
#include "DGtal/io/boards/Board2D.h"
using namespace std;
using namespace Z2i;
int main(
int argc,
char** argv )
{
for ( int i = 0; i < argc; ++i )
std::string filename = examplesPath + "samples/DSS.dat";
ifstream instream;
instream.open (filename.c_str(), ifstream::in);
c.initFromVectorStream(instream);
{
typedef StraightLineFrom2Points<Curve::Point> StraightLine;
StraightLine aStraightLine;
typedef Preimage2D<StraightLine> Preimage2D;
Curve::IncidentPointsRange r = c.getIncidentPointsRange();
Preimage2D thePreimage(it->first, it->second, aStraightLine);
++it;
while ( (it != itEnd) &&
(thePreimage.addFront(it->first, it->second)) )
{
++it;
}
Board2D board;
board.setUnit(Board2D::UCentimeter);
board << r << thePreimage;
board.saveEPS( "PreimageExample.eps" );
}
{
typedef CircleFrom2Points<Curve::Point> Circle;
Circle aCircle( pole );
typedef Preimage2D<Circle> Preimage2D;
Curve::IncidentPointsRange r = c.getIncidentPointsRange();
Preimage2D thePreimage(it->first, it->second, aCircle);
++it;
while ( (it != itEnd) &&
(thePreimage.addFront(it->first, it->second)) )
{
++it;
}
Board2D board;
board.setUnit(Board2D::UCentimeter);
board << r << SetMode(pole.className(),"Grid") << pole << thePreimage;
board.saveEPS( "PreimageExample2.eps" );
board.saveSVG( "PreimageExample2.svg" );
#ifdef WITH_CAIRO
board.saveCairo("PreimageExample2.pdf", Board2D::CairoPDF);
#endif
}
return 0;
}
void beginBlock(const std::string &keyword="")
MyDigitalSurface::ConstIterator ConstIterator
DGtal is the top-level namespace which contains all DGtal functions and types.
int main(int argc, char **argv)