Gazebo Rendering

API Reference

8.2.0
Ogre2GlobalIlluminationCiVct.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2022 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #ifndef GZ_RENDERING_OGRE2_OGRE2GLOBALILLUMINATIONCIVCT_HH_
18 #define GZ_RENDERING_OGRE2_OGRE2GLOBALILLUMINATIONCIVCT_HH_
19 
21 
22 #include "gz/rendering/ogre2/Export.hh"
24 
25 #include <memory>
26 
27 namespace Ogre
28 {
29  class HlmsPbs;
30  class VctCascadeSetting;
31 }
32 
33 namespace gz
34 {
35  namespace rendering
36  {
37  inline namespace GZ_RENDERING_VERSION_NAMESPACE {
38  //
39  // forward declaration
40  class Ogre2CiVctCascadePrivate;
41  class Ogre2GlobalIlluminationCiVctPrivate;
42 
44  class GZ_RENDERING_OGRE2_VISIBLE Ogre2CiVctCascade :
45  public virtual CiVctCascade
46  {
48  public: explicit Ogre2CiVctCascade();
49 
50  public: ~Ogre2CiVctCascade() override;
51 
55  public: void Init(Ogre::VctCascadeSetting *_cascade,
56  const CiVctCascade *_ref);
57 
61  public: void ReInit(Ogre::VctCascadeSetting *_cascade);
62 
63  // Documentation inherited.
64  public: virtual void SetCorrectAreaLightShadows(
65  bool _correctAreaLightShadows) override;
66 
67  // Documentation inherited.
68  public: virtual bool CorrectAreaLightShadows() const override;
69 
70  // Documentation inherited.
71  public: virtual void SetAutoMultiplier(bool _autoMultiplier) override;
72 
73  // Documentation inherited.
74  public: virtual bool AutoMultiplier() const override;
75 
76  // Documentation inherited.
77  public: virtual void SetThinWallCounter(float _thinWallCounter) override;
78 
79  // Documentation inherited.
80  public: virtual float ThinWallCounter() const override;
81 
82  // Documentation inherited.
83  public: virtual void SetResolution(const uint32_t _resolution[3])
84  override;
85 
86  // Documentation inherited.
87  public: virtual const uint32_t* Resolution() const override;
88 
89  // Documentation inherited.
90  public: virtual void SetOctantCount(const uint32_t _octants[3]) override;
91 
92  // Documentation inherited.
93  public: virtual const uint32_t* OctantCount() const override;
94 
95  // Documentation inherited.
96  public: virtual void SetAreaHalfSize(
97  const gz::math::Vector3d &_areaHalfSize) override;
98 
99  // Documentation inherited.
100  public: virtual gz::math::Vector3d AreaHalfSize() const override;
101 
102  // Documentation inherited.
103  public: virtual void SetCameraStepSize(
104  const gz::math::Vector3d &_stepSize) override;
105 
106  // Documentation inherited.
107  public: virtual gz::math::Vector3d CameraStepSize() const override;
108 
111  };
112 
114  class GZ_RENDERING_OGRE2_VISIBLE Ogre2GlobalIlluminationCiVct :
115  public virtual GlobalIlluminationCiVct, public virtual Ogre2Object
116  {
119 
121  public: virtual ~Ogre2GlobalIlluminationCiVct() override;
122 
123  // Documentation inherited
124  protected: virtual void Init() override;
125 
126  // Documentation inherited
127  public: virtual void Destroy() override;
128 
129  // Documentation inherited
130  public: virtual void Build() override;
131 
132  // Documentation inherited
133  public: virtual void UpdateLighting() override;
134 
135  // Documentation inherited
136  public: virtual void UpdateCamera() override;
137 
138  // Documentation inherited
139  public: virtual void SetMaxCascades(const uint32_t _maxCascades) override;
140 
141  // Documentation inherited
142  public: virtual CiVctCascadePtr AddCascade(
143  const CiVctCascade* _ref) override;
144 
145  // Documentation inherited
146  public: virtual void PopCascade() override;
147 
148  // Documentation inherited
149  public: virtual void AutoCalculateStepSizes(
150  const gz::math::Vector3d &_stepSize) override;
151 
152  // Documentation inherited.
153  public: virtual void SetConsistentCascadeSteps(
154  bool _consistentCascadeSteps) override;
155 
156  // Documentation inherited.
157  public: virtual bool ConsistentCascadeSteps() const override;
158 
159  // Documentation inherited.
160  public: virtual bool Started() const override;
161 
162  // Documentation inherited
163  public: virtual void Start(
164  uint32_t _bounceCount, bool _anisotropic) override;
165 
166  // Documentation inherited
167  public: virtual void NewSettings(
168  uint32_t _bounceCount, bool _anisotropic) override;
169 
170  // Documentation inherited
171  public: virtual void Reset() override;
172 
173  // Documentation inherited
174  public: virtual void Bind(const CameraPtr &_camera) override;
175 
176  // Documentation inherited
177  public: virtual bool Anisotropic() const override;
178 
179  // Documentation inherited
180  public: virtual void SetHighQuality(bool _highQuality) override;
181 
182  // Documentation inherited
183  public: virtual bool HighQuality() const override;
184 
188  protected: virtual void SetEnabled(bool _enabled) override;
189 
190  // Documentation inherited.
191  public: virtual bool Enabled() const override;
192 
193  // Documentation inherited.
194  public: virtual void SetDebugVisualization(
195  DebugVisualizationMode _dvm) override;
196 
197  // Documentation inherited.
199  override;
200 
201  // Documentation inherited.
202  public: virtual void LightingChanged() override;
203 
204  // Documentation inherited.
205  public: virtual void SetBounceCount(uint32_t _bounceCount) override;
206 
207  // Documentation inherited.
208  public: virtual uint32_t BounceCount() const override;
209 
210  // Documentation inherited.
211  public: void SetParticipatingVisuals(uint32_t _mask) override;
212 
213  // Documentation inherited.
214  public: uint32_t ParticipatingVisuals() const override;
215 
218  private: Ogre::HlmsPbs* HlmsPbs() const;
219 
222  private: void SyncModeVisualizationMode();
223 
226 
228  private: friend class Ogre2Scene;
229  };
230  }
231  }
232 }
233 #endif