Main Page
Namespaces
Classes
Files
File List
File Members
CDRTransforms.h
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/*
3
* This file is part of the libcdr project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*/
9
10
#ifndef __CDRTRANSFORMS_H__
11
#define __CDRTRANSFORMS_H__
12
13
#include <vector>
14
#include <math.h>
15
16
namespace
libcdr
17
{
18
class
CDRPath;
19
20
class
CDRTransform
21
{
22
public
:
23
CDRTransform
();
24
CDRTransform
(
double
v0,
double
v1,
double
x0,
double
v3,
double
v4,
double
y0);
25
CDRTransform
(
const
CDRTransform
&trafo);
26
27
void
applyToPoint
(
double
&x,
double
&y)
const
;
28
void
applyToArc
(
double
&rx,
double
&ry,
double
&rotation,
bool
&sweep,
double
&endx,
double
&endy)
const
;
29
double
getScaleX
()
const
;
30
double
getScaleY
()
const
;
31
double
getTranslateX
()
const
;
32
double
getTranslateY
()
const
;
33
bool
getFlipX
()
const
;
34
bool
getFlipY
()
const
;
35
36
private
:
37
double
_getScaleX
()
const
;
38
double
_getScaleY
()
const
;
39
double
m_v0
;
40
double
m_v1
;
41
double
m_x0
;
42
double
m_v3
;
43
double
m_v4
;
44
double
m_y0
;
45
};
46
47
class
CDRTransforms
48
{
49
public
:
50
CDRTransforms
();
51
CDRTransforms
(
const
CDRTransforms
&trafos);
52
~CDRTransforms
();
53
54
void
append
(
double
v0,
double
v1,
double
x0,
double
v3,
double
v4,
double
y0);
55
void
append
(
const
CDRTransform
&trafo);
56
void
clear
();
57
bool
empty
()
const
;
58
59
void
applyToPoint
(
double
&x,
double
&y)
const
;
60
void
applyToArc
(
double
&rx,
double
&ry,
double
&rotation,
bool
&sweep,
double
&x,
double
&y)
const
;
61
double
getScaleX
()
const
;
62
double
getScaleY
()
const
;
63
double
getTranslateX
()
const
;
64
double
getTranslateY
()
const
;
65
bool
getFlipX
()
const
;
66
bool
getFlipY
()
const
;
67
68
private
:
69
double
_getScaleX
()
const
;
70
double
_getScaleY
()
const
;
71
std::vector<CDRTransform>
m_trafos
;
72
};
73
74
}
// namespace libcdr
75
76
#endif
/* __CDRTRANSFORMS_H__ */
77
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Generated for libcdr by
doxygen
1.8.3.1