/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2006--2010 Joe Neeman <joeneeman@gmail.com>
+ Copyright (C) 2006--2011 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
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 ();
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;