MATH: unary operator+

This commit is contained in:
BlackMATov
2020-02-13 13:06:30 +07:00
parent 76b6ce1906
commit a4ae193ee3
7 changed files with 62 additions and 7 deletions

View File

@@ -179,9 +179,16 @@ namespace e2d
}
//
// (-) mat2
// (+,-) mat2
//
template < typename T >
mat2<T> operator+(const mat2<T>& m) noexcept {
return {
+m.rows[0],
+m.rows[1]};
}
template < typename T >
mat2<T> operator-(const mat2<T>& m) noexcept {
return {

View File

@@ -193,9 +193,17 @@ namespace e2d
}
//
// (-) mat3
// (+,-) mat3
//
template < typename T >
mat3<T> operator+(const mat3<T>& m) noexcept {
return {
+m.rows[0],
+m.rows[1],
+m.rows[2]};
}
template < typename T >
mat3<T> operator-(const mat3<T>& m) noexcept {
return {

View File

@@ -210,9 +210,18 @@ namespace e2d
}
//
// (-) mat4
// (+,-) mat4
//
template < typename T >
mat4<T> operator+(const mat4<T>& m) noexcept {
return {
+m.rows[0],
+m.rows[1],
+m.rows[2],
+m.rows[3]};
}
template < typename T >
mat4<T> operator-(const mat4<T>& m) noexcept {
return {

View File

@@ -167,9 +167,16 @@ namespace e2d
}
//
// (-) unit
// (+,-) unit
//
template < typename T, typename Tag >
unit<T, Tag> operator+(const unit<T, Tag>& u) noexcept {
return {
+u.value,
Tag{}};
}
template < typename T, typename Tag >
unit<T, Tag> operator-(const unit<T, Tag>& u) noexcept {
return {

View File

@@ -260,9 +260,16 @@ namespace e2d
}
//
// (-) vec2
// (+,-) vec2
//
template < typename T >
vec2<T> operator+(const vec2<T>& v) noexcept {
return {
+v.x,
+v.y};
}
template < typename T >
vec2<T> operator-(const vec2<T>& v) noexcept {
return {

View File

@@ -283,9 +283,17 @@ namespace e2d
}
//
// (-) vec3
// (+,-) vec3
//
template < typename T >
vec3<T> operator+(const vec3<T>& v) noexcept {
return {
+v.x,
+v.y,
+v.z};
}
template < typename T >
vec3<T> operator-(const vec3<T>& v) noexcept {
return {

View File

@@ -306,9 +306,18 @@ namespace e2d
}
//
// (-) vec4
// (+,-) vec4
//
template < typename T >
vec4<T> operator+(const vec4<T>& v) noexcept {
return {
+v.x,
+v.y,
+v.z,
+v.w};
}
template < typename T >
vec4<T> operator-(const vec4<T>& v) noexcept {
return {