File: matrix44.sip

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 239,888 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; makefile: 95
file content (135 lines) | stat: -rw-r--r-- 3,477 bytes parent folder | download | duplicates (4)
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;
};