]> git.donarmstrong.com Git - lilypond.git/commitdiff
clean-up pitch-interval.cc and ambitus-engraver.cc
authorRune Zedeler <rune@lilypond.org>
Fri, 21 Dec 2007 22:56:03 +0000 (23:56 +0100)
committerRune Zedeler <rune@lilypond.org>
Fri, 21 Dec 2007 22:56:03 +0000 (23:56 +0100)
add_pitch() returns Drul_array<bool> instead of Direction

lily/ambitus-engraver.cc
lily/include/pitch-interval.hh
lily/pitch-interval.cc

index 0cfbc58e98684e127836535e6cdcda3a329b3ca9..e00ea133dddac7055db68426c2a0a0fe9ffc8d5f 100644 (file)
@@ -122,11 +122,11 @@ Ambitus_engraver::acknowledge_note_head (Grob_info info)
   if (nr && nr->in_event_class ("note-event"))
     {
       Pitch pitch = *unsmob_pitch (nr->get_property ("pitch"));
-      if (pitch_interval_.is_empty())
-       causes_[UP] = causes_[DOWN] = nr;
-      Direction expand_dir = pitch_interval_.add_point (pitch);
-      if (expand_dir)
-       causes_[expand_dir] = nr;
+      Drul_array<bool> expands = pitch_interval_.add_point (pitch);
+      if (expands[UP])
+       causes_[UP] = nr;
+      if (expands[DOWN])
+       causes_[DOWN] = nr;
     }
 }
 
index 478b58a7a8c5dff38cf559db52012cd881555f28..04bd23a70227a94ceac31dbe6631699a49b5095f 100644 (file)
@@ -16,7 +16,7 @@ class Pitch_interval : public Drul_array<Pitch>
 public:
   Pitch_interval ();
   Pitch_interval (Pitch, Pitch);
-  Direction add_point (Pitch);
+  Drul_array<bool> add_point (Pitch);
   bool is_empty () const;
 };
 
@@ -25,7 +25,7 @@ class Pitch_lexicographic_interval : public Drul_array<Pitch>
 public:
   Pitch_lexicographic_interval ();
   Pitch_lexicographic_interval (Pitch, Pitch);
-  Direction add_point (Pitch);
+  Drul_array<bool> add_point (Pitch);
   bool is_empty () const;
 };
 
index 3043bbff07a8f9c5bec36394175da7bc71c386a2..a7390aa282cb0825f2bc744520db6c7627e5b6c5 100644 (file)
@@ -28,26 +28,21 @@ Pitch_interval::is_empty () const
   return at (LEFT) > at (RIGHT);
 }
 
-Direction
+Drul_array<bool>
 Pitch_interval::add_point (Pitch p)
 {
-  if (is_empty())
-    {
-      at (LEFT) = at (RIGHT) = p;
-      return CENTER;
-    }
-  else if (at (LEFT).tone_pitch () > p.tone_pitch ())
+  Drul_array<bool> expansions(false,false);
+  if (at (LEFT).tone_pitch () > p.tone_pitch ())
     {
       at (LEFT) = p;
-      return LEFT;
+      expansions [LEFT] = true;
     }
-  else if (at (RIGHT).tone_pitch () < p.tone_pitch ())
+  if (at (RIGHT).tone_pitch () < p.tone_pitch ())
     {
       at (RIGHT) = p;
-      return RIGHT;
+      expansions [RIGHT] = true;
     }
-  else
-    return CENTER;
+  return expansions;
 }
 
 
@@ -69,24 +64,19 @@ Pitch_lexicographic_interval::is_empty () const
   return at (LEFT) > at (RIGHT);
 }
 
-Direction
+Drul_array<bool>
 Pitch_lexicographic_interval::add_point (Pitch p)
 {
-  if (is_empty())
-    {
-      at (LEFT) = at (RIGHT) = p;
-      return CENTER;
-    }
-  else if (at (LEFT) > p)
+  Drul_array<bool> expansions(false,false);
+  if (at (LEFT) > p)
     {
       at (LEFT) = p;
-      return LEFT;
+      expansions [LEFT] = true;
     }
-  else if (at (RIGHT) < p)
+  if (at (RIGHT) < p)
     {
       at (RIGHT) = p;
-      return RIGHT;
+      expansions [RIGHT] = true;
     }
-  else
-    return CENTER;
+  return expansions;
 }