-
首页
-
C4D R23.110 C++ SDK
#include <vector.h>
详细描述
template<typename V>
struct maxon::Mat3< V >
Matrix.
The matrix has a dimension of 4×4 and consists of four rows and four columns. The first row is always "1, 0, 0, 0" and not stored in the class, which means that there are 12 actual numbers used. These numbers are grouped into four vectors, one for the remaining numbers in each column. The four vectors are called off, v1, v2 and v3, together these four vectors can be used to represent the coordinate system. A coordinate system consists of three axes, one for each coordinate (X, Y and Z). The system also has a base position, from which the three axes originate. This base position is stored in off, and the three axis vectors are stored in v1, v2 and v3 respectively. For a rectangular, normalized matrix v3 equals the cross product of v1 and v2 (v1v2). C4D by default uses a left-handed coordinate system (see define COORDINATESYSTEM_LEFT_HANDED).
公共成员函数
|
constexpr
|
Mat3
()
|
constexpr
|
Mat3
(const V &off_in, const V &v1_in, const V &v2_in, const V &v3_in)
|
constexpr
|
Mat3
(const V &off_in, const
SqrMat3
< V > &mat_in)
|
constexpr
MAXON_IMPLICIT
|
Mat3
(const
SqrMat3
< V > &mat_in)
|
template<typename V2 >
|
constexpr
|
Mat3
(const
Mat3
< V2 > &m)
|
constexpr
|
Mat3
(
ENUM_DONT_INITIALIZE
v)
|
template<typename V2 >
|
constexpr
|
Mat3
(const
Mat2
< V2 > &m)
|
constexpr void
|
SetIdentity
()
|
template<typename V2 >
|
constexpr
Mat3
< typename
MultiplicativePromotion
< V, typename V2::ValueType >::type >
|
operator*
(const
Mat3
< V2 > &m2) const
|
template<typename V2 >
|
constexpr
Mat3
< typename
MultiplicativePromotion
< V, typename V2::ValueType >::type >
|
operator*
(const
SqrMat3
< V2 > &m2) const
|
template<typename T , Int S>
|
constexpr
Vec3
< typename
MultiplicativePromotion
<
ValueType
, T >::type, 1 >
|
operator*
(const
Vec3
< T, S > &v) const
|
constexpr
Mat3
|
operator*
(
ValueTypeParam
s) const
|
constexpr
Mat3
|
operator/
(
ValueTypeParam
s) const
|
constexpr
BoolType
|
operator==
(const
Mat3
&other) const
|
constexpr
BoolType
|
operator!=
(const
Mat3
&other) const
|
constexpr
Mat3
|
operator~
() const
|
constexpr
Mat3
|
GetNormalized
() const
|
String
|
ToString
(const
FormatStatement
*formatStatement=nullptr) const
|
constexpr
HashInt
|
GetHashCode
() const
|
Member Typedef Documentation
◆
ValueType
◆
ValueTypeParam
◆
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.
构造函数 & 析构函数文档编制
◆
Mat3()
[1/7]
Default constructor, creates an identity matrix.
◆
Mat3()
[2/7]
constexpr
Mat3
|
(
|
const V &
|
off_in
,
|
|
|
const V &
|
v1_in
,
|
|
|
const V &
|
v2_in
,
|
|
|
const V &
|
v3_in
|
|
)
|
|
|
|
constexpr
|
Initializes matrix from individual components.
◆
Mat3()
[3/7]
constexpr
Mat3
|
(
|
const V &
|
off_in
,
|
|
|
const
SqrMat3
< V > &
|
mat_in
|
|
)
|
|
|
|
constexpr
|
Initializes matrix from individual components.
◆
Mat3()
[4/7]
Initializes matrix from square matrix. The translation part is initialized to zero.
◆
Mat3()
[5/7]
constexpr
Mat3
|
(
|
const
Mat3
< V2 > &
|
m
|
)
|
|
|
explicit
constexpr
|
Initializes matrix from another matrix.
◆
Mat3()
[6/7]
Skips initialization of matrix (for better speed)
◆
Mat3()
[7/7]
constexpr
Mat3
|
(
|
const
Mat2
< V2 > &
|
m
|
)
|
|
|
explicit
constexpr
|
Initializes matrix from 2d matrix. v3 is assigned Cross(v1, v2).
GetNormalized()
成员函数文档编制
◆
SetIdentity()
constexpr void SetIdentity
|
(
|
|
)
|
|
|
constexpr
|
Sets this matrix to an identity matrix.
◆
operator*()
[1/4]
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
◆
operator*()
[2/4]
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
◆
operator*()
[3/4]
Transforms a point by a matrix.
◆
operator*()
[4/4]
Scales all matrix components by a scalar value.
◆
operator/()
Divides all matrix components by a scalar value. If s is 0.0 an identity matrix will be returned.
◆
operator==()
constexpr
BoolType
operator==
|
(
|
const
Mat3
< V > &
|
other
|
)
|
const
|
|
constexpr
|
Equality operator.
-
参数
-
[in]
|
other
|
Comparison matrix.
|
-
返回
-
True if this and other are equal, otherwise false.
◆
operator!=()
constexpr
BoolType
operator!=
|
(
|
const
Mat3
< V > &
|
other
|
)
|
const
|
|
constexpr
|
Inequality operator.
-
参数
-
[in]
|
other
|
Comparison matrix.
|
-
返回
-
False if this and other are equal, otherwise true.
◆
operator~()
constexpr
Mat3
operator~
|
(
|
|
)
|
const
|
|
constexpr
|
Calculates the inverse matrix If no inverse can be calculated the result is the Identity matrix
◆
GetNormalized()
constexpr
Mat3
GetNormalized
|
(
|
|
)
|
const
|
|
constexpr
|
Returns this matrix with all axis vectors normalized.
◆
ToString()
Returns a readable string of the content.
-
参数
-
-
返回
-
The converted result.
◆
GetHashCode()
constexpr
HashInt
GetHashCode
|
(
|
|
)
|
const
|
|
constexpr
|
Returns the hash code of the matrix (used for hash maps and comparisons).
-
返回
-
The matrix' hash code.
◆
NullValue()
static constexpr const
Mat3
& NullValue
|
(
|
|
)
|
|
|
static
constexpr
|
Returns a null value of the matrix (see
nullvalue.h
for more details).
-
返回
-
A null value of the matrix.
Friends And Related Function Documentation
◆
operator*
Scales all matrix components by a scalar value.
◆
最小
constexpr friend
Mat3
最小
|
(
|
const
Mat3
< V > &
|
a
,
|
|
|
const
Mat3
< V > &
|
other
|
|
)
|
|
|
|
friend
|
Calculates the minimum of each component.
◆
最大
constexpr friend
Mat3
最大
|
(
|
const
Mat3
< V > &
|
a
,
|
|
|
const
Mat3
< V > &
|
other
|
|
)
|
|
|
|
friend
|
Calculates the maximum of each component.
Member Data Documentation
◆
off
The translation vector.
◆
sqmat
The 3×3 matrix for rotation, scale and shear.