]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/bezier.cc
(path::parse_path): Oops.
[lilypond.git] / lily / bezier.cc
index 26ad982419ac2f344db62fd40b61a63e2e572a75..4752bc67f91d5850fbbe45d04e055513853d275f 100644 (file)
@@ -3,16 +3,16 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
-#include <math.h>
-
 #include "bezier.hh"
 #include "warn.hh"
 #include "libc-extension.hh"
 
-Real binomial_coefficient_3[] = {1, 3, 3, 1};
+Real binomial_coefficient_3[] = {
+  1, 3, 3, 1
+};
 
 Real
 binomial_coefficient (Real over, int under)
@@ -66,7 +66,7 @@ translate (Array<Offset> *array, Offset o)
 Real
 Bezier::get_other_coordinate (Axis a, Real x) const
 {
-  Axis other = Axis ((a +1)%NO_AXES);
+  Axis other = Axis ((a +1) % NO_AXES);
   Array<Real> ts = solve_point (a, x);
 
   if (ts.size () == 0)
@@ -91,9 +91,7 @@ Bezier::curve_coordinate (Real t, Axis a) const
   Real one_min_tj[4];
   one_min_tj[0] = 1;
   for (int i = 1; i < 4; i++)
-    {
-      one_min_tj[i] = one_min_tj[i - 1] * (1 - t);
-    }
+    one_min_tj[i] = one_min_tj[i - 1] * (1 - t);
 
   Real r = 0.0;
   for (int j = 0; j < 4; j++)
@@ -114,9 +112,7 @@ Bezier::curve_point (Real t) const
   Real one_min_tj[4];
   one_min_tj[0] = 1;
   for (int i = 1; i < 4; i++)
-    {
-      one_min_tj[i] = one_min_tj[i - 1] * (1 - t);
-    }
+    one_min_tj[i] = one_min_tj[i - 1] * (1 - t);
 
   Offset o;
   for (int j = 0; j < 4; j++)
@@ -232,6 +228,17 @@ Bezier::extent (Axis a) const
   return iv;
 }
 
+Interval
+Bezier::control_point_extent (Axis a) const
+{
+  Interval ext;
+  for (int i = CONTROL_COUNT; i--;)
+    ext.add_point (control_[i][a]);
+
+  return ext;      
+}
+
+
 /**
    Flip around axis A
 */