Go to the documentation of this file.00001
00004
00005
00006
00007
00008 #ifndef qglv_objects_CAMERA_HPP_
00009 #define qglv_objects_CAMERA_HPP_
00010
00011
00012
00013
00014
00015 #include <Eigen/Core>
00016 #include <memory>
00017 #include <sophus/se3.hpp>
00018
00019
00020
00021
00022
00023 namespace qglv {
00024
00025
00026
00027
00028
00029
00030 class Camera {
00031 public:
00053 Camera(const float& width, const float& height,
00054 const float& u0, const float& v0,
00055 const float& focal_length_in_pixels,
00056 const Sophus::SE3f& pose = Sophus::SE3f()
00057 );
00058
00059 void setPose(const Sophus::SE3f& T_cam_rel_map);
00066 void draw();
00067
00068 Sophus::SE3f pose;
00069 Eigen::Vector3f frustum[4], updated_frustum[4];
00070 unsigned int width, height;
00071 float focal_length;
00072 Eigen::Vector2f principal_point;
00073 };
00074
00075 typedef std::unique_ptr<Camera> CameraPtr;
00076
00077
00078
00079
00080
00081
00082 }
00083
00084 #endif