2 This file is part of LilyPond, the GNU music typesetter.
4 Copyright (C) 2006--2009 Joe Neeman <joeneeman@gmail.com>
6 LilyPond is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 LilyPond is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
23 #include "lily-proto.hh"
26 #include "interval.hh"
27 #include "direction.hh"
28 #include "std-vector.hh"
39 void precompute (Real start
, Real start_height
, Real end_height
, Real end
);
40 Building (Real start
, Real start_height
, Real end_height
, Real end
);
41 Building (Box
const &b
, Real horizon_padding
, Axis a
, Direction d
);
44 Real
height (Real x
) const;
45 Real
intersection_x (Building
const &other
) const;
46 void leading_part (Real chop
);
47 bool conceals (Building
const &other
, Real x
) const;
48 Building
sloped_neighbour (Real start
, Real horizon_padding
, Direction d
) const;
54 list
<Building
> buildings_
;
57 void internal_merge_skyline (list
<Building
>*, list
<Building
>*,
58 list
<Building
> *const result
);
59 list
<Building
> internal_build_skyline (list
<Box
>*, Real
, Axis
, Direction
);
61 DECLARE_SIMPLE_SMOBS(Skyline
);
65 Skyline (Skyline
const &src
);
66 Skyline (Direction sky
);
67 Skyline (vector
<Box
> const &bldgs
, Real horizon_padding
, Axis a
, Direction sky
);
68 Skyline (Box
const &b
, Real horizon_padding
, Axis a
, Direction sky
);
70 vector
<Offset
> to_points (Axis
) const;
71 void merge (Skyline
const &);
72 void insert (Box
const &, Real horizon_padding
, Axis
);
74 void print_points () const;
77 Real
distance (Skyline
const &) const;
78 Real
height (Real airplane
) const;
79 Real
max_height () const;
80 void set_minimum_height (Real height
);
82 bool is_empty () const;
85 extern bool debug_skylines
;
87 #endif /* SKYLINE_HH */