Engauge Digitizer 2
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
ColorFilterSettings Class Reference

Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointStyle. More...

#include <ColorFilterSettings.h>

Collaboration diagram for ColorFilterSettings:
Collaboration graph

Public Member Functions

 ColorFilterSettings ()
 Default constructor only for use when this class is being stored by a container that requires the default constructor.
 
 ColorFilterSettings (ColorFilterMode colorFilterMode, int intensityLow, int intensityHigh, int foregroundLow, int foregroundHigh, int hueLow, int hueHigh, int saturationLow, int saturationHigh, int valueLow, int valueHigh)
 Normal constructor. The style type and radius are determined by the currently selected Curve.
 
 ColorFilterSettings (const ColorFilterSettings &other)
 Copy constructor.
 
 ColorFilterSettings (QXmlStreamReader &reader)
 Constructor when loading from serialized xml.
 
ColorFilterSettingsoperator= (const ColorFilterSettings &other)
 Assignment operator.
 
 ~ColorFilterSettings ()
 Destructor deallocates memory.
 
ColorFilterMode colorFilterMode () const
 Get method for filter mode.
 
int foregroundHigh () const
 Get method for foreground higher bound.
 
int foregroundLow () const
 Get method for foreground lower bound.
 
double high () const
 High value of foreground, hue, intensity, saturation or value according to current filter mode, normalized to 0 to 1.
 
int hueHigh () const
 Get method for hue higher bound.
 
int hueLow () const
 Get method for hue lower bound.
 
int intensityHigh () const
 Get method for intensity higher bound.
 
int intensityLow () const
 Get method for intensity lower bound.
 
void loadXml (QXmlStreamReader &reader)
 Load curve filter to stream.
 
double low () const
 Low value of foreground, hue, intensity, saturation or value according to current filter mode, normalized to 0 to 1.
 
void printStream (QString indentation, QTextStream &str) const
 Debugging method that supports print method of this class and printStream method of some other class(es)
 
int saturationHigh () const
 Get method for saturation higher bound.
 
int saturationLow () const
 Get method for saturation lower bound.
 
void saveXml (QXmlStreamWriter &writer, const QString &curveName) const
 Save curve filter to stream.
 
void setColorFilterMode (ColorFilterMode colorFilterMode)
 Set method for filter mode.
 
void setForegroundHigh (int foregroundHigh)
 Set method for foreground higher bound.
 
void setForegroundLow (int foregroundLow)
 Set method for foreground lower bound.
 
void setHigh (double s0To1)
 Set the high value for the current filter mode.
 
void setHueHigh (int hueHigh)
 Set method for hue higher bound.
 
void setHueLow (int hueLow)
 Set method for hue lower bound.
 
void setIntensityHigh (int intensityHigh)
 Set method for intensity higher bound.
 
void setIntensityLow (int intensityLow)
 Set method for intensity lower bound.
 
void setLow (double s0To1)
 Set the low value for the current filter mode.
 
void setSaturationHigh (int saturationHigh)
 Set method for saturation high.
 
void setSaturationLow (int saturationLow)
 Set method for saturation low.
 
void setValueHigh (int valueHigh)
 Set method for value high.
 
void setValueLow (int valueLow)
 Set method for value low.
 
int valueHigh () const
 Get method for value high.
 
int valueLow () const
 Get method for value low.
 

Static Public Member Functions

static ColorFilterSettings defaultFilter ()
 Initial default for any Curve.
 

Detailed Description

Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointStyle.

Definition at line 19 of file ColorFilterSettings.h.

Constructor & Destructor Documentation

◆ ColorFilterSettings() [1/4]

ColorFilterSettings::ColorFilterSettings ( )

Default constructor only for use when this class is being stored by a container that requires the default constructor.

Definition at line 24 of file ColorFilterSettings.cpp.

