ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::visualization::rendering::FilamentCamera Class Reference

#include <FilamentCamera.h>

Inheritance diagram for cloudViewer::visualization::rendering::FilamentCamera:
Collaboration diagram for cloudViewer::visualization::rendering::FilamentCamera:

Public Member Functions

 FilamentCamera (filament::Engine &engine)
 
 ~FilamentCamera ()
 
void SetProjection (double fov, double aspect, double near, double far, FovType fov_type) override
 
void SetProjection (Projection projection, double left, double right, double bottom, double top, double near, double far) override
 
void SetProjection (const Eigen::Matrix3d &intrinsics, double near, double far, double width, double height) override
 
void LookAt (const Eigen::Vector3f &center, const Eigen::Vector3f &eye, const Eigen::Vector3f &up) override
 
void SetModelMatrix (const Transform &view) override
 
void SetModelMatrix (const Eigen::Vector3f &forward, const Eigen::Vector3f &left, const Eigen::Vector3f &up) override
 
double GetNear () const override
 
double GetFar () const override
 
double GetFieldOfView () const override
 only valid if fov was passed to SetProjection() More...
 
FovType GetFieldOfViewType () const override
 only valid if fov was passed to SetProjection() More...
 
Eigen::Vector3f GetPosition () const override
 
Eigen::Vector3f GetForwardVector () const override
 
Eigen::Vector3f GetLeftVector () const override
 
Eigen::Vector3f GetUpVector () const override
 
Transform GetModelMatrix () const override
 
Transform GetViewMatrix () const override
 
ProjectionMatrix GetProjectionMatrix () const override
 
Transform GetCullingProjectionMatrix () const override
 
const ProjectionInfoGetProjection () const override
 
Eigen::Vector3f Unproject (float x, float y, float z, float view_width, float view_height) const override
 
Eigen::Vector2f GetNDC (const Eigen::Vector3f &pt) const override
 
double GetViewZ (float z_buffer) const override
 
void CopyFrom (const Camera *camera) override
 
filament::Camera * GetNativeCamera () const
 
- Public Member Functions inherited from cloudViewer::visualization::rendering::Camera
virtual ~Camera ()=default
 
virtual void FromExtrinsics (const Eigen::Matrix4d &extrinsics)
 

Additional Inherited Members

- Public Types inherited from cloudViewer::visualization::rendering::Camera
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 >
 
- Static Public Member Functions inherited from cloudViewer::visualization::rendering::Camera
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)
 

Detailed Description

Definition at line 25 of file FilamentCamera.h.

Constructor & Destructor Documentation

◆ FilamentCamera()

cloudViewer::visualization::rendering::FilamentCamera::FilamentCamera ( filament::Engine &  engine)
explicit

◆ ~FilamentCamera()

cloudViewer::visualization::rendering::FilamentCamera::~FilamentCamera ( )

Definition at line 71 of file FilamentCamera.cpp.

Member Function Documentation

◆ CopyFrom()

void cloudViewer::visualization::rendering::FilamentCamera::CopyFrom ( const Camera camera)
overridevirtual

◆ GetCullingProjectionMatrix()

Camera::Transform cloudViewer::visualization::rendering::FilamentCamera::GetCullingProjectionMatrix ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 272 of file FilamentCamera.cpp.

◆ GetFar()

double cloudViewer::visualization::rendering::FilamentCamera::GetFar ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 190 of file FilamentCamera.cpp.

◆ GetFieldOfView()

◆ GetFieldOfViewType()

◆ GetForwardVector()

Eigen::Vector3f cloudViewer::visualization::rendering::FilamentCamera::GetForwardVector ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 237 of file FilamentCamera.cpp.

◆ GetLeftVector()

Eigen::Vector3f cloudViewer::visualization::rendering::FilamentCamera::GetLeftVector ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 242 of file FilamentCamera.cpp.

◆ GetModelMatrix()

Camera::Transform cloudViewer::visualization::rendering::FilamentCamera::GetModelMatrix ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 252 of file FilamentCamera.cpp.

◆ GetNativeCamera()

filament::Camera* cloudViewer::visualization::rendering::FilamentCamera::GetNativeCamera ( ) const
inline

Definition at line 87 of file FilamentCamera.h.

◆ GetNDC()

Eigen::Vector2f cloudViewer::visualization::rendering::FilamentCamera::GetNDC ( const Eigen::Vector3f &  pt) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 278 of file FilamentCamera.cpp.

◆ GetNear()

double cloudViewer::visualization::rendering::FilamentCamera::GetNear ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 188 of file FilamentCamera.cpp.

Referenced by GetViewZ().

◆ GetPosition()

Eigen::Vector3f cloudViewer::visualization::rendering::FilamentCamera::GetPosition ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 232 of file FilamentCamera.cpp.

◆ GetProjection()

const Camera::ProjectionInfo & cloudViewer::visualization::rendering::FilamentCamera::GetProjection ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 299 of file FilamentCamera.cpp.

◆ GetProjectionMatrix()

Camera::ProjectionMatrix cloudViewer::visualization::rendering::FilamentCamera::GetProjectionMatrix ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 262 of file FilamentCamera.cpp.

Referenced by Unproject().

◆ GetUpVector()

Eigen::Vector3f cloudViewer::visualization::rendering::FilamentCamera::GetUpVector ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 247 of file FilamentCamera.cpp.

◆ GetViewMatrix()

Camera::Transform cloudViewer::visualization::rendering::FilamentCamera::GetViewMatrix ( ) const
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 257 of file FilamentCamera.cpp.

Referenced by Unproject().

◆ GetViewZ()

double cloudViewer::visualization::rendering::FilamentCamera::GetViewZ ( float  z_buffer) const
overridevirtual

Returns the view space depth (i.e., distance from camera) for the given Z-buffer value

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 290 of file FilamentCamera.cpp.

References GetNear(), and infinity().

◆ LookAt()

void cloudViewer::visualization::rendering::FilamentCamera::LookAt ( const Eigen::Vector3f &  center,
const Eigen::Vector3f &  eye,
const Eigen::Vector3f &  up 
)
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 218 of file FilamentCamera.cpp.

◆ SetModelMatrix() [1/2]

void cloudViewer::visualization::rendering::FilamentCamera::SetModelMatrix ( const Eigen::Vector3f &  forward,
const Eigen::Vector3f &  left,
const Eigen::Vector3f &  up 
)
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 303 of file FilamentCamera.cpp.

◆ SetModelMatrix() [2/2]

void cloudViewer::visualization::rendering::FilamentCamera::SetModelMatrix ( const Transform view)
overridevirtual

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 316 of file FilamentCamera.cpp.

Referenced by CopyFrom().

◆ SetProjection() [1/3]

void cloudViewer::visualization::rendering::FilamentCamera::SetProjection ( const Eigen::Matrix3d &  intrinsics,
double  near,
double  far,
double  width,
double  height 
)
overridevirtual

◆ SetProjection() [2/3]

◆ SetProjection() [3/3]

void cloudViewer::visualization::rendering::FilamentCamera::SetProjection ( Projection  projection,
double  left,
double  right,
double  bottom,
double  top,
double  near,
double  far 
)
overridevirtual

Sets the projection matrix from a frustum defined by six planes.

Parameters
projectiontype of Projection to use.
leftdistance in world units from the camera to the left plane, at the near plane.
rightdistance in world units from the camera to the right plane, at the near plane.
bottomdistance in world units from the camera to the bottom plane, at the near plane.
topdistance in world units from the camera to the top plane, at the near plane.
neardistance in world units from the camera to the near plane. The near plane's
fardistance in world units from the camera to the far plane. The far plane's

Implements cloudViewer::visualization::rendering::Camera.

Definition at line 123 of file FilamentCamera.cpp.

References cloudViewer::visualization::rendering::Camera::ProjectionInfo::is_intrinsic, cloudViewer::visualization::rendering::Camera::ProjectionInfo::is_ortho, cloudViewer::visualization::rendering::Camera::Ortho, cloudViewer::visualization::rendering::Camera::ProjectionInfo::ortho, and cloudViewer::visualization::rendering::Camera::ProjectionInfo::proj.

◆ Unproject()

Eigen::Vector3f cloudViewer::visualization::rendering::FilamentCamera::Unproject ( float  x,
float  y,
float  z,
float  view_width,
float  view_height 
) const
overridevirtual

The documentation for this class was generated from the following files: