Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis 3 Programmer Reference
AbstractFilter.h
1#ifndef AbstractFilter_H
2#define AbstractFilter_H
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QWidget>
13
14class QBoxLayout;
15class QButtonGroup;
16class QCheckBox;
17class QString;
18template< typename T > class QFlags;
19
20
21namespace Isis {
22 class AbstractFilterSelector;
23 class ControlPoint;
24 class ControlMeasure;
25 class ControlNet;
26
45 class AbstractFilter : public QWidget {
46 Q_OBJECT
47
48 public:
49 enum FilterEffectiveness {
50 Images = 1,
51 Points = 2,
52 Measures = 4
53 };
54 Q_DECLARE_FLAGS(FilterEffectivenessFlag, FilterEffectiveness)
55
56
57 public:
58 AbstractFilter(FilterEffectivenessFlag, int minimumForSuccess = -1);
59 AbstractFilter(const AbstractFilter &other);
60 virtual ~AbstractFilter();
61
62 virtual bool canFilterImages() const;
63 virtual bool canFilterPoints() const;
64 virtual bool canFilterMeasures() const;
65
66 virtual bool evaluate(const QPair<QString, ControlNet *> *) const = 0;
67 virtual bool evaluate(const ControlPoint *) const = 0;
68 virtual bool evaluate(const ControlMeasure *) const = 0;
69
70 virtual AbstractFilter *clone() const = 0;
71
72 virtual QString getImageDescription() const;
73 virtual QString getPointDescription() const;
74 virtual QString getMeasureDescription() const;
75
76
77 signals:
78 void filterChanged();
79
80
81 protected:
82 bool inclusive() const;
83 int getMinForSuccess() const {
84 return m_minForSuccess;
85 }
86 AbstractFilter::FilterEffectivenessFlag *getEffectivenessFlags() const;
87 QBoxLayout *getMainLayout() const;
88 QBoxLayout *getInclusiveExclusiveLayout() const;
89
90 bool evaluateImageFromPointFilter(const QPair<QString, ControlNet *> *) const;
91 bool evaluateImageFromMeasureFilter(const QPair<QString, ControlNet *> *) const;
92 bool evaluatePointFromMeasureFilter(const ControlPoint *) const;
93
94 virtual bool evaluate(const ControlPoint *,
95 bool (ControlPoint:: *)() const) const;
96 virtual bool evaluate(const ControlMeasure *,
97 bool (ControlMeasure:: *)() const) const;
98
99
100 private:
101 void createWidget();
102 bool evaluateFromCount(QList< ControlMeasure * >, bool) const;
103 void nullify();
104
105
106 private slots:
107 void updateEffectiveness();
108 void updateMinForSuccess(int);
109
110
111 private:
112 QCheckBox *createEffectivenessCheckBox(QString);
113
114
115 private:
116 QBoxLayout *m_mainLayout;
117 QBoxLayout *m_inclusiveExclusiveLayout;
118 QButtonGroup *m_inclusiveExclusiveGroup;
119 QButtonGroup *m_effectivenessGroup;
120 QWidget *m_minWidget;
121
122
123 private:
124 int m_minForSuccess;
125 FilterEffectivenessFlag *m_effectivenessFlags;
126 QFont *m_smallFont;
127 };
128
129 Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractFilter::FilterEffectivenessFlag)
130}
131
132#endif
a control measurement
A single control point.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16