- if (!off_valid_b_)
- {
- Dimension_cache *d = (Dimension_cache*) this;
-
- d->basic_offset_ =0.0;
- d->off_valid_b_ = true;
- for (int i=0; i < off_callbacks_.size (); i++)
- d->basic_offset_ += (*off_callbacks_[i]) (d);
- }
-
- 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* )
-{
- return Interval (0,0);
-}
-
-Interval
-Dimension_cache::get_dim () const
-{
- Interval r;
- Dimension_cache *nc = ((Dimension_cache*)this);
- if (!callback_l_)
- {
- nc->dim_.set_empty ();
- }
- else if (!valid_b_)
- {
-
- nc->dim_= (*callback_l_ ) (nc);
- nc->valid_b_ = true;
- }
-
- r=dim_;
- return r;