gdk-graphics  1b6d84e044c2c953fd7c9501e628a67e80f4da0d
entity.h
1 // © 2019 Joseph Cameron - All Rights Reserved
2 
3 #ifndef GDK_GFX_ENTITY_H
4 #define GDK_GFX_ENTITY_H
5 
6 #include <gdk/graphics_types.h>
7 
8 namespace gdk
9 {
10  class material;
11  class model;
12 
14  class entity
15  {
16  public:
18  virtual void hide() = 0;
19 
21  virtual void show() = 0;
22 
24  virtual bool isHidden() const = 0;
25 
27  virtual void set_model_matrix(const graphics_vector3_type &aWorldPos,
28  const graphics_quaternion_type &aRotation,
29  const graphics_vector3_type &aScale = graphics_vector3_type::One) = 0;
30 
32  virtual void set_model_matrix(const graphics_mat4x4_type& a) = 0;
33 
35  virtual void set_model(const std::shared_ptr<model> a) = 0;
36 
38  virtual ~entity() = default;
39  };
40 }
41 
42 #endif
43 
represents an observable 3d object.
Definition: entity.h:14
Definition: camera.h:9
virtual ~entity()=default
dtor
virtual void set_model(const std::shared_ptr< model > a)=0
set the model
virtual void show()=0
allow this entity to be drawn
virtual bool isHidden() const =0
check if the entity is hidden
virtual void set_model_matrix(const graphics_vector3_type &aWorldPos, const graphics_quaternion_type &aRotation, const graphics_vector3_type &aScale=graphics_vector3_type::One)=0
sets the model matrix using a vec3 position, quat rotation, vec3 scale
virtual void hide()=0
do not allow this entity to be drawn