mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-20 14:20:39 +01:00
[apps/statistics] Make data model inherit from curve view window
Change-Id: Iabf36299d20b17d9ac6fb4ae3a6166513f9a50c7
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "data.h"
|
||||
#include <float.h>
|
||||
|
||||
namespace Statistics {
|
||||
|
||||
@@ -45,4 +46,56 @@ void Data::deletePairAtIndex(int index) {
|
||||
m_sizes[m_numberOfPairs] = 1;
|
||||
}
|
||||
|
||||
int Data::sizeOfValuesBetweenBounds(float lowerBound, float upperBound) const {
|
||||
int result = 0;
|
||||
for (int k = 0; k < m_numberOfPairs; k++) {
|
||||
if (m_values[k] < upperBound && lowerBound <= m_values[k]) {
|
||||
result += m_sizes[k];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
float Data::xMin() {
|
||||
float valueMin = FLT_MAX;
|
||||
for (int k = 0; k < m_numberOfPairs; k++) {
|
||||
if (m_values[k] < valueMin) {
|
||||
valueMin = m_values[k];
|
||||
}
|
||||
}
|
||||
return valueMin;
|
||||
}
|
||||
|
||||
float Data::xMax() {
|
||||
float valueMax = -FLT_MAX;
|
||||
for (int k = 0; k < m_numberOfPairs; k++) {
|
||||
if (m_values[k] > valueMax) {
|
||||
valueMax = m_values[k];
|
||||
}
|
||||
}
|
||||
float valueMin = xMin();
|
||||
if (valueMax - valueMin > k_maxRangeValue) {
|
||||
valueMax = valueMin + 10.0f;
|
||||
}
|
||||
return valueMax;
|
||||
}
|
||||
|
||||
float Data::yMin() {
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float Data::yMax() {
|
||||
float sizeMax = -FLT_MAX;
|
||||
for (int k = 0; k < m_numberOfPairs; k++) {
|
||||
if (m_sizes[k] > sizeMax) {
|
||||
sizeMax = m_sizes[k];
|
||||
}
|
||||
}
|
||||
return sizeMax;
|
||||
}
|
||||
|
||||
float Data::xGridUnit() {
|
||||
return computeGridUnit(Axis::X);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#ifndef STATISTICS_DATA_H
|
||||
#define STATISTICS_DATA_H
|
||||
|
||||
#include "../curve_view_window.h"
|
||||
|
||||
namespace Statistics {
|
||||
|
||||
class Data {
|
||||
class Data : public CurveViewWindow {
|
||||
public:
|
||||
Data();
|
||||
// Delete the implicit copy constructor: the object is heavy
|
||||
@@ -14,9 +16,17 @@ public:
|
||||
void setValueAtIndex(float value, int index);
|
||||
void setSizeAtIndex(int size, int index);
|
||||
void deletePairAtIndex(int index);
|
||||
int sizeOfValuesBetweenBounds(float lowerBound, float upperBound) const;
|
||||
float xMin() override;
|
||||
// if the range of value is to wide, value max returns valueMin + 10
|
||||
float xMax() override;
|
||||
float yMin() override;
|
||||
float yMax() override;
|
||||
float xGridUnit() override;
|
||||
// TODO: decide the max number of elements after optimization
|
||||
constexpr static int k_maxNumberOfPairs = 500;
|
||||
private:
|
||||
constexpr static int k_maxRangeValue = 320;
|
||||
int m_sizes[k_maxNumberOfPairs];
|
||||
float m_values[k_maxNumberOfPairs];
|
||||
int m_numberOfPairs;
|
||||
|
||||
Reference in New Issue
Block a user