VisualizeVideo
 All Classes Functions Pages
SceneManager.h
1 #pragma once
2 
3 #include <vector>
4 #include <memory>
5 
6 #include <glm/glm.hpp>
7 
8 #include "Camera.h"
9 #include "ResourceLoader.h"
10 #include "Cube.h"
11 #include "VolumeData.h"
12 
14 
20 {
21 public:
22  SceneManager(std::shared_ptr<Camera> camera);
23  ~SceneManager(void);
24 
26  void render();
27 
29  void setVolume(VolumeData volumedata);
30 
32  void setAlpha(bool state);
34  void setHue(bool state);
36  void setHueValue(float val);
38  void setInvert(bool state);
40  void setOpacityValue(float val);
41 
42 private:
43  // Initializes the OpenGL settings
44  void initGl();
45  // Loads the resource loader
46  void loadResourceLoader();
47  // Loads the volume renderer shader
48  void loadVolumeRendererShader();
49 
50  void createFrameBuffer();
51 
52 
53  // Loads the cube
54  void loadCube();
55 
56  bool volumeSet;
57  VolumeData _volumedata;
58 
59  std::shared_ptr<Camera> _camera;
60  std::shared_ptr<ResourceLoader> _resourceLoader;
61 
62  std::shared_ptr<Cube> _cube;
63 
64  std::shared_ptr<Program> _volumeProgram;
65 
66  GLuint _FramebufferName;
67  GLuint _renderedTexture;
68 
69  bool toggleAlpha;
70  bool toggleInvert;
71  bool toggleHue;
72  float hueValue;
73  float hueRange;
74  float opacityValue;
75 };
76