/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "axis.hh"
enum Direction
- {
- UP = 1,
- DOWN=-1,
- LEFT=-1,
- RIGHT = 1,
- MIN=-1,
- MAX = 1,
- CENTER = 0,
- SMALLER=-1,
- BIGGER = 1,
- START = -1,
- STOP = 1,
-
- /*
- This is necessary to safely write loops,
- since
-
- dir <= RIGHT
-
- is otherwise transformed into true unconditionally.
- */
- DIRECTION_LIMIT = 2,
- DIRECTION_NEG_LIMIT = -2,
- };
+{
+ UP = 1,
+ DOWN = -1,
+ LEFT = -1,
+ RIGHT = 1,
+ MIN = -1,
+ MAX = 1,
+ CENTER = 0,
+ SMALLER = -1,
+ BIGGER = 1,
+ START = -1,
+ STOP = 1,
+
+ /*
+ This is necessary to safely write loops,
+ since
+
+ dir <= RIGHT
+
+ is otherwise transformed into true unconditionally.
+ */
+ DIRECTION_LIMIT = 2,
+ DIRECTION_NEG_LIMIT = -2,
+};
inline Direction
other_dir (Direction const d)
if d > 0: the max operator
if d < 0: the min operator
*/
-template<class T> T minmax (Direction d, T, T);
+template<class T> T minmax (Direction d, T a, T b)
+{
+ if (d == UP)
+ return max (a, b);
+ else
+ return min (a, b);
+}
// String direction_string (Direction, Axis);