24 :
25 m_colorFilterMode (COLOR_FILTER_MODE_INTENSITY),
26 m_intensityLow (INTENSITY_LOW_DEFAULT),
27 m_intensityHigh (INTENSITY_HIGH_DEFAULT),
28 m_foregroundLow (FOREGROUND_LOW_DEFAULT),
29 m_foregroundHigh (FOREGROUND_HIGH_DEFAULT),
30 m_hueLow (HUE_LOW_DEFAULT),
31 m_hueHigh (HUE_HIGH_DEFAULT),
32 m_saturationLow (SATURATION_LOW_DEFAULT),
33 m_saturationHigh (SATURATION_HIGH_DEFAULT),
34 m_valueLow (VALUE_LOW_DEFAULT),
35 m_valueHigh (VALUE_HIGH_DEFAULT)
36{
37 createStrategies ();
38}
const int HUE_HIGH_DEFAULT
const int FOREGROUND_LOW_DEFAULT
const int SATURATION_HIGH_DEFAULT
const int VALUE_HIGH_DEFAULT
const int SATURATION_LOW_DEFAULT
const int INTENSITY_LOW_DEFAULT
const int HUE_LOW_DEFAULT
const int FOREGROUND_HIGH_DEFAULT
const int INTENSITY_HIGH_DEFAULT
const int VALUE_LOW_DEFAULT
@ COLOR_FILTER_MODE_INTENSITY

◆ ColorFilterSettings() [2/4]

ColorFilterSettings::ColorFilterSettings ( ColorFilterMode colorFilterMode,
int intensityLow,
int intensityHigh,
int foregroundLow,
int foregroundHigh,
int hueLow,
int hueHigh,
int saturationLow,
int saturationHigh,
int valueLow,
int valueHigh )

Normal constructor. The style type and radius are determined by the currently selected Curve.

Definition at line 40 of file ColorFilterSettings.cpp.

50 :
51 m_colorFilterMode (colorFilterMode),
52 m_intensityLow (intensityLow),
53 m_intensityHigh (intensityHigh),
54 m_foregroundLow (foregroundLow),
55 m_foregroundHigh (foregroundHigh),
56 m_hueLow (hueLow),
57 m_hueHigh (hueHigh),
58 m_saturationLow (saturationLow),
59 m_saturationHigh (saturationHigh),
60 m_valueLow (valueLow),
61 m_valueHigh (valueHigh)
62{
63 createStrategies ();
64}
int foregroundLow() const
Get method for foreground lower bound.
int saturationLow() const
Get method for saturation lower bound.
int intensityHigh() const
Get method for intensity higher bound.
int saturationHigh() const
Get method for saturation higher bound.
ColorFilterMode colorFilterMode() const
Get method for filter mode.
int valueLow() const
Get method for value low.
int hueHigh() const
Get method for hue higher bound.
int foregroundHigh() const
Get method for foreground higher bound.
int intensityLow() const
Get method for intensity lower bound.
int hueLow() const
Get method for hue lower bound.
int valueHigh() const
Get method for value high.

◆ ColorFilterSettings() [3/4]

ColorFilterSettings::ColorFilterSettings ( const ColorFilterSettings & other)

Copy constructor.

Definition at line 66 of file ColorFilterSettings.cpp.

66 :
67 m_colorFilterMode (other.colorFilterMode()),
68 m_intensityLow (other.intensityLow()),
69 m_intensityHigh (other.intensityHigh()),
70 m_foregroundLow (other.foregroundLow()),
71 m_foregroundHigh (other.foregroundHigh()),
72 m_hueLow (other.hueLow()),
73 m_hueHigh (other.hueHigh()),
74 m_saturationLow (other.saturationLow()),
75 m_saturationHigh (other.saturationHigh()),
76 m_valueLow (other.valueLow()),
77 m_valueHigh (other.valueHigh())
78{
79 createStrategies ();
80}
const int INNER_RADIUS_MIN

◆ ColorFilterSettings() [4/4]

ColorFilterSettings::ColorFilterSettings ( QXmlStreamReader & reader)

Constructor when loading from serialized xml.

Definition at line 82 of file ColorFilterSettings.cpp.

83{
85 createStrategies ();
86}
void loadXml(QXmlStreamReader &reader)
Load curve filter to stream.

◆ ~ColorFilterSettings()

ColorFilterSettings::~ColorFilterSettings ( )

Destructor deallocates memory.

Definition at line 107 of file ColorFilterSettings.cpp.

108{
109 qDeleteAll (m_strategies);
110}

Member Function Documentation

◆ colorFilterMode()

ColorFilterMode ColorFilterSettings::colorFilterMode ( ) const

Get method for filter mode.

Definition at line 112 of file ColorFilterSettings.cpp.

113{
114 return m_colorFilterMode;
115}

◆ defaultFilter()

ColorFilterSettings ColorFilterSettings::defaultFilter ( )
static

Initial default for any Curve.

