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.