35 #ifndef OPENMS_DATASTRUCTURES_DPOSITION_H 
   36 #define OPENMS_DATASTRUCTURES_DPOSITION_H 
   38 #include <OpenMS/config.h> 
   51   template <UInt D, 
typename TCoordinateType = DoubleReal>
 
  113       OPENMS_PRECONDITION(D == 2, 
"DPosition<D, TCoordinateType>:DPosition(x,y): index overflow!");
 
  121       if (&source == 
this) 
return *
this;
 
  137       OPENMS_PRECONDITION(index < D, 
"DPosition<D,TCoordinateType>:operator [] (Position): index overflow!");
 
  144       OPENMS_PRECONDITION(index < D, 
"DPosition<D,TCoordinateType>:operator [] (Position): index overflow!");
 
  179       for (
Size i = 0; i < D; i++)
 
  198       for (
Size i = 0; i < D; i++)
 
  210       for (
Size i = 0; i < D; i++)
 
  222       for (
Size i = 0; i < D; i++)
 
  232       for (
Size i = 0; i < D; i++)
 
  255       for (
Size i = 0; i < D; ++i)
 
  265       for (
Size i = 0; i < D; ++i)
 
  276       for (
Size i = 0; i < D; ++i)
 
  286       for (
Size i = 0; i < D; ++i) 
 
  297       for (
Size i = 0; i < D; ++i)
 
  308       for (
Size i = 0; i < D; ++i)
 
  318       for (
Size i = 0; i < D; ++i)
 
  328       for (
Size i = 0; i < D; ++i)
 
  344       for (
Size i = 0; i < D; ++i)
 
  363       return DPosition((std::numeric_limits<typename DPosition::CoordinateType>::min)());
 
  369       return DPosition(-(std::numeric_limits<typename DPosition::CoordinateType>::max)());
 
  375       return DPosition((std::numeric_limits<typename DPosition::CoordinateType>::max)());
 
  414   template <UInt D, 
typename TCoordinateType>
 
  417     for (
Size i = 0; i < D; ++i)
 
  419       position[i] *= scalar;
 
  425   template <UInt D, 
typename TCoordinateType>
 
  428     for (
Size i = 0; i < D; ++i) 
 
  430       position[i] *= scalar;
 
  436   template <UInt D, 
typename TCoordinateType>
 
  439     for (
Size i = 0; i < D; ++i)
 
  441       position[i] /= scalar;
 
  447   template <UInt D, 
typename TCoordinateType>
 
  448   std::ostream & operator<<(std::ostream & os, const DPosition<D, TCoordinateType> & pos)
 
  451     for (
UInt i = 1; i < D; ++i)
 
  460 #endif // OPENMS_DATASTRUCTURES_DPOSITION_H 
