DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
Transforms.h
1
/* -*- mode: c++ -*- */
6
*
7
* @brief
8
*/
9
/*
10
* \@copyright This File is part of the Board library which is
11
* licensed under the terms of the GNU Lesser General Public Licence.
12
* See the LICENCE file for further details.
13
*/
14
#ifndef _BOARD_TRANSFORMS_H_
15
#define _BOARD_TRANSFORMS_H_
16
17
#include <limits>
18
#include <vector>
19
#include <cmath>
20
21
namespace
LibBoard
{
22
23
struct
Rect
;
24
struct
Shape
;
25
struct
ShapeList
;
26
31
struct
Transform
{
32
public
:
33
inline
Transform
();
34
virtual
~Transform
() { };
35
virtual
double
mapX
(
double
x )
const
;
36
virtual
double
mapY
(
double
y )
const
= 0;
37
virtual
void
apply
(
double
& x,
double
& y )
const
;
38
virtual
double
scale
(
double
x )
const
;
39
virtual
double
rounded
(
double
x )
const
;
40
virtual
void
setBoundingBox
(
const
Rect
& rect,
41
const
double
pageWidth,
42
const
double
pageHeight,
43
const
double
margin ) = 0;
44
45
static
inline
double
round
(
const
double
& x );
46
47
protected
:
48
double
_scale
;
49
double
_deltaX
;
50
double
_deltaY
;
51
double
_height
;
52
};
53
59
struct
TransformEPS
:
public
Transform
{
60
public
:
61
double
mapY
(
double
y )
const
;
62
void
setBoundingBox
(
const
Rect
& rect,
63
const
double
pageWidth,
64
const
double
pageHeight,
65
const
double
margin );
66
};
67
73
struct
TransformFIG
:
public
Transform
{
74
public
:
75
inline
TransformFIG
();
76
double
rounded
(
double
x )
const
;
77
double
mapY
(
double
y )
const
;
78
int
mapWidth
(
double
width )
const
;
79
void
setBoundingBox
(
const
Rect
& rect,
80
const
double
pageWidth,
81
const
double
pageHeight,
82
const
double
margin );
83
void
setDepthRange
(
const
ShapeList
& shapes );
84
int
mapDepth
(
int
depth )
const
;
85
private
:
86
int
_maxDepth
;
87
int
_minDepth
;
88
};
89
95
struct
TransformSVG
:
public
Transform
{
96
public
:
97
double
rounded
(
double
x )
const
;
98
double
mapY
(
double
y )
const
;
99
double
mapWidth
(
double
width )
const
;
100
void
setBoundingBox
(
const
Rect
& rect,
101
const
double
pageWidth,
102
const
double
pageHeight,
103
const
double
margin );
104
};
105
106
#ifdef DGTAL_WITH_CAIRO
112
struct
TransformCairo
:
public
Transform
{
113
public
:
114
double
rounded
(
double
x )
const
;
115
double
mapY
(
double
y )
const
;
116
double
mapWidth
(
double
width )
const
;
117
void
setBoundingBox
(
const
Rect
& rect,
118
const
double
pageWidth,
119
const
double
pageHeight,
120
const
double
margin );
121
};
122
#endif
123
129
struct
TransformTikZ
:
public
TransformSVG
{
130
};
131
132
#include "Transforms.ih"
133
134
}
// namespace LibBoard
135
136
#endif
/* _TRANSFORMS_H_ */
LibBoard
Definition
Board.cpp:86
LibBoard::Rect
Struct representing a rectangle on the plane.
Definition
Rect.h:26
LibBoard::ShapeList
A group of shapes.
Definition
ShapeList.h:28
LibBoard::Shape
Abstract structure for a 2D shape.
Definition
Board/Shapes.h:58
LibBoard::TransformCairo
Structure representing a scaling and translation suitable for an Cairo output.
Definition
Transforms.h:112
LibBoard::TransformCairo::setBoundingBox
void setBoundingBox(const Rect &rect, const double pageWidth, const double pageHeight, const double margin)
Definition
Transforms.cpp:247
LibBoard::TransformCairo::mapY
double mapY(double y) const
Definition
Transforms.cpp:234
LibBoard::TransformCairo::mapWidth
double mapWidth(double width) const
Definition
Transforms.cpp:240
LibBoard::TransformCairo::rounded
double rounded(double x) const
Definition
Transforms.cpp:228
LibBoard::TransformEPS
Structure representing a scaling and translation suitable for an EPS output.
Definition
Transforms.h:59
LibBoard::TransformEPS::mapY
double mapY(double y) const
Definition
Transforms.cpp:62
LibBoard::TransformEPS::setBoundingBox
void setBoundingBox(const Rect &rect, const double pageWidth, const double pageHeight, const double margin)
Definition
Transforms.cpp:68
LibBoard::TransformFIG::mapWidth
int mapWidth(double width) const
Definition
Transforms.cpp:111
LibBoard::TransformFIG::mapDepth
int mapDepth(int depth) const
Definition
Transforms.cpp:158
LibBoard::TransformFIG::setBoundingBox
void setBoundingBox(const Rect &rect, const double pageWidth, const double pageHeight, const double margin)
Definition
Transforms.cpp:121
LibBoard::TransformFIG::TransformFIG
TransformFIG()
Definition
Transforms.h:10
LibBoard::TransformFIG::rounded
double rounded(double x) const
Definition
Transforms.cpp:99
LibBoard::TransformFIG::_minDepth
int _minDepth
Definition
Transforms.h:87
LibBoard::TransformFIG::_maxDepth
int _maxDepth
Definition
Transforms.h:86
LibBoard::TransformFIG::mapY
double mapY(double y) const
Definition
Transforms.cpp:105
LibBoard::TransformFIG::setDepthRange
void setDepthRange(const ShapeList &shapes)
Definition
Transforms.cpp:151
LibBoard::TransformSVG
Structure representing a scaling and translation suitable for an SVG output.
Definition
Transforms.h:95
LibBoard::TransformSVG::mapWidth
double mapWidth(double width) const
Definition
Transforms.cpp:188
LibBoard::TransformSVG::setBoundingBox
void setBoundingBox(const Rect &rect, const double pageWidth, const double pageHeight, const double margin)
Definition
Transforms.cpp:195
LibBoard::TransformSVG::rounded
double rounded(double x) const
Definition
Transforms.cpp:176
LibBoard::TransformSVG::mapY
double mapY(double y) const
Definition
Transforms.cpp:182
LibBoard::TransformTikZ
Structure representing a scaling and translation suitable for an TikZ output.
Definition
Transforms.h:129
LibBoard::Transform::Transform
Transform()
Definition
Transforms.h:6
LibBoard::Transform::mapX
virtual double mapX(double x) const
Definition
Transforms.cpp:39
LibBoard::Transform::_height
double _height
Definition
Transforms.h:51
LibBoard::Transform::_deltaY
double _deltaY
Definition
Transforms.h:50
LibBoard::Transform::apply
virtual void apply(double &x, double &y) const
Definition
Transforms.cpp:51
LibBoard::Transform::setBoundingBox
virtual void setBoundingBox(const Rect &rect, const double pageWidth, const double pageHeight, const double margin)=0
LibBoard::Transform::round
static double round(const double &x)
Definition
Transforms.h:15
LibBoard::Transform::~Transform
virtual ~Transform()
Definition
Transforms.h:34
LibBoard::Transform::mapY
virtual double mapY(double y) const =0
LibBoard::Transform::scale
virtual double scale(double x) const
Definition
Transforms.cpp:45
LibBoard::Transform::_scale
double _scale
Definition
Transforms.h:48
LibBoard::Transform::rounded
virtual double rounded(double x) const
Definition
Transforms.cpp:33
LibBoard::Transform::_deltaX
double _deltaX
Definition
Transforms.h:49
src
Board
Transforms.h
Generated on
for DGtal by
1.18.0