1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
class Matrix4x4
{
%TypeHeaderCode
#include <BALL/MATHS/matrix44.h>
%End
public:
Matrix4x4();
Matrix4x4(const Matrix4x4&);
Matrix4x4
(const Vector4&, const Vector4&,
const Vector4&, const Vector4&);
Matrix4x4
(float, float, float, float,
float, float, float, float,
float, float, float, float,
float, float, float, float);
~Matrix4x4();
void set(const Matrix4x4&);
void set
(const Vector4&, const Vector4&,
const Vector4&, const Vector4&);
void set
(float, float, float, float,
float, float, float, float,
float, float, float, float,
float, float, float, float);
void get(Matrix4x4&) const;
void get
(Vector4&, Vector4&,
Vector4&, Vector4&) const;
void get
(float, float, float, float,
float, float, float, float,
float, float, float, float,
float, float, float, float) const;
void swap(Matrix4x4&);
float getTrace() const;
static const Matrix4x4& getZero();
static const Matrix4x4& getIdentity();
void setIdentity();
void set(float t = 1);
void transpose();
Vector4 getRow(Position) const;
Vector4 getColumn(Position) const;
void setRow(Position, const Vector4&);
void setColumn(Position, const Vector4&);
bool isEqual(const Matrix4x4&) const;
Vector4 getDiagonal() const;
float operator () (Position, Position);
%MethodCode
sipRes = sipCpp->operator () (*a0, *a1);
%End
float operator [] (Position) /Numeric/;
%MethodCode
try
{
sipRes = sipCpp->operator [] (*a0);
}
catch (IndexOverflow& e)
{
PyErr_SetString(PyExc_IndexError, "index overflow in Matrix4x4. Max. index is 15!");
sipIsErr = 1;
}
%End
int __len__ ();
%MethodCode
sipRes = 16;
%End
Matrix4x4 operator + (const Matrix4x4&) const;
Matrix4x4& operator += (const Matrix4x4&);
Matrix4x4 operator - (const Matrix4x4&) const;
Matrix4x4& operator -= (const Matrix4x4&);
Matrix4x4 operator * (float) const;
Matrix4x4& operator *= (float);
Matrix4x4 operator / (float) const;
Matrix4x4& operator /= (float);
Matrix4x4 operator * (const Matrix4x4&) const;
Matrix4x4& operator *= (const Matrix4x4&);
Vector4 operator * (const Vector4&) const;
bool invert(Matrix4x4&) const;
bool invert();
float getDeterminant() const;
void translate(float, float, float);
void translate(const Vector3&);
void setTranslation(float, float, float);
void setTranslation(const Vector3&);
void scale(float, float, float);
void scale(float);
void scale(const Vector3&);
void setScale(float, float, float);
void setScale(float);
void setScale(const Vector3&);
void rotateX(const Angle&);
void setRotationX(const Angle&);
void rotateY(const Angle&);
void setRotationY(const Angle&);
void rotateZ(const Angle &);
void setRotationZ(const Angle &);
void rotate(const Angle&, float, float, float);
void rotate(const Angle&, const Vector3&);
void rotate(const Angle&, const Vector4&);
void setRotation(const Angle&, float, float, float);
void setRotation(const Angle&, const Vector3&);
void setRotation(const Angle&, const Vector4&);
bool operator == (const Matrix4x4&) const;
bool operator != (const Matrix4x4&) const;
bool isIdentity() const;
bool isRegular() const;
bool isSingular() const;
bool isSymmetric() const;
bool isLowerTriangular() const;
bool isUpperTriangular() const;
bool isDiagonal() const;
bool isValid() const;
float m11;
float m12;
float m13;
float m14;
float m21;
float m22;
float m23;
float m24;
float m31;
float m32;
float m33;
float m34;
float m41;
float m42;
float m43;
float m44;
};
|