CoordinateType operator[](Size index) const 
Const accessor for the dimensions. 
Definition: DPosition.h:135
bool operator==(const DPosition &point) const 
Equality operator. 
Definition: DPosition.h:177
CoordinateType operator*(const DPosition &point) const 
Inner product. 
Definition: DPosition.h:305
bool operator>(const DPosition &point) const 
Lexicographical greater than operator. 
Definition: DPosition.h:240
const CoordinateType * const_iterator
Definition: DPosition.h:75
Iterator begin()
Mutable begin iterator. 
Definition: DPosition.h:395
#define OPENMS_PRECONDITION(condition, message)
Precondition macro. 
Definition: Macros.h:107
DPosition(CoordinateType x, CoordinateType y)
Constructor only for DPosition<2> that takes two Coordinates. 
Definition: DPosition.h:111
bool operator<(const DPosition &point) const 
Lexicographical less than operator. Lexicographical comparison from dimension 0 to dimension D-1 is d...
Definition: DPosition.h:196
DPosition & operator*=(CoordinateType scalar)
Scalar multiplication. 
Definition: DPosition.h:316
CoordinateType * Iterator
Mutable iterator. 
Definition: DPosition.h:59
void clear()
Set all dimensions to zero. 
Definition: DPosition.h:342
DPosition< D, TCoordinateType > operator/(DPosition< D, TCoordinateType > position, typename DPosition< D, TCoordinateType >::CoordinateType scalar)
Scalar multiplication (a bit inefficient) 
Definition: DPosition.h:437
DPosition operator-(const DPosition &point) const 
Subtraction (a bit inefficient) 
Definition: DPosition.h:273
const CoordinateType * ConstIterator
Non-mutable iterator. 
Definition: DPosition.h:61
DPosition operator+(const DPosition &point) const 
Addition (a bit inefficient) 
Definition: DPosition.h:252
void setY(CoordinateType c)
Name mutator for the second dimension. Only for DPosition<2>, for visualization. 
Definition: DPosition.h:170
DPosition & operator+=(const DPosition &point)
Addition. 
Definition: DPosition.h:263
static Size size()
Returns the number of dimensions. 
Definition: DPosition.h:336
static const DPosition minPositive()
smallest positive 
Definition: DPosition.h:361
bool spatiallyLessEqual(const DPosition &point) const 
Spatially (geometrically) less or equal operator. All coordinates must be "<=". 
Definition: DPosition.h:220
DPosition(const DPosition &pos)
Copy constructor. 
Definition: DPosition.h:104
CoordinateType * pointer
Definition: DPosition.h:73
bool spatiallyGreaterEqual(const DPosition &point) const 
Spatially (geometrically) greater or equal operator. All coordinates must be ">=". 
Definition: DPosition.h:230
CoordinateType & operator[](Size index)
Accessor for the dimensions. 
Definition: DPosition.h:142
ConstIterator end() const 
Non-mutable end iterator. 
Definition: DPosition.h:389
CoordinateType * iterator
Definition: DPosition.h:74
CoordinateType coordinate_[D]
Definition: DPosition.h:409
const PrecisionWrapper< FloatingPointType > precisionWrapper(const FloatingPointType rhs)
Wrapper function that sets the appropriate precision for output temporarily. The original precision i...
Definition: Types.h:358
void setX(CoordinateType c)
Name mutator for the first dimension. Only for DPosition<2>, for visualization. 
Definition: DPosition.h:163
Representation of a coordinate in D-dimensional space. 
Definition: DPosition.h:52
static const DPosition zero()
all zero 
Definition: DPosition.h:355
bool operator<=(const DPosition &point) const 
Lexicographical greater less or equal operator. 
Definition: DPosition.h:208
DPosition< D, TCoordinateType > operator*(DPosition< D, TCoordinateType > position, typename DPosition< D, TCoordinateType >::CoordinateType scalar)
Scalar multiplication (a bit inefficient) 
Definition: DPosition.h:415
bool operator!=(const DPosition &point) const 
Equality operator. 
Definition: DPosition.h:187
~DPosition()
Destructor (not-virtual as this will save a lot of space!) 
Definition: DPosition.h:93
DPosition & operator/=(CoordinateType scalar)
Scalar division. 
Definition: DPosition.h:326
DPosition & operator-=(const DPosition &point)
Subtraction. 
Definition: DPosition.h:284
DPosition()
Default constructor. 
Definition: DPosition.h:87
CoordinateType value_type
Definition: DPosition.h:71
static const DPosition maxPositive()
largest positive 
Definition: DPosition.h:373
size_t Size
Size type e.g. used as variable which can hold result of size() 
Definition: Types.h:144
Definition: DPosition.h:65
DPosition & operator=(const DPosition &source)
Assignment operator. 
Definition: DPosition.h:119
Iterator end()
Mutable end iterator. 
Definition: DPosition.h:401
DPosition operator-() const 
Negation (a bit inefficient) 
Definition: DPosition.h:294
static const DPosition minNegative()
smallest negative 
Definition: DPosition.h:367
CoordinateType & reference
Definition: DPosition.h:72
CoordinateType getY() const 
Name accessor for the second dimension. Only for DPosition<2>, for visualization. ...
Definition: DPosition.h:156
DPosition(CoordinateType x)
Constructor that fills all dimensions with the value x. 
Definition: DPosition.h:98
TCoordinateType CoordinateType
Coordinate type. 
Definition: DPosition.h:57
ConstIterator begin() const 
Non-mutable begin iterator. 
Definition: DPosition.h:383
bool operator>=(const DPosition &point) const 
Lexicographical greater or equal operator. 
Definition: DPosition.h:246
CoordinateType getX() const 
Name accessor for the first dimension. Only for DPosition<2>, for visualization. 
Definition: DPosition.h:149