]> git.donarmstrong.com Git - lilypond.git/commitdiff
Add Skyline::print_points(), Offset::swapped()
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 25 Mar 2007 17:42:41 +0000 (14:42 -0300)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 25 Mar 2007 17:42:41 +0000 (14:42 -0300)
flower/include/offset.hh
flower/offset.cc
lily/include/skyline.hh
lily/skyline.cc

index a3093c98ef2548f2157b328c44d510415352ee27..80053a51b6546f71a0172d86580fcb475dd78e4c 100644 (file)
@@ -97,6 +97,7 @@ public:
     return *this;
   }
   Offset direction () const;
+  Offset swapped () const;
   
   Real arg () const;
   Real angle_degrees () const;
index 8fc956c65e6ac097ac166547ad83bf9e7cafea2b..294f69e6f8e5a3c2626497615c14038429df8ece 100644 (file)
@@ -105,3 +105,9 @@ Offset::direction () const
   d /= length (); 
   return d;
 }
+
+Offset
+Offset::swapped () const
+{
+  return Offset (coordinate_a_[Y_AXIS], coordinate_a_[X_AXIS]);
+}
index 31747b1d431cdc7c03411e026d076f81aa1ec3e2..5dadbacaf736f6503cf7e444c4bc448324556ad1 100644 (file)
@@ -9,8 +9,7 @@
 #ifndef SKYLINE_HH
 #define SKYLINE_HH
 
-#include <list>
-
+#include "lily-proto.hh"
 #include "axis.hh"
 #include "box.hh"
 #include "interval.hh"
@@ -18,6 +17,8 @@
 #include "std-vector.hh"
 #include "smobs.hh"
 
+#include <list>
+
 struct Building
 {
   Real end_;
@@ -47,16 +48,19 @@ private:
   list<Building> internal_build_skyline (list<Box>*, Real, Axis, Direction);
 
   DECLARE_SIMPLE_SMOBS(Skyline);
+
 public:
   Skyline ();
   Skyline (Skyline const &src);
   Skyline (Direction sky);
   Skyline (vector<Box> const &bldgs, Real horizon_padding, Axis a, Direction sky);
   Skyline (Box const &b, Real horizon_padding, Axis a, Direction sky);
+  
   vector<Offset> to_points (Axis) const;
   void merge (Skyline const &);
   void insert (Box const &, Real horizon_padding, Axis);
   void print () const;
+  void print_points () const;
   void raise (Real);
   void shift (Real);
   Real distance (Skyline const &) const;
index e55ba3a6637024de8e0a9fb36b28e53298d2098f..c935660c6ed33b400cdf2b002fc0a79f886474ab 100644 (file)
@@ -59,6 +59,16 @@ Skyline::print () const
   print_buildings (buildings_);
 }
 
+void
+Skyline::print_points () const
+{
+  vector<Offset> ps (to_points (X_AXIS));
+
+  for (vsize i = 0; i < ps.size (); i++)
+    printf ("(%f,%f)%s" , ps[i][X_AXIS], ps[i][Y_AXIS],
+           (i%2)==1 ? "\n" : " ");
+}
+
 Building::Building (Real start, Real start_height, Real end_height, Real end)
 {
   if (isinf (start) || isinf (end))
@@ -497,7 +507,7 @@ Skyline::set_minimum_height (Real h)
 
 
 vector<Offset>
-Skyline::to_points (Axis a) const
+Skyline::to_points (Axis horizon_axis) const
 {
   vector<Offset> out;
 
@@ -510,9 +520,9 @@ Skyline::to_points (Axis a) const
       start = i->end_;
     }
 
-  if (a == Y_AXIS)
+  if (horizon_axis == Y_AXIS)
     for (vsize i = 0; i < out.size (); i++)
-      out[i] = Offset (out[i][Y_AXIS], out[i][X_AXIS]);
+      out[i] = out[i].swapped ();
 
   return out;
 }