Real x = robust_scm2double (x_scm, 0.0);
return scm_from_double (Skyline::unsmob (skyline_scm)->height (x));
}
+
+LY_DEFINE (ly_skyline_empty_p, "ly:skyline-empty?",
+ 1, 0, 0, (SCM sky),
+ "Return whether @var{sky} is empty.")
+{
+ Skyline *s = Skyline::unsmob (sky);
+ LY_ASSERT_SMOB (Skyline, sky, 1);
+ return scm_from_bool (s->is_empty ());
+}
(horizon-padding (and
(ly:grob? grob)
(ly:grob-property grob 'skyline-horizontal-padding 0)))
- (padding-annotation (if next-system
+ (padding-annotation (if (skyline-pair-and-non-empty? next-system)
(annotate-padding
(- system-Y) system-X skyline (paper-system-extent system X)
(- next-system-Y) next-system-X next-skyline (paper-system-extent next-system X)
--- /dev/null
+;;;; This file is part of LilyPond, the GNU music typesetter.
+;;;;
+;;;; Copyright (C) 2013 Mike Solomon <mike@mikesolomon.org>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
+
+(define-public (skyline-pair::empty? skyp)
+ (and (ly:skyline-empty? (ly:skyline-pair::skyline skyp UP))
+ (ly:skyline-empty? (ly:skyline-pair::skyline skyp DOWN))))
+
+; checks if the pair is not null, and then if not empty
+(define-public (skyline-pair-and-non-empty? skyp)
+ (and (ly:skyline-pair? skyp)
+ (not (skyline-pair::empty? skyp))))