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 | 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/2]
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/2]
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. |
◆ 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: