OpenMS
Loading...
Searching...
No Matches
LayerData1DIonMobility.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
13
14namespace OpenMS
15{
16
17 class OPENMS_GUI_DLLAPI LayerData1DIonMobility : public LayerDataIonMobility, public LayerData1DBase
18 {
19 public:
21 : LayerDataBase(DT_PEAK)
22 {
23 }
24
28
29
30 std::unique_ptr<LayerStoreData> storeVisibleData(const RangeAllType& visible_range, const DataFilters& layer_filters) const override;
31 std::unique_ptr<LayerStoreData> storeFullData() const override;
32
33 std::unique_ptr<Painter1DBase> getPainter1D() const override;
34
35 bool hasIndex(Size index) const override
36 {
37 return index == 0;
38 }
39
40 RangeAllType getRangeForArea(const RangeAllType partial_range) const override
41 {
42 const auto& spec = getCurrentMobilogram();
43 auto spec_filtered = Mobilogram();
44 spec_filtered.insert(spec_filtered.begin(), spec.MBBegin(partial_range.getMinMobility()), spec.MBEnd(partial_range.getMaxMobility()));
45 spec_filtered.updateRanges();
46 return RangeAllType().assign(spec_filtered.getRange());
47 }
48
49 RangeAllType getRange1D() const override
50 {
51 return RangeAllType().assign(getCurrentMobilogram().getRange());
52 }
53
55 {
56 return LayerDataIonMobility::getMobilogram(this->getCurrentIndex());
57 }
58
59 void updateRanges() override
60 {
61 LayerDataIonMobility::updateRanges();
62 }
63
64 RangeAllType getRange() const override
65 {
66 // do NOT change the behaviour of getRange() for 1D, since we want the full IM range across all mbs
67 // when scrolling in the list of mbs
68 return LayerDataIonMobility::getRange();
69 }
70
71 // docu in base class
72 QMenu* getContextMenuAnnotation(Annotation1DItem* annot_item, bool& need_repaint) override;
73
74 PeakIndex findClosestDataPoint(const RangeAllType& area) const override;
75
76 // docu in base class
77 Annotation1DItem* addPeakAnnotation(const PeakIndex& peak_index, const QString& text, const QColor& color) override;
78
79 protected:
80 };
81
82}// namespace OpenMS
An abstract class acting as an interface for the different 1D annotation items.
Definition Annotation1DItem.h:36
DataFilter array providing some convenience functions.
Definition DataFilters.h:27
Base class for all 1D layers, a special case of LayerData.
Definition LayerData1DBase.h:28
Definition LayerData1DIonMobility.h:18
std::unique_ptr< Painter1DBase > getPainter1D() const override
Obtain a painter which can draw the layer on a canvas.
std::unique_ptr< LayerStoreData > storeFullData() const override
Returns a visitor which contains the the full data of the layer and can write the data to disk in the...
RangeAllType getRangeForArea(const RangeAllType partial_range) const override
Given a partial_range for the current 1D layer (e.g. an m/z range), fill in the other dimensions (usu...
Definition LayerData1DIonMobility.h:40
LayerData1DIonMobility()
Definition LayerData1DIonMobility.h:20
LayerData1DIonMobility(const LayerDataIonMobility &base)
Definition LayerData1DIonMobility.h:25
QMenu * getContextMenuAnnotation(Annotation1DItem *annot_item, bool &need_repaint) override
Get a context menu (with lambda actions included) for this 1D layer, when a Annotation1DItem was righ...
RangeAllType getRange() const override
Definition LayerData1DIonMobility.h:64
std::unique_ptr< LayerStoreData > storeVisibleData(const RangeAllType &visible_range, const DataFilters &layer_filters) const override
Returns a visitor which contains the current visible data and can write the data to disk.
bool hasIndex(Size index) const override
Does the layer have at least index items (e.g. spectra, chroms, etc), so a call to setCurrentIndex() ...
Definition LayerData1DIonMobility.h:35
PeakIndex findClosestDataPoint(const RangeAllType &area) const override
Find the closest datapoint within the given range and return a proxy to that datapoint.
Annotation1DItem * addPeakAnnotation(const PeakIndex &peak_index, const QString &text, const QColor &color) override
Add a Annotation1DPeakItem to getCurrentAnnotations(). The specific type is determined by the derived...
void updateRanges() override
Update ranges of the underlying data.
Definition LayerData1DIonMobility.h:59
RangeAllType getRange1D() const override
Definition LayerData1DIonMobility.h:49
const Mobilogram & getCurrentMobilogram() const
Definition LayerData1DIonMobility.h:54
Class that stores the data for one layer.
Definition LayerDataBase.h:170
Class that stores the data for one layer of type IonMobility.
Definition LayerDataIonMobility.h:28
The representation of a 1D ion mobilogram.
Definition Mobilogram.h:32
auto & assign(const RangeManager< RangeBasesOther... > &rhs)
Definition RangeManager.h:615
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Index of a peak or feature.
Definition PeakIndex.h:25