-Dimension_cache::translate (Real x)
-{
- extra_offset_ += x;
-}
-
-Real
-Dimension_cache::relative_coordinate (Dimension_cache *refp) const
-{
- if (refp == this)
- return 0.0;
-
- /*
- We catch PARENT_L_ == nil case with this, but we crash if we did
- not ask for the absolute coordinate (ie. REFP == nil.)
-
- */
- if (refp == parent_l_)
- return get_offset ();
- else
- return get_offset () + parent_l_->relative_coordinate (refp);
-}
-
-Axis
-Dimension_cache::axis () const
-{
- if (elt_l_-> dim_cache_[X_AXIS] == this)
- return X_AXIS;
- else
- return Y_AXIS;
-}
-
-Real
-Dimension_cache::get_offset () const
-{
- Dimension_cache *me = (Dimension_cache*) this;
- while (off_callbacks_.size ())
- {
- Offset_cache_callback c = me->off_callbacks_[0];
- me->off_callbacks_.del (0);
- me->basic_offset_ += (*c) (me);
- }
- return basic_offset_ + extra_offset_;
-}
-
-Dimension_cache *
-Dimension_cache::common_refpoint (Dimension_cache const* s) const
-{
- Link_array<Dimension_cache> my_groups;
- for (Dimension_cache const *c = this; c ; c = c->parent_l_)
- my_groups.push ((Dimension_cache*)c);
-
- Dimension_cache const *common=0;
-
- for (Dimension_cache const * d = s; !common && d; d = d->parent_l_)
- common = (Dimension_cache const*)my_groups.find_l (d);
-
- return (Dimension_cache*) common;
-}
-
-Interval
-Dimension_cache::point_dimension_callback (Dimension_cache const* )