OpenPolygon  1.0.0
OpenPolygon is a Rendering Engine
material.h
1 /*
2  Copyright (C) 2014 - 2016 Mutzii
3 
4  This program is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program. If not, see <http://www.gnu.org/licenses/>.
16 
17 */
18 #ifndef MATERIAL_H
19 #define MATERIAL_H
20 
21 #include "entity.h"
22 #include "shadowevent.h"
23 #include "drawevent.h"
24 
25 namespace Engine
26 {
27 
28 // class DrawMaterial
29 // {
30 // public:
31 // explicit DrawMaterial( Entity * entity ) : mEntity(entity){}
32 // virtual ~DrawMaterial(){}
33 
34 // virtual void enable( const DrawEvent & event )=0;
35 
36 // IComponent<Entity> * mEntityComponent;
37 
38 // protected:
39 
40 // Entity * mEntity;
41 // };
42 
43 // class ShadowMaterial
44 // {
45 // public:
46 // explicit ShadowMaterial( Entity * entity ) :mEntity(entity) {}
47 // virtual ~ShadowMaterial(){}
48 
49 // virtual void enable( const ShadowEvent & event )=0;
50 
51 // IComponent<Entity> * mEntityComponent;
52 
53 // protected:
54 
55 // Entity * mEntity;
56 
57 // };
58 
59  class Material
60  {
61  public:
62 
63  explicit Material( Entity * entity ) : mEntity( entity ){}
64 
65  virtual ~ Material(){}
66 
67  virtual void enable( int texture_unit )=0;
68 
69  protected:
70 
71  Entity * mEntity;
72 
73  };
74 
75 }
76 #endif // MATERIAL_H
The Entity - base component class - for 3D Entitys.
Definition: entity.h:28
Definition: element.h:23
Definition: material.h:59