]> git.tdb.fi Git - libs/gl.git/blobdiff - source/clipplane.h
Restore user clip planes in a form compatible with modern OpenGL
[libs/gl.git] / source / clipplane.h
diff --git a/source/clipplane.h b/source/clipplane.h
new file mode 100644 (file)
index 0000000..cc3efd0
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef MSP_GL_CLIP_H_
+#define MSP_GL_CLIP_H_
+
+#include "vector.h"
+
+namespace Msp {
+namespace GL {
+
+class Matrix;
+class ProgramData;
+
+class ClipPlane
+{
+private:
+       Vector4 eq;
+
+public:
+       ClipPlane();
+       ClipPlane(const Vector4 &);
+       ClipPlane(const Vector3 &, const Vector3 &);
+
+private:
+       void update(unsigned) const;
+public:
+       void set_equation(const Vector4 &);
+       void set_plane(const Vector3 &, const Vector3 &);
+       void update_shader_data(ProgramData &, const Matrix &, unsigned) const;
+
+       void bind_to(unsigned) const;
+
+       static void unbind_from(unsigned);
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif