My Project
AnnSceneryManager.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "systemMacro.h"
4 #include "AnnSubsystem.hpp"
5 #include "OgreSceneManager.h"
6 #include "AnnTypes.h"
7 #include "AnnOgreVRRenderer.hpp"
8 #include <memory>
9 #include <algorithm>
10 
11 namespace Annwvyn
12 {
15  {
16  public:
19 
21  bool needUpdate() override { return false; }
22 
28  void setSkyDomeMaterial(bool activate,
29  const std::string& materialName,
30  float curvature = 2.0f,
31  float tiling = 1.0f) const;
32 
38  void setSkyBoxMaterial(bool activate,
39  const std::string& materialName,
40  float distance = 8000,
41  bool renderedFirst = true) const;
42 
44  void removeSkyDome() const;
45 
47  void removeSkyBox() const;
48 
50  void setAmbientLight(AnnColor upperColor, float upperMul, AnnColor lowerColor, float lowerMul, AnnVect3 direction, float environementMapScaling = 16) const;
51 
53  void setDefaultAmbientLight() const;
54 
56  void setExposure(float exposure, float minExposure, float maxExposure) const;
57 
59  void setDefaultExposure() const;
60 
62  void setSkyColor(AnnColor color, float multiplier) const;
63 
65  void setDefaultSkyColor() const;
66 
68  void setBloomThreshold(float threshold) const;
69 
71  void setDefaultBloomThreshold() const;
72 
74  void resetSceneParameters() const;
75 
76  private:
78  Ogre::SceneManager* smgr;
79 
82 
84  const float defaultExposure, defaultMinAutoExposure, defaultMaxAutoExposure, defaultSkyColorMultiplier, defaultBloom, defaultUpperAmbientLightMul, defaultLowerAmbientLightMul;
86  const AnnColor defaultSkyColor, defaultUpperAmbient, defaultLowerAmbient;
87  };
88 
90 }
file for defining macros used for symbol export regarding the way the OS does things.
Class that represent a 4 channel color value.
Definition: AnnColor.hpp:17
A 3D Vector.
Definition: AnnVect3.hpp:16
Namespace containing the totality of Annwvyn components.
Definition: AnnGetter.cpp:8
AnnOgreVRRendererPtr renderer
Pointer to the VR renderer.
bool needUpdate() override
This subsystem doesn't need to be updated.
Scenery Manager. Set the scene rendering parameters, like the exposure or the ambient lighting....
Parent class of all Annwvyn SubSystem.
Ogre::SceneManager * smgr
Scene manager created by the VR renderer.
Data types definition for Annwvyn.
#define AnnDllExport
Definition: systemMacro.h:24