Implement Transform2D
This commit is contained in:
@@ -58,6 +58,7 @@ namespace LinearAlgebra {
|
||||
|
||||
void SetRow(int i, const Vector3 &vector3);
|
||||
void SetColumn(int i, const Vector3& vector);
|
||||
void SetAt(int x, int y, float value);
|
||||
|
||||
void Orthonormalize(int c0, int c1, int c2)
|
||||
{
|
||||
@@ -85,14 +86,20 @@ namespace LinearAlgebra {
|
||||
// Transforming a vector v using this matrix computes the vector
|
||||
// v' == M * v == R*S*v == (R * (S * v)) which means the scale operation
|
||||
// is applied to the vector first, followed by rotation, and finally translation
|
||||
static Matrix3x3 FromRS(const Quaternion& rotate, const Matrix3x3& scale);
|
||||
static Matrix3x3 FromRS(const Matrix3x3 &rotate, const Matrix3x3& scale);
|
||||
static Matrix3x3 FromRS(const Quaternion& rotate, const Vector3& scale)
|
||||
{
|
||||
return Matrix3x3(rotate) * Matrix3x3::Scale(scale);
|
||||
}
|
||||
static Matrix3x3 FromRS(const Matrix3x3 &rotate, const Vector3& scale)
|
||||
{
|
||||
return rotate * Matrix3x3::Scale(scale);
|
||||
}
|
||||
|
||||
|
||||
/// Creates a new transformation matrix that scales by the given factors.
|
||||
// This matrix scales with respect to origin.
|
||||
static Matrix3x3 Scale(float sx, float sy, float sz);
|
||||
static Matrix3x3 Scale(const Matrix3x3& scale);
|
||||
static Matrix3x3 Scale(const Vector3& scale);
|
||||
|
||||
/// Returns the main diagonal.
|
||||
Vector3 Diagonal() const;
|
||||
|
Reference in New Issue
Block a user