#include "system.hh"
#include "group-interface.hh"
-/* spanner in name? */
-LY_DEFINE (get_broken_into,
- "get-broken-into", 1, 0, 0, (SCM spanner),
- "
-Return broken-into list for @var{spanner}.
-"
-)
-{
- /// Spanner *me = unsmob_spanner (spanner);
- Spanner *me = dynamic_cast<Spanner*> (unsmob_grob (spanner));
- SCM_ASSERT_TYPE (me, spanner, SCM_ARG1, __FUNCTION__, "spanner");
-
- SCM s = SCM_EOL;
- for (int i = me->broken_intos_.size (); i; i--)
- s = gh_cons (me->broken_intos_[i-1]->self_scm (), s);
- return s;
-}
-
void
Spanner::do_break_processing ()
{
}
}
broken_intos_.sort (Spanner::compare);
+ for (int i= broken_intos_.size();i--;)
+ broken_intos_[i]->break_index_ = i;
}
void
return iv;
}
+
Item*
Spanner::get_bound (Direction d) const
{
Spanner::Spanner (SCM s)
: Grob (s)
{
+ break_index_ = 0;
spanned_drul_[LEFT]=0;
spanned_drul_[RIGHT]=0;
Group_interface::add_thing (this, ly_symbol2scm ("interfaces"), ly_symbol2scm ("spanner-interface"));
}
SCM
-Spanner::do_derived_mark ()
+Spanner::do_derived_mark () const
{
/*
We'd be fucked if this is called before spanned_drul_[] is inited. */
r.item_l_drul_[LEFT] = sp->get_bound (LEFT);
r.item_l_drul_[RIGHT] = sp->get_bound (RIGHT);
r.distance_ =
- gh_scm2double (me->get_grob_property ("minimum-length"))
- * 1.0;
+ gh_scm2double (me->get_grob_property ("minimum-length"));
r.add_to_cols ();
return SCM_UNSPECIFIED;