2 dimension-cache.cc -- implement Dimension_cache
4 source file of the GNU LilyPond music typesetter
6 (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
9 #include "dimension-cache.hh"
12 Dimension_cache::Dimension_cache (Dimension_cache const &d)
15 empty_b_ = d.empty_b_;
18 Dimension_cache::Dimension_cache ()
24 Dimension_cache::init()
36 Dimension_cache::invalidate ()
39 invalidate_dependencies ();
43 Dimension_cache::invalidate_dependencies ()
45 for (int i=0; i < dependencies_l_arr_.size (); i++)
47 Dimension_cache * g = dependencies_l_arr_[i];
56 Dimension_cache::set_offset (Real x)
58 invalidate_dependencies ();
63 Dimension_cache::translate (Real x)
65 invalidate_dependencies ();
71 Dimension_cache::absolute_coordinate () const
74 for (Dimension_cache * c = parent_l_;
81 Dimension_cache::relative_coordinate (Dimension_cache *d) const
85 for (Dimension_cache* c = parent_l_;
93 Dimension_cache::common_group (Dimension_cache const* s) const
95 Link_array<Dimension_cache const> my_groups;
96 for (Dimension_cache const *c = this;
101 Dimension_cache const *common=0;
103 for (Dimension_cache const * d = s;
106 common = my_groups.find_l (d);
108 return (Dimension_cache*)common;
114 Dimension_cache::set_empty (bool b)
125 Dimension_cache::set_dim (Interval v)
133 Dimension_cache::get_dim () const
145 if (!r.empty_b()) // float exception on DEC Alpha