lilypond-1.3.16
[lilypond.git] / lily / include / box.hh
blobc53543d05855087590009b5e1dff587cbe182709
1 /*
2 some 2D geometrical concepts
3 */
5 #ifndef BOXES_HH
6 #define BOXES_HH
8 #include "fproto.hh"
9 #include "real.hh"
10 #include "interval.hh"
11 #include "offset.hh"
12 #include "axes.hh"
15 struct Box {
16 Interval interval_a_[NO_AXES];
18 Interval &x() {return interval_a_[X_AXIS]; }
19 Interval &y(){ return interval_a_[Y_AXIS]; }
20 Interval x() const{ return interval_a_[X_AXIS]; }
21 Interval y() const{return interval_a_[Y_AXIS]; }
22 Interval operator[](Axis a) const;
23 Interval &operator[] (Axis a);
25 void translate (Offset o);
26 /// smallest box enclosing #b#
27 void set_empty ();
28 void unite (Box b);
29 Box();
30 Box (Interval ix, Interval iy);
34 #endif