forked from TrenchBroom/TrenchBroom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAliasModelRenderer.h
64 lines (49 loc) · 1.87 KB
/
AliasModelRenderer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
Copyright (C) 2010-2012 Kristian Duske
This file is part of TrenchBroom.
TrenchBroom is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
TrenchBroom is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with TrenchBroom. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TrenchBroom_AliasModelRenderer_h
#define TrenchBroom_AliasModelRenderer_h
#include "Renderer/EntityModelRenderer.h"
#include "Renderer/TextureRendererTypes.h"
#include "Renderer/VertexArray.h"
namespace TrenchBroom {
namespace Model {
class Alias;
class Entity;
}
namespace Renderer {
class Palette;
class RenderContext;
class ShaderProgram;
class Vbo;
class AliasModelRenderer : public EntityModelRenderer {
private:
const Model::Alias& m_alias;
unsigned int m_frameIndex;
unsigned int m_skinIndex;
const Palette& m_palette;
TextureRendererPtr m_texture;
Vbo& m_vbo;
VertexArray* m_vertexArray;
public:
AliasModelRenderer(const Model::Alias& alias, unsigned int frameIndex, unsigned int skinIndex, Vbo& vbo, const Palette& palette);
~AliasModelRenderer();
void render(ShaderProgram& shaderProgram);
const Vec3f& center() const;
const BBoxf& bounds() const;
BBoxf boundsAfterTransformation(const Mat4f& transformation) const;
};
}
}
#endif