X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fskyline-pair.cc;h=6f6b4e1b889b5bf0529c0069cfd374bfe507e98a;hb=e6f638c8c580606d38ebd5f8df4d0ea7558f1137;hp=6a844e556946260b31caf64dd3b6070cd57003a4;hpb=b7a0cffbf9d1069860368f289a5b50e9d1d90ba8;p=lilypond.git diff --git a/lily/skyline-pair.cc b/lily/skyline-pair.cc index 6a844e5569..6f6b4e1b88 100644 --- a/lily/skyline-pair.cc +++ b/lily/skyline-pair.cc @@ -1,8 +1,8 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2008--2009 Han-Wen Nienhuys - + Copyright (C) 2008--2012 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #include "skyline-pair.hh" +#include "international.hh" #include "ly-smobs.icc" Skyline_pair::Skyline_pair () @@ -79,21 +80,20 @@ Skyline_pair::print_points () const skylines_[DOWN].print (); } - bool Skyline_pair::is_empty () const { return skylines_[UP].is_empty () - && skylines_[DOWN].is_empty (); + && skylines_[DOWN].is_empty (); } -Skyline& +Skyline & Skyline_pair::operator [] (Direction d) { return skylines_[d]; } -Skyline const& +Skyline const & Skyline_pair::operator [] (Direction d) const { return skylines_[d]; @@ -118,3 +118,19 @@ Skyline_pair::print_smob (SCM s, SCM port, scm_print_state *) 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); + Direction dir = robust_scm2dir (dir_scm, UP); + + if (dir == CENTER) + { + warning (_f ("direction must not be CENTER in ly:skyline-pair::skyline")); + dir = UP; + } + + return (*sp)[dir].smobbed_copy (); +}