-
Notifications
You must be signed in to change notification settings - Fork 0
/
Tools.py
31 lines (26 loc) · 815 Bytes
/
Tools.py
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
# Copyright 2020 Serdar Üşenmez
# Distributed under the terms of the GNU General Public License v3.0
def toward(current, target, rate):
if (current < target):
current += rate
if (current > target):
current = target
elif (current > target):
current -= rate
if (current < target):
current = target
return current
def saturate(value, minimum, maximum):
if (value < minimum):
return minimum
elif (value > maximum):
return maximum
else:
return value
def linear(x, x1, y1, x2, y2):
return y1 + (((x - x1) / (x2 - x1)) * (y2 - y1))
def ramp(x, x1, y1, x2, y2):
if (y1 < y2):
return saturate(linear(x, x1, y1, x2, y2), y1, y2)
else:
return saturate(linear(x, x1, y1, x2, y2), y2, y1)