}
Interval_t<int>
-Grob::spanned_rank_iv ()
+Grob::spanned_rank_iv () const
{
return Interval_t<int> (-1, 0);
}
Grob *get_parent (Axis a) const;
void fixup_refpoint ();
- virtual Interval_t<int> spanned_rank_iv ();
+ virtual Interval_t<int> spanned_rank_iv () const;
};
/* smob utilities */
virtual System *get_system () const;
virtual Paper_column *get_column () const;
virtual void handle_prebroken_dependencies ();
- virtual Interval_t<int> spanned_rank_iv ();
+ virtual Interval_t<int> spanned_rank_iv () const;
DECLARE_GROB_INTERFACE();
protected:
virtual void discretionary_processing ();
void substitute_one_mutable_property (SCM sym, SCM val);
bool fast_substitute_grob_array (SCM sym, Grob_array *);
- virtual Interval_t<int> spanned_rank_iv ();
+ Interval_t<Moment> spanned_time () const;
+ virtual Interval_t<int> spanned_rank_iv () const;
void set_bound (Direction d, Grob *);
Item *get_bound (Direction d) const;
DECLARE_GROB_INTERFACE();
virtual System *get_system () const;
+
protected:
void set_my_columns ();
virtual Grob *clone () const;
}
Interval_t<int>
-Item::spanned_rank_iv ()
+Item::spanned_rank_iv () const
{
int c = get_column ()->get_rank ();
return Interval_t<int> (c, c);
#include "stencil.hh"
#include "system.hh"
#include "warn.hh"
+#include "moment.hh"
Grob *
Spanner::clone () const
}
Interval_t<int>
-Spanner::spanned_rank_iv ()
+Spanner::spanned_rank_iv () const
{
Interval_t<int> iv (0, 0);
return iv;
}
+Interval_t<Moment>
+Spanner::spanned_time () const
+{
+ Interval_t<Moment> iv;
+
+ Direction d = LEFT;
+ do
+ {
+ if (spanned_drul_[d] && spanned_drul_[d]->get_column ())
+ iv[d] = robust_scm2moment (spanned_drul_[d]->get_column ()->get_property ("when"),
+ iv[d]);
+ }
+ while (flip (&d) != LEFT);
+
+ do
+ {
+ if (!spanned_drul_[d] || !spanned_drul_[d]->get_column ())
+ iv[d] = iv[-d];
+ }
+ while (flip (&d) != LEFT);
+
+
+ return iv;
+}
+
Item *
Spanner::get_bound (Direction d) const
{