source file of the GNU LilyPond music typesetter
- (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
self_scm_ = SCM_EOL;
immutable_property_alist_ = s.immutable_property_alist_;
-
mutable_property_alist_ = SCM_EOL;
/*
*/
status_ = s.status_;
- pscore_ = s.pscore_;
+ pscore_ = 0;
smobify_self ();
}
-
-
-
MAKE_SCHEME_CALLBACK (Grob,molecule_extent,2);
SCM
Grob::molecule_extent (SCM element_smob, SCM scm_axis)
SCM ext = s->get_grob_property ((a == X_AXIS)
? "X-extent"
: "Y-extent");
-
- if (gh_pair_p (ext))
- {
- Real l = gh_scm2double (ly_car (ext));
- Real r = gh_scm2double (ly_cdr (ext));
- return ly_interval2scm (Interval (l, r));
- }
-
- return ly_interval2scm (Interval ());
+
+ if (is_number_pair (ext))
+ return ext;
+ else
+ return ly_interval2scm (Interval());
}
if (!live())
{
return 0;
-
}
SCM mol = get_grob_property ("molecule");
if (unsmob_molecule (mol))
return unsmob_molecule (mol);
- mol = get_uncached_molecule ();
+ mol = get_uncached_molecule ();
if (live ())
{
if (sp)
{
+ /*
+ This is the original spanner. We use a special function
+ because some Spanners have enormously long lists in their
+ properties.
+ */
for (SCM s = mutable_property_alist_; gh_pair_p(s);
s = gh_cdr(s))
{
sp->substitute_one_mutable_property (gh_caar (s),
gh_cdar (s));
-
}
}
}
bool
-Grob::empty_b (Axis a)const
+Grob::is_empty (Axis a)const
{
return ! (gh_pair_p (dim_cache_[a].dimension_) ||
gh_procedure_p (dim_cache_[a].dimension_));