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.
visualization of resulting export.
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/io/Color.h"
#include "DGtal/io/boards/Board2D.h"
#include "DGtal/helpers/StdDefs.h"
{
MyDrawStyleCustomColor(
const Color & penColor,
const Color & fillColor )
: myPenColor( penColor ), myFillColor( fillColor )
{}
virtual void setStyle(
Board2D & aboard)
const
{
}
};
{
trace.
beginBlock (
"Example dgtalBoard2D-3-custom-points" );
Color green( 0, 255, 0 );
Color dgreen( 0, 192, 0 );
Color dblue( 0, 0, 192 );
<<
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;
}
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Structure representing an RGB triple with alpha component.
void beginBlock(const std::string &keyword="")
Board & setPenColor(const DGtal::Color &color)
void saveTikZ(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Board & setFillColor(const DGtal::Color &color)
void saveEPS(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
void saveCairo(const char *filename, CairoType type=CairoPNG, PageSize size=Board::BoundingBox, double margin=10.0) const
Z2i this namespace gathers the standard of types for 2D imagery.
DGtal is the top-level namespace which contains all DGtal functions and types.
HyperRectDomain< Space > Domain