29 #include <Eigen/Geometry> 32 namespace visualization {
38 using Transform = Eigen::Transform<float, 3, Eigen::Affine>;
78 virtual double GetNear()
const = 0;
79 virtual double GetFar()
const = 0;
87 const Eigen::Vector3f& left,
88 const Eigen::Vector3f& up) = 0;
90 virtual void LookAt(
const Eigen::Vector3f& center,
91 const Eigen::Vector3f& eye,
92 const Eigen::Vector3f& up) = 0;
virtual void SetModelMatrix(const Transform &view)=0
virtual ~Camera()=default
virtual Transform GetProjectionMatrix() const =0
virtual Eigen::Vector3f GetPosition() const =0
virtual void LookAt(const Eigen::Vector3f ¢er, const Eigen::Vector3f &eye, const Eigen::Vector3f &up)=0
virtual double GetFar() const =0
virtual Eigen::Vector3f GetUpVector() const =0
virtual double GetFieldOfView() const =0
only valid if fov was passed to SetProjection()
virtual FovType GetFieldOfViewType() const =0
only valid if fov was passed to SetProjection()
virtual Eigen::Vector3f GetLeftVector() const =0
Projection
Definition: Camera.h:37
Definition: Open3DViewer.h:29
virtual Transform GetModelMatrix() const =0
FovType
Definition: Camera.h:36
virtual void SetProjection(double fov, double aspect, double near, double far, FovType fov_type)=0
virtual double GetNear() const =0
virtual Transform GetViewMatrix() const =0
Eigen::Transform< float, 3, Eigen::Affine > Transform
Definition: Camera.h:38
virtual Eigen::Vector3f GetForwardVector() const =0