Definition at line 128 of file ColorFilterSettings.cpp.

129{
130 return ColorFilterSettings ();
131}
ColorFilterSettings()
Default constructor only for use when this class is being stored by a container that requires the def...

◆ foregroundHigh()

int ColorFilterSettings::foregroundHigh ( ) const

Get method for foreground higher bound.

Definition at line 133 of file ColorFilterSettings.cpp.

134{
135 return m_foregroundHigh;
136}

◆ foregroundLow()

int ColorFilterSettings::foregroundLow ( ) const

Get method for foreground lower bound.

Definition at line 138 of file ColorFilterSettings.cpp.

139{
140 return m_foregroundLow;
141}

◆ high()

double ColorFilterSettings::high ( ) const

High value of foreground, hue, intensity, saturation or value according to current filter mode, normalized to 0 to 1.

Definition at line 143 of file ColorFilterSettings.cpp.

144{
145 if (m_strategies.contains (m_colorFilterMode)) {
146
147 // Ignore false positive cmake compiler warning about -Wreturn-stack-address in next line (bug #26396)
148 const ColorFilterSettingsStrategyAbstractBase *strategy = m_strategies.value (m_colorFilterMode);
149 return strategy->high (*this);
150 } else {
151 ENGAUGE_ASSERT (false);
152 return m_strategies [COLOR_FILTER_MODE_INTENSITY]->high (*this);
153 }
154}
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
Base class for strategy pattern whose subclasses process the different color filter settings modes (o...

◆ hueHigh()

int ColorFilterSettings::hueHigh ( ) const

Get method for hue higher bound.

Definition at line 156 of file ColorFilterSettings.cpp.

157{
158 return m_hueHigh;
159}

◆ hueLow()

int ColorFilterSettings::hueLow ( ) const

Get method for hue lower bound.

Definition at line 161 of file ColorFilterSettings.cpp.

162{
163 return m_hueLow;
164}

◆ intensityHigh()

int ColorFilterSettings::intensityHigh ( ) const

Get method for intensity higher bound.

Definition at line 166 of file ColorFilterSettings.cpp.

167{
168 return m_intensityHigh;
169}

◆ intensityLow()

int ColorFilterSettings::intensityLow ( ) const

Get method for intensity lower bound.

Definition at line 171 of file ColorFilterSettings.cpp.

172{
173 return m_intensityLow;
174}

◆ loadXml()

void ColorFilterSettings::loadXml ( QXmlStreamReader & reader)

Load curve filter to stream.

Definition at line 176 of file ColorFilterSettings.cpp.

177{
178 LOG4CPP_INFO_S ((*mainCat)) << "ColorFilterSettings::loadXml";
179
180 bool success = true;
181
183
195
207
208 // Read until end of this subtree
209 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
212
213 if (reader.atEnd()) {
214 success = false;
215 break;
216 }
217 }
218 }
219
220 if (!success) {
221 reader.raiseError (QObject::tr ("Cannot read curve filter data"));
222 }
223}
ColorFilterMode
const QString DOCUMENT_SERIALIZE_COLOR_FILTER
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_VALUE_LOW
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_HUE_HIGH
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_VALUE_HIGH
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_INTENSITY_LOW
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_FOREGROUND_HIGH
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_INTENSITY_HIGH
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_FOREGROUND_LOW
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_SATURATION_HIGH
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_MODE
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_HUE_LOW
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_SATURATION_LOW
GridCoordDisable
log4cpp::Category * mainCat
Definition Logger.cpp:14
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Definition Xml.cpp:14
void setIntensityLow(int intensityLow)
Set method for intensity lower bound.
void setForegroundLow(int foregroundLow)
Set method for foreground lower bound.
void setValueLow(int valueLow)
Set method for value low.
void setValueHigh(int valueHigh)
Set method for value high.
void setSaturationLow(int saturationLow)
Set method for saturation low.
void setHueLow(int hueLow)
Set method for hue lower bound.
void setColorFilterMode(ColorFilterMode colorFilterMode)
Set method for filter mode.
void setForegroundHigh(int foregroundHigh)
Set method for foreground higher bound.
void setIntensityHigh(int intensityHigh)
Set method for intensity higher bound.
void setSaturationHigh(int saturationHigh)
Set method for saturation high.
void setHueHigh(int hueHigh)
Set method for hue higher bound.
#define LOG4CPP_INFO_S(logger)
Definition convenience.h:18

