osg.Matrix4x2Template 是一个模板类,用于表示 4x2 的矩阵。
Matrix4x2Template();
Matrix4x2Template(const T& m00,const T& m01,const T& m10,const T& m11,const T& m20,const T& m21,const T& m30,const T& m31);
Matrix4x2Template(const Matrix4x2Template& matrix, CopyOp copyop=CopyOp::SHALLOW_COPY);
Matrix4x2Template(const Matrix3x2Template<T>& matrix, const Vec2Template<T>& translate);
T
:数据类型,默认为 double
。m00
:第 0 行第 0 列的元素。m01
:第 0 行第 1 列的元素。m10
:第 1 行第 0 列的元素。m11
:第 1 行第 1 列的元素。m20
:第 2 行第 0 列的元素。m21
:第 2 行第 1 列的元素。m30
:第 3 行第 0 列的元素。m31
:第 3 行第 1 列的元素。matrix
:一个 Matrix4x2Template
类型的矩阵。copyop
:拷贝方式,默认为 CopyOp::SHALLOW_COPY
。matrix
:一个 Matrix3x2Template
类型的矩阵。translate
:一个 Vec2Template
类型的向量。inline void set(const T& m00, const T& m01, const T& m10, const T& m11, const T& m20, const T& m21, const T& m30, const T& m31);
inline void set(const Matrix4x2Template& rhs);
inline void set(const Matrix3x2Template<T>& lhs, const Vec2Template<T>& translate);
inline bool isNaN() const;
inline bool isNullMatrix() const;
inline bool isIdentity() const;
inline void makeIdentity();
inline void makeScale(const T& sx, const T& sy, const T& sz);
inline void makeTranslate(const T& tx, const T& ty, const T& tz);
inline void makeRotate(const T& angle, const T& x, const T& y, const T& z);
inline void makeLookAt(const Vec3Template<T>& eye, const Vec3Template<T>& center, const Vec3Template<T>& up);
inline void makeOrtho(const T& left, const T& right, const T& bottom, const T& top, const T& zNear, const T& zFar);
inline void makeOrtho2D(const T& left, const T& right, const T& bottom, const T& top);
inline void makeFrustum(const T& left, const T& right, const T& bottom, const T& top, const T& zNear, const T& zFar);
inline bool hasScale() const;
inline bool hasRotation() const;
inline bool hasTranslate() const;
inline Vec2Template<T> getScale() const;
inline Matrix3x2Template<T> getRotationScale() const;
inline Vec2Template<T> getTranslate() const;
inline Vec3Template<T> getTrans() const;
inline T& operator()(const int& row, const int& col);
inline T operator()(const int& row, const int& col) const;
inline bool invert(const Matrix4x2Template& rhs);
inline bool invert_4x3(const Matrix4x3Template<T>& rhs);
inline bool invert_4x4(const Matrix4x4Template<T>& rhs);
inline bool invert_3x3(const Matrix3x3Template<T>& rhs);
inline Matrix4x2Template inverse(const T& epsilon) const;
inline Matrix4x2Template inverse_4x3(const T& epsilon) const;
inline Matrix4x2Template inverse_4x4(const T& epsilon) const;
inline Matrix4x2Template inverse_3x3(const T& epsilon) const;
inline T determinant() const;
inline T& at(const int& row, const int& col);
inline T at(const int& row, const int& col) const;
inline Matrix4x2Template operator * (const Matrix4x2Template& rhs) const;
inline Vec3Template<T> operator * (const Vec4Template<T>& vec) const;
inline Vec3Template<T> preMult(const Vec4Template<T>& vec) const;
inline Vec2Template<T> operator * (const Vec2Template<T>& vec) const;
inline Vec2Template<T> preMult(const Vec2Template<T>& vec) const;
inline Matrix4x2Template& operator *= (const Matrix4x2Template& rhs);
inline Matrix4x2Template operator + (const Matrix4x2Template& rhs) const;
inline Matrix4x2Template& operator += (const Matrix4x2Template& rhs);
inline Matrix4x2Template operator - (const Matrix4x2Template& rhs) const;
inline Matrix4x2Template& operator -= (const Matrix4x2Template& rhs);
inline Matrix4x2Template operator - () const;
inline Matrix4x2Template operator * (const T& rhs) const;
inline Matrix4x2Template& operator *= (const T& rhs);
inline Matrix4x2Template operator / (const T& rhs) const;
inline Matrix4x2Template& operator /= (const T& rhs);
inline bool operator == (const Matrix4x2Template& rhs) const;
inline bool operator != (const Matrix4x2Template& rhs) const;
inline T* ptr();
inline const T* ptr() const;
inline void setTrans(const T& tx, const T& ty, const T& tz);
inline void setTrans(const Vec3Template<T>& trans);
inline void setScale(const T& sx, const T& sy, const T& sz);
inline void setRotate(const T& angle, const T& x, const T& y, const T& z);
inline void setRotate(const Quaternion& q);
inline void setTransMult(const Vec3Template<T>& trans);
inline void setScaleMult(const Vec3Template<T>& scale);
inline void setTransMult(const T& tx, const T& ty);
inline Vec4Template<T> getRow(int i) const;
inline void setRow(int i, const Vec4Template<T>& v);