]> git.lyx.org Git - lyx.git/blob - src/graphics/GraphicsParams.C
move a comment and an #include
[lyx.git] / src / graphics / GraphicsParams.C
1 /*
2  * \file GraphicsParams.C
3  * Copyright 2002 the LyX Team
4  * Read the file COPYING
5  *
6  * \author Angus Leeming <a.leeming@ic.ac.uk>
7  */
8
9 #include <config.h>
10
11 #ifdef __GNUG__
12 #pragma implementation
13 #endif
14
15 #include "GraphicsParams.h"
16 #include "Lsstream.h"
17 #include "lyxlength.h"
18
19
20 namespace grfx {
21
22 GParams::GParams()
23         : width(0),
24           height(0),
25           scale(0),
26           angle(0)
27 {}
28
29
30 bool operator==(GParams const & a, GParams const & b)
31 {
32         return (a.filename == b.filename &&
33                 a.display  == b.display &&
34                 a.bb       == b.bb &&
35                 a.width    == b.width &&
36                 a.height   == b.height &&
37                 a.scale    == b.scale &&
38                 a.angle    == b.angle);
39 }
40
41
42 bool operator!=(GParams const & a, GParams const & b)
43 {
44         return !(a == b);
45 }
46
47
48 BoundingBox::BoundingBox()
49         : xl(0), yb(0), xr(0), yt(0)
50 {}
51
52
53 BoundingBox::BoundingBox(string const & bb)
54         : xl(0), yb(0), xr(0), yt(0)
55 {
56         if (bb.empty())
57                 return;
58
59         std::istringstream is(bb.c_str());
60         string a, b, c, d;
61         is >> a >> b >> c >> d;
62
63         // inBP returns the length in Postscript points.
64         // Note further that there are 72 Postscript pixels per inch.
65         int const xl_tmp = LyXLength(a).inBP();
66         int const yb_tmp = LyXLength(b).inBP();
67         int const xr_tmp = LyXLength(c).inBP();
68         int const yt_tmp = LyXLength(d).inBP();
69
70         if (xr_tmp <= xl_tmp || yt_tmp <= yb_tmp)
71                 return;
72
73         xl = xl_tmp;
74         yb = yb_tmp;
75         xr = xr_tmp;
76         yt = yt_tmp;
77 }
78
79
80 bool BoundingBox::empty() const
81 {
82         return (!xl && !yb && !xr && !yt);
83 }
84
85
86 bool operator==(BoundingBox const & a, BoundingBox const & b)
87 {
88         return (a.xl == b.xl &&
89                 a.yb == b.yb &&
90                 a.xr == b.xr &&
91                 a.yt == b.yt);
92 }
93
94
95 bool operator!=(BoundingBox const & a, BoundingBox const & b)
96 {
97         return !(a == b);
98 }
99
100 } // namespace grfx