#include <matrix4d.h>
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 | SqrMat4 () |
constexpr | SqrMat4 (const V &v1_in, const V &v2_in, const V &v3_in, const V &v4_in) |
template<typename V2 > | |
constexpr | SqrMat4 (const SqrMat4< V2 > &m) |
template<typename V2 > | |
constexpr | SqrMat4 (const Mat3< V2 > &m) |
constexpr | SqrMat4 (ENUM_DONT_INITIALIZE v) |
constexpr void | SetIdentity () |
V & | operator[] (Int idx) |
const V & | operator[] (Int idx) const |
constexpr Mat3< Vec3< ValueType, 1 > > | GetMatrix3d () |
template<typename V2 > | |
constexpr SqrMat4< typename MultiplicativePromotion< V, typename V2::ValueType >::type > | operator* (const SqrMat4< V2 > &m2) const |
template<typename T , Int S> | |
constexpr Vec4< typename MultiplicativePromotion< ValueType, T >::type, 1 > | operator* (const Vec4< T, S > &v) const |
template<typename T , Int S> | |
constexpr Vec3< typename MultiplicativePromotion< ValueType, T >::type, 1 > | operator* (const Vec3< T, S > &v) const |
constexpr SqrMat4 | operator* (ValueTypeParam s) const |
constexpr SqrMat4 | operator/ (ValueTypeParam s) const |
constexpr SqrMat4 | operator+ (const SqrMat4 &m2) const |
constexpr SqrMat4 | operator- (const SqrMat4 &m2) const |
constexpr BoolType | operator== (const SqrMat4 &other) const |
constexpr BoolType | operator!= (const SqrMat4 &other) const |
constexpr ValueType | Det () const |
constexpr SqrMat4 | operator~ () const |
constexpr void | Normalize () |
constexpr SqrMat4 | GetNormalized () const |
constexpr SqrMat4 | GetTransposed () const |
constexpr SqrMat4 & | operator*= (const V &v) |
constexpr SqrMat4 & | operator*= (ValueTypeParam r) |
String | ToString (const FormatStatement *formatStatement=nullptr) const |
constexpr | MAXON_OPERATOR_HASH (SqrMat4, v1, v2, v3, v4) |
Public Attributes | |
V | v1 |
V | v2 |
V | v3 |
V | v4 |
Static Private Member Functions | |
static constexpr ValueType | Det3 (ValueType a1, ValueType a2, ValueType a3, ValueType b1, ValueType b2, ValueType b3, ValueType c1, ValueType c2, ValueType c3) |
Friends | |
constexpr friend SqrMat4 | operator* (ValueTypeParam s, const SqrMat4 &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 vector with the result matrix this is identical to first transforming with m2 and then with m1
|
constexpr |
Multiplies a 4d vector by a matrix.
|
constexpr |
Transforms a 3d vector 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 four axes.
|
constexpr |
Returns this matrix with all vectors normalized.
|
constexpr |
Returns the transposed matrix.
|
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. |
|
staticconstexprprivate |
|
friend |
Scales all matrix components by a scalar value.
V v1 |
The X axis.
V v2 |
The Y axis.
V v3 |
The Z axis.
V v4 |
The W axis.