Implement vec::transpose, vec::operator==, vec::operator!= and vec
string output
This commit is contained in:
parent
a72caf6b46
commit
982752404e
@ -122,7 +122,30 @@ public:
|
||||
return r;
|
||||
}
|
||||
|
||||
mat<1, N> transpose() const noexcept;
|
||||
mat<1, N> transpose() const noexcept {
|
||||
mat<1, N> r;
|
||||
|
||||
#pragma GCC unroll 4
|
||||
for (size_t i = 0; i < N; ++i) {
|
||||
r.e[0][i] = e[i];
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
bool operator==(const vec<N>& rhs) noexcept {
|
||||
#pragma GCC unroll 4
|
||||
for (size_t i = 0; i < N; ++i) {
|
||||
if (e[i] != rhs.e[i]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool operator!=(const vec<N>& rhs) noexcept {
|
||||
return !(*this == rhs);
|
||||
}
|
||||
};
|
||||
|
||||
class vec2 : public vec<2> {
|
||||
@ -170,5 +193,22 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
template <typename STREAM_TYPE, size_t N>
|
||||
STREAM_TYPE& operator<<(STREAM_TYPE& lhs, const vec<N>& rhs) {
|
||||
lhs << '<';
|
||||
|
||||
for (size_t i = 0; i < N; ++i) {
|
||||
lhs << rhs.e[i];
|
||||
|
||||
if (i < N - 1) {
|
||||
lhs << ", ";
|
||||
}
|
||||
}
|
||||
|
||||
lhs << '>';
|
||||
|
||||
return lhs;
|
||||
}
|
||||
|
||||
} // namespace mtl
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user