]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/skyline.hh
Imported Upstream version 2.16.0
[lilypond.git] / lily / include / skyline.hh
index bb637a21bb4a56710c188e53dbdcb136a49b629a..0715c545a635a7f6af70ea85e8520c0804506338 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2006--2011 Joe Neeman <joeneeman@gmail.com>
+  Copyright (C) 2006--2012 Joe Neeman <joeneeman@gmail.com>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -55,10 +55,10 @@ private:
   Direction sky_;
 
   void internal_merge_skyline (list<Building>*, list<Building>*,
-                              list<Building> *const result);
+                               list<Building> *const result);
   list<Building> internal_build_skyline (list<Box>*, Real, Axis, Direction);
 
-  DECLARE_SIMPLE_SMOBS(Skyline);
+  DECLARE_SIMPLE_SMOBS (Skyline);
 
 public:
   Skyline ();
@@ -76,11 +76,22 @@ public:
   void raise (Real);
   void shift (Real);
   Real distance (Skyline const &, Real horizon_padding = 0) const;
+  Real touching_point (Skyline const &, Real horizon_padding = 0) const;
   Real height (Real airplane) const;
   Real max_height () const;
+  Real max_height_position () const;
   void set_minimum_height (Real height);
   void clear ();
   bool is_empty () const;
+
+  DECLARE_SCHEME_CALLBACK (get_touching_point, (SCM, SCM, SCM));
+  DECLARE_SCHEME_CALLBACK (get_distance, (SCM, SCM, SCM));
+  DECLARE_SCHEME_CALLBACK (get_max_height, (SCM));
+  DECLARE_SCHEME_CALLBACK (get_max_height_position, (SCM));
+  DECLARE_SCHEME_CALLBACK (get_height, (SCM, SCM));
+
+protected:
+  Real internal_distance (Skyline const &, Real horizon_padding, Real *touch_point) const;
 };
 
 extern bool debug_skylines;