22 #include <ignition/math/Pose3.hh> 
   23 #include <ignition/math/Angle.hh> 
   28 #include "sdf/sdf_config.h" 
   34   inline namespace SDF_VERSION_NAMESPACE {
 
   39   struct PoseRelativeToGraph;
 
  102     public: 
void SetType(
const LightType _type);
 
  106     public: std::string Name() 
const;
 
  110     public: 
void SetName(
const std::string &_name) 
const;
 
  118     public: 
const ignition::math::Pose3d &Pose() 
const 
  125     public: 
void SetPose(
const ignition::math::Pose3d &_pose)
 
  133     public: 
const ignition::math::Pose3d &RawPose() 
const;
 
  138     public: 
void SetRawPose(
const ignition::math::Pose3d &_pose);
 
  144     public: 
const std::string &PoseRelativeTo() 
const;
 
  150     public: 
void SetPoseRelativeTo(
const std::string &_frame);
 
  157     public: 
const std::string &PoseFrame() 
const 
  165     public: 
void SetPoseFrame(
const std::string &_frame)
 
  175     public: 
bool CastShadows() 
const;
 
  179     public: 
void SetCastShadows(
const bool _cast);
 
  185     public: ignition::math::Color Diffuse() 
const;
 
  191     public: 
void SetDiffuse(
const ignition::math::Color &_color) 
const;
 
  197     public: ignition::math::Color Specular() 
const;
 
  203     public: 
void SetSpecular(
const ignition::math::Color &_color) 
const;
 
  207     public: 
double AttenuationRange() 
const;
 
  211     public: 
void SetAttenuationRange(
const double _range);
 
  217     public: 
double LinearAttenuationFactor() 
const;
 
  223     public: 
void SetLinearAttenuationFactor(
const double _factor);
 
  229     public: 
double ConstantAttenuationFactor() 
const;
 
  235     public: 
void SetConstantAttenuationFactor(
const double _factor);
 
  240     public: 
double QuadraticAttenuationFactor() 
const;
 
  245     public: 
void SetQuadraticAttenuationFactor(
const double _factor);
 
  251     public: ignition::math::Vector3d Direction() 
const;
 
  256     public: 
void SetDirection(
const ignition::math::Vector3d  &_dir);
 
  261     public: ignition::math::Angle SpotInnerAngle() 
const;
 
  266     public: 
void SetSpotInnerAngle(
const ignition::math::Angle &_angle);
 
  271     public: ignition::math::Angle SpotOuterAngle() 
const;
 
  276     public: 
void SetSpotOuterAngle(
const ignition::math::Angle &_angle);
 
  283     public: 
double SpotFalloff() 
const;
 
  290     public: 
void SetSpotFalloff(
const double _falloff);
 
  300     private: 
void CopyFrom(
const Light &_light);
 
  306     private: 
void SetXmlParentName(
const std::string &_xmlParentName);
 
  312     private: 
void SetPoseRelativeToGraph(
 
  313         std::weak_ptr<const PoseRelativeToGraph> _graph);
 
  323     private: LightPrivate *dataPtr = 
nullptr;