#include <matrix2d.h>
General 2×2 matrix template consisting of two column vectors v1, v2.
Public Types | |
using | VectorStrideType = typename V::VectorStrideType |
using | ValueType = typename V::ValueType |
using | ValueTypeParam = typename ByValueParam< ValueType >::type |
using | BoolType = typename V::BoolType |
Public Member Functions | |
constexpr | SqrMat2 () |
constexpr | SqrMat2 (const V &v1_in, const V &v2_in) |
template<typename V2 > | |
constexpr | SqrMat2 (const SqrMat2< V2 > &m) |
constexpr | SqrMat2 (ENUM_DONT_INITIALIZE v) |
constexpr void | SetIdentity () |
V & | operator[] (Int idx) |
const V & | operator[] (Int idx) const |
template<typename V2 > | |
constexpr SqrMat2< typename MultiplicativePromotion< V, typename V2::ValueType >::type > | operator* (const SqrMat2< V2 > &m2) const |
template<typename T , Int S> | |
constexpr Vec2< typename MultiplicativePromotion< ValueType, T >::type, 1 > | operator* (const Vec2< T, S > &v) const |
constexpr SqrMat2 | operator* (ValueTypeParam s) const |
constexpr SqrMat2 | operator/ (ValueTypeParam s) const |
constexpr SqrMat2 | operator+ (const SqrMat2 &m2) const |
constexpr SqrMat2 | operator- (const SqrMat2 &m2) const |
constexpr BoolType | operator== (const SqrMat2 &other) const |
constexpr BoolType | operator!= (const SqrMat2 &other) const |
constexpr ValueType | Det () const |
constexpr SqrMat2 | operator~ () const |
constexpr void | Normalize () |
constexpr SqrMat2 | GetNormalized () const |
constexpr SqrMat2 & | operator*= (const V &v) |
constexpr SqrMat2 & | operator*= (ValueTypeParam r) |
String | ToString (const FormatStatement *formatStatement=nullptr) const |
constexpr | MAXON_OPERATOR_HASH (SqrMat2, v1, v2) |
Public Attributes | |
V | v1 |
V | v2 |
Friends | |
constexpr friend SqrMat2 | operator* (ValueTypeParam s, const SqrMat2 &m) |
using VectorStrideType = typename V::VectorStrideType |
using ValueType = typename V::ValueType |
using ValueTypeParam = typename ByValueParam<ValueType>::type |
using BoolType = typename V::BoolType |
The type returned by comparisons. If the template argument for V is a vector of SIMD components, this will be a SIMD type, too, which contains the per-element results.
|
constexpr |
Default constructor, creates an identity matrix.
|
constexpr |
Initializes matrix from individual components.
Initializes matrix from another matrix.
|
explicitconstexpr |
Skips initialization of matrix (for better speed)
|
constexpr |
Sets this matrix to an identity matrix.
V& operator[] | ( | Int | idx | ) |
const V& operator[] | ( | Int | idx | ) | const |
|
constexpr |
Multiplies two matrices. The rule is m1 AFTER m2 If you transform a point with the result matrix this is identical to first transforming with m2 and then with m1
|
constexpr |
Transforms a point by a matrix.
|
constexpr |
Scales all matrix components by a scalar value.
|
constexpr |
Divides all matrix components by a scalar value. If s is 0.0 an identity matrix will be returned.
Adds two matrices component-wise.
Subtracts two matrices component-wise.
Equality operator.
[in] | other | Comparison matrix. |
Inequality operator.
[in] | other | Comparison matrix. |
|
constexpr |
Computes the determinant of this matrix.
|
constexpr |
Calculates the inverse matrix If no inverse can be calculated the result is the Identity matrix
|
constexpr |
Normalizes the length of all three axes.
|
constexpr |
Returns this matrix with all axis vectors normalized.
|
constexpr |
Scales each axis by the respective components of the passed vector.
|
constexpr |
Scales each axis by the scalar.
String ToString | ( | const FormatStatement * | formatStatement = nullptr | ) | const |
Returns a readable string of the content.
[in] | formatStatement | Nullptr or additional formatting instruction. See also Formatting Floating point values. |
|
friend |
Scales all matrix components by a scalar value.
V v1 |
The X axis.
V v2 |
The Y axis.