Add and expose Basis/Transform2D/3D division by float operator
This commit is contained in:
parent
c28a091a09
commit
c77ae051d5
9 changed files with 92 additions and 0 deletions
|
|
@ -136,6 +136,8 @@ struct _NO_DISCARD_ Basis {
|
|||
_FORCE_INLINE_ Basis operator-(const Basis &p_matrix) const;
|
||||
_FORCE_INLINE_ void operator*=(const real_t p_val);
|
||||
_FORCE_INLINE_ Basis operator*(const real_t p_val) const;
|
||||
_FORCE_INLINE_ void operator/=(const real_t p_val);
|
||||
_FORCE_INLINE_ Basis operator/(const real_t p_val) const;
|
||||
|
||||
bool is_orthogonal() const;
|
||||
bool is_orthonormal() const;
|
||||
|
|
@ -289,6 +291,18 @@ _FORCE_INLINE_ Basis Basis::operator*(const real_t p_val) const {
|
|||
return ret;
|
||||
}
|
||||
|
||||
_FORCE_INLINE_ void Basis::operator/=(const real_t p_val) {
|
||||
rows[0] /= p_val;
|
||||
rows[1] /= p_val;
|
||||
rows[2] /= p_val;
|
||||
}
|
||||
|
||||
_FORCE_INLINE_ Basis Basis::operator/(const real_t p_val) const {
|
||||
Basis ret(*this);
|
||||
ret /= p_val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
Vector3 Basis::xform(const Vector3 &p_vector) const {
|
||||
return Vector3(
|
||||
rows[0].dot(p_vector),
|
||||
|
|
|
|||
|
|
@ -295,6 +295,18 @@ Transform2D Transform2D::operator*(const real_t p_val) const {
|
|||
return ret;
|
||||
}
|
||||
|
||||
void Transform2D::operator/=(const real_t p_val) {
|
||||
columns[0] /= p_val;
|
||||
columns[1] /= p_val;
|
||||
columns[2] /= p_val;
|
||||
}
|
||||
|
||||
Transform2D Transform2D::operator/(const real_t p_val) const {
|
||||
Transform2D ret(*this);
|
||||
ret /= p_val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
Transform2D::operator String() const {
|
||||
return "[X: " + columns[0].operator String() +
|
||||
", Y: " + columns[1].operator String() +
|
||||
|
|
|
|||
|
|
@ -109,6 +109,8 @@ struct _NO_DISCARD_ Transform2D {
|
|||
Transform2D operator*(const Transform2D &p_transform) const;
|
||||
void operator*=(const real_t p_val);
|
||||
Transform2D operator*(const real_t p_val) const;
|
||||
void operator/=(const real_t p_val);
|
||||
Transform2D operator/(const real_t p_val) const;
|
||||
|
||||
Transform2D interpolate_with(const Transform2D &p_transform, const real_t p_c) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -208,6 +208,17 @@ Transform3D Transform3D::operator*(const real_t p_val) const {
|
|||
return ret;
|
||||
}
|
||||
|
||||
void Transform3D::operator/=(const real_t p_val) {
|
||||
basis /= p_val;
|
||||
origin /= p_val;
|
||||
}
|
||||
|
||||
Transform3D Transform3D::operator/(const real_t p_val) const {
|
||||
Transform3D ret(*this);
|
||||
ret /= p_val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
Transform3D::operator String() const {
|
||||
return "[X: " + basis.get_column(0).operator String() +
|
||||
", Y: " + basis.get_column(1).operator String() +
|
||||
|
|
|
|||
|
|
@ -104,6 +104,8 @@ struct _NO_DISCARD_ Transform3D {
|
|||
Transform3D operator*(const Transform3D &p_transform) const;
|
||||
void operator*=(const real_t p_val);
|
||||
Transform3D operator*(const real_t p_val) const;
|
||||
void operator/=(const real_t p_val);
|
||||
Transform3D operator/(const real_t p_val) const;
|
||||
|
||||
Transform3D interpolate_with(const Transform3D &p_transform, real_t p_c) const;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue