AireEngine
A 3D Open-World Game Engine
Loading...
Searching...
No Matches
billboard.h
1#pragma once
2
3#include "../rendering/vao.h"
4#include "../rendering/texture.h"
5#include "../rendering/window.h"
6#include "shaderProgram.h"
7#include "buffer.h"
8#include <glm/glm.hpp>
9#include <glm/gtc/matrix_transform.hpp>
10#include <glm/gtc/type_ptr.hpp>
11#include"camera.h"
12namespace Aire
13{
15 class Billboard {
16
17 private:
18 Aire::Texture* diffuse;
19 Aire::Texture* alpha;
21 glm::vec3 pos;
22 Buffer* buffer;
23 float scale;
24 std::vector<glm::vec3> vertices;
25 std::vector<glm::vec2> uvs;
26 std::vector<unsigned int> indices;
27
28 public:
33 Billboard(glm::vec3 p, Texture* diffuse, Texture* alpha);
34 ~Billboard();
35
39 void render(ShaderProgram& shader, Camera& camera);
40 void renderInstanced(ShaderProgram& shader, Camera& camera, glm::mat4 transform);
41
44 glm::vec3 getPosition() const;
45
50 void setPosition(float x, float y, float z);
51
54 void setPosition(glm::vec3 pos);
55
56 void setTexture(Texture* ptr);
57
60 void setScale(float s);
61 };
62
68}
Class for billboard rendering.
Definition billboard.h:15
Billboard(glm::vec3 p, Texture *diffuse, Texture *alpha)
Definition billboard.cpp:3
void setPosition(float x, float y, float z)
Definition billboard.cpp:32
void setScale(float s)
Definition billboard.cpp:106
void render(ShaderProgram &shader, Camera &camera)
Definition billboard.cpp:38
glm::vec3 getPosition() const
Definition billboard.cpp:20
Definition buffer.h:10
Definition camera.h:9
A linked OpenGL program.
Definition shaderProgram.h:16
Texture base class.
Definition texture.h:20
Definition vao.h:8
A billboard instance, used for instanced rendering of billboards.
Definition billboard.h:64
Billboard * billboard
Pointer to the main billboard class.
Definition billboard.h:66
glm::vec3 position
Billboard instance position.
Definition billboard.h:65