X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fskyline-pair.cc;h=bab43494a6c68564cbae3886b64a543749a72c5f;hb=2bbacb364aa29041af9cbbbd32cfad2e8e387cb3;hp=6f6b4e1b889b5bf0529c0069cfd374bfe507e98a;hpb=d61cf3bbdb1c6670a127ba3baddf2f04d3e34fd3;p=lilypond.git diff --git a/lily/skyline-pair.cc b/lily/skyline-pair.cc index 6f6b4e1b88..bab43494a6 100644 --- a/lily/skyline-pair.cc +++ b/lily/skyline-pair.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2008--2012 Han-Wen Nienhuys + Copyright (C) 2008--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -21,20 +21,29 @@ #include "skyline-pair.hh" #include "international.hh" -#include "ly-smobs.icc" Skyline_pair::Skyline_pair () : skylines_ (Skyline (DOWN), Skyline (UP)) { } -Skyline_pair::Skyline_pair (vector const &boxes, Real padding, Axis a) - : skylines_ (Skyline (boxes, padding, a, DOWN), Skyline (boxes, padding, a, UP)) +Skyline_pair::Skyline_pair (vector const &boxes, Axis a) + : skylines_ (Skyline (boxes, a, DOWN), Skyline (boxes, a, UP)) { } -Skyline_pair::Skyline_pair (Box const &b, Real padding, Axis a) - : skylines_ (Skyline (b, padding, a, DOWN), Skyline (b, padding, a, UP)) +Skyline_pair::Skyline_pair (vector > const &buildings, Axis a) + : skylines_ (Skyline (buildings, a, DOWN), Skyline (buildings, a, UP)) +{ +} + +Skyline_pair::Skyline_pair (vector const &skypairs) + : skylines_ (Skyline (skypairs, DOWN), Skyline (skypairs, UP)) +{ +} + +Skyline_pair::Skyline_pair (Box const &b, Axis a) + : skylines_ (Skyline (b, a, DOWN), Skyline (b, a, UP)) { } @@ -53,10 +62,10 @@ Skyline_pair::shift (Real r) } void -Skyline_pair::insert (Box const &b, Real padding, Axis a) +Skyline_pair::insert (Box const &b, Axis a) { - skylines_[UP].insert (b, padding, a); - skylines_[DOWN].insert (b, padding, a); + skylines_[UP].insert (b, a); + skylines_[DOWN].insert (b, a); } void @@ -73,11 +82,23 @@ Skyline_pair::print () const skylines_[DOWN].print (); } +Real +Skyline_pair::left () const +{ + return min (skylines_[UP].left (), skylines_[DOWN].left ()); +} + +Real +Skyline_pair::right () const +{ + return max (skylines_[UP].right (), skylines_[DOWN].right ()); +} + void Skyline_pair::print_points () const { - skylines_[UP].print (); - skylines_[DOWN].print (); + skylines_[UP].print_points (); + skylines_[DOWN].print_points (); } bool @@ -99,31 +120,14 @@ Skyline_pair::operator [] (Direction d) const return skylines_[d]; } -IMPLEMENT_SIMPLE_SMOBS (Skyline_pair); -IMPLEMENT_TYPE_P (Skyline_pair, "ly:skyline-pair?"); -IMPLEMENT_DEFAULT_EQUAL_P (Skyline_pair); - -SCM -Skyline_pair::mark_smob (SCM) -{ - return SCM_EOL; -} - -int -Skyline_pair::print_smob (SCM s, SCM port, scm_print_state *) -{ - Skyline_pair *r = (Skyline_pair *) SCM_CELL_WORD_1 (s); - (void) r; +const char * const Skyline_pair::type_p_name_ = "ly:skyline-pair?"; - scm_puts ("#", port); - return 1; -} MAKE_SCHEME_CALLBACK (Skyline_pair, skyline, 2); SCM Skyline_pair::skyline (SCM smob, SCM dir_scm) { - Skyline_pair *sp = Skyline_pair::unsmob (smob); + Skyline_pair *sp = unsmob (smob); Direction dir = robust_scm2dir (dir_scm, UP); if (dir == CENTER)