![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <Camera.h>

Classes | |
| struct | ProjectionInfo |
Public Types | |
| enum class | FovType { Vertical , Horizontal } |
| enum class | Projection { Perspective , Ortho } |
| using | Transform = Eigen::Transform< float, 3, Eigen::Affine > |
| using | ProjectionMatrix = Eigen::Transform< float, 3, Eigen::Projective > |
Public Member Functions | |
| virtual | ~Camera ()=default |
| virtual void | SetProjection (double fov, double aspect, double near, double far, FovType fov_type)=0 |
| virtual void | SetProjection (Projection projection, double left, double right, double bottom, double top, double near, double far)=0 |
| virtual void | SetProjection (const Eigen::Matrix3d &intrinsics, double near, double far, double width, double height)=0 |
| virtual void | LookAt (const Eigen::Vector3f ¢er, const Eigen::Vector3f &eye, const Eigen::Vector3f &up)=0 |
| virtual void | FromExtrinsics (const Eigen::Matrix4d &extrinsics) |
| virtual void | SetModelMatrix (const Transform &view)=0 |
| virtual void | SetModelMatrix (const Eigen::Vector3f &forward, const Eigen::Vector3f &left, const Eigen::Vector3f &up)=0 |
| virtual double | GetNear () const =0 |
| virtual double | GetFar () const =0 |
| virtual double | GetFieldOfView () const =0 |
| only valid if fov was passed to SetProjection() More... | |
| virtual FovType | GetFieldOfViewType () const =0 |
| only valid if fov was passed to SetProjection() More... | |
| virtual Eigen::Vector3f | GetPosition () const =0 |
| virtual Eigen::Vector3f | GetForwardVector () const =0 |
| virtual Eigen::Vector3f | GetLeftVector () const =0 |
| virtual Eigen::Vector3f | GetUpVector () const =0 |
| virtual Transform | GetModelMatrix () const =0 |
| virtual Transform | GetViewMatrix () const =0 |
| virtual ProjectionMatrix | GetProjectionMatrix () const =0 |
| virtual Transform | GetCullingProjectionMatrix () const =0 |
| virtual Eigen::Vector3f | Unproject (float x, float y, float z, float view_width, float view_height) const =0 |
| virtual Eigen::Vector2f | GetNDC (const Eigen::Vector3f &pt) const =0 |
| virtual double | GetViewZ (float z_buffer) const =0 |
| virtual const ProjectionInfo & | GetProjection () const =0 |
| virtual void | CopyFrom (const Camera *camera)=0 |
Static Public Member Functions | |
| 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. More... | |
| static float | CalcFarPlane (const rendering::Camera &camera, const ccBBox &scene_bounds) |
| using cloudViewer::visualization::rendering::Camera::ProjectionMatrix = Eigen::Transform<float, 3, Eigen::Projective> |
| using cloudViewer::visualization::rendering::Camera::Transform = Eigen::Transform<float, 3, Eigen::Affine> |
|
virtualdefault |
|
static |
Returns a value for the far plane that ensures that the entire bounds provided will not be clipped.
Definition at line 49 of file Camera.cpp.
References ccBBox::GetExtent(), ccBBox::GetMaxBound(), ccBBox::GetMinBound(), GetModelMatrix(), max(), and cloudViewer::visualization::rendering::MIN_FAR_PLANE.
Referenced by cloudViewer::visualization::rendering::PyOffscreenRenderer::SetupCamera(), SetupCameraAsPinholeCamera(), cloudViewer::visualization::rendering::RotationInteractorLogic::UpdateCameraFarPlane(), cloudViewer::visualization::gui::SceneWidget::Impl::UpdateFarPlane(), and cloudViewer::visualization::gui::SceneWidget::Impl::UpdateFromIntrinsicMatrix().
|
static |
Returns a good value for the near plane.
Definition at line 47 of file Camera.cpp.
References cloudViewer::visualization::rendering::NEAR_PLANE.
Referenced by cloudViewer::visualization::rendering::PyOffscreenRenderer::SetupCamera(), cloudViewer::visualization::gui::SceneWidget::Impl::UpdateFarPlane(), and cloudViewer::visualization::gui::SceneWidget::Impl::UpdateFromIntrinsicMatrix().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::pybind_rendering_classes().
|
virtual |
Definition at line 19 of file Camera.cpp.
References SetModelMatrix().
Referenced by SetupCameraAsPinholeCamera().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
pure virtual |
|
pure virtual |
only valid if fov was passed to SetProjection()
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::RotationInteractorLogic::CalcPanVectorWorld(), cloudViewer::visualization::rendering::pybind_rendering_classes(), cloudViewer::visualization::rendering::CameraInteractorLogic::StartMouseDrag(), and cloudViewer::visualization::rendering::CameraInteractorLogic::Zoom().
|
pure virtual |
only valid if fov was passed to SetProjection()
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::pybind_rendering_classes(), and cloudViewer::visualization::rendering::CameraInteractorLogic::Zoom().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::RotationInteractorLogic::CalcPanVectorWorld(), cloudViewer::visualization::rendering::ModelInteractorLogic::Dolly(), cloudViewer::visualization::visualizer::O3DVisualizer::Impl::EnableSunFollowsCamera(), cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::rendering::IBLRotationInteractorLogic::RotateZ(), and cloudViewer::visualization::rendering::ModelInteractorLogic::RotateZ().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::rendering::IBLRotationInteractorLogic::Rotate(), cloudViewer::visualization::rendering::LightDirectionInteractorLogic::Rotate(), and cloudViewer::visualization::rendering::ModelInteractorLogic::Rotate().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by CalcFarPlane(), cloudViewer::visualization::rendering::RotationInteractorLogic::CalcPanVectorWorld(), cloudViewer::visualization::rendering::FilamentCamera::CopyFrom(), cloudViewer::visualization::rendering::CameraInteractorLogic::Dolly(), cloudViewer::visualization::rendering::CameraInteractorLogic::MoveLocal(), cloudViewer::visualization::rendering::CameraInteractorLogic::RotateFly(), cloudViewer::visualization::rendering::CameraInteractorLogic::RotateLocal(), cloudViewer::visualization::rendering::CameraInteractorLogic::SetBoundingBox(), cloudViewer::visualization::rendering::CameraInteractorLogic::StartMouseDrag(), cloudViewer::visualization::rendering::CameraSphereInteractorLogic::StartMouseDrag(), and cloudViewer::visualization::rendering::CameraInteractorLogic::Zoom().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::gui::SceneWidget::Draw().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::RotationInteractorLogic::CalcPanVectorWorld(), cloudViewer::visualization::rendering::pybind_rendering_classes(), cloudViewer::visualization::rendering::Renderer::RenderToDepthImage(), and cloudViewer::visualization::rendering::CameraInteractorLogic::Zoom().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::RotationInteractorLogic::CalcPanVectorWorld(), cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::rendering::CameraInteractorLogic::RotateFly(), and cloudViewer::visualization::rendering::CameraInteractorLogic::Zoom().
|
pure virtual |
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::rendering::IBLRotationInteractorLogic::Rotate(), cloudViewer::visualization::rendering::LightDirectionInteractorLogic::Rotate(), and cloudViewer::visualization::rendering::ModelInteractorLogic::Rotate().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
pure virtual |
Returns the view space depth (i.e., distance from camera) for the given Z-buffer value
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
pure virtual |
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::CameraInteractorLogic::Dolly(), FromExtrinsics(), cloudViewer::visualization::rendering::CameraInteractorLogic::MoveLocal(), cloudViewer::visualization::rendering::CameraInteractorLogic::Pan(), cloudViewer::visualization::rendering::CameraInteractorLogic::Rotate(), cloudViewer::visualization::rendering::CameraSphereInteractorLogic::Rotate(), cloudViewer::visualization::rendering::CameraInteractorLogic::RotateFly(), cloudViewer::visualization::rendering::CameraInteractorLogic::RotateLocal(), and cloudViewer::visualization::rendering::CameraInteractorLogic::RotateZ().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::pybind_rendering_classes(), SetupCameraAsPinholeCamera(), cloudViewer::visualization::rendering::RotationInteractorLogic::UpdateCameraFarPlane(), and cloudViewer::visualization::rendering::CameraInteractorLogic::Zoom().
|
pure virtual |
Sets the projection matrix from a frustum defined by six planes.
| projection | type of Projection to use. |
| left | distance in world units from the camera to the left plane, at the near plane. |
| right | distance in world units from the camera to the right plane, at the near plane. |
| bottom | distance in world units from the camera to the bottom plane, at the near plane. |
| top | distance in world units from the camera to the top plane, at the near plane. |
| near | distance in world units from the camera to the near plane. The near plane's |
| far | distance in world units from the camera to the far plane. The far plane's |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
|
static |
Convenience function for configuring a camera as a pinhole camera. Configures the projection using the intrinsics and bounds, and the model matrix using the extrinsic matrix. Equivalent to calling SetProjection() and FromExtrinsics().
Definition at line 35 of file Camera.cpp.
References CalcFarPlane(), FromExtrinsics(), cloudViewer::visualization::rendering::NEAR_PLANE, and SetProjection().
Referenced by cloudViewer::visualization::rendering::PyOffscreenRenderer::SetupCamera(), and cloudViewer::visualization::gui::SceneWidget::SetupCamera().
|
pure virtual |
Implemented in cloudViewer::visualization::rendering::FilamentCamera.
Referenced by cloudViewer::visualization::rendering::pybind_rendering_classes().