]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/dimension-cache.hh
patch::: 1.3.93.jcn2
[lilypond.git] / lily / include / dimension-cache.hh
1 /*   
2   dimension-cache.hh -- declare Dimension_cache
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1998--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef DIMENSION_CACHE_HH
11 #define DIMENSION_CACHE_HH
12
13 #include "interval.hh"
14 #include "real.hh"
15 #include "lily-proto.hh"
16 #include "parray.hh"
17 #include "dimension-cache-callback.hh"
18 #include "lily-guile.hh"
19
20
21 /**
22   Adminstration of offset dimension info.
23
24   TODO: use SCM for callbacks, and let them be set as basic
25   properties.
26 */
27 struct Dimension_cache
28 {
29   Interval dim_;
30   /**
31     The offset wrt. to the center of #parent_l_#
32    */
33
34   Real offset_;
35   SCM offset_callbacks_;
36   
37   bool valid_b_;
38   char offsets_left_;
39
40   /**
41      What to call to find extent.  Nil means empty. 
42    */
43   Dim_cache_callback extent_callback_l_;
44   Score_element * parent_l_;
45
46   Dimension_cache(Dimension_cache const&);
47   Dimension_cache ();
48   void init ();
49 };
50
51
52 #endif /* DIMENSION_CACHE_HH */
53