#ifndef RENDERER_H #define RENDERER_H #include "client/rendering/wrapper/Shader.h" #include "client/math/MatrixStack.h" #include "common/math/Vector.h" #include "client/math/Quaternion.h" class Renderer final { public: Renderer(Shader& shader, MatrixStack& stack, Matrix& view); void pop(); void push(); Renderer& update(); Renderer& update(const Vector3& pos, const Quaternion& rotation); Renderer& scale(float sx, float sy, float sz); Renderer& scale(float s); Renderer& translate(float tx, float ty, float tz); Renderer& translateX(float tx); Renderer& translateY(float ty); Renderer& translateZ(float tz); Renderer& translateTo(float tx, float ty, float tz); Renderer& rotateX(float degrees); Renderer& rotateY(float degrees); Renderer& rotateZ(float degrees); private: Shader& shader; MatrixStack& stack; Matrix& view; }; #endif