22 #include <gz/math/Pose3.hh> 
   23 #include <gz/math/Angle.hh> 
   24 #include <gz/utils/ImplPtr.hh> 
   35   inline namespace SDF_VERSION_NAMESPACE {
 
   39   struct PoseRelativeToGraph;
 
   40   template <
typename T> 
class ScopedGraph;
 
   82     public: 
void SetType(
const LightType _type);
 
   86     public: std::string Name() 
const;
 
   90     public: 
void SetName(
const std::string &_name);
 
   97     public: 
const gz::math::Pose3d &RawPose() 
const;
 
  102     public: 
void SetRawPose(
const gz::math::Pose3d &_pose);
 
  108     public: 
const std::string &PoseRelativeTo() 
const;
 
  114     public: 
void SetPoseRelativeTo(
const std::string &_frame);
 
  123     public: 
bool CastShadows() 
const;
 
  127     public: 
void SetCastShadows(
const bool _cast);
 
  131     public: 
bool LightOn() 
const;
 
  135     public: 
void SetLightOn(
const bool _isLightOn);
 
  139     public: 
bool Visualize() 
const;
 
  143     public: 
void SetVisualize(
const bool _visualize);
 
  147     public: 
double Intensity() 
const;
 
  151     public: 
void SetIntensity(
const double _intensity);
 
  157     public: gz::math::Color Diffuse() 
const;
 
  163     public: 
void SetDiffuse(
const gz::math::Color &_color);
 
  169     public: gz::math::Color Specular() 
const;
 
  175     public: 
void SetSpecular(
const gz::math::Color &_color);
 
  179     public: 
double AttenuationRange() 
const;
 
  183     public: 
void SetAttenuationRange(
const double _range);
 
  189     public: 
double LinearAttenuationFactor() 
const;
 
  195     public: 
void SetLinearAttenuationFactor(
const double _factor);
 
  201     public: 
double ConstantAttenuationFactor() 
const;
 
  207     public: 
void SetConstantAttenuationFactor(
const double _factor);
 
  212     public: 
double QuadraticAttenuationFactor() 
const;
 
  217     public: 
void SetQuadraticAttenuationFactor(
const double _factor);
 
  223     public: gz::math::Vector3d Direction() 
const;
 
  228     public: 
void SetDirection(
const gz::math::Vector3d  &_dir);
 
  233     public: gz::math::Angle SpotInnerAngle() 
const;
 
  238     public: 
void SetSpotInnerAngle(
const gz::math::Angle &_angle);
 
  243     public: gz::math::Angle SpotOuterAngle() 
const;
 
  248     public: 
void SetSpotOuterAngle(
const gz::math::Angle &_angle);
 
  255     public: 
double SpotFalloff() 
const;
 
  262     public: 
void SetSpotFalloff(
const double _falloff);
 
  272     private: 
void CopyFrom(
const Light &_light);
 
  278     private: 
void SetXmlParentName(
const std::string &_xmlParentName);
 
  284     private: 
void SetPoseRelativeToGraph(
 
  302     GZ_UTILS_IMPL_PTR(dataPtr)