-
Notifications
You must be signed in to change notification settings - Fork 41
/
utils.go
60 lines (48 loc) · 974 Bytes
/
utils.go
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
51
52
53
54
55
56
57
58
59
60
package resolv
import (
"math"
)
// ToDegrees is a helper function to easily convert radians to degrees for human readability.
func ToDegrees(radians float64) float64 {
return radians / math.Pi * 180
}
// ToRadians is a helper function to easily convert degrees to radians (which is what the rotation-oriented functions in Tetra3D use).
func ToRadians(degrees float64) float64 {
return math.Pi * degrees / 180
}
func min(a, b float64) float64 {
if a < b {
return a
}
return b
}
func max(a, b float64) float64 {
if a > b {
return a
}
return b
}
func clamp(value, min, max float64) float64 {
if value < min {
return min
} else if value > max {
return max
}
return value
}
func pow(value float64, power int) float64 {
x := value
for i := 0; i < power; i++ {
x += x
}
return x
}
func round(value float64) float64 {
iv := float64(int(value))
if value > iv+0.5 {
return iv + 1
} else if value < iv-0.5 {
return iv - 1
}
return iv
}