Real staff_space = Staff_symbol_referencer::staff_space (me);
- double w = robust_scm2double (me->get_property ("zigzag-width"), 1)*staff_space;
- double l = robust_scm2double (me->get_property ("zigzag-length"), 1)* w;
- double h = l > w / 2 ? sqrt (l*l - w*w / 4) : 0;
+ double w = robust_scm2double (me->get_property ("zigzag-width"), 1) * staff_space;
+ double l = robust_scm2double (me->get_property ("zigzag-length"), 1) * w;
+ double h = l > w / 2 ? sqrt (l * l - w * w / 4) : 0;
SCM list = scm_list_n (ly_symbol2scm ("zigzag-line"),
ly_bool2scm (true),
Can't do suicide, since this mucks up finding the trend.
*/
me->set_property ("print-function", SCM_EOL);
-
}
return SCM_EOL;
}
{
Offset dz = to -from;
SCM type = me->get_property ("style");
+
+ Stencil line;
+
if (scm_is_symbol (type)
&& (type == ly_symbol2scm ("line")
|| type == ly_symbol2scm ("dashed-line")
|| type == ly_symbol2scm ("zigzag")
|| (type == ly_symbol2scm ("trill") && dz[Y_AXIS] != 0)))
{
- return (type == ly_symbol2scm ("zigzag"))
+ line = (type == ly_symbol2scm ("zigzag"))
? zigzag_stencil (me, from, to)
: Line_interface::line (me, from, to);
}
mol.add_at_edge (X_AXIS, RIGHT, m, 0, 0);
while (m.extent (X_AXIS).length ()
&& mol.extent (X_AXIS).length ()
- + m.extent (X_AXIS).length () < dz[X_AXIS]);
+ + m.extent (X_AXIS).length () < dz[X_AXIS])
+ ;
/*
FIXME: should center element on x/y
+ mol.extent (Y_AXIS).length ()) / 2, Y_AXIS);
mol.translate (from);
- return mol;
+ line = mol;
}
- return Stencil ();
+
+ if (to_boolean (me->get_property ("arrow")))
+ line.add_stencil (Line_interface::arrows (me, from, to, false, true));
+
+ return line;
}
/*
Real gap = robust_scm2double (me->get_property ("gap"), 0.0);
- Offset ofxy (gap, 0); /*offset from start point to start of line*/
+ Offset ofxy (gap, 0); /* offset from start point to start of line */
Offset dxy;
Offset my_off;
Offset his_off;
Offset dz (p2 -p1);
Real len = dz.length ();
- Offset dir = dz * (1/ len);
- dz = (dz.length () - 2*gap) *dir;
+ Offset dir = dz * (1 / len);
+ dz = (dz.length () - 2 * gap) * dir;
Stencil l (line_stencil (me, Offset (0, 0), dz));
}
// distance from center to start of line
- Real off = gap + ((bound[LEFT]->extent (bound[LEFT], X_AXIS).length ()*3) / 4);
+ Real off = gap + ((bound[LEFT]->extent (bound[LEFT], X_AXIS).length () * 3) / 4);
for (int a = X_AXIS; a < NO_AXES; a++)
{
my_off[ax] = me->relative_coordinate (common[a], ax);
his_off[ax] = bound[LEFT]->relative_coordinate (common[a], ax);
-
}
ofxy = dxy * (off / dxy.length ());
"@code{dashed-line}, @code{trill}, \n"
"@code{dotted-line} or @code{zigzag}.\n"
"\n",
- "gap zigzag-width zigzag-length thickness");
+ "gap zigzag-width zigzag-length thickness arrow");