Numworks Epsilon  1.4.1
Graphing Calculator Operating System
curve_view_range.h
Go to the documentation of this file.
1 #ifndef SHARED_CURVE_VIEW_RANGE_H
2 #define SHARED_CURVE_VIEW_RANGE_H
3 
4 #include <stdint.h>
5 
6 namespace Shared {
7 
9 public:
10  enum class Axis {
11  X,
12  Y
13  };
14  virtual uint32_t rangeChecksum();
15 
16  virtual float xMin() = 0;
17  virtual float xMax() = 0;
18  virtual float yMin() = 0;
19  virtual float yMax() = 0;
20  virtual float xGridUnit() = 0;
21  virtual float yGridUnit();
22  float computeGridUnit(Axis axis, float min, float max);
23  constexpr static float k_maxNumberOfXGridUnits = 18.0f;
24  constexpr static float k_maxNumberOfYGridUnits = 13.0f;
25 private:
26  constexpr static float k_minNumberOfXGridUnits = 7.0f;
27  constexpr static float k_minNumberOfYGridUnits = 5.0f;
28  /* The grid units is constrained to be a number of type: k*10^n with k = 1,2 or 5
29  * and n a relative integer. The choice of x and y grid units depend on the
30  * grid range.*/
31  constexpr static float k_smallGridUnitMantissa = 1.0f;
32  constexpr static float k_mediumGridUnitMantissa = 2.0f;
33  constexpr static float k_largeGridUnitMantissa = 5.0f;
34 };
35 
36 }
37 
38 #endif
virtual float xMax()=0
virtual float xGridUnit()=0
static constexpr float k_maxNumberOfYGridUnits
unsigned int uint32_t
Definition: stdint.h:6
virtual float yMin()=0
virtual uint32_t rangeChecksum()
virtual float yMax()=0
float computeGridUnit(Axis axis, float min, float max)
static constexpr float k_maxNumberOfXGridUnits
virtual float xMin()=0