11
11
*/
12
12
// ----------------------------------------------------------------------------
13
13
14
- #ifndef MODM_VECTOR3_HPP
15
- #define MODM_VECTOR3_HPP
14
+ #pragma once
16
15
17
16
#include < stdint.h>
18
17
#include " vector.hpp"
@@ -39,33 +38,33 @@ namespace modm
39
38
class Vector <T, 3 >
40
39
{
41
40
public:
42
- Vector ();
41
+ constexpr Vector () = default ;
43
42
44
43
template <typename U>
45
- explicit Vector (const U *array);
44
+ constexpr explicit Vector (const U *array);
46
45
47
- explicit Vector (T inVal);
48
- Vector (T inX, T inY, T inZ);
46
+ constexpr explicit Vector (T inVal);
47
+ constexpr Vector (T inX, T inY, T inZ);
49
48
50
- Vector (const Vector<T, 1 > &inX, const T &inY, const T &inZ);
51
- Vector (const T &inX, const Vector<T, 1 > &inY, const T &inZ);
52
- Vector (const T &inX, const T &inY, const Vector<T, 1 > &inZ);
49
+ constexpr Vector (const Vector<T, 1 > &inX, const T &inY, const T &inZ);
50
+ constexpr Vector (const T &inX, const Vector<T, 1 > &inY, const T &inZ);
51
+ constexpr Vector (const T &inX, const T &inY, const Vector<T, 1 > &inZ);
53
52
54
- Vector (const Vector<T, 1 > &inX, const T &inY, const Vector<T, 1 > &inZ);
55
- Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const T &inZ);
56
- Vector (const T &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
53
+ constexpr Vector (const Vector<T, 1 > &inX, const T &inY, const Vector<T, 1 > &inZ);
54
+ constexpr Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const T &inZ);
55
+ constexpr Vector (const T &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
57
56
58
- Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
57
+ constexpr Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
59
58
60
- Vector (const Vector<T,2 > &inXY, const T &inZ);
61
- Vector (const T &inX, const Vector<T, 2 > &inYZ);
59
+ constexpr Vector (const Vector<T,2 > &inXY, const T &inZ);
60
+ constexpr Vector (const T &inX, const Vector<T, 2 > &inYZ);
62
61
63
- Vector (const Vector<T, 2 > &inXY, const Vector<T, 1 > &inZ);
64
- Vector (const Vector<T, 1 > &inX, const Vector<T, 2 > &inYZ);
62
+ constexpr Vector (const Vector<T, 2 > &inXY, const Vector<T, 1 > &inZ);
63
+ constexpr Vector (const Vector<T, 1 > &inX, const Vector<T, 2 > &inYZ);
65
64
66
65
template <typename U>
67
- Vector (const Vector<U, 3 > &rhs);
68
- Vector (const Matrix<T, 3 , 1 > &rhs);
66
+ constexpr Vector (const Vector<U, 3 > &rhs);
67
+ constexpr Vector (const Matrix<T, 3 , 1 > &rhs);
69
68
70
69
71
70
inline void
@@ -190,9 +189,7 @@ namespace modm
190
189
#endif
191
190
192
191
public:
193
- T x;
194
- T y;
195
- T z;
192
+ T x = 0 , y = 0 , z = 0 ;
196
193
};
197
194
198
195
template <typename U, typename T>
@@ -213,6 +210,4 @@ namespace modm
213
210
typedef Vector<uint16_t , 3 > Vector3u;
214
211
}
215
212
216
- #include " vector3_impl.hpp"
217
-
218
- #endif // MODM_VECTOR3_HPP
213
+ #include " vector3_impl.hpp"
0 commit comments