]> git.tdb.fi Git - libs/gl.git/blobdiff - source/matrix.h
Drop Id tags and copyright notices from files
[libs/gl.git] / source / matrix.h
index a2194916e52d80a8e7cd322b1af93e0b3871d223..e32df7e3872ea6ea270ecfe0d13e8fe25db82d9c 100644 (file)
@@ -1,15 +1,9 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_GL_MATRIX_H_
 #define MSP_GL_MATRIX_H_
 
 #include <list>
 #include "gl.h"
+#include "vector.h"
 
 namespace Msp {
 namespace GL {
@@ -41,18 +35,25 @@ public:
 
        void multiply(const Matrix &);
        void translate(double, double, double);
+       void translate(const Vector3 &t) { translate(t.x, t.y, t.z); }
        void rotate(double, double, double, double);
+       void rotate(double a, const Vector3 &x) { rotate(a, x.x, x.y, x.z); }
        void rotate_deg(double, double, double, double);
+       void rotate_deg(double a, const Vector3 & x) { rotate_deg(a, x.x, x.y, x.z); }
        void scale(double);
        void scale(double, double, double);
 
        Matrix operator*(const Matrix &) const;
        Matrix &operator*=(const Matrix &);
+       Vector4 operator*(const Vector4 &) const;
        double operator[](unsigned) const;
 
        static Matrix translation(double, double, double);
+       static Matrix translation(const Vector3 &t) { return translation(t.x, t.y, t.z); }
        static Matrix rotation(double, double, double, double);
+       static Matrix rotation(double a, const Vector3 &x) { return rotation(a, x.x, x.y, x.z); }
        static Matrix rotation_deg(double, double, double, double);
+       static Matrix rotation_deg(double a, const Vector3 &x) { return rotation_deg(a, x.x, x.y, x.z); }
        static Matrix scaling(double);
        static Matrix scaling(double, double, double);
 
@@ -90,13 +91,13 @@ private:
 public:
        MatrixStack();
 
-       const Matrix &top();
+       const Matrix &top() const;
        void load(const Matrix &);
        void multiply(const Matrix &);
        void push();
        void pop();
 private:
-       void update();
+       virtual void update();
 
 public:
        MatrixStack &operator=(const Matrix &);