]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/line-interface.cc
put check target at toplevel.
[lilypond.git] / lily / line-interface.cc
index 6401b3896ae942ced9333c9b101ab43582275ef4..f65dc946f2c70b62d7196f66159d99c2c1307dde 100644 (file)
@@ -11,6 +11,7 @@
 #include "staff-symbol-referencer.hh"
 #include "lookup.hh"
 #include "output-def.hh"
+#include "grob.hh"
 
 Stencil
 Line_interface::make_arrow (Offset begin, Offset end,
@@ -44,6 +45,7 @@ Line_interface::make_dashed_line (Real thick, Offset from, Offset to,
                       scm_from_double (off),
                       scm_from_double (to[X_AXIS] - from[X_AXIS]),
                       scm_from_double (to[Y_AXIS] - from[Y_AXIS]),
+                      scm_from_double (0.0),
                       SCM_UNDEFINED);
 
   Box box;
@@ -138,7 +140,7 @@ Line_interface::line (Grob *me, Offset from, Offset to)
   return stil;
 }
 
-ADD_INTERFACE (Line_interface, "line-interface",
+ADD_INTERFACE (Line_interface,
               "Generic line objects. Any object using lines supports this.  Normally, "
               "you get a straight line. If @code{dash-period} is defined, a dashed line is "
               "produced; the length of the dashes is tuned with "
@@ -153,3 +155,22 @@ ADD_INTERFACE (Line_interface, "line-interface",
               "style "
               "arrow-length "
               "arrow-width")
+
+
+
+/* todo: move this somewhere else? */
+Stencil
+points_to_line_stencil (vector<Offset> points)
+{
+  Stencil ret;
+  for (vsize i = 1; i < points.size (); i++)
+    {
+      if (points[i-1].is_sane ()  && points[i].is_sane ())
+       {
+         Stencil line
+           = Line_interface::make_line (0.1, points[i-1], points[i]);
+         ret.add_stencil (line);
+       }
+    }
+  return ret;
+}