◆ low()

double ColorFilterSettings::low ( ) const

Low value of foreground, hue, intensity, saturation or value according to current filter mode, normalized to 0 to 1.

Definition at line 225 of file ColorFilterSettings.cpp.

226{
227 if (m_strategies.contains (m_colorFilterMode)) {
228 const ColorFilterSettingsStrategyAbstractBase *strategy = m_strategies.value (m_colorFilterMode);
229 return strategy->low (*this);
230 } else {
231 ENGAUGE_ASSERT (false);
232 return m_strategies [COLOR_FILTER_MODE_INTENSITY]->low (*this);
233 }
234}

◆ operator=()

ColorFilterSettings & ColorFilterSettings::operator= ( const ColorFilterSettings & other)

Assignment operator.

Definition at line 88 of file ColorFilterSettings.cpp.

89{
90 m_colorFilterMode = other.colorFilterMode();
91 m_intensityLow = other.intensityLow();
92 m_intensityHigh = other.intensityHigh();
93 m_foregroundLow = other.foregroundLow();
94 m_foregroundHigh = other.foregroundHigh();
95 m_hueLow = other.hueLow();
96 m_hueHigh = other.hueHigh();
97 m_saturationLow = other.saturationLow();
98 m_saturationHigh = other.saturationHigh();
99 m_valueLow = other.valueLow();
100 m_valueHigh = other.valueHigh();
101
102 createStrategies ();
103
104 return *this;
105}

◆ printStream()

void ColorFilterSettings::printStream ( QString indentation,
QTextStream & str ) const

Debugging method that supports print method of this class and printStream method of some other class(es)

Definition at line 236 of file ColorFilterSettings.cpp.

238{
239 str << indentation << "ColorFilterSettings\n";
240
242
243 if (m_strategies.contains (m_colorFilterMode)) {
244 const ColorFilterSettingsStrategyAbstractBase *strategy = m_strategies.value (m_colorFilterMode);
245 return strategy->printStream (*this,
247 str);
248 }
249}
const QString INDENTATION_DELTA

◆ saturationHigh()

int ColorFilterSettings::saturationHigh ( ) const

Get method for saturation higher bound.

Definition at line 251 of file ColorFilterSettings.cpp.

252{
253 return m_saturationHigh;
254}

◆ saturationLow()

int ColorFilterSettings::saturationLow ( ) const

Get method for saturation lower bound.

Definition at line 256 of file ColorFilterSettings.cpp.

257{
258 return m_saturationLow;
259}

◆ saveXml()

void ColorFilterSettings::saveXml ( QXmlStreamWriter & writer,
const QString & curveName ) const

Save curve filter to stream.

Definition at line 261 of file ColorFilterSettings.cpp.

263{
264 LOG4CPP_INFO_S ((*mainCat)) << "ColorFilterSettings::saveXml";
265
266 writer.writeStartElement(DOCUMENT_SERIALIZE_COLOR_FILTER);
267 writer.writeAttribute(DOCUMENT_SERIALIZE_CURVE_NAME, curveName);
268 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_MODE, QString::number (m_colorFilterMode));
270 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_INTENSITY_LOW, QString::number (m_intensityLow));
271 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_INTENSITY_HIGH, QString::number (m_intensityHigh));
272 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_FOREGROUND_LOW, QString::number (m_foregroundLow));
273 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_FOREGROUND_HIGH, QString::number (m_foregroundHigh));
274 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_HUE_LOW, QString::number (m_hueLow));
275 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_HUE_HIGH, QString::number (m_hueHigh));
276 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_SATURATION_LOW, QString::number (m_saturationLow));
277 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_SATURATION_HIGH, QString::number (m_saturationHigh));
278 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_VALUE_LOW, QString::number (m_valueLow));
279 writer.writeAttribute(DOCUMENT_SERIALIZE_COLOR_FILTER_VALUE_HIGH, QString::number (m_valueHigh));
280 writer.writeEndElement();
281}
QString colorFilterModeToString(ColorFilterMode colorFilterMode)
const QString DOCUMENT_SERIALIZE_CURVE_NAME
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_MODE_STRING

◆ setColorFilterMode()

void ColorFilterSettings::setColorFilterMode ( ColorFilterMode colorFilterMode)

Set method for filter mode.

Definition at line 283 of file ColorFilterSettings.cpp.

284{
285 m_colorFilterMode = colorFilterMode;
286}

◆ setForegroundHigh()

void ColorFilterSettings::setForegroundHigh ( int foregroundHigh)

Set method for foreground higher bound.

Definition at line 288 of file ColorFilterSettings.cpp.

289{
291 m_foregroundHigh = foregroundHigh;
292}
const int FOREGROUND_MAX
const int FOREGROUND_MIN

◆ setForegroundLow()

void ColorFilterSettings::setForegroundLow ( int foregroundLow)

Set method for foreground lower bound.

Definition at line 294 of file ColorFilterSettings.cpp.

295{
297 m_foregroundLow = foregroundLow;
298}

◆ setHigh()

void ColorFilterSettings::setHigh ( double s0To1)

Set the high value for the current filter mode.

Definition at line 300 of file ColorFilterSettings.cpp.

301{
302 if (m_strategies.contains (m_colorFilterMode)) {
303 ColorFilterSettingsStrategyAbstractBase *strategy = m_strategies [m_colorFilterMode];
304 return strategy->setHigh (*this,
305 s0To1);
306 } else {
307 ENGAUGE_ASSERT (false);
308 }
309}

◆ setHueHigh()

void ColorFilterSettings::setHueHigh ( int hueHigh)

Set method for hue higher bound.

Definition at line 311 of file ColorFilterSettings.cpp.

312{
314 m_hueHigh = hueHigh;
315}
const int HUE_MAX
const int HUE_MIN

◆ setHueLow()

void ColorFilterSettings::setHueLow ( int hueLow)

Set method for hue lower bound.

Definition at line 317 of file ColorFilterSettings.cpp.

318{
320 m_hueLow = hueLow;
321}

◆ setIntensityHigh()

void ColorFilterSettings::setIntensityHigh ( int intensityHigh)

Set method for intensity higher bound.

Definition at line 323 of file ColorFilterSettings.cpp.

324{
326 m_intensityHigh = intensityHigh;
327}
const int INTENSITY_MAX
const int INTENSITY_MIN
Constants for use by CurveFilter and other curve-related classes.

◆ setIntensityLow()

void ColorFilterSettings::setIntensityLow ( int intensityLow)

Set method for intensity lower bound.

Definition at line 329 of file ColorFilterSettings.cpp.

330{
332 m_intensityLow = intensityLow;
333}

◆ setLow()

void ColorFilterSettings::setLow ( double s0To1)

Set the low value for the current filter mode.

Definition at line 335 of file ColorFilterSettings.cpp.

336{
337 if (m_strategies.contains (m_colorFilterMode)) {
338 ColorFilterSettingsStrategyAbstractBase *strategy = m_strategies [m_colorFilterMode];
339 return strategy->setLow (*this,
340 s0To1);
341 } else {
342 ENGAUGE_ASSERT (false);
343 }
344}

◆ setSaturationHigh()

void ColorFilterSettings::setSaturationHigh ( int saturationHigh)

Set method for saturation high.

Definition at line 346 of file ColorFilterSettings.cpp.

347{
349 m_saturationHigh = saturationHigh;
350}
const int SATURATION_MAX
const int SATURATION_MIN

◆ setSaturationLow()

void ColorFilterSettings::setSaturationLow ( int saturationLow)

Set method for saturation low.

Definition at line 352 of file ColorFilterSettings.cpp.

353{
355 m_saturationLow = saturationLow;
356}

◆ setValueHigh()

void ColorFilterSettings::setValueHigh ( int valueHigh)

Set method for value high.

Definition at line 358 of file ColorFilterSettings.cpp.

359{
361 m_valueHigh = valueHigh;
362}
const int VALUE_MAX
const int VALUE_MIN

◆ setValueLow()

void ColorFilterSettings::setValueLow ( int valueLow)

Set method for value low.

Definition at line 364 of file ColorFilterSettings.cpp.

365{
367 m_valueLow = valueLow;
368}

◆ valueHigh()

int ColorFilterSettings::valueHigh ( ) const

Get method for value high.

Definition at line 370 of file ColorFilterSettings.cpp.

371{
372 return m_valueHigh;
373}

◆ valueLow()

int ColorFilterSettings::valueLow ( ) const

Get method for value low.

Definition at line 375 of file ColorFilterSettings.cpp.

376{
377 return m_valueLow;
378}

The documentation for this class was generated from the following files: