X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fdimension-cache.hh;h=f3b7b88eaab8aac406b851e1457818c11604e3ab;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=990888c564c1a731b25b1240413c39cf8c97126d;hpb=7d2ec0f1c47d211f243cf5646b35ef5298d8c82a;p=lilypond.git diff --git a/lily/include/dimension-cache.hh b/lily/include/dimension-cache.hh index 990888c564..f3b7b88eaa 100644 --- a/lily/include/dimension-cache.hh +++ b/lily/include/dimension-cache.hh @@ -1,78 +1,33 @@ -/* +/* dimension-cache.hh -- declare Dimension_cache - + source file of the GNU LilyPond music typesetter - - (c) 1998--1999 Han-Wen Nienhuys - - */ + + (c) 1998--2008 Han-Wen Nienhuys +*/ #ifndef DIMENSION_CACHE_HH #define DIMENSION_CACHE_HH -#include "interval.hh" -#include "real.hh" #include "lily-proto.hh" -#include "parray.hh" -class Dimension_cache; -typedef Interval (*Dim_cache_callback)(Dimension_cache const *); -typedef Real (*Offset_cache_callback)(Dimension_cache const *); - -/** - Adminstration of offset dimension info. - */ +/* + XY offset/refpoint/extent structure. +*/ class Dimension_cache { - bool valid_b_; - Interval dim_; - /** - The offset wrt. to the center of #parent_l_# - */ - - Real extra_offset_; - Real basic_offset_; - bool off_valid_b_; - - Score_element *elt_l_; - friend class Score_element; - + Interval *extent_; + Real *offset_; + Grob *parent_; void init (); -public: - Array off_callbacks_; - /** - What to call to find extent. Nil means empty. - */ - Dim_cache_callback callback_l_; - static Interval point_dimension_callback (Dimension_cache const* ); - Axis axis () const; - Real get_offset () const; - void set_callback (Dim_cache_callback); - Dimension_cache * parent_l_; - - Score_element *element_l () const { return elt_l_; } - - Dimension_cache(Dimension_cache const&); + void clear (); + + friend class Grob; + + Dimension_cache (Dimension_cache const &); + ~Dimension_cache (); Dimension_cache (); - - - /** - Find the offset relative to D. If D equals THIS, then it is 0. - Otherwise, it recursively defd as - - OFFSET_ + PARENT_L_->relative_coordinate (D) - */ - Real relative_coordinate (Dimension_cache *d) const; - Dimension_cache*common_refpoint (Dimension_cache const* s) const; - Dimension_cache*common_refpoint (Link_array caches) const; - void set_empty (bool); - void translate (Real); - - bool valid_b () const { return valid_b_; } - bool empty_b() const; - Interval get_dim () const; }; - #endif /* DIMENSION_CACHE_HH */