X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Finterval.tcc;h=3f5abc8b47945de2d3063b7e3dfbbb9700b9993e;hb=13cfd8beeed2a99d3989a70769f078d6a02a8021;hp=b67f18165d312f85e0e7b90e01efcecdbf390cbd;hpb=58bcc84c9480dae1b21bc24d8396b91fe19e0131;p=lilypond.git diff --git a/flower/include/interval.tcc b/flower/include/interval.tcc index b67f18165d..3f5abc8b47 100644 --- a/flower/include/interval.tcc +++ b/flower/include/interval.tcc @@ -3,29 +3,32 @@ source file of the Flower Library - (c) 1996--2005 Han-Wen Nienhuys + (c) 1996--2007 Han-Wen Nienhuys */ #ifndef INTERVAL_TCC #define INTERVAL_TCC #include -#include #include "interval.hh" -#include "string.hh" +#include "std-string.hh" + +// MacOS 10.3 problems: +// #include +using namespace std; template int -_Interval__compare (const Interval_t&a, Interval_t const &b) +_Interval__compare (const Interval_t &a, Interval_t const &b) { - if (a.elem (LEFT) == b.elem (LEFT) && a.elem (RIGHT) == b.elem (RIGHT)) + if (a.at (LEFT) == b.at (LEFT) && a.at (RIGHT) == b.at (RIGHT)) return 0; - if (a.elem (LEFT) <= b.elem (LEFT) && a.elem (RIGHT) >= b.elem (RIGHT)) + if (a.at (LEFT) <= b.at (LEFT) && a.at (RIGHT) >= b.at (RIGHT)) return 1; - if (a.elem (LEFT) >= b.elem (LEFT) && a.elem (RIGHT) <= b.elem (RIGHT)) + if (a.at (LEFT) >= b.at (LEFT) && a.at (RIGHT) <= b.at (RIGHT)) return -1; return -2; @@ -55,33 +58,33 @@ template void Interval_t::set_empty () { - elem_ref (LEFT) = (T) infinity (); - elem_ref (RIGHT) = (T) -infinity (); + at (LEFT) = (T) infinity (); + at (RIGHT) = (T) -infinity (); } template void Interval_t::set_full () { - elem_ref (LEFT) = (T) -infinity (); - elem_ref (RIGHT) = (T) infinity (); + at (LEFT) = (T) -infinity (); + at (RIGHT) = (T) infinity (); } template T Interval_t::length () const { - if (elem (RIGHT) <= elem (LEFT)) + if (at (RIGHT) <= at (LEFT)) return 0; else - return elem (RIGHT) - elem (LEFT); + return at (RIGHT) - at (LEFT); } template T Interval_t::delta () const { - return elem (RIGHT) - elem (LEFT); + return at (RIGHT) - at (LEFT); } /* smallest Interval which includes *this and #h# */ @@ -89,53 +92,38 @@ template void Interval_t::unite (Interval_t h) { - elem_ref (LEFT) = h.elem (LEFT) ? elem (RIGHT); + at (LEFT) = min (h.at (LEFT), at (LEFT)); + at (RIGHT) = max (h.at (RIGHT), at (RIGHT)); } template void Interval_t::intersect (Interval_t h) { -#if defined (__GNUG__) && !defined (__STRICT_ANSI__) - elem_ref (LEFT) = h.elem (LEFT) >? elem (LEFT); - elem_ref (RIGHT) = h.elem (RIGHT) -Interval_t -intersect (Interval_t x, Interval_t const &y) -{ - x.intersect (y); - return x; + at (LEFT) = max (h.at (LEFT), at (LEFT)); + at (RIGHT) = min (h.at (RIGHT), at (RIGHT)); } -#endif template -String +string Interval_t::to_string () const { if (is_empty ()) return "[empty]"; - String s ("["); + string s ("["); - return (s + T_to_string (elem (LEFT)) + String (",") - + T_to_string (elem (RIGHT)) + String ("]")); + return (s + T_to_string (at (LEFT)) + string (",") + + T_to_string (at (RIGHT)) + string ("]")); } template bool -Interval_t::contains (T r) +Interval_t::contains (T r) const { - return r >= elem (LEFT) && r <= elem (RIGHT); + return r >= at (LEFT) && r <= at (RIGHT); } #define INTERVAL__INSTANTIATE(T) struct Interval_t; \ - template int Interval__compare (const Interval_t&, Interval_t const &) + template int Interval__compare (const Interval_t &, Interval_t const &) #endif // INTERVAL_TCC