This example shows you how to modify the style of each drawable elements. It is a matter of creating a custom style class which gives in its method setStyle
the specific style parameters. Then, you attach this style to your drawable elements with an instance of CustomStyle outputed in the Board2D stream.
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/io/Color.h"
#include "DGtal/io/boards/Board2D.h"
#include "DGtal/helpers/StdDefs.h"
using namespace std;
struct MyDrawStyleCustomColor : public DrawableWithBoard2D
{
Color myPenColor;
Color myFillColor;
MyDrawStyleCustomColor( const Color & penColor,
const Color & fillColor )
: myPenColor( penColor ), myFillColor( fillColor )
{}
virtual void setStyle( Board2D & aboard) const
{
aboard.setFillColor( myFillColor);
aboard.setPenColor( myPenColor );
}
};
{
Color red( 255, 0, 0 );
Color dred( 192, 0, 0 );
Color green( 0, 255, 0 );
Color dgreen( 0, 192, 0 );
Color blue( 0, 0, 255 );
Color dblue( 0, 0, 192 );
Board2D board;
<< CustomStyle( p1.className(), new MyDrawStyleCustomColor( red, dred ) )
<< p1
<< CustomStyle( p2.className(), new MyDrawStyleCustomColor( green, dgreen ) )
<< p2
<< CustomStyle( p3.className(), new MyDrawStyleCustomColor( blue, dblue ) )
<< p3;
board.saveSVG("dgtalBoard2D-3-custom-points.svg");
board.saveEPS("dgtalBoard2D-3-custom-points.eps");
board.saveTikZ("dgtalBoard2D-3-custom-points.tikz");
#ifdef WITH_CAIRO
board.saveCairo("dgtalBoard2D-3-custom-points-cairo.pdf", Board2D::CairoPDF);
board.saveCairo("dgtalBoard2D-3-custom-points-cairo.png", Board2D::CairoPNG);
board.saveCairo("dgtalBoard2D-3-custom-points-cairo.ps", Board2D::CairoPS);
board.saveCairo("dgtalBoard2D-3-custom-points-cairo.svg", Board2D::CairoSVG);
#endif
return 0;
}
void beginBlock(const std::string &keyword="")
Z2i this namespace gathers the standard of types for 2D imagery.
DGtal is the top-level namespace which contains all DGtal functions and types.
int main(int argc, char **argv)
HyperRectDomain< Space > Domain