OpenMS
MobilityPeak1D.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Chris Bielow $
6 // $Authors: Chris Bielow $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 #include <OpenMS/CONCEPT/Types.h>
13 #include <iosfwd>
14 
15 namespace OpenMS
16 {
24  class OPENMS_DLLAPI MobilityPeak1D
25  {
26  public:
30  enum{ DIMENSION = 1 };
32  using IntensityType = float;
36  using CoordinateType = double;
38 
42  MobilityPeak1D() = default;
43 
45  MobilityPeak1D(PositionType a, IntensityType b) : position_(a), intensity_(b)
46  {
47  }
48 
50  MobilityPeak1D(const MobilityPeak1D& p) = default;
51 
52  // Move constructor
53  MobilityPeak1D(MobilityPeak1D&&) noexcept = default;
54 
56  MobilityPeak1D& operator=(const MobilityPeak1D& rhs) = default;
57 
59  MobilityPeak1D& operator=(MobilityPeak1D&&) noexcept = default;
60 
61 
70  ~MobilityPeak1D() noexcept = default;
71 
73 
79  IntensityType getIntensity() const;
81  void setIntensity(IntensityType intensity);
82 
84  CoordinateType getMobility() const;
85 
87  void setMobility(CoordinateType mobility);
88 
90  CoordinateType getPos() const;
91 
93  void setPos(CoordinateType pos);
94 
96  PositionType const& getPosition() const;
97 
99  PositionType& getPosition();
100 
102  void setPosition(PositionType const& position);
103 
105 
107  bool operator==(const MobilityPeak1D& rhs) const;
108 
110  bool operator!=(const MobilityPeak1D& rhs) const;
111 
118  struct IntensityLess {
119  inline bool operator()(MobilityPeak1D const& left, MobilityPeak1D const& right) const
120  {
121  return left.getIntensity() < right.getIntensity();
122  }
123 
124  inline bool operator()(MobilityPeak1D const& left, IntensityType right) const
125  {
126  return left.getIntensity() < right;
127  }
128 
129  inline bool operator()(IntensityType left, MobilityPeak1D const& right) const
130  {
131  return left < right.getIntensity();
132  }
133 
134  inline bool operator()(IntensityType left, IntensityType right) const
135  {
136  return left < right;
137  }
138  };
139 
141  struct MobilityLess {
142  inline bool operator()(const MobilityPeak1D& left, const MobilityPeak1D& right) const
143  {
144  return left.getMobility() < right.getMobility();
145  }
146 
147  inline bool operator()(MobilityPeak1D const& left, CoordinateType right) const
148  {
149  return left.getMobility() < right;
150  }
151 
152  inline bool operator()(CoordinateType left, MobilityPeak1D const& right) const
153  {
154  return left < right.getMobility();
155  }
156 
157  inline bool operator()(CoordinateType left, CoordinateType right) const
158  {
159  return left < right;
160  }
161  };
162 
164  struct PositionLess {
165  inline bool operator()(const MobilityPeak1D& left, const MobilityPeak1D& right) const
166  {
167  return left.getPosition() < right.getPosition();
168  }
169 
170  inline bool operator()(const MobilityPeak1D& left, const PositionType& right) const
171  {
172  return left.getPosition() < right;
173  }
174 
175  inline bool operator()(const PositionType& left, const MobilityPeak1D& right) const
176  {
177  return left < right.getPosition();
178  }
179 
180  inline bool operator()(const PositionType& left, const PositionType& right) const
181  {
182  return left < right;
183  }
184  };
186 
187  protected:
189  PositionType position_{};
191  IntensityType intensity_ = 0.0;
192  };
193 
195  OPENMS_DLLAPI std::ostream& operator<<(std::ostream& os, const MobilityPeak1D& point);
196 
197 } // namespace OpenMS
A 1-dimensional raw data mobility point or peak. The unit (ms, 1/K_0, etc) is implicit.
Definition: MobilityPeak1D.h:25
PositionType const & getPosition() const
Non-mutable access to the position.
double CoordinateType
Coordinate type.
Definition: MobilityPeak1D.h:36
MobilityPeak1D(PositionType a, IntensityType b)
construct with position and intensity
Definition: MobilityPeak1D.h:45
IntensityType getIntensity() const
CoordinateType getMobility() const
Non-mutable access to m/z.
MobilityPeak1D(MobilityPeak1D &&) noexcept=default
MobilityPeak1D(const MobilityPeak1D &p)=default
Copy constructor.
float IntensityType
Intensity type.
Definition: MobilityPeak1D.h:32
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
Definition: MobilityPeak1D.h:118
bool operator()(MobilityPeak1D const &left, MobilityPeak1D const &right) const
Definition: MobilityPeak1D.h:119
bool operator()(MobilityPeak1D const &left, IntensityType right) const
Definition: MobilityPeak1D.h:124
bool operator()(IntensityType left, MobilityPeak1D const &right) const
Definition: MobilityPeak1D.h:129
bool operator()(IntensityType left, IntensityType right) const
Definition: MobilityPeak1D.h:134
Comparator by mobility position.
Definition: MobilityPeak1D.h:141
bool operator()(CoordinateType left, MobilityPeak1D const &right) const
Definition: MobilityPeak1D.h:152
bool operator()(CoordinateType left, CoordinateType right) const
Definition: MobilityPeak1D.h:157
bool operator()(const MobilityPeak1D &left, const MobilityPeak1D &right) const
Definition: MobilityPeak1D.h:142
bool operator()(MobilityPeak1D const &left, CoordinateType right) const
Definition: MobilityPeak1D.h:147
Comparator by position. As this class has dimension 1, this is basically an alias for MobilityLess.
Definition: MobilityPeak1D.h:164
bool operator()(const PositionType &left, const PositionType &right) const
Definition: MobilityPeak1D.h:180
bool operator()(const MobilityPeak1D &left, const MobilityPeak1D &right) const
Definition: MobilityPeak1D.h:165
bool operator()(const MobilityPeak1D &left, const PositionType &right) const
Definition: MobilityPeak1D.h:170
bool operator()(const PositionType &left, const MobilityPeak1D &right) const
Definition: MobilityPeak1D.h:175