Changed name of flag and semantics from removeNegativeValues to includePositiveValuesOnly so that only positive values (zero not included) are included. Makes functions more suitable for usage with plots using logarithmic scale. #2193

This commit is contained in:
sigurdp 2017-12-04 20:00:56 +01:00
parent 9e3868d6d8
commit 0af37f3613
4 changed files with 15 additions and 15 deletions

View File

@ -27,7 +27,7 @@
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RigCurveDataTools::CurveIntervals RigCurveDataTools::calculateIntervalsOfValidValues(const std::vector<double>& values, RigCurveDataTools::CurveIntervals RigCurveDataTools::calculateIntervalsOfValidValues(const std::vector<double>& values,
bool removeNegativeValues) bool includePositiveValuesOnly)
{ {
CurveIntervals intervals; CurveIntervals intervals;
@ -37,7 +37,7 @@ RigCurveDataTools::CurveIntervals RigCurveDataTools::calculateIntervalsOfValidVa
size_t valueCount = values.size(); size_t valueCount = values.size();
while (vIdx < valueCount) while (vIdx < valueCount)
{ {
bool isValid = RigCurveDataTools::isValidValue(values[vIdx], removeNegativeValues); bool isValid = RigCurveDataTools::isValidValue(values[vIdx], includePositiveValuesOnly);
if (!isValid) if (!isValid)
{ {
@ -90,14 +90,14 @@ std::vector<std::pair<size_t, size_t>> RigCurveDataTools::computePolyLineStartSt
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RigCurveDataTools::isValidValue(double value, bool removeNegativeValues) bool RigCurveDataTools::isValidValue(double value, bool allowPositiveValuesOnly)
{ {
if (value == HUGE_VAL || value == -HUGE_VAL || value != value) if (value == HUGE_VAL || value == -HUGE_VAL || value != value)
{ {
return false; return false;
} }
if (removeNegativeValues && std::signbit(value)) if (allowPositiveValuesOnly && value <= 0)
{ {
return false; return false;
} }

View File

@ -39,7 +39,7 @@ public:
public: public:
static CurveIntervals calculateIntervalsOfValidValues(const std::vector<double>& values, static CurveIntervals calculateIntervalsOfValidValues(const std::vector<double>& values,
bool removeNegativeValues); bool includePositiveValuesOnly);
template <typename T> template <typename T>
static void getValuesByIntervals(const std::vector<T>& values, static void getValuesByIntervals(const std::vector<T>& values,
@ -62,6 +62,6 @@ public:
public: public:
// Helper methods, available as public to be able to access from unit tests // Helper methods, available as public to be able to access from unit tests
static bool isValidValue(double value, bool removeNegativeValues); static bool isValidValue(double value, bool allowPositiveValuesOnly);
}; };

View File

@ -51,7 +51,7 @@ RiuLineSegmentQwtPlotCurve::~RiuLineSegmentQwtPlotCurve()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuLineSegmentQwtPlotCurve::setSamplesFromXValuesAndYValues(const std::vector<double>& xValues, const std::vector<double>& yValues, bool removeNegativeValues) void RiuLineSegmentQwtPlotCurve::setSamplesFromXValuesAndYValues(const std::vector<double>& xValues, const std::vector<double>& yValues, bool keepOnlyPositiveValues)
{ {
CVF_ASSERT(xValues.size() == yValues.size()); CVF_ASSERT(xValues.size() == yValues.size());
@ -62,7 +62,7 @@ void RiuLineSegmentQwtPlotCurve::setSamplesFromXValuesAndYValues(const std::vect
std::vector<double> filteredXValues; std::vector<double> filteredXValues;
{ {
auto intervalsOfValidValues = RigCurveDataTools::calculateIntervalsOfValidValues(yValues, removeNegativeValues); auto intervalsOfValidValues = RigCurveDataTools::calculateIntervalsOfValidValues(yValues, keepOnlyPositiveValues);
RigCurveDataTools::getValuesByIntervals(yValues, intervalsOfValidValues, &filteredYValues); RigCurveDataTools::getValuesByIntervals(yValues, intervalsOfValidValues, &filteredYValues);
RigCurveDataTools::getValuesByIntervals(xValues, intervalsOfValidValues, &filteredXValues); RigCurveDataTools::getValuesByIntervals(xValues, intervalsOfValidValues, &filteredXValues);
@ -84,17 +84,17 @@ void RiuLineSegmentQwtPlotCurve::setSamplesFromXValuesAndYValues(const std::vect
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuLineSegmentQwtPlotCurve::setSamplesFromDatesAndYValues(const std::vector<QDateTime>& dateTimes, const std::vector<double>& yValues, bool removeNegativeValues) void RiuLineSegmentQwtPlotCurve::setSamplesFromDatesAndYValues(const std::vector<QDateTime>& dateTimes, const std::vector<double>& yValues, bool keepOnlyPositiveValues)
{ {
setSamplesFromXValuesAndYValues(RiuLineSegmentQwtPlotCurve::fromQDateTime(dateTimes), yValues, removeNegativeValues); setSamplesFromXValuesAndYValues(RiuLineSegmentQwtPlotCurve::fromQDateTime(dateTimes), yValues, keepOnlyPositiveValues);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuLineSegmentQwtPlotCurve::setSamplesFromTimeTAndYValues(const std::vector<time_t>& dateTimes, const std::vector<double>& yValues, bool removeNegativeValues) void RiuLineSegmentQwtPlotCurve::setSamplesFromTimeTAndYValues(const std::vector<time_t>& dateTimes, const std::vector<double>& yValues, bool keepOnlyPositiveValues)
{ {
setSamplesFromXValuesAndYValues(RiuLineSegmentQwtPlotCurve::fromTime_t(dateTimes), yValues, removeNegativeValues); setSamplesFromXValuesAndYValues(RiuLineSegmentQwtPlotCurve::fromTime_t(dateTimes), yValues, keepOnlyPositiveValues);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -49,15 +49,15 @@ public:
void setSamplesFromXValuesAndYValues(const std::vector<double>& xValues, void setSamplesFromXValuesAndYValues(const std::vector<double>& xValues,
const std::vector<double>& yValues, const std::vector<double>& yValues,
bool removeNegativeValues); bool keepOnlyPositiveValues);
void setSamplesFromDatesAndYValues(const std::vector<QDateTime>& dateTimes, void setSamplesFromDatesAndYValues(const std::vector<QDateTime>& dateTimes,
const std::vector<double>& yValues, const std::vector<double>& yValues,
bool removeNegativeValues); bool keepOnlyPositiveValues);
void setSamplesFromTimeTAndYValues(const std::vector<time_t>& dateTimes, void setSamplesFromTimeTAndYValues(const std::vector<time_t>& dateTimes,
const std::vector<double>& yValues, const std::vector<double>& yValues,
bool removeNegativeValues); bool keepOnlyPositiveValues);
void setLineSegmentStartStopIndices(const std::vector< std::pair<size_t, size_t> >& lineSegmentStartStopIndices); void setLineSegmentStartStopIndices(const std::vector< std::pair<size_t, size_t> >& lineSegmentStartStopIndices);