DGtal
1.5.beta
testBoard2DCustomStyle.cpp
Go to the documentation of this file.
1
31
#include <iostream>
32
#include "DGtal/base/Common.h"
33
34
#include "DGtal/kernel/SpaceND.h"
35
#include "DGtal/kernel/domains/HyperRectDomain.h"
36
#include "DGtal/kernel/sets/DigitalSetBySTLVector.h"
37
#include "DGtal/kernel/sets/DigitalSetBySTLSet.h"
38
#include "DGtal/kernel/sets/DigitalSetSelector.h"
39
#include "DGtal/io/boards/Board2D.h"
40
42
43
using namespace
std;
44
using namespace
DGtal
;
45
46
47
51
struct
MyDrawStyleCustomGreen :
public
DrawableWithBoard2D
52
{
53
virtual
void
setStyle(
DGtal::Board2D
& aBoard )
const
54
{
55
aBoard.
setFillColorRGBi
(0,160,0);
56
aBoard.
setPenColorRGBi
(80,0,0);
57
}
58
};
59
61
// Functions for testing class Board2DCustomStyle.
63
67
bool
testBoard2DCustomStyle
()
68
{
69
unsigned
int
nbok = 0;
70
unsigned
int
nb = 0;
71
72
typedef
SpaceND<2>
Z2;
73
74
typedef
HyperRectDomain<Z2>
Domain
;
75
typedef
Z2::Point
Point
;
76
Point
p1( -10, -10 );
77
Point
p2( 10, 10 );
78
Domain
domain
( p1, p2 );
79
typedef
DigitalSetSelector
80
<
Domain
,
BIG_DS
+
HIGH_ITER_DS
+
HIGH_BEL_DS
>::Type SpecificSet;
81
SpecificSet mySet(
domain
);
82
83
Point
c( 0, 0 );
84
mySet.insert( c );
85
Point
d( 5, 2 );
86
mySet.insert( d );
87
Point
e( 1, -3 );
88
mySet.insert( e );
89
90
91
Board2D
board;
92
board.
setUnit
(
LibBoard::Board::UCentimeter
);
93
94
board <<
SetMode
(
domain
.
className
(),
"Grid"
) <<
domain
95
<<
domain
96
<< mySet;
97
board.
saveSVG
(
"testcustom-prev.svg"
);
98
99
board.
clear
();
100
101
board <<
SetMode
(
domain
.
className
(),
"Grid"
) <<
domain
102
<<
domain
103
<<
CustomStyle
( mySet.className(),
new
MyDrawStyleCustomGreen )
104
<< mySet;
105
board.
saveSVG
(
"testcustom-next.svg"
);
106
107
108
return
nbok == nb;
109
}
110
112
// Standard services - public :
113
114
int
main
(
int
argc,
char
** argv )
115
{
116
trace
.
beginBlock
(
"Testing class Board2DCustomStyle"
);
117
trace
.
info
() <<
"Args:"
;
118
for
(
int
i = 0; i < argc; ++i )
119
trace
.
info
() <<
" "
<< argv[ i ];
120
trace
.
info
() << endl;
121
122
bool
res =
testBoard2DCustomStyle
();
// && ... other tests
123
trace
.
emphase
() << ( res ?
"Passed."
:
"Error."
) << endl;
124
trace
.
endBlock
();
125
return
res ? 0 : 1;
126
}
127
// //
DGtal::Board2D
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Definition:
Board2D.h:71
DGtal::HyperRectDomain
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
Definition:
HyperRectDomain.h:100
DGtal::HyperRectDomain::className
std::string className() const
DGtal::SpaceND
Definition:
SpaceND.h:96
DGtal::Trace::beginBlock
void beginBlock(const std::string &keyword="")
DGtal::Trace::emphase
std::ostream & emphase()
DGtal::Trace::info
std::ostream & info()
DGtal::Trace::endBlock
double endBlock()
LibBoard::Board::UCentimeter
@ UCentimeter
Definition:
Board.h:43
LibBoard::Board::setPenColorRGBi
Board & setPenColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition:
Board.cpp:277
LibBoard::Board::clear
void clear(const DGtal::Color &color=DGtal::Color::None)
Definition:
Board.cpp:151
LibBoard::Board::setFillColorRGBi
Board & setFillColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition:
Board.cpp:304
LibBoard::Board::saveSVG
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition:
Board.cpp:1011
LibBoard::Board::setUnit
void setUnit(Unit unit)
Definition:
Board.cpp:239
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::BIG_DS
@ BIG_DS
Definition:
DigitalSetSelector.h:60
DGtal::HIGH_BEL_DS
@ HIGH_BEL_DS
Definition:
DigitalSetSelector.h:63
DGtal::trace
Trace trace
Definition:
Common.h:153
DGtal::HIGH_ITER_DS
@ HIGH_ITER_DS
Definition:
DigitalSetSelector.h:62
DGtal::CustomStyle
Definition:
Board2D.h:217
DGtal::DigitalSetSelector
Aim: Automatically defines an adequate digital set type according to the hints given by the user.
Definition:
DigitalSetSelector.h:89
DGtal::DrawableWithBoard2D
Definition:
Common.h:220
DGtal::SetMode
Modifier class in a Board2D stream. Useful to choose your own mode for a given class....
Definition:
Board2D.h:247
main
int main(int argc, char **argv)
Definition:
testBoard2DCustomStyle.cpp:114
testBoard2DCustomStyle
bool testBoard2DCustomStyle()
Definition:
testBoard2DCustomStyle.cpp:67
Point
MyPointD Point
Definition:
testClone2.cpp:383
domain
Domain domain
Definition:
testProjection.cpp:88
Domain
HyperRectDomain< Space > Domain
Definition:
testSimpleRandomAccessRangeFromPoint.cpp:44
tests
io
testBoard2DCustomStyle.cpp
Generated on Wed Nov 27 2024 16:05:25 for DGtal by
1.9.1