21 {
22
23struct Rect;
25struct ShapeList;
26
32public:
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;
41 const double pageWidth,
42 const double pageHeight,
43 const double margin ) = 0;
44
45 static inline double round(
const double & x );
46
47protected:
52};
53
60public:
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
74public:
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;
85private:
86 int _maxDepth;
87 int _minDepth;
88};
89
96public:
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 WITH_CAIRO
112struct TransformCairo :
public Transform {
113public:
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
129struct TransformTikZ : public TransformSVG {
130};
131
132#include "Transforms.ih"
133
134}
135
136#endif