12 #include <Utility/String/NRE_String.hpp> 13 #include <Utility/Interfaces/Stringable/NRE_Stringable.hpp> 16 #include "../../NRE_Math.hpp" 17 #include "../../NRE_Unit.hpp" 19 #include "../../Curve/Bezier/3D/NRE_BezierCurve3D.hpp" 42 class Matrix3x3 :
public Utility::Stringable<Matrix3x3<T>> {
64 template <
class A,
class B,
class C,
65 class D,
class E,
class F,
66 class G,
class H,
class I>
67 constexpr
Matrix3x3(A a, B b, C c, D d, E e, F f, G g, H h, I i);
80 template <
class K,
class L,
class N>
88 constexpr
Matrix3x3(Matrix3x3
const& m) =
default;
95 constexpr
Matrix3x3(Matrix3x3 && m) =
default;
200 constexpr Matrix3x3&
inverse();
220 template <
class K,
typename = UseIfArithmetic<K>>
223 tmp[0][0] = static_cast <T> (u);
231 template <
class K,
typename = UseIfArithmetic<K>>
234 tmp[1][1] = static_cast <T> (u);
242 template <
class K,
typename = UseIfArithmetic<K>>
245 tmp[0][0] = static_cast <T> (1.0 / static_cast <
long double> (u));
246 tmp[1][1] = static_cast <T> (u);
254 template <
class K,
typename = UseIfArithmetic<K>>
257 tmp[0][0] = static_cast <T> (u);
258 tmp[1][1] = static_cast <T> (1.0 / static_cast <
long double> (u));
266 template <
class K,
typename = UseIfArithmetic<K>>
269 tmp[0][1] = static_cast <T> (u);
277 template <
class K,
typename = UseIfArithmetic<K>>
280 tmp[1][0] = static_cast <T> (u);
288 constexpr Matrix3x3&
rotate(Angle angle);
292 constexpr
const T*
value()
const;
316 constexpr Matrix3x3&
operator =(Matrix3x3
const& m) =
default;
322 constexpr Matrix3x3&
operator =(Matrix3x3 && m) =
default;
475 #include "NRE_Matrix3x3.tpp" constexpr Vector3D< T > const & getL2() const
A cartesian 2D vector.
Definition: NRE_Matrix3x3.hpp:32
constexpr Vector3D< T > const & getL1() const
constexpr Matrix3x3 & shearY(K u)
Definition: NRE_Matrix3x3.hpp:278
constexpr Matrix3x3 & operator-=(Matrix3x3< K > const &m)
Utility::String toString() const
constexpr long double getDeterminant() const
constexpr bool operator!=(Matrix3x3< K > const &m) const
constexpr Vector3D< T > & operator[](std::size_t index)
4x4 generic matrix
Definition: NRE_Matrix3x3.hpp:35
3x3 generic matrix
Definition: NRE_Matrix3x3.hpp:42
Represent a 2D homogeneous Bezier curves with a set of control points.
Definition: NRE_BezierCurve3D.hpp:32
constexpr void setC3(Vector3D< K > const &c3)
constexpr Matrix3x3 & stretchX(K u)
Definition: NRE_Matrix3x3.hpp:221
constexpr Matrix3x3 & scale(Vector2D< K > const &u)
constexpr Matrix3x3 & inverse()
constexpr void setL3(Vector3D< K > const &l3)
static constexpr Matrix3x3 IDENTITY
Definition: NRE_Matrix3x3.hpp:470
constexpr void setC2(Vector3D< K > const &c2)
constexpr Matrix3x3< std::common_type_t< T, K > > operator-(Matrix3x3< K > const &m) const
constexpr Matrix3x3 & operator*=(K k)
constexpr Matrix3x3 & operator=(Matrix3x3 const &m)=default
constexpr UAcceleration G
Definition: NRE_Unit.hpp:321
constexpr void setC1(Vector3D< K > const &c1)
A cartesian 3D vector, 2D homogeneous.
Definition: NRE_Matrix3x3.hpp:33
constexpr Vector3D< T > getC2() const
A 3D homogeneous segment.
Definition: NRE_Matrix3x3.hpp:34
constexpr Matrix3x3 & stretchY(K u)
Definition: NRE_Matrix3x3.hpp:232
constexpr Matrix3x3()=default
constexpr const T * value() const
The NearlyRealEngine's global namespace.
constexpr Matrix3x3 & operator/=(K k)
constexpr Matrix3x3 & rotate(Angle angle)
constexpr void setL1(Vector3D< K > const &l1)
constexpr Matrix3x3< std::common_type_t< T, K > > operator+(Matrix3x3< K > const &m) const
constexpr bool operator==(Matrix3x3< K > const &m) const
constexpr Matrix3x3 & transpose()
constexpr Matrix3x3< std::common_type_t< T, K > > operator*(K k) const
constexpr Vector3D< T > const & getL3() const
constexpr Matrix3x3 & setIdentity()
constexpr Matrix3x3< std::common_type_t< T, K > > operator/(K k) const
constexpr Matrix3x3 & squeezeY(K u)
Definition: NRE_Matrix3x3.hpp:255
constexpr Vector3D< T > getC3() const
constexpr void setL2(Vector3D< K > const &l2)
constexpr Matrix3x3 & operator+=(Matrix3x3< K > const &m)
constexpr Matrix3x3 & translate(Vector2D< K > const &u)
constexpr Vector3D< T > getC1() const
constexpr Matrix3x3 & squeezeX(K u)
Definition: NRE_Matrix3x3.hpp:243
constexpr Matrix3x3 & shearX(K u)
Definition: NRE_Matrix3x3.hpp:267