17 #ifndef SDF_CAMERA_HH_ 
   18 #define SDF_CAMERA_HH_ 
   21 #include <ignition/math/Pose3.hh> 
   22 #include <ignition/utils/ImplPtr.hh> 
   27 #include <sdf/sdf_config.h> 
   32   inline namespace SDF_VERSION_NAMESPACE {
 
   68     public: 
bool operator==(
const Camera &_alt) 
const;
 
   74     public: 
bool operator!=(
const Camera &_alt) 
const;
 
   92     public: std::string Name() 
const;
 
   96     public: 
void SetName(
const std::string &_name);
 
  100     public: ignition::math::Angle HorizontalFov() 
const;
 
  104     public: 
void SetHorizontalFov(
const ignition::math::Angle &_hfov);
 
  108     public: uint32_t ImageWidth() 
const;
 
  112     public: 
void SetImageWidth(uint32_t _width);
 
  116     public: uint32_t ImageHeight() 
const;
 
  120     public: 
void SetImageHeight(uint32_t _height);
 
  133     public: std::string PixelFormatStr() 
const;
 
  137     public: 
void SetPixelFormatStr(
const std::string &_fmt);
 
  141     public: 
double DepthNearClip() 
const;
 
  145     public: 
void SetDepthNearClip(
double _near);
 
  149     public: 
double DepthFarClip() 
const;
 
  153     public: 
void SetDepthFarClip(
double _far);
 
  157     public: 
double NearClip() 
const;
 
  161     public: 
void SetNearClip(
double _near);
 
  165     public: 
void SetHasDepthCamera(
bool _camera);
 
  169     public: 
bool HasDepthCamera() 
const;
 
  175     public: 
void SetHasDepthNearClip(
bool _near);
 
  179     public: 
bool HasDepthNearClip() 
const;
 
  185     public: 
void SetHasDepthFarClip(
bool _far);
 
  189     public: 
bool HasDepthFarClip() 
const;
 
  193     public: 
double FarClip() 
const;
 
  197     public: 
void SetFarClip(
double _far);
 
  202     public: 
void SetHasSegmentationType(
bool _type);
 
  206     public: 
bool HasSegmentationType() 
const;
 
  210     public: 
const std::string &SegmentationType() 
const;
 
  214     public: 
void SetSegmentationType(
const std::string &_type);
 
  219     public: 
void SetHasBoundingBoxType(
bool _type);
 
  223     public: 
bool HasBoundingBoxType() 
const;
 
  227     public: 
const std::string &BoundingBoxType() 
const;
 
  231     public: 
void SetBoundingBoxType(
const std::string &_type);
 
  235     public: 
bool SaveFrames() 
const;
 
  239     public: 
void SetSaveFrames(
bool _save);
 
  243     public: 
const std::string &SaveFramesPath() 
const;
 
  247     public: 
void SetSaveFramesPath(
const std::string &_path);
 
  251     public: 
const Noise &ImageNoise() 
const;
 
  255     public: 
void SetImageNoise(
const Noise &_noise);
 
  259     public: 
double DistortionK1() 
const;
 
  263     public: 
void SetDistortionK1(
double _k1);
 
  267     public: 
double DistortionK2() 
const;
 
  271     public: 
void SetDistortionK2(
double _k2);
 
  275     public: 
double DistortionK3() 
const;
 
  279     public: 
void SetDistortionK3(
double _k3);
 
  283     public: 
double DistortionP1() 
const;
 
  287     public: 
void SetDistortionP1(
double _p1);
 
  291     public: 
double DistortionP2() 
const;
 
  295     public: 
void SetDistortionP2(
double _p2);
 
  299     public: 
const ignition::math::Vector2d &DistortionCenter() 
const;
 
  303     public: 
void SetDistortionCenter(
const ignition::math::Vector2d &_center);
 
  308     public: 
const ignition::math::Pose3d &RawPose() 
const;
 
  313     public: 
void SetRawPose(
const ignition::math::Pose3d &_pose);
 
  319     public: 
const std::string &PoseRelativeTo() 
const;
 
  325     public: 
void SetPoseRelativeTo(
const std::string &_frame);
 
  333     public: std::string LensType() 
const;
 
  338     public: 
void SetLensType(
const std::string &_type);
 
  343     public: 
bool LensScaleToHfov() 
const;
 
  348     public: 
void SetLensScaleToHfov(
bool _scale);
 
  352     public: 
double LensC1() 
const;
 
  356     public: 
void SetLensC1(
double _c1);
 
  360     public: 
double LensC2() 
const;
 
  364     public: 
void SetLensC2(
double _c2);
 
  368     public: 
double LensC3() 
const;
 
  372     public: 
void SetLensC3(
double _c3);
 
  376     public: 
double LensFocalLength() 
const;
 
  380     public: 
void SetLensFocalLength(
double _f);
 
  385     public: 
const std::string &LensFunction() 
const;
 
  390     public: 
void SetLensFunction(
const std::string &_fun);
 
  395     public: ignition::math::Angle LensCutoffAngle() 
const;
 
  400     public: 
void SetLensCutoffAngle(
const ignition::math::Angle &_angle);
 
  405     public: 
int LensEnvironmentTextureSize() 
const;
 
  410     public: 
void SetLensEnvironmentTextureSize(
int _size);
 
  414     public: 
double LensIntrinsicsFx() 
const;
 
  418     public: 
void SetLensIntrinsicsFx(
double _fx);
 
  422     public: 
double LensIntrinsicsFy() 
const;
 
  426     public: 
void SetLensIntrinsicsFy(
double _fy);
 
  430     public: 
double LensIntrinsicsCx() 
const;
 
  434     public: 
void SetLensIntrinsicsCx(
double _cx);
 
  438     public: 
double LensIntrinsicsCy() 
const;
 
  442     public: 
void SetLensIntrinsicsCy(
double _cy);
 
  446     public: 
double LensIntrinsicsSkew() 
const;
 
  450     public: 
void SetLensIntrinsicsSkew(
double _s);
 
  456                 const std::string &_format);
 
  465     public: uint32_t VisibilityMask() 
const;
 
  469     public: 
void SetVisibilityMask(uint32_t _mask);
 
  472     IGN_UTILS_IMPL_PTR(dataPtr)