--- /dev/null
+
+\header {
+
+ texidoc = "For slope calculations, stemlets are treated
+as invisible stems."
+
+}
+
+\version "2.10.7"
+
+\layout {
+ ragged-right = ##t
+ indent = #0
+}
+
+\relative c' {
+ \times 2/3 {r8[ c' g']}
+ \override Stem #'stemlet-length = #0.5
+ \times 2/3 {r8[ c, g']}
+}
+
+
Direction beam_dir = CENTER;
for (vsize i = stems.size (); i--;)
{
- if (Stem::is_invisible (stems[i]))
- stems.erase (stems.begin () + i);
- else
+ if (Stem::is_normal_stem (stems[i]))
{
if (Direction dir = get_grob_direction (stems[i]))
beam_dir = dir;
}
+ else
+ stems.erase (stems.begin () + i);
}
if (stems.size () <= 2)
for (vsize i = 0; i < stems.size (); i++)
{
Grob *s = stems[i];
- if (Stem::is_invisible (s))
+ if (!Stem::is_normal_stem (s))
continue;
+
ideals.push_back (Offset (x_posns[i],
Stem::get_stem_info (s).ideal_y_
+ s->relative_coordinate (commony, Y_AXIS)
for (vsize i = 0; i < stems.size (); i++)
{
- if (!Stem::is_invisible (stems[i]))
+ if (Stem::is_normal_stem (stems[i]))
return stems[i];
}
return 0;
for (vsize i = stems.size (); i--;)
{
- if (!Stem::is_invisible (stems[i]))
+ if (Stem::is_normal_stem (stems[i]))
return stems[i];
}
return 0;
static Real thickness (Grob *);
static int head_count (Grob *);
static bool is_invisible (Grob *);
+ static bool is_normal_stem (Grob *);
static Interval head_positions (Grob *);
static Real stem_end_position (Grob *);
static Stencil flag (Grob *);
&& scm_to_int (me->get_property ("duration-log")) >= 1);
}
+
+bool
+Stem::is_normal_stem (Grob *me)
+{
+ return head_count (me) && scm_to_int (me->get_property ("duration-log")) >= 1;
+}
+
+
MAKE_SCHEME_CALLBACK (Stem, pure_height, 3)
SCM
Stem::pure_height (SCM smob, SCM start, SCM end)