QInterval.hh

Go to the documentation of this file.
00001 
00009 #ifndef _Q_INTERVAL_HH_
00010 #define _Q_INTERVAL_HH_
00011 
00012 #include "QCuore.hh"
00013 
00014 Q_BEGIN_NAMESPACE
00015 
00016 class QInterval {
00017     public:
00019         QInterval(const double min, const double max);
00020         
00022         virtual ~QInterval();
00023         
00025         bool operator<(const QInterval& interval) const
00026             {return ( (GetMin() < interval.GetMin())
00027                       || 
00028                       (!(interval.GetMin() < GetMin())
00029                        && GetMax() < interval.GetMax()) );}
00030         
00032         bool Contains(const double value) const
00033             {return (GetMin() <= value && value <= GetMax());}
00034         
00036         bool Contains(const QInterval& interval) const
00037             {return (GetMin() <= interval.GetMin()
00038                      && interval.GetMax() <= GetMax());}
00039         
00041         double GetMax() const {return fMax;}
00042         
00044         double GetMin() const {return fMin;}
00045         
00047         bool Intersects(const QInterval& interval) const
00048             {return (Contains(interval.GetMin()) || Contains(interval.GetMax())
00049                      || interval.Contains(*this));}
00050         
00052         double Length() const {return (GetMax() - GetMin());}
00053         
00055         void SetMax(const double max) {fMax = max;}
00056         
00058         void SetMin(const double min) {fMin = min;}
00059     
00060     protected:
00062         double fMax;
00063         
00065         double fMin;
00066 };
00067 
00068 Q_END_NAMESPACE
00069 
00070 #endif

Generated on Tue Nov 16 10:49:57 2010 for CUORE Software by  doxygen 1.5.6