#ifndef MSP_GL_MATRIX_H_
#define MSP_GL_MATRIX_H_
-#include <GL/gl.h>
+#include "gl.h"
namespace Msp {
namespace GL {
void matrix_mode(MatrixMode);
void load_identity();
+void load_matrix(const float *);
+void load_matrix(const double *);
void mult_matrix(const float *);
void mult_matrix(const double *);
void push_matrix();
void pop_matrix();
+/// RAII object - pushes matrix when constructed and pops when destroyed
+struct PushMatrix
+{
+ PushMatrix() { push_matrix(); }
+ ~PushMatrix() { pop_matrix(); }
+};
+
+void translate(float, float, float);
+void rotate(float, float, float, float);
+void scale(float, float, float);
+void scale_uniform(float);
+
} // namespace GL
} // namespace Msp