Path Tracer
DoubleMatrix33.h
Go to the documentation of this file.
1 #ifndef DEF_DOUBLEMATRIX33
2 #define DEF_DOUBLEMATRIX33
3 
4 #include "DoubleVec3D.h"
5 
188 private:
189  DoubleVec3D column0;
190  DoubleVec3D column1;
191  DoubleVec3D column2;
192 
193 public:
194  DoubleMatrix33(double val = 0);
195  DoubleMatrix33(const DoubleVec3D& column0, const DoubleVec3D& column1, const DoubleVec3D& column2);
196  DoubleMatrix33(const DoubleMatrix33& matrix);
197 
198  DoubleVec3D getColumn0() const;
199  DoubleVec3D getColumn1() const;
200  DoubleVec3D getColumn2() const;
201  DoubleVec3D getRow0T() const;
202  DoubleVec3D getRow1T() const;
203  DoubleVec3D getRow2T() const;
204 
205  void setColumn0(const DoubleVec3D& column0);
206  void setColumn1(const DoubleVec3D& column1);
207  void setColumn2(const DoubleVec3D& column2);
208 
209  void operator+=(const DoubleMatrix33& matrix);
210  void operator-=(const DoubleMatrix33& matrix);
211  void operator*=(const DoubleMatrix33& matrix);
212  void operator*=(double val);
213 };
214 
215 DoubleMatrix33 operator+(const DoubleMatrix33& matrix1, const DoubleMatrix33& matrix2);
217 DoubleMatrix33 operator-(const DoubleMatrix33& matrix1, const DoubleMatrix33& matrix2);
218 DoubleMatrix33 operator*(const DoubleMatrix33& matrix1, const DoubleMatrix33& matrix2);
219 DoubleVec3D operator*(const DoubleMatrix33& matrix, const DoubleVec3D& vec);
220 
222 DoubleMatrix33 getRotationMatrixY(double pitch);
224 DoubleMatrix33 getRotationMatrixXYZ(double roll, double pitch, double yaw);
226 
230 DoubleMatrix33 getScalingMatrixXYZ(double x, double y, double z);
232 
233 #endif
DoubleMatrix33 getScalingMatrixZ(double z)
Scaling matrix on the z axis.
Definition: DoubleMatrix33.cpp:131
DoubleMatrix33 getRotationMatrixX(double roll)
Rotation matrix around the x axis.
Definition: DoubleMatrix33.cpp:95
DoubleMatrix33 operator*(const DoubleMatrix33 &matrix1, const DoubleMatrix33 &matrix2)
Matrix product operator.
Definition: DoubleMatrix33.cpp:81
DoubleMatrix33 operator+(const DoubleMatrix33 &matrix1, const DoubleMatrix33 &matrix2)
Sum operator.
Definition: DoubleMatrix33.cpp:63
DoubleMatrix33 getScalingMatrixY(double y)
Scaling matrix on the y axis.
Definition: DoubleMatrix33.cpp:130
DoubleMatrix33 getRotationMatrixY(double pitch)
Rotation matrix around the y axis.
Definition: DoubleMatrix33.cpp:103
DoubleMatrix33 operator-(const DoubleMatrix33 &matrix)
Unary minus operator.
Definition: DoubleMatrix33.cpp:69
DoubleMatrix33 getRotationMatrixZ(double yaw)
Rotation matrix around the z axis.
Definition: DoubleMatrix33.cpp:111
DoubleMatrix33 getScalingMatrixX(double x)
Scaling matrix on the x axis.
Definition: DoubleMatrix33.cpp:129
DoubleMatrix33 getScalingMatrixXYZ(double x, double y, double z)
Scaling matrix on the x, y and z axis.
Definition: DoubleMatrix33.cpp:133
DoubleMatrix33 getRotationMatrixXYZ(double roll, double pitch, double yaw)
Rotation matrix around the z, y and then x axis.
Definition: DoubleMatrix33.cpp:119
Defines the DoubleVec3D class and some functions around it.
A three-dimensional square matrix using doubles.
Definition: DoubleMatrix33.h:187
DoubleVec3D getRow0T() const
Getter for the first row (transposed).
Definition: DoubleMatrix33.cpp:17
void operator*=(const DoubleMatrix33 &matrix)
Multiplication by a matrix operator.
Definition: DoubleMatrix33.cpp:47
void setColumn1(const DoubleVec3D &column1)
Setter for the second column.
Definition: DoubleMatrix33.cpp:32
void operator+=(const DoubleMatrix33 &matrix)
Sum operator.
Definition: DoubleMatrix33.cpp:37
DoubleVec3D getColumn0() const
Getter for the first column.
Definition: DoubleMatrix33.cpp:13
void setColumn2(const DoubleVec3D &column2)
Setter for the third column.
Definition: DoubleMatrix33.cpp:33
DoubleVec3D getRow1T() const
Getter for the second row (transposed).
Definition: DoubleMatrix33.cpp:21
DoubleVec3D getColumn2() const
Getter for the third column.
Definition: DoubleMatrix33.cpp:15
void operator-=(const DoubleMatrix33 &matrix)
Difference operator.
Definition: DoubleMatrix33.cpp:43
DoubleVec3D getColumn1() const
Getter for the second column.
Definition: DoubleMatrix33.cpp:14
DoubleMatrix33(double val=0)
Default constructor. Gives all points the same value.
Definition: DoubleMatrix33.cpp:4
void setColumn0(const DoubleVec3D &column0)
Setter for the first column.
Definition: DoubleMatrix33.cpp:31
DoubleVec3D getRow2T() const
Getter for the third row (transposed).
Definition: DoubleMatrix33.cpp:25
A three-dimensional vector using double values.
Definition: DoubleVec3D.h:190