The Camera class provides utility functionality useful in camera's used with 3D scenes.
More...
#include <avogadro/rendering/camera.h>
|
| Camera (const Camera &o) |
Camera & | operator= (const Camera &o) |
void | translate (const Vector3f &translate) |
void | preTranslate (const Vector3f &translate) |
void | rotate (float angle, const Vector3f &axis) |
void | preRotate (float angle, const Vector3f &axis) |
void | scale (float scale) |
void | lookAt (const Vector3f &eye, const Vector3f ¢er, const Vector3f &up) |
float | distance (const Vector3f &point) const |
Vector3f | project (const Vector3f &point) const |
Vector3f | unProject (const Vector3f &point) const |
Vector3f | unProject (const Vector2f &point, const Vector3f &reference=Vector3f::Zero()) const |
void | calculatePerspective (float fieldOfView, float aspectRatio, float zNear, float zFar) |
void | calculatePerspective (float fieldOfView, float zNear, float zFar) |
void | calculatePerspective (float left, float right, float bottom, float top, float zNear, float zFar) |
void | calculateOrthographic (float left, float right, float bottom, float top, float zNear, float zFar) |
void | setViewport (int w, int h) |
int | width () const |
int | height () const |
void | setIdentity () |
void | setProjection (const Eigen::Affine3f &transform) |
const Eigen::Affine3f & | projection () const |
void | setModelView (const Eigen::Affine3f &transform) |
const Eigen::Affine3f & | modelView () const |
void | setProjectionType (Projection proj) |
Projection | projectionType () const |
void | setOrthographicScale (float newScale) |
float | orthographicScale () const |
void | setFocus (const Eigen::Vector3f &newFocus) |
Vector3f | focus () const |
◆ translate()
void translate |
( |
const Vector3f & | translate | ) |
|
Translate the camera's model view matrix using the supplied translation vector translate
.
◆ preTranslate()
void preTranslate |
( |
const Vector3f & | translate | ) |
|
Pretranslate the camera's model view matrix using the supplied translation vector translate
.
◆ rotate()
void rotate |
( |
float | angle, |
|
|
const Vector3f & | axis ) |
Rotate the camera about the supplied axis
by angle
(degrees).
◆ preRotate()
void preRotate |
( |
float | angle, |
|
|
const Vector3f & | axis ) |
Prerotate the camera about the supplied axis
by angle
(degrees).
◆ scale()
void scale |
( |
float | scale | ) |
|
Modify the matrix, to give the effect of zooming in or out.
◆ lookAt()
void lookAt |
( |
const Vector3f & | eye, |
|
|
const Vector3f & | center, |
|
|
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. |
◆ distance()
float distance |
( |
const Vector3f & | point | ) |
const |
Distance to supplied point point
and the camera.
◆ project()
Vector3f project |
( |
const Vector3f & | point | ) |
const |
Projects a point from the scene to the window.
◆ unProject() [1/2]
Vector3f unProject |
( |
const Vector3f & | point | ) |
const |
Unprojects a point from the window to the scene.
◆ unProject() [2/2]
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).
◆ calculatePerspective() [1/3]
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. |
◆ calculatePerspective() [2/3]
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. |
◆ calculatePerspective() [3/3]
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. |
◆ calculateOrthographic()
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. |
◆ setViewport()
void setViewport |
( |
int | w, |
|
|
int | h ) |
Set the dimensions of the viewport in pixels.
◆ width()
Get the width of the viewport in pixels.
◆ height()
Get the height of the viewport in pixels.
◆ setIdentity()
Set the model view matrix to the identity. This resets the model view matrix.
◆ setProjection()
void setProjection |
( |
const Eigen::Affine3f & | transform | ) |
|
Set the projection transform.
◆ projection()
const Eigen::Affine3f & projection |
( |
| ) |
const |
Get a reference to the projection matrix.
◆ setModelView()
void setModelView |
( |
const Eigen::Affine3f & | transform | ) |
|
Set the model view transform.
◆ modelView()
const Eigen::Affine3f & modelView |
( |
| ) |
const |
Get a reference to the model view matrix.
◆ setProjectionType()
void setProjectionType |
( |
Projection | proj | ) |
|
Set the projection type for this camera (Perspective or Orthographic).
- Parameters
-
proj | The projection type to use. |
◆ projectionType()
Projection projectionType |
( |
| ) |
const |
Get the projection type the camera is using.
- Returns
- The current projection type.
◆ setOrthographicScale()
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. |
◆ orthographicScale()
float orthographicScale |
( |
| ) |
const |
Get the value of the orthographic scale, defaults to 1.0.
- Returns
- The current value of the orthographic scale.
◆ setFocus()
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.
◆ focus()
Get focused point. Navigation actions shall occur relative to it.
The documentation for this class was generated from the following file: