Public Types |
enum | ProjectionType { ORTHO,
ORTHO2D,
FRUSTUM,
PERSPECTIVE
} |
| Range of projection types. More...
|
enum | AdjustAspectRatioMode { ADJUST_VERTICAL,
ADJUST_HORIZONTAL,
ADJUST_NONE
} |
| Use in combination with adjustAspectRatio, to control the change in frustum clipping planes to account for changes in windows aspect ratio,. More...
|
enum | LookAtType { USE_HOME_POSITON,
USE_EYE_AND_QUATERNION,
USE_EYE_CENTER_AND_UP
} |
enum | TransformMode { EYE_TO_MODEL,
MODEL_TO_EYE,
NO_ATTACHED_TRANSFORM
} |
enum | FusionDistanceMode { PROPORTIONAL_TO_LOOK_DISTANCE,
PROPORTIONAL_TO_SCREEN_DISTANCE
} |
Public Methods |
| Camera (DisplaySettings *ds=NULL) |
| Camera (const Camera &) |
Camera & | operator= (const Camera &) |
virtual | ~Camera () |
const ProjectionType | getProjectionType () const |
| Get the projection type set by setOtho,setOtho2D,setFrustum, and set perspective methods.
|
void | setOrtho (const double left, const double right, const double bottom, const double top, const double zNear, const double zFar) |
| Set a orthographic projection.
|
void | setOrtho2D (const double left, const double right, const double bottom, const double top) |
| Set a 2D orthographic projection.
|
void | setFrustum (const double left, const double right, const double bottom, const double top, const double zNear, const double zFar) |
| Set a perspective projection.
|
void | setPerspective (const double fovy, const double aspectRatio, const double zNear, const double zFar) |
| Set a symmetrical perspective projection, See gluPerspective for further details.
|
void | setFOV (const double fovx, const double fovy, const double zNear, const double zFar) |
| Set a sysmmetical perspective projection using field of view.
|
void | setNearFar (const double zNear, const double zFar) |
| Set the near and far clipping planes.
|
void | setAdjustAspectRatioMode (const AdjustAspectRatioMode aam) |
| Set the way that the vertical or horizontal dimensions of the window are adjusted on a resize.
|
const AdjustAspectRatioMode | getAdjustAspectRatioMode () const |
| Get the way that the vertical or horizontal dimensions of the window are adjusted on a resize.
|
void | adjustAspectRatio (const double newAspectRatio) |
| Adjust the clipping planes to account for a new window aspect ratio.
|
void | adjustAspectRatio (const double newAspectRatio, const AdjustAspectRatioMode aa) |
| Adjust the clipping planes to account for a new window aspect ratio.
|
const double | left () const |
const double | right () const |
const double | bottom () const |
const double | top () const |
const double | zNear () const |
const double | zFar () const |
const double | calc_fovy () const |
| Calculate and return the equivalent fovx for the current project setting.
|
const double | calc_fovx () const |
| Calculate and return the equivalent fovy for the current project setting.
|
const double | calc_aspectRatio () const |
| Calculate and return the projection aspect ratio.
|
const LookAtType | getLookAtType () const |
void | home () |
| hardwired home view for now, looking straight down the Z axis at the origin, with 'up' being the y axis.
|
void | setView (const Vec3 &eyePoint, const Vec3 &lookPoint, const Vec3 &upVector) |
| Set the View, the up vector should be orthogonal to the look vector.
|
void | setLookAt (const Vec3 &eye, const Vec3 ¢er, const Vec3 &up) |
| set the position and orientation of the camera, using the same convention as gluLookAt.
|
void | setLookAt (const double eyeX, const double eyeY, const double eyeZ, const double centerX, const double centerY, const double centerZ, const double upX, const double upY, const double upZ) |
| set the position and orientation of the camera, using the same convention as gluLookAt.
|
void | transformLookAt (const Matrix &matrix) |
| post multiple the existing eye point and orientation by matrix.
|
void | ensureOrthogonalUpVector () |
const Vec3 & | getEyePoint () const |
| get the eye point.
|
const Vec3 & | getCenterPoint () const |
| get the center point.
|
const Vec3 & | getUpVector () const |
| get the up vector
|
const Vec3 | getLookVector () const |
| calculate look vector.
|
const Vec3 | getSideVector () const |
| calculate side vector.
|
float | getLookDistance () const |
| calculate the look distance which is the distance between the eye and the center.
|
void | attachTransform (const TransformMode mode, Matrix *modelTransform=0) |
| Attach a transform matrix which is applied after the camera look at.
|
Matrix * | getTransform (const TransformMode mode) |
const Matrix * | getTransform (const TransformMode mode) const |
void | setFusionDistanceMode (FusionDistanceMode mode) |
| Set the mode of the fusion distance function which in use to calculate the fusion distance used in stereo rendering.
|
FusionDistanceMode | getFusionDistanceMode () const |
| Get the mode of the fusion distance function.
|
void | setFusionDistanceRatio (float ratio) |
| Set the ratio of the fusion distance function which in use to calculate the fusion distance used in stereo rendering.
|
float | getFusionDistanceRatio () const |
| Get the ratio of the fusion distance function.
|
const float | getFusionDistance () const |
| Calculate and return the fusion distance, using the FusionDistanceFunction.
|
void | setScreenDistance (float screenDistance) |
| Set the physical distance between the viewers eyes and the display system.
|
const float | getScreenDistance () const |
| Get the physical distance between the viewers eyes and the display system.
|
const Matrix | getProjectionMatrix () const |
| Get the Projection Matrix.
|
const Matrix | getModelViewMatrix () const |
| Get the ModelView matrix.
|
Polytope | getViewFrustum () const |
| Get the camera view frustum.
|
Protected Methods |
void | copy (const Camera &) |
Protected Attributes |
ProjectionType | _projectionType |
AdjustAspectRatioMode | _adjustAspectRatioMode |
double | _left |
double | _right |
double | _bottom |
double | _top |
double | _zNear |
double | _zFar |
LookAtType | _lookAtType |
Vec3 | _eye |
Vec3 | _center |
Vec3 | _up |
TransformMode | _attachedTransformMode |
ref_ptr< Matrix > | _eyeToModelTransform |
ref_ptr< Matrix > | _modelToEyeTransform |
float | _screenDistance |
FusionDistanceMode | _fusionDistanceMode |
float | _fusionDistanceRatio |
Creates a projection and modelview matrices which can be used to set OpenGL's PROJECTION and MODELVIEW matrices respectively.