]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/offset.cc
Merge branch 'master' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / flower / offset.cc
index dd205661fc87aae4295286ced62bf8741322695e..f578b191f9a4c8b93f4f694a8b8f06beefb522c8 100644 (file)
@@ -3,28 +3,23 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
-#include <math.h>
 
-#ifndef STANDALONE
-#include "string.hh"
-#endif
 #include "offset.hh"
 
 
 #ifndef STANDALONE
-String
+string
 Offset::to_string () const
 {
-  String s;
-  s = String (" (") + ::to_string (coordinate_a_[X_AXIS]) + ", " 
+  string s;
+  s = string (" (") + ::to_string (coordinate_a_[X_AXIS]) + ", "
     + ::to_string (coordinate_a_[Y_AXIS]) + ")";
   return s;
 }
 #endif
 
-
 bool
 isinf_b (Real r)
 {
@@ -33,25 +28,24 @@ isinf_b (Real r)
 
 /*
   free bsd fix by John Galbraith
- */
-  
+*/
+
 Offset
 complex_multiply (Offset z1, Offset z2)
 {
   Offset z;
   if (!isinf_b (z2[Y_AXIS]))
-  {
-      z[X_AXIS] = z1[X_AXIS] * z2[X_AXIS] - z1[Y_AXIS]*z2[Y_AXIS];
+    {
+      z[X_AXIS] = z1[X_AXIS] * z2[X_AXIS] - z1[Y_AXIS] * z2[Y_AXIS];
       z[Y_AXIS] = z1[X_AXIS] * z2[Y_AXIS] + z1[Y_AXIS] * z2[X_AXIS];
-  }
+    }
   return z;
 }
 
-
 Offset
 complex_conjugate (Offset o)
 {
-  o[Y_AXIS] = - o[Y_AXIS];
+  o[Y_AXIS] = -o[Y_AXIS];
   return o;
 }
 
@@ -60,21 +54,19 @@ complex_divide (Offset z1, Offset z2)
 {
   z2 = complex_conjugate (z2);
   Offset z = complex_multiply (z1, z2);
-  z *= 1/z2.length ();
+  z *= 1 / z2.length ();
   return z;
 }
 
-
-
 Offset
 complex_exp (Offset o)
 {
   Real s = sin (o[Y_AXIS]);
   Real c = cos (o[Y_AXIS]);
-  
+
   Real r = exp (o[X_AXIS]);
 
-  return Offset (r*c, r*s);
+  return Offset (r * c, r * s);
 }
 
 Real
@@ -85,14 +77,19 @@ Offset::arg () const
 
 /**
    euclidian vector length / complex modulus
- */
+*/
 Real
 Offset::length () const
 {
-  return sqrt (sqr (coordinate_a_[X_AXIS]) + sqr (coordinate_a_[Y_AXIS]));
+  return sqrt (sqr (coordinate_a_[X_AXIS])
+                   + sqr (coordinate_a_[Y_AXIS]));
 }
-void
-Offset::mirror (Axis a)
+
+bool
+Offset::is_sane () const
 {
-  coordinate_a_[a] = - coordinate_a_[a];
+  return !isnan (coordinate_a_[X_AXIS])
+    && !isnan (coordinate_a_ [Y_AXIS])
+    && !isinf (coordinate_a_[X_AXIS]) 
+    && !isnan (coordinate_a_[Y_AXIS]);
 }