28 #include <boost/operators.hpp>
40 private boost::equality_comparable<Mat4>,
41 private boost::additive<Mat4>,
42 private boost::multiplicative<Mat4, Real>
74 explicit Mat4(
const float[16]);
76 explicit Mat4(
const double[16]);
83 const Real&
At(std::size_t r, std::size_t c)
const
86 throw std::out_of_range(
"indices must be smaller than 4");
91 Real&
At(std::size_t r, std::size_t c)
94 throw std::out_of_range(
"indices must be smaller than 4");
101 assert(r<4 && c < 4);
107 assert(r<4 && c < 4);
132 void set(
float i00,
float i01,
float i02,
float i03,
float i10,
float i11,
float i12,
133 float i13,
float i20,
float i21,
float i22,
float i23,
float i30,
float i31,
float i32,
135 void set(
double i00,
double i01,
double i02,
double i03,
double i10,
double i11,
double
136 i12,
double i13,
double i20,
double i21,
double i22,
double i23,
double i30,
double i31,
137 double i32,
double i33);
Mat4 & operator=(const Mat4 &m)
assignement op
Mat4 & operator+=(const Mat4 &rhs)
addable op
Vec3 ExtractTranslation() const
Mat4(const Mat4 &m)
Copy ctor.
Mat4 & operator-=(const Mat4 &rhs)
subtractable op
Mat4()
Default initialization, identity matrix.
Mat4 & operator*=(const Real d)
void PasteTranslation(const Vec3 &v)
Mat3 ExtractRotation() const
Mat4 & operator/=(const Real d)
Mat4(const Mat3 &m)
implicit initialization from mat3
Mat4 & operator*=(const Mat4 &m)
const Real & operator()(std::size_t r, std::size_t c) const
const Real * Data() const
const Real & At(std::size_t r, std::size_t c) const
Mat4(const float[16])
initialization from array
void PasteRotation(const Mat3 &m)
bool operator==(const Mat4 &rhs) const
comparable
Real & At(std::size_t r, std::size_t c)
Real & operator()(std::size_t r, std::size_t c)
Mat4(Real i00, Real i01, Real i02, Real i03, Real i10, Real i11, Real i12, Real i13, Real i20, Real i21, Real i22, Real i23, Real i30, Real i31, Real i32, Real i33)
In with 16 values in row-major order.
Mat4(const Mat2 &m)
implicit initialization from mat2
Three dimensional vector class, using Real precision.
#define DLLEXPORT_OST_GEOM
std::vector< Mat4 > Mat4List
std::ostream & operator<<(std::ostream &os, const AlignedCuboid &c)