Gazebo Rendering

API Reference

9.0.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
27namespace Ogre
28{
29 class HlmsPbs;
30 class VctCascadeSetting;
31}
32
33namespace 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
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