]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/stencil-scheme.cc
* lily/sequential-music.cc: remove file.
[lilypond.git] / lily / stencil-scheme.cc
index ebd50de6b6bac9a1373a03bc5668cdb7a0eb4fe3..3a4b6e167220969def7cfacac1e0f236a6c241a7 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "font-metric.hh"
 #include "stencil.hh"
+#include "lookup.hh"
 
 /*
   TODO: naming add/combine.
@@ -295,3 +296,42 @@ LY_DEFINE (ly_interpret_stencil_expression, "ly:interpret-stencil-expression",
   return SCM_UNSPECIFIED;
 }
 
+
+
+LY_DEFINE (ly_bracket ,"ly:bracket",
+         4, 0, 0,
+         (SCM a, SCM iv, SCM t, SCM p),
+         "Make a bracket in direction @var{a}. The extent of the bracket is " 
+         "given by @var{iv}. The wings protude by an amount of @var{p}, which "
+         "may be negative. The thickness is given by @var{t}.")
+{
+  SCM_ASSERT_TYPE (is_axis (a), a, SCM_ARG1, __FUNCTION__, "axis") ;
+  SCM_ASSERT_TYPE (is_number_pair (iv), iv, SCM_ARG2, __FUNCTION__, "number pair") ;
+  SCM_ASSERT_TYPE (scm_is_number (t), a, SCM_ARG3, __FUNCTION__, "number") ;
+  SCM_ASSERT_TYPE (scm_is_number (p), a, SCM_ARG4, __FUNCTION__, "number") ;
+
+
+  return Lookup::bracket ((Axis)scm_to_int (a), ly_scm2interval (iv),
+                         scm_to_double (t),
+                         scm_to_double (p),
+                         0.95 * scm_to_double (t)).smobbed_copy ();
+}
+
+
+
+LY_DEFINE (ly_filled_box ,"ly:round-filled-box",
+         3, 0, 0,
+         (SCM xext, SCM yext, SCM blot),
+         "Make a @code{Stencil} "
+         "that prints a black box of dimensions @var{xext}, "
+         "@var{yext} and roundness @var{blot}."
+         )
+{
+  SCM_ASSERT_TYPE (is_number_pair (xext), xext, SCM_ARG1, __FUNCTION__, "number pair") ;
+  SCM_ASSERT_TYPE (is_number_pair (yext), yext, SCM_ARG2, __FUNCTION__, "number pair") ;
+  SCM_ASSERT_TYPE (scm_is_number (blot), blot, SCM_ARG3, __FUNCTION__, "number") ;
+
+  return Lookup::round_filled_box (Box (ly_scm2interval (xext), ly_scm2interval (yext)),
+                                  scm_to_double (blot)).smobbed_copy ();
+}
+