sead
Loading...
Searching...
No Matches
seadVectorCalcCommon.h
Go to the documentation of this file.
1#ifndef SEAD_VECTORCALCCOMMON_H_
2#define SEAD_VECTORCALCCOMMON_H_
3
4#include <basis/seadTypes.h>
5#include <math/seadMathPolicies.h>
6
7namespace sead {
8
9template <typename T>
11{
12public:
13 typedef typename Policies<T>::Vec2Base Base;
14
15public:
16 static void add(Base& o, const Base& a, const Base& b);
17 static void sub(Base& o, const Base& a, const Base& b);
18 static void div(Base& o, const Base& a, const Base& b);
19
20 static bool isEqual(const Base& a, const Base& b);
21
22 static T dot(const Base& a, const Base& b);
23
24 static T squaredLength(const Base& v);
25 static T length(const Base& v);
26
27 static T squaredDistance(const Base& v, const Base& t);
28 static T distance(const Base& v, const Base& t);
29
30 static void lerp(Base& o, const Base& a, const Base& b, f32 ratio);
31
32 static void multScalar(Base& o, const Base& v, T t);
33 static void divScalar(Base& o, const Base& v, T t);
34 static void neg(Base& o, const Base& v);
35 static T normalize(Base& v);
36 static T setNormalize(Base& o, const Base& v);
37
38 static constexpr void set(Base& o, const Base& v);
39 static constexpr void set(Base& v, T x, T y);
40};
41
42template <typename T>
44{
45public:
46 typedef typename Policies<T>::Vec3Base Base;
47 typedef typename Policies<T>::Mtx33Base Mtx33;
48 typedef typename Policies<T>::Mtx34Base Mtx34;
49
50public:
51 static void add(Base& o, const Base& a, const Base& b);
52 static void sub(Base& o, const Base& a, const Base& b);
53
54 static bool isEqual(const Base& a, const Base& b);
55
56 static void cross(Base& o, const Base& a, const Base& b);
57 static T dot(const Base& a, const Base& b);
58
59 static T squaredLength(const Base& v);
60 static T length(const Base& v);
61
62 static T squaredDistance(const Base& v, const Base& t);
63 static T distance(const Base& v, const Base& t);
64
65 static void lerp(Base& o, const Base& a, const Base& b, f32 ratio);
66
67 static void mul(Base& o, const Mtx34& m, const Base& v);
68 static void rotate(Base& o, const Mtx33& m, const Base& v);
69 static void rotate(Base& o, const Mtx34& m, const Base& v);
70 static void multScalar(Base& o, const Base& v, T t);
71 static void multScalarAdd(Base& o, T t, const Base& a, const Base& b);
72 static void divScalar(Base& o, const Base& v, T t);
73 static void neg(Base& o, const Base& v);
74 static T normalize(Base& v);
75 static T setNormalize(Base& o, const Base& v);
76
77 static constexpr void set(Base& o, const Base& v);
78 static constexpr void set(Base& v, T x, T y, T z);
79};
80
81template <typename T>
83{
84public:
85 typedef typename Policies<T>::Vec4Base Base;
86
87public:
88 static void add(Base& o, const Base& a, const Base& b);
89 static void sub(Base& o, const Base& a, const Base& b);
90
91 static bool isEqual(const Base& a, const Base& b);
92
93 static T dot(const Base& a, const Base& b);
94
95 static T squaredLength(const Base& v);
96 static T length(const Base& v);
97
98 static T squaredDistance(const Base& v, const Base& t);
99 static T distance(const Base& v, const Base& t);
100
101 static void lerp(Base& o, const Base& a, const Base& b, f32 ratio);
102
103 static void multScalar(Base& o, const Base& v, T t);
104 static void divScalar(Base& o, const Base& v, T t);
105 static void neg(Base& o, const Base& v);
106 static T normalize(Base& v);
107 static T setNormalize(Base& o, const Base& v);
108
109 static constexpr void set(Base& o, const Base& v);
110 static constexpr void set(Base& v, T x, T y, T z, T w);
111};
112
113} // namespace sead
114
115#ifdef __cplusplus
116
117#include <math/seadVectorCalcCommon.hpp>
118
119#endif // __cplusplus
120
121#endif // SEAD_VECTORCALCCOMMON_H_
Definition seadMathPolicies.h:8
Definition seadVectorCalcCommon.h:11
static void multScalar(Base &o, const Base &v, T t)
Definition seadVectorCalcCommon.hpp:105
static void divScalar(Base &o, const Base &v, T t)
Definition seadVectorCalcCommon.hpp:113
static T squaredDistance(const Base &v, const Base &t)
Definition seadVectorCalcCommon.hpp:81
static void add(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:28
static void sub(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:36
static void lerp(Base &o, const Base &a, const Base &b, f32 ratio)
Definition seadVectorCalcCommon.hpp:97
Policies< T >::Vec2Base Base
Definition seadVectorCalcCommon.h:13
static T normalize(Base &v)
Definition seadVectorCalcCommon.hpp:128
static T length(const Base &v)
Definition seadVectorCalcCommon.hpp:74
static constexpr void set(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:157
static T distance(const Base &v, const Base &t)
Definition seadVectorCalcCommon.hpp:90
static bool isEqual(const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:52
static T squaredLength(const Base &v)
Definition seadVectorCalcCommon.hpp:67
static void neg(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:121
static constexpr void set(Base &v, T x, T y)
Definition seadVectorCalcCommon.hpp:165
static T dot(const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:60
static T setNormalize(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:142
static void div(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:44
Definition seadVectorCalcCommon.h:44
static T squaredDistance(const Base &v, const Base &t)
Definition seadVectorCalcCommon.hpp:308
Policies< T >::Mtx34Base Mtx34
Definition seadVectorCalcCommon.h:48
static void cross(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:224
static T distance(const Base &v, const Base &t)
Definition seadVectorCalcCommon.hpp:329
static constexpr void set(Base &v, T x, T y, T z)
Definition seadVectorCalcCommon.hpp:472
static void rotate(Base &o, const Mtx34 &m, const Base &v)
static T squaredLength(const Base &v)
Definition seadVectorCalcCommon.hpp:272
static void divScalar(Base &o, const Base &v, T t)
Definition seadVectorCalcCommon.hpp:416
Policies< T >::Mtx33Base Mtx33
Definition seadVectorCalcCommon.h:47
static T dot(const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:250
static void multScalarAdd(Base &o, T t, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:395
static T normalize(Base &v)
Definition seadVectorCalcCommon.hpp:432
static void multScalar(Base &o, const Base &v, T t)
Definition seadVectorCalcCommon.hpp:374
static void sub(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:194
Policies< T >::Vec3Base Base
Definition seadVectorCalcCommon.h:46
static bool isEqual(const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:215
static void neg(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:424
static void add(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:173
static constexpr void set(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:463
static T setNormalize(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:447
static T length(const Base &v)
Definition seadVectorCalcCommon.hpp:290
static void rotate(Base &o, const Mtx33 &m, const Base &v)
static void mul(Base &o, const Mtx34 &m, const Base &v)
static void lerp(Base &o, const Base &a, const Base &b, f32 ratio)
Definition seadVectorCalcCommon.hpp:347
Definition seadVectorCalcCommon.h:83
static void neg(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:578
static T distance(const Base &v, const Base &t)
Definition seadVectorCalcCommon.hpp:543
static T dot(const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:511
static T normalize(Base &v)
Definition seadVectorCalcCommon.hpp:587
static T squaredDistance(const Base &v, const Base &t)
Definition seadVectorCalcCommon.hpp:532
static void divScalar(Base &o, const Base &v, T t)
Definition seadVectorCalcCommon.hpp:570
static T setNormalize(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:603
static void sub(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:491
static void multScalar(Base &o, const Base &v, T t)
Definition seadVectorCalcCommon.hpp:560
static void lerp(Base &o, const Base &a, const Base &b, f32 ratio)
Definition seadVectorCalcCommon.hpp:550
static void add(Base &o, const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:481
static T length(const Base &v)
Definition seadVectorCalcCommon.hpp:525
static bool isEqual(const Base &a, const Base &b)
Definition seadVectorCalcCommon.hpp:501
static constexpr void set(Base &v, T x, T y, T z, T w)
Definition seadVectorCalcCommon.hpp:630
Policies< T >::Vec4Base Base
Definition seadVectorCalcCommon.h:85
static T squaredLength(const Base &v)
Definition seadVectorCalcCommon.hpp:518
static constexpr void set(Base &o, const Base &v)
Definition seadVectorCalcCommon.hpp:620
Definition seadAssert.h:44