-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrange.cpp
50 lines (40 loc) · 875 Bytes
/
range.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "range.h"
Range::Range(int32_t min, int32_t max){
this->min = min;
this->max = max;
}
int32_t Range::getMin(){
return min;
}
int32_t Range::getMax(){
return max;
}
void Range::setMin(int32_t min){
this->min = min;
}
void Range::setMax(int32_t max){
this->max = max;
}
uint8_t Range::isInRange(int32_t value){
if((value >= min) && (value <= max))
return true;
return false;
}
int32_t Range::getValueInRange(int32_t value){
if(!isInRange(value)){
if(value > getMax())
return getMax();
else
return getMin();
}
return value;
}
int32_t Range::getWidth(){
return max - min;
}
float Range::getPartOfRange(int32_t value){
return static_cast<float>(value - min) / getWidth();
}
int32_t Range::getValueForPart(float part){
return min + round(getWidth()*part);
}