Clutter Engine 0.0.1
Loading...
Searching...
No Matches
spline.inl
1
2
3namespace glm
4{
5 template<typename genType>
6 GLM_FUNC_QUALIFIER genType catmullRom
7 (
8 genType const& v1,
9 genType const& v2,
10 genType const& v3,
11 genType const& v4,
12 typename genType::value_type const& s
13 )
14 {
15 typename genType::value_type s2 = pow2(s);
16 typename genType::value_type s3 = pow3(s);
17
18 typename genType::value_type f1 = -s3 + typename genType::value_type(2) * s2 - s;
19 typename genType::value_type f2 = typename genType::value_type(3) * s3 - typename genType::value_type(5) * s2 + typename genType::value_type(2);
20 typename genType::value_type f3 = typename genType::value_type(-3) * s3 + typename genType::value_type(4) * s2 + s;
21 typename genType::value_type f4 = s3 - s2;
22
23 return (f1 * v1 + f2 * v2 + f3 * v3 + f4 * v4) / typename genType::value_type(2);
24
25 }
26
27 template<typename genType>
28 GLM_FUNC_QUALIFIER genType hermite
29 (
30 genType const& v1,
31 genType const& t1,
32 genType const& v2,
33 genType const& t2,
34 typename genType::value_type const& s
35 )
36 {
37 typename genType::value_type s2 = pow2(s);
38 typename genType::value_type s3 = pow3(s);
39
40 typename genType::value_type f1 = typename genType::value_type(2) * s3 - typename genType::value_type(3) * s2 + typename genType::value_type(1);
41 typename genType::value_type f2 = typename genType::value_type(-2) * s3 + typename genType::value_type(3) * s2;
42 typename genType::value_type f3 = s3 - typename genType::value_type(2) * s2 + s;
43 typename genType::value_type f4 = s3 - s2;
44
45 return f1 * v1 + f2 * v2 + f3 * t1 + f4 * t2;
46 }
47
48 template<typename genType>
49 GLM_FUNC_QUALIFIER genType cubic
50 (
51 genType const& v1,
52 genType const& v2,
53 genType const& v3,
54 genType const& v4,
55 typename genType::value_type const& s
56 )
57 {
58 return ((v1 * s + v2) * s + v3) * s + v4;
59 }
60}//namespace glm
GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Definition spline.inl:50
GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Definition spline.inl:7
GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
Definition spline.inl:29
Core features
Definition common.hpp:21