public: typedef TYPE ValueType; typedef TRAITS TraitsType;
Range2D() = default;
/// Create degenerate interval consisting of a single point explicit Range2D(const Tuple2D<TYPE>& rTuple)
: maRangeX(rTuple.getX())
, maRangeY(rTuple.getY())
{
}
/// Create proper interval between the two given points
Range2D(const Tuple2D<TYPE>& rTuple1, const Tuple2D<TYPE>& rTuple2)
: maRangeX(rTuple1.getX())
, maRangeY(rTuple1.getY())
{
expand(rTuple2);
}
/// Create proper interval between the two given pairs
Range2D(TYPE x1, TYPE y1, TYPE x2, TYPE y2)
: maRangeX(x1)
, maRangeY(y1)
{
maRangeX.expand(x2);
maRangeY.expand(y2);
}
/// get lower bound of the set. returns arbitrary values for empty sets.
TYPE getMinX() const { return maRangeX.getMinimum(); }
/// get lower bound of the set. returns arbitrary values for empty sets.
TYPE getMinY() const { return maRangeY.getMinimum(); }
/// get upper bound of the set. returns arbitrary values for empty sets.
TYPE getMaxX() const { return maRangeX.getMaximum(); }
/// get upper bound of the set. returns arbitrary values for empty sets.
TYPE getMaxY() const { return maRangeY.getMaximum(); }
/// return difference between upper and lower X value. returns 0 for empty sets.
TYPE getWidth() const { return maRangeX.getRange(); }
/// return difference between upper and lower Y value. returns 0 for empty sets.
TYPE getHeight() const { return maRangeY.getRange(); }
/// return center X value of set. returns 0 for empty sets. double getCenterX() const { return maRangeX.getCenter(); }
/// return center Y value of set. returns 0 for empty sets. double getCenterY() const { return maRangeY.getCenter(); }
/// yields true if given point is contained in set bool isInside(const Tuple2D<TYPE>& rTuple) const
{ return maRangeX.isInside(rTuple.getX()) && maRangeY.isInside(rTuple.getY());
}
/// yields true if rRange is inside, or equal to set bool isInside(const Range2D& rRange) const
{ return maRangeX.isInside(rRange.maRangeX) && maRangeY.isInside(rRange.maRangeY);
}
/// yields true if rRange at least partly inside set bool overlaps(const Range2D& rRange) const
{ return maRangeX.overlaps(rRange.maRangeX) && maRangeY.overlaps(rRange.maRangeY);
}
/// yields true if overlaps(rRange) does, and the overlap is larger than infinitesimal bool overlapsMore(const Range2D& rRange) const
{ return maRangeX.overlapsMore(rRange.maRangeX) && maRangeY.overlapsMore(rRange.maRangeY);
}
/// add point to the set, expanding as necessary void expand(const Tuple2D<TYPE>& rTuple)
{
maRangeX.expand(rTuple.getX());
maRangeY.expand(rTuple.getY());
}
/// add rRange to the set, expanding as necessary void expand(const Range2D& rRange)
{
maRangeX.expand(rRange.maRangeX);
maRangeY.expand(rRange.maRangeY);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.