33 #include "hurricane/DbU.h"
49 class CompareByMinMax {
74 inline bool isFull ()
const;
79 bool inferior (
const Interval& ,
bool strict=
true )
const;
80 bool superior (
const Interval& ,
bool strict=
true )
const;
81 bool isConstrainedBy (
const Interval& )
const;
94 inline string _getTypeName ()
const;
95 string _getString ()
const;
96 Record* _getRecord ()
const;
110 inline bool Interval::isFull ()
const {
return (_vMin == DbU::Min) and (_vMax == DbU::Max); };
112 inline string Interval::_getTypeName ()
const {
return _TName(
"Interval"); };
117 if (isFull ())
return DbU::Max;
118 return _vMax - _vMin;
122 inline bool Interval::CompareByMin::operator() (
const Interval& lhs,
const Interval& rhs )
const
126 inline bool Interval::CompareByMin::operator() (
const Interval* lhs,
const Interval* rhs )
const
127 {
return lhs->getVMin() < rhs->getVMin(); }
130 inline bool Interval::CompareByMinMax::operator() (
const Interval& lhs,
const Interval& rhs )
const
132 if (lhs.getVMin() != rhs.getVMin())
return lhs.getVMin() < rhs.getVMin();
133 return lhs.getVMax() < rhs.getVMax();
137 inline bool Interval::CompareByMinMax::operator() (
const Interval* lhs,
const Interval* rhs )
const
139 if (lhs->getVMin() != rhs->getVMin())
return lhs->getVMin() < rhs->getVMin();
140 return lhs->getVMax() < rhs->getVMax();
147 inline void jsonWrite ( JsonWriter* w,
const std::string& key,
const Hurricane::Interval* interval )
151 w->write( &interval->
getVMin() );
152 w->write( &interval->
getVMax() );
std::int64_t Unit
Definition: DbU.h:67
Interval description (API)
Definition: Interval.h:42
Interval(bool makeEmpty=true)
Interval & intersection(const DbU::Unit &vMin, const DbU::Unit &vMax)
Interval & inflate(const DbU::Unit &dv)
bool operator==(const Interval &) const
Interval(const Interval &)
bool operator!=(const Interval &) const
const DbU::Unit & getVMax() const
Definition: Interval.h:104
Interval & operator=(const Interval &)
Interval(const DbU::Unit &v1, const DbU::Unit &v2)
bool isEmpty() const
Definition: Interval.h:109
DbU::Unit getSize() const
Definition: Interval.h:114
DbU::Unit getCenter() const
Definition: Interval.h:107
const DbU::Unit & getVMin() const
Definition: Interval.h:103
Interval getIntersection(const Interval &) const
bool contains(const DbU::Unit &) const
Interval & merge(const Interval &)
Interval & merge(const DbU::Unit &)
DbU::Unit getHalfSize() const
Definition: Interval.h:108
Interval & inflate(const DbU::Unit &dvMin, const DbU::Unit &dvMax)
Interval getUnion(const Interval &) const
Interval(const DbU::Unit &)
Interval & translate(const DbU::Unit &)
bool isPonctual() const
Definition: Interval.h:111
Interval & intersection(const Interval &)
bool intersect(const Interval &, bool strict=false) const
bool contains(const Interval &) const
Contains Almost Everything.
Definition: BasicLayer.h:39