]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/stencil-integral.cc
Issue 4422/1: Remove parser/location global variable setup
[lilypond.git] / lily / stencil-integral.cc
index 91f1333867c4d03652d264b57a481b2d67884458..e72517e4eadbcb28ce916ce325325a984b24874d 100644 (file)
@@ -113,7 +113,7 @@ get_number_list (SCM l)
       if (scm_is_number (scm_car (l)))
         return l;
       SCM res = get_number_list (scm_car (l));
-      if (res == SCM_BOOL_F)
+      if (scm_is_false (res))
         return get_number_list (scm_cdr (l));
       return res;
     }
@@ -129,19 +129,18 @@ get_path_list (SCM l)
 {
   if (scm_is_pair (l))
     {
-      if (scm_memv (scm_car (l),
-                    scm_list_n (ly_symbol2scm ("moveto"),
-                                ly_symbol2scm ("rmoveto"),
-                                ly_symbol2scm ("lineto"),
-                                ly_symbol2scm ("rlineto"),
-                                ly_symbol2scm ("curveto"),
-                                ly_symbol2scm ("rcurveto"),
-                                ly_symbol2scm ("closepath"),
-                                SCM_UNDEFINED))
-          != SCM_BOOL_F)
+      if (scm_is_true (scm_memv (scm_car (l),
+                                 scm_list_n (ly_symbol2scm ("moveto"),
+                                             ly_symbol2scm ("rmoveto"),
+                                             ly_symbol2scm ("lineto"),
+                                             ly_symbol2scm ("rlineto"),
+                                             ly_symbol2scm ("curveto"),
+                                             ly_symbol2scm ("rcurveto"),
+                                             ly_symbol2scm ("closepath"),
+                                             SCM_UNDEFINED))))
         return l;
       SCM res = get_path_list (scm_car (l));
-      if (res == SCM_BOOL_F)
+      if (scm_is_false (res))
         return get_path_list (scm_cdr (l));
       return res;
     }
@@ -530,8 +529,8 @@ all_commands_to_absolute_and_group (SCM expr)
   bool first = true;
   while (scm_is_pair (expr))
     {
-      if (scm_car (expr) == ly_symbol2scm ("moveto")
-          || (scm_car (expr) == ly_symbol2scm ("rmoveto") && first))
+      if (scm_is_eq (scm_car (expr), ly_symbol2scm ("moveto"))
+          || (scm_is_eq (scm_car (expr), ly_symbol2scm ("rmoveto")) && first))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -539,7 +538,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = start;
           expr = scm_cdddr (expr);
         }
-      if (scm_car (expr) == ly_symbol2scm ("rmoveto"))
+      if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rmoveto")))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -547,7 +546,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = start;
           expr = scm_cdddr (expr);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("lineto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("lineto")))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -559,7 +558,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = Offset (x, y);
           expr = scm_cdddr (expr);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("rlineto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rlineto")))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -571,7 +570,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = (Offset (x, y) + current);
           expr = scm_cdddr (expr);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("curveto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("curveto")))
         {
           Real x1 = robust_scm2double (scm_cadr (expr), 0.0);
           expr = scm_cddr (expr);
@@ -597,7 +596,7 @@ all_commands_to_absolute_and_group (SCM expr)
                           out);
           current = Offset (x3, y3);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("rcurveto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rcurveto")))
         {
           Real x1 = robust_scm2double (scm_cadr (expr), 0.0);
           expr = scm_cddr (expr);
@@ -623,7 +622,7 @@ all_commands_to_absolute_and_group (SCM expr)
                           out);
           current = (Offset (x3, y3) + current);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("closepath"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("closepath")))
         {
           if ((current[X_AXIS] != start[X_AXIS]) || (current[Y_AXIS] != start[Y_AXIS]))
             {
@@ -692,7 +691,7 @@ void
 make_named_glyph_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
 {
   SCM fm_scm = scm_car (expr);
-  Font_metric *fm = Font_metric::unsmob (fm_scm);
+  Font_metric *fm = unsmob<Font_metric> (fm_scm);
   expr = scm_cdr (expr);
   SCM glyph = scm_car (expr);
   string glyph_s = ly_scm2string (glyph);
@@ -731,7 +730,7 @@ void
 make_glyph_string_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
 {
   SCM fm_scm = scm_car (expr);
-  Font_metric *fm = Font_metric::unsmob (fm_scm);
+  Font_metric *fm = unsmob<Font_metric> (fm_scm);
   expr = scm_cdr (expr);
   expr = scm_cdr (expr); // font-name
   expr = scm_cdr (expr); // size
@@ -825,9 +824,9 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
 {
   if (not scm_is_pair (expr))
     return;
-  if (scm_car (expr) == ly_symbol2scm ("draw-line"))
+  if (scm_is_eq (scm_car (expr), ly_symbol2scm ("draw-line")))
     make_draw_line_boxes (boxes, buildings, trans, scm_cdr (expr), true);
-  else if (scm_car (expr) == ly_symbol2scm ("dashed-line"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("dashed-line")))
     {
       expr = scm_cdr (expr);
       SCM th = scm_car (expr);
@@ -839,7 +838,7 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
       SCM x2 = scm_car (expr);
       make_draw_line_boxes (boxes, buildings, trans, scm_list_5 (th, scm_from_double (0.0), scm_from_double (0.0), x1, x2), true);
     }
-  else if (scm_car (expr) == ly_symbol2scm ("circle"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("circle")))
     {
       expr = scm_cdr (expr);
       SCM rad = scm_car (expr);
@@ -855,7 +854,7 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
                                               SCM_BOOL_T,
                                               SCM_UNDEFINED));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("ellipse"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("ellipse")))
     {
       expr = scm_cdr (expr);
       SCM x_rad = scm_car (expr);
@@ -873,17 +872,17 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
                                               SCM_BOOL_T,
                                               SCM_UNDEFINED));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("partial-ellipse"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("partial-ellipse")))
     make_partial_ellipse_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("round-filled-box"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("round-filled-box")))
     make_round_filled_box_boxes (boxes, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("named-glyph"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("named-glyph")))
     make_named_glyph_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("polygon"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("polygon")))
     make_polygon_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("path"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("path")))
     make_path_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("glyph-string"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("glyph-string")))
     make_glyph_string_boxes (boxes, buildings, trans, scm_cdr (expr));
   else
     {
@@ -908,9 +907,9 @@ stencil_traverser (PangoMatrix trans, SCM expr)
 {
   if (scm_is_null (expr))
     return vector<Transform_matrix_and_expression> ();
-  else if (expr == ly_string2scm (""))
+  else if (scm_is_eq (expr, ly_string2scm ("")))
     return vector<Transform_matrix_and_expression> ();
-  else if (scm_car (expr) == ly_symbol2scm ("combine-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("combine-stencil")))
     {
       vector<Transform_matrix_and_expression> out;
       for (SCM s = scm_cdr (expr); scm_is_pair (s); s = scm_cdr (s))
@@ -920,23 +919,23 @@ stencil_traverser (PangoMatrix trans, SCM expr)
         }
       return out;
     }
-  else if (scm_car (expr) == ly_symbol2scm ("footnote"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("footnote")))
     return vector<Transform_matrix_and_expression> ();
-  else if (scm_car (expr) == ly_symbol2scm ("translate-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("translate-stencil")))
     {
       Real x = robust_scm2double (scm_caadr (expr), 0.0);
       Real y = robust_scm2double (scm_cdadr (expr), 0.0);
       pango_matrix_translate (&trans, x, y);
       return stencil_traverser (trans, scm_caddr (expr));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("scale-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("scale-stencil")))
     {
       Real x = robust_scm2double (scm_caadr (expr), 0.0);
       Real y = robust_scm2double (scm_cadadr (expr), 0.0);
       pango_matrix_scale (&trans, x, y);
       return stencil_traverser (trans, scm_caddr (expr));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("rotate-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rotate-stencil")))
     {
       Real ang = robust_scm2double (scm_caadr (expr), 0.0);
       Real x = robust_scm2double (scm_car (scm_cadadr (expr)), 0.0);
@@ -946,16 +945,16 @@ stencil_traverser (PangoMatrix trans, SCM expr)
       pango_matrix_translate (&trans, -x, -y);
       return stencil_traverser (trans, scm_caddr (expr));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("delay-stencil-evaluation"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("delay-stencil-evaluation")))
     // should not use the place-holder text, but no need for the warning below
     return vector<Transform_matrix_and_expression> ();
-  else if (scm_car (expr) == ly_symbol2scm ("grob-cause"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("grob-cause")))
     return stencil_traverser (trans, scm_caddr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("color"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("color")))
     return stencil_traverser (trans, scm_caddr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("transparent-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("transparent-stencil")))
     return stencil_traverser (trans, scm_cadr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("id"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("id")))
     return stencil_traverser (trans, scm_caddr (expr));
   else
     {
@@ -995,7 +994,7 @@ MAKE_SCHEME_CALLBACK (Grob, pure_simple_vertical_skylines_from_extents, 3);
 SCM
 Grob::pure_simple_vertical_skylines_from_extents (SCM smob, SCM begscm, SCM endscm)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   int beg = robust_scm2int (begscm, 0);
   int end = robust_scm2int (endscm, INT_MAX);
   // We cannot measure the widths before line breaking,
@@ -1007,7 +1006,7 @@ MAKE_SCHEME_CALLBACK (Grob, simple_vertical_skylines_from_extents, 1);
 SCM
 Grob::simple_vertical_skylines_from_extents (SCM smob)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   return maybe_pure_internal_simple_skylines_from_extents (me, X_AXIS, false, 0, 0, false, false);
 }
 
@@ -1015,7 +1014,7 @@ MAKE_SCHEME_CALLBACK (Grob, pure_simple_horizontal_skylines_from_extents, 3);
 SCM
 Grob::pure_simple_horizontal_skylines_from_extents (SCM smob, SCM begscm, SCM endscm)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   int beg = robust_scm2int (begscm, 0);
   int end = robust_scm2int (endscm, INT_MAX);
   // If the grob is cross staff, we cannot measure its Y-extent before
@@ -1028,7 +1027,7 @@ MAKE_SCHEME_CALLBACK (Grob, simple_horizontal_skylines_from_extents, 1);
 SCM
 Grob::simple_horizontal_skylines_from_extents (SCM smob)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   // See comment in function above.
   return maybe_pure_internal_simple_skylines_from_extents (me, Y_AXIS, false, 0, 0, false, to_boolean (me->get_property ("cross-staff")));
 }
@@ -1036,7 +1035,7 @@ Grob::simple_horizontal_skylines_from_extents (SCM smob)
 SCM
 Stencil::skylines_from_stencil (SCM sten, Real pad, Axis a)
 {
-  Stencil *s = Stencil::unsmob (sten);
+  Stencil *s = unsmob<Stencil> (sten);
   if (!s)
     return Skyline_pair ().smobbed_copy ();
 
@@ -1065,7 +1064,7 @@ MAKE_SCHEME_CALLBACK (Grob, vertical_skylines_from_stencil, 1);
 SCM
 Grob::vertical_skylines_from_stencil (SCM smob)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
 
   Real pad = robust_scm2double (me->get_property ("skyline-horizontal-padding"), 0.0);
   SCM out = Stencil::skylines_from_stencil (me->get_property ("stencil"), pad, X_AXIS);
@@ -1077,7 +1076,7 @@ MAKE_SCHEME_CALLBACK (Grob, horizontal_skylines_from_stencil, 1);
 SCM
 Grob::horizontal_skylines_from_stencil (SCM smob)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
 
   Real pad = robust_scm2double (me->get_property ("skyline-vertical-padding"), 0.0);
   SCM out = Stencil::skylines_from_stencil (me->get_property ("stencil"), pad, Y_AXIS);
@@ -1105,7 +1104,7 @@ Grob::internal_skylines_from_element_stencils (Grob *me, Axis a, bool pure, int
   Skyline_pair res;
   for (vsize i = 0; i < elts.size (); i++)
     {
-      Skyline_pair *skyp = Skyline_pair::unsmob (elts[i]->get_maybe_pure_property (a == X_AXIS ? "vertical-skylines" : "horizontal-skylines", pure, beg, end));
+      Skyline_pair *skyp = unsmob<Skyline_pair> (elts[i]->get_maybe_pure_property (a == X_AXIS ? "vertical-skylines" : "horizontal-skylines", pure, beg, end));
       if (skyp)
         {
           /*
@@ -1139,7 +1138,7 @@ MAKE_SCHEME_CALLBACK (Grob, vertical_skylines_from_element_stencils, 1);
 SCM
 Grob::vertical_skylines_from_element_stencils (SCM smob)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   return internal_skylines_from_element_stencils (me, X_AXIS, false, 0, INT_MAX);
 }
 
@@ -1147,7 +1146,7 @@ MAKE_SCHEME_CALLBACK (Grob, horizontal_skylines_from_element_stencils, 1);
 SCM
 Grob::horizontal_skylines_from_element_stencils (SCM smob)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   return internal_skylines_from_element_stencils (me, Y_AXIS, false, 0, INT_MAX);
 }
 
@@ -1155,7 +1154,7 @@ MAKE_SCHEME_CALLBACK (Grob, pure_vertical_skylines_from_element_stencils, 3);
 SCM
 Grob::pure_vertical_skylines_from_element_stencils (SCM smob, SCM beg_scm, SCM end_scm)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   int beg = robust_scm2int (beg_scm, 0);
   int end = robust_scm2int (end_scm, 0);
   return internal_skylines_from_element_stencils (me, X_AXIS, true, beg, end);
@@ -1165,7 +1164,7 @@ MAKE_SCHEME_CALLBACK (Grob, pure_horizontal_skylines_from_element_stencils, 3);
 SCM
 Grob::pure_horizontal_skylines_from_element_stencils (SCM smob, SCM beg_scm, SCM end_scm)
 {
-  Grob *me = Grob::unsmob (smob);
+  Grob *me = unsmob<Grob> (smob);
   int beg = robust_scm2int (beg_scm, 0);
   int end = robust_scm2int (end_scm, 0);
   return internal_skylines_from_element_stencils (me, Y_AXIS, true, beg, end);