X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fbox.hh;h=baa4ce0b7645791bd993f0a3b204d3f0a9c8f8e1;hb=b48ef606dc20f099962a35f70b244e55e90f06be;hp=bd3a7e7703d145db295035062ef5c7105ea992e1;hpb=bb36bac02a64770871780231ecc709cb18b20932;p=lilypond.git diff --git a/lily/include/box.hh b/lily/include/box.hh index bd3a7e7703..baa4ce0b76 100644 --- a/lily/include/box.hh +++ b/lily/include/box.hh @@ -1,34 +1,38 @@ /* - some 2D geometrical concepts + some 2D geometrical concepts */ #ifndef BOXES_HH #define BOXES_HH -#include "flower-proto.hh" -#include "real.hh" #include "interval.hh" #include "offset.hh" -#include "axes.hh" +#include "smobs.hh" - -struct Box { +class Box +{ Interval interval_a_[NO_AXES]; - - Interval &x() {return interval_a_[X_AXIS]; } - Interval &y(){ return interval_a_[Y_AXIS]; } - Interval x() const{ return interval_a_[X_AXIS]; } - Interval y() const{return interval_a_[Y_AXIS]; } - Interval operator[](Axis a) const; - Interval &operator[] (Axis a); - + DECLARE_SIMPLE_SMOBS (Box); +public: + Interval &x () {return interval_a_[X_AXIS]; } + Interval &y (){ return interval_a_[Y_AXIS]; } + Interval x () const{ return interval_a_[X_AXIS]; } + Interval y () const{return interval_a_[Y_AXIS]; } + Interval operator [] (Axis a) const; + Interval &operator [] (Axis a); + + Offset center () const; + void translate (Offset o); + /// smallest box enclosing #b# void set_empty (); + void add_point (Offset); + void widen (Real x, Real y); + void scale (Real r); void unite (Box b); - Box(); + Box (); Box (Interval ix, Interval iy); }; - #endif