10 #include <Eigen/Geometry>
15 namespace visualization {
25 Eigen::Transform<float, 3, Eigen::Affine, Eigen::DontAlign>;
27 Eigen::Transform<float, 3, Eigen::Projective, Eigen::DontAlign>;
29 using Transform = Eigen::Transform<float, 3, Eigen::Affine>;
77 virtual void LookAt(
const Eigen::Vector3f& center,
78 const Eigen::Vector3f& eye,
79 const Eigen::Vector3f& up) = 0;
84 const Eigen::Vector3f& left,
85 const Eigen::Vector3f& up) = 0;
107 float view_height)
const = 0;
113 virtual Eigen::Vector2f
GetNDC(
const Eigen::Vector3f& pt)
const = 0;
160 const Eigen::Matrix3d& intrinsic,
161 const Eigen::Matrix4d& extrinsic,
162 int intrinsic_width_px,
163 int intrinsic_height_px,
164 const ccBBox& scene_bounds);
172 const ccBBox& scene_bounds);
virtual Eigen::Vector3f GetUpVector() const =0
virtual Eigen::Vector2f GetNDC(const Eigen::Vector3f &pt) const =0
virtual Eigen::Vector3f GetLeftVector() const =0
virtual Transform GetViewMatrix() const =0
virtual Eigen::Vector3f Unproject(float x, float y, float z, float view_width, float view_height) const =0
virtual const ProjectionInfo & GetProjection() const =0
virtual void SetModelMatrix(const Eigen::Vector3f &forward, const Eigen::Vector3f &left, const Eigen::Vector3f &up)=0
Eigen::Transform< float, 3, Eigen::Affine > Transform
virtual double GetViewZ(float z_buffer) const =0
virtual Eigen::Vector3f GetForwardVector() const =0
virtual void CopyFrom(const Camera *camera)=0
virtual void SetModelMatrix(const Transform &view)=0
virtual ProjectionMatrix GetProjectionMatrix() const =0
virtual void FromExtrinsics(const Eigen::Matrix4d &extrinsics)
virtual void SetProjection(const Eigen::Matrix3d &intrinsics, double near, double far, double width, double height)=0
virtual Eigen::Vector3f GetPosition() const =0
virtual double GetNear() const =0
virtual Transform GetModelMatrix() const =0
virtual void SetProjection(Projection projection, double left, double right, double bottom, double top, double near, double far)=0
virtual double GetFar() const =0
Eigen::Transform< float, 3, Eigen::Projective > ProjectionMatrix
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()
static void SetupCameraAsPinholeCamera(rendering::Camera &camera, const Eigen::Matrix3d &intrinsic, const Eigen::Matrix4d &extrinsic, int intrinsic_width_px, int intrinsic_height_px, const ccBBox &scene_bounds)
static float CalcNearPlane()
Returns a good value for the near plane.
virtual ~Camera()=default
virtual void SetProjection(double fov, double aspect, double near, double far, FovType fov_type)=0
static float CalcFarPlane(const rendering::Camera &camera, const ccBBox &scene_bounds)
virtual Transform GetCullingProjectionMatrix() const =0
virtual void LookAt(const Eigen::Vector3f ¢er, const Eigen::Vector3f &eye, const Eigen::Vector3f &up)=0
Generic file read and write utility for python interface.
struct cloudViewer::visualization::rendering::Camera::ProjectionInfo::@23::@26 intrinsics
struct cloudViewer::visualization::rendering::Camera::ProjectionInfo::@23::@24 ortho
union cloudViewer::visualization::rendering::Camera::ProjectionInfo::@23 proj
struct cloudViewer::visualization::rendering::Camera::ProjectionInfo::@23::@25 perspective