17 #ifndef GZ_RENDERING_BASE_BASELIGHT_HH_
18 #define GZ_RENDERING_BASE_BASELIGHT_HH_
26 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
38 public:
virtual void SetDiffuseColor(
double _r,
double _g,
double _b,
42 public:
virtual void SetDiffuseColor(
const math::Color &_color) = 0;
45 public:
virtual void SetSpecularColor(
double _r,
double _g,
double _b,
49 public:
virtual void SetSpecularColor(
const math::Color &_color) = 0;
52 public:
virtual void SetAttenuationConstant(
double _value) = 0;
55 public:
virtual void SetAttenuationLinear(
double _value) = 0;
58 public:
virtual void SetAttenuationQuadratic(
double _value) = 0;
61 public:
virtual void SetAttenuationRange(
double _range) = 0;
64 public:
virtual void SetCastShadows(
bool _castShadows) = 0;
67 protected:
virtual void Reset();
79 public:
virtual void SetDirection(
double _x,
double _y,
double _z);
83 protected:
virtual void Reset();
105 public:
virtual void SetDirection(
double _x,
double _y,
double _z);
107 public:
virtual void SetDirection(
const math::Vector3d &_dir) = 0;
109 public:
virtual void SetInnerAngle(
double _radians);
111 public:
virtual void SetInnerAngle(
const math::Angle &_angle) = 0;
113 public:
virtual void SetOuterAngle(
double _radians);
115 public:
virtual void SetOuterAngle(
const math::Angle &_angle) = 0;
117 public:
virtual void SetFalloff(
double _falloff) = 0;
119 protected:
virtual void Reset();
139 this->SetDiffuseColor(
math::Color(_r, _g, _b, _a));
147 this->SetSpecularColor(
math::Color(_r, _g, _b, _a));
156 this->SetAttenuationConstant(1);
157 this->SetAttenuationLinear(0);
158 this->SetAttenuationQuadratic(0);
159 this->SetAttenuationRange(100);
160 this->SetCastShadows(
true);
161 this->SetIntensity(1.0);
188 this->SetDirection(0, 0, -1);
241 this->SetDirection(0, 0, -1);
242 this->SetInnerAngle(
GZ_PI / 4.5);
243 this->SetOuterAngle(
GZ_PI / 4.0);
244 this->SetFalloff(1.0);