17 #ifndef GZ_RENDERING_BASE_BASELIGHTVISUAL_HH_
18 #define GZ_RENDERING_BASE_BASELIGHTVISUAL_HH_
31 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
46 protected:
virtual void Init()
override;
49 protected:
virtual void PreRender()
override;
55 public:
virtual void SetInnerAngle(
double _innerAngle)
override;
58 public:
virtual double InnerAngle()
override;
61 public:
virtual void SetOuterAngle(
double _innerAngle)
override;
64 public:
virtual double OuterAngle()
override;
76 protected:
double innerAngle = 0;
79 protected:
double outerAngle = 0;
82 protected:
bool dirtyLightVisual =
false;
116 this->dirtyLightVisual =
true;
130 this->innerAngle = _innerAngle;
131 this->dirtyLightVisual =
true;
138 return this->innerAngle;
145 this->outerAngle = _outerAngle;
146 this->dirtyLightVisual =
true;
153 return this->outerAngle;
223 angles[0] = range * tan(outerAngle / 2.0);
224 angles[1] = range * tan(innerAngle / 2.0);
231 for (i = 0; i < 2; i++)
235 angles[i], angles[i], -range));
239 -angles[i], -angles[i], -range));
243 angles[i], -angles[i], -range));
247 -angles[i], angles[i], -range));
250 angles[i], angles[i], -range));
252 -angles[i], angles[i], -range));
255 -angles[i], angles[i], -range));
257 -angles[i], -angles[i], -range));
260 -angles[i], -angles[i], -range));
262 angles[i], -angles[i], -range));
265 angles[i], -angles[i], -range));
267 angles[i], angles[i], -range));