AnimEngine
drawable.hpp
1 #pragma once
2 #ifndef KJY_ANIM_ENGINE_COMPONENTS_DRAWABLE_HPP_
3 #define KJY_ANIM_ENGINE_COMPONENTS_DRAWABLE_HPP_
4 #include "rootcomponent.hpp"
5 #include <util/Program.h> // TODO: Replace old shader program stuff
6 #include <glm/glm.hpp>
7 
8 struct MVPset{
9  glm::mat4 M;
10  glm::mat4 V;
11  glm::mat4 P;
12 };
13 
14 class DrawableInterfaceComponent : virtual public RootComponent {
15  public:
16  virtual void draw(const MVPset& MVP, Program* shader = nullptr) = 0;
17  virtual bool isDrawable() const override {return(true);}
18  virtual bool isHidden() const {return(false);}
19  virtual bool isGloballyIlluminated() const {return(true);}
20  virtual bool canOverrideShader() const = 0;
21  virtual bool requiresOverrideShader() const = 0;
22 };
23 
24 #endif
Definition: Program.h:15
Definition: drawable.hpp:8
Definition: rootcomponent.hpp:11
Definition: drawable.hpp:14