![]() |
OpenMS
|
A D-dimensional half-open interval. More...
#include <OpenMS/DATASTRUCTURES/DRange.h>
Public Member Functions | |
Constructors and Destructor | |
| DRange () | |
| Default constructor. More... | |
| DRange (const PositionType &lower, const PositionType &upper) | |
| Constructor that takes two Points and constructs a range. More... | |
| DRange (const DRange &range) | |
| Copy constructor. More... | |
| DRange (DRange &&) noexcept=default | |
| Move constructor. More... | |
| DRange (const Base &range) | |
| Copy constructor for the base class. More... | |
| DRange (CoordinateType minx, CoordinateType miny, CoordinateType maxx, CoordinateType maxy) | |
| Convenient constructor for DRange<2> More... | |
| DRange & | operator= (const DRange &rhs) |
| Assignment operator. More... | |
| DRange & | operator= (const Base &rhs) |
| Assignment operator for the base class. More... | |
| ~DRange () | |
| Destructor. More... | |
Predicates | |
| bool | operator== (const DRange &rhs) const |
| Equality operator. More... | |
| bool | operator== (const Base &rhs) const |
| Equality operator. More... | |
| bool | encloses (const PositionType &position) const |
| Checks whether this range contains a certain point. More... | |
| bool | encloses (CoordinateType x, CoordinateType y) const |
| 2D-version of encloses for convenience only More... | |
| DRange | united (const DRange< D > &other_range) const |
Returns the smallest range containing this range and other_range. More... | |
| DRangeIntersection | intersects (const DRange &range) const |
Checks how this range intersects with another range. More... | |
| bool | isIntersected (const DRange &range) const |
Checks whether this range intersects with another range. More... | |
| DRange< D > & | extend (double factor) |
| Extends the range in all dimensions by a certain multiplier. More... | |
| DRange< D > & | extend (typename Base::PositionType addition) |
| Extends the range in all dimensions by a certain amount. More... | |
| DRange< D > & | ensureMinSpan (typename Base::PositionType min_span) |
| DRange< D > & | swapDimensions () |
| swaps dimensions for 2D data (i.e. x and y coordinates) More... | |
| void | pullIn (DPosition< D > &point) const |
Make sure point is inside the current area. More... | |
Public Member Functions inherited from DIntervalBase< D > | |
| DIntervalBase () | |
| Default constructor. More... | |
| DIntervalBase (const DIntervalBase &rhs) | |
| Copy constructor. More... | |
| DIntervalBase (DIntervalBase &&) noexcept=default | |
| Move constructor. More... | |
| DIntervalBase & | operator= (const DIntervalBase &rhs) |
| Assignment operator. More... | |
| ~DIntervalBase () | |
| Destructor. More... | |
| DIntervalBase (PositionType const &minimum, PositionType const &maximum) | |
| This constructor sets min_ and max_ directly. More... | |
| PositionType const & | minPosition () const |
| Accessor to minimum position. More... | |
| PositionType const & | maxPosition () const |
| Accessor to maximum position. More... | |
| void | setMin (PositionType const &position) |
| Mutator for minimum position. More... | |
| void | setMax (PositionType const &position) |
| Mutator for maximum position. More... | |
| void | setMinMax (PositionType const &min, PositionType const &max) |
| Mutator for minimum and maximum position. More... | |
| template<UInt D2> | |
| void | assign (const DIntervalBase< D2 > rhs) |
| Assignment from a DIntervalBase of different dimensions. More... | |
| bool | operator== (const DIntervalBase &rhs) const |
| Equality operator. More... | |
| bool | operator!= (const DIntervalBase &rhs) const |
| Equality operator. More... | |
| DIntervalBase | operator+ (const PositionType &point) const |
| DIntervalBase & | operator+= (const PositionType &point) |
| DIntervalBase | operator- (const PositionType &point) const |
| DIntervalBase & | operator-= (const PositionType &point) |
| void | clear () |
| Make the interval empty. More... | |
| bool | isEmpty () const |
| bool | isEmpty (UInt dim) const |
Is the dimension dim empty? If min==max, the interval is NOT empty! More... | |
| void | setDimMinMax (UInt dim, const DIntervalBase< 1 > &min_max) |
| only set interval for a single dimension More... | |
| PositionType | center () const |
| Returns the center of the interval. More... | |
| PositionType | diagonal () const |
| Returns the diagonal of the area, i.e. max_ - min_. More... | |
| CoordinateType | minX () const |
| Accessor for min_ coordinate minimum. More... | |
| CoordinateType | minY () const |
| Accessor for max_ coordinate minimum. More... | |
| CoordinateType | maxX () const |
| Accessor for min_ coordinate maximum. More... | |
| CoordinateType | maxY () const |
| Accessor for max_ coordinate maximum. More... | |
| void | setMinX (CoordinateType const c) |
| Mutator for min_ coordinate of the smaller point. More... | |
| void | setMinY (CoordinateType const c) |
| Mutator for max_ coordinate of the smaller point. More... | |
| void | setMaxX (CoordinateType const c) |
| Mutator for min_ coordinate of the larger point. More... | |
| void | setMaxY (CoordinateType const c) |
| Mutator for max_ coordinate of the larger point. More... | |
| CoordinateType | width () const |
| Returns the width of the area i.e. the difference of dimension zero (X). More... | |
| CoordinateType | height () const |
| Returns the height of the area i.e. the difference of dimension one (Y). More... | |
Type definitions | |
| enum | { DIMENSION = D } |
| Dimensions. More... | |
| enum | DRangeIntersection { Disjoint , Intersects , Inside } |
| Types that describe the kind of intersection between two ranges. More... | |
| typedef Internal::DIntervalBase< D > | Base |
| Base class type. More... | |
| typedef Base::PositionType | PositionType |
| Position type. More... | |
| typedef Base::CoordinateType | CoordinateType |
| Coordinate type of the positions. More... | |
| PositionType | min_ |
| lower left point More... | |
| PositionType | max_ |
| upper right point More... | |
Additional Inherited Members | |
Public Types inherited from DIntervalBase< D > | |
| enum | { DIMENSION = D } |
| Dimensions. More... | |
| typedef DPosition< D > | PositionType |
| Position type. More... | |
| typedef PositionType::CoordinateType | CoordinateType |
| Coordinate type of the positions. More... | |
Static Public Attributes inherited from DIntervalBase< D > | |
| static DIntervalBase const | empty = DIntervalBase<D>(std::make_pair(DIntervalBase<D>::PositionType::maxPositive(), DIntervalBase<D>::PositionType::minNegative())) |
| empty instance More... | |
| static DIntervalBase const | zero = DIntervalBase<D>(DIntervalBase<D>::PositionType::zero(), DIntervalBase<D>::PositionType::zero()) |
| instance with all positions zero More... | |
Protected Member Functions inherited from DIntervalBase< D > | |
| void | normalize_ () |
| normalization to keep all dimensions in the right geometrical order (min_[X] < max_[X]) More... | |
| DIntervalBase (const std::pair< PositionType, PositionType > &pair) | |
| Protected constructor for the construction of static instances. More... | |
Protected Attributes inherited from DIntervalBase< D > | |
| PositionType | min_ |
| lower left point More... | |
| PositionType | max_ |
| upper right point More... | |
A D-dimensional half-open interval.
This class describes a range in D-dimensional space delimited by two points (i.e. a D-dimensional hyper-rectangle). The two points define the lower left and the upper right corner in 2D and analogous points in higher dimensions.
A range is a pair of positions in D-space represented by DPosition. The two limiting points are accessed as minPosition() and maxPosition().
A range denotes a semi-open interval. A lower coordinate of each dimension is part of the range, the higher coordinate is not.
| typedef Internal::DIntervalBase<D> Base |
Base class type.
| typedef Base::CoordinateType CoordinateType |
Coordinate type of the positions.
| typedef Base::PositionType PositionType |
Position type.
| enum DRangeIntersection |
|
inline |
Default constructor.
Creates a range with all coordinates zero.
|
inline |
Constructor that takes two Points and constructs a range.
|
inline |
Convenient constructor for DRange<2>
References DRange< D >::max_, DRange< D >::min_, and DIntervalBase< D >::normalize_().
|
inline |
Destructor.
|
inline |
Checks whether this range contains a certain point.
| position | The point's position. |
References DRange< D >::max_, and DRange< D >::min_.
Referenced by DRange< D >::intersects(), DRange< D >::isIntersected(), and DTA2DFile::load().
|
inline |
2D-version of encloses for convenience only
References DRange< D >::max_, and DRange< D >::min_.
|
inline |
References DRange< D >::extend(), DRange< D >::max_, and DRange< D >::min_.
|
inline |
Extends the range in all dimensions by a certain multiplier.
Extends the range, while maintaining the original center position.
Examples (for D=1): factor = 1.01 extends the range by 1% in total, i.e. 0.5% left and right. factor = 2.00 doubles the total range, e.g. from [0,100] to [-50,150]
| factor | Multiplier (allowed is [0, inf)). |
References DRange< D >::max_, and DRange< D >::min_.
Referenced by DRange< D >::ensureMinSpan().
|
inline |
Extends the range in all dimensions by a certain amount.
Extends the range, while maintaining the original center position. If a negative addition is given, the range shrinks and may result in min==max (but never min>max).
Examples (for D=1): addition = 0.5 extends the range by 1 in total, i.e. 0.5 left and right.
| addition | Additive for each dimension (can be negative). Resulting invalid min/max are not fixed automatically! |
References DRange< D >::max_, and DRange< D >::min_.
|
inline |
Checks how this range intersects with another range.
| range | The max_ range. |
References DRange< D >::Disjoint, DRange< D >::encloses(), DRange< D >::Inside, DRange< D >::Intersects, DRange< D >::max_, and DRange< D >::min_.
|
inline |
Checks whether this range intersects with another range.
| range | The max_ range. |
References DRange< D >::encloses(), DRange< D >::max_, and DRange< D >::min_.
Assignment operator for the base class.
References DIntervalBase< D >::operator=().
Assignment operator.
References DIntervalBase< D >::operator=().
|
inline |
Equality operator.
References DIntervalBase< D >::operator==().
|
inline |
Equality operator.
References DIntervalBase< D >::operator==().
|
inline |
Make sure point is inside the current area.
| point | A point potentially outside the current range, which will be pulled into the current range. |
References DRange< D >::max_, and DRange< D >::min_.
|
inline |
swaps dimensions for 2D data (i.e. x and y coordinates)
References DRange< D >::max_, and DRange< D >::min_.
Returns the smallest range containing this range and other_range.
References DRange< D >::max_, DIntervalBase< D >::maxPosition(), DRange< D >::min_, DIntervalBase< D >::minPosition(), and DIntervalBase< D >::setMinMax().
| PositionType max_ |
| PositionType min_ |