X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmatrix.h;fp=source%2Fmatrix.h;h=0000000000000000000000000000000000000000;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hp=cb61e292f0eaad46a195995f6c92a5bbf7c1afe8;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;p=libs%2Fgl.git diff --git a/source/matrix.h b/source/matrix.h deleted file mode 100644 index cb61e292..00000000 --- a/source/matrix.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef MSP_GL_MATRIX_H_ -#define MSP_GL_MATRIX_H_ - -#include -#include -#include -#include "gl.h" -#include "vector.h" - -namespace Msp { -namespace GL { - -class Matrix: public LinAl::SquareMatrix -{ -private: - typedef LinAl::SquareMatrix Base; - typedef Geometry::Angle Angle; - -public: - Matrix(); - Matrix(const float *); - Matrix(const LinAl::Matrix &); - - const float *data() const { return &Base::operator()(0, 0); } - - Matrix &multiply(const Matrix &m) { return operator*=(m); } - Matrix &translate(float x, float y, float z) { return translate(Vector3(x, y, z)); } - Matrix &translate(const Vector3 &); - Matrix &rotate(const Angle &a, float x, float y, float z) { return rotate(a, Vector3(x, y, z)); } - Matrix &rotate(const Angle &, const Vector3 &); - Matrix &rotate(float a, float x, float y, float z) { return rotate(Angle::from_radians(a), Vector3(x, y, z)); } - Matrix &rotate(float a, const Vector3 &x) { return rotate(Angle::from_radians(a), x); } - Matrix &rotate_deg(float a, float x, float y, float z) { return rotate(Angle::from_degrees(a), Vector3(x, y, z)); } - Matrix &rotate_deg(float a, const Vector3 & x) { return rotate(Angle::from_degrees(a), x); } - Matrix &scale(float s) { return scale(Vector3(s, s, s)); } - Matrix &scale(float x, float y, float z) { return scale(Vector3(x, y, z)); } - Matrix &scale(const Vector3 &); - - Matrix operator*(const Matrix &m) const { return static_cast(*this)*static_cast(m); } - Matrix &operator*=(const Matrix &m) { Base::operator*=(m); return *this; } - Matrix operator*(float s) const { return static_cast(*this)*s; } - Matrix &operator*=(float s) { Base::operator*=(s); return *this; } - Vector4 operator*(const Vector4 &v) const { return static_cast(*this)*v; } - Vector3 operator*(const Vector3 &v) const { return ((*this)*compose(v, 1.0f)).slice<3>(0); } - float operator[](unsigned) const; - - static Matrix translation(float x, float y, float z) { return translation(Vector3(x, y, z)); } - static Matrix translation(const Vector3 &); - static Matrix rotation(const Angle &a, float x, float y, float z) { return rotation(a, Vector3(x, y, z)); } - static Matrix rotation(const Angle &, const Vector3 &); - static Matrix rotation(float a, float x, float y, float z) { return rotation(Angle::from_radians(a), Vector3(x, y, z)); } - static Matrix rotation(float a, const Vector3 &x) { return rotation(Angle::from_radians(a), x); } - static Matrix rotation_deg(float a, float x, float y, float z) { return rotation(Angle::from_degrees(a), Vector3(x, y, z)); } - static Matrix rotation_deg(float a, const Vector3 &x) { return rotation(Angle::from_degrees(a), x); } - static Matrix scaling(float s) { return scaling(Vector3(s, s, s)); } - static Matrix scaling(float x, float y, float z) { return scaling(Vector3(x, y, z)); } - static Matrix scaling(const Vector3 &); - - static Matrix ortho(float, float, float, float, float, float); - static Matrix ortho_centered(float, float); - static Matrix ortho_bottomleft(float, float); - static Matrix ortho_topleft(float, float); - static Matrix frustum(float, float, float, float, float, float); - static Matrix frustum_centered(float, float, float, float); - static Matrix perspective(const Angle &, float, float, float); -}; - -} // namespace GL -} // namespace Msp - -#endif