Avogadro::Rendering::Camera#
-
class Camera#
The Camera class provides utility functionality useful in camera’s used with 3D scenes.
- Author
Marcus D. Hanwell
Public Functions
-
Camera()#
-
~Camera()#
-
void translate(const Vector3f &translate)#
Translate the camera’s model view matrix using the supplied translation vector
translate
.
-
void preTranslate(const Vector3f &translate)#
Pretranslate the camera’s model view matrix using the supplied translation vector
translate
.
-
void rotate(float angle, const Vector3f &axis)#
Rotate the camera about the supplied
axis
byangle
(degrees).
-
void preRotate(float angle, const Vector3f &axis)#
Prerotate the camera about the supplied
axis
byangle
(degrees).
-
void scale(float scale)#
Modify the matrix, to give the effect of zooming in or out.
-
void lookAt(const Vector3f &eye, const Vector3f ¢er, const Vector3f &up)#
Set the model-view matrix to the “look at” transformation matrix.
- Parameters:
eye – the position of the eye/camera.
center – the position to look at.
up – the vector pointing up.
-
float distance(const Vector3f &point) const#
Distance to supplied point
point
and the camera.
-
Vector3f project(const Vector3f &point) const#
Projects a point from the scene to the window.
-
Vector3f unProject(const Vector3f &point) const#
Unprojects a point from the window to the scene.
-
Vector3f unProject(const Vector2f &point, const Vector3f &reference = Vector3f::Zero()) const#
Unprojects a point from the window to the scene, using the supplied reference point (defaults to the origin if nothing is supplied).
-
void calculatePerspective(float fieldOfView, float aspectRatio, float zNear, float zFar)#
Calculate the perspective projection matrix.
- Parameters:
fieldOfView – angle in degrees in the y direction.
aspectRatio – is the ratio of width to height.
zNear – is the distance from the viewer to the near clipping plane.
zFar – is the distance from the viewer to the far clipping plane.
-
void calculatePerspective(float fieldOfView, float zNear, float zFar)#
Calculate the perspective projection matrix. Computes the aspect ratio from the width and height stored by the Camera object.
- Parameters:
fieldOfView – angle in degrees in the y direction.
zNear – is the distance from the viewer to the near clipping plane.
zFar – is the distance from the viewer to the far clipping plane.
-
void calculatePerspective(float left, float right, float bottom, float top, float zNear, float zFar)#
Calculate the perspective projection matrix using frustum planes coordinates.
- Parameters:
left – left vertical clipping plane.
right – right vertical clipping plane.
bottom – bottom horizontal clipping plane.
top – top horizontal clipping plane.
zNear – distance to the near clipping plane.
zFar – distance to the far clipping plane.
-
void calculateOrthographic(float left, float right, float bottom, float top, float zNear, float zFar)#
Calculate the orthographic projection matrix.
- Parameters:
left – left vertical clipping plane.
right – right vertical clipping plane.
bottom – bottom horizontal clipping plane.
top – top horizontal clipping plane.
zNear – distance to the near clipping plane.
zFar – distance to the far clipping plane.
-
void setViewport(int w, int h)#
Set the dimensions of the viewport in pixels.
-
inline int width() const#
Get the width of the viewport in pixels.
-
inline int height() const#
Get the height of the viewport in pixels.
-
inline void setIdentity()#
Set the model view matrix to the identity. This resets the model view matrix.
-
void setProjection(const Eigen::Affine3f &transform)#
Set the projection transform.
-
inline const Eigen::Affine3f &projection() const#
Get a reference to the projection matrix.
-
void setModelView(const Eigen::Affine3f &transform)#
Set the model view transform.
-
inline const Eigen::Affine3f &modelView() const#
Get a reference to the model view matrix.
-
inline void setProjectionType(Projection proj)#
Set the projection type for this camera (Perspective or Orthographic).
- Parameters:
proj – The projection type to use.
-
inline Projection projectionType() const#
Get the projection type the camera is using.
- Returns:
The current projection type.
-
inline void setOrthographicScale(float newScale)#
Set the orthographic scale, this defaults to 1.0. Affects calculation of the orthographic projection matrix.
- Parameters:
newScale – The factor to scale orthographic projection by.
-
inline float orthographicScale() const#
Get the value of the orthographic scale, defaults to 1.0.
- Returns:
The current value of the orthographic scale.
-
inline void setFocus(const Eigen::Vector3f &newFocus)#
Set focused point. Navigation actions shall occur relative to it. Note that this method does not cause any change in camera matrices.
-
inline Vector3f focus() const#
Get focused point. Navigation actions shall occur relative to it.