acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
clip.h
1#pragma once
2
3
4template < typename T1, typename T2 >
5inline bool clip_convert(T1& t1, const T2& t2);
6
7
8template < typename T1, typename T2 >
9inline T1 clip_convert(const T2& t2);
10
11
12template < typename T1, typename T2 >
13inline bool clip_convert_add(T1& t1, const T2& t2);
14
15
16template < typename T1, typename T2 >
17inline bool clip_convert_difference(T1& t1, const T2& t2);
18
19
20template < typename T1, typename T2 >
21inline bool clip_convert_multiply(T1& t1, const T2& t2);
22
23
24// division by zero protection isn't this function's current responsability and maybe never should be
25template < typename T1, typename T2 >
26inline bool clip_convert_divide(T1& t1, const T2& t2);
27
28
29template < typename TMIN, typename TMAX, typename T >
30inline T& clip(T & t, const TMIN& minimum, const TMAX& maximum);
31
32
33template < typename TMIN, typename TMAX, typename T >
34inline T & clip(T & t, const TMIN & minimum, const TMAX & maximum)
35{
36 if (t < minimum)
37 {
38
39 t = (T)minimum;
40
41 }
42 else if (t > maximum)
43 {
44
45 t = (T)maximum;
46
47 }
48
49 return t;
50
51}
52
53
54