![]() |
Cinder
0.9.1
|
#include <Camera.h>
Inherits cinder::Camera.
Inherited by cinder::CameraStereo.
Public Member Functions | |
CameraPersp () | |
CameraPersp (int pixelWidth, int pixelHeight, float fov) | |
CameraPersp (int pixelWidth, int pixelHeight, float fov, float nearPlane, float farPlane) | |
void | setPerspective (float verticalFovDegrees, float aspectRatio, float nearPlane, float farPlane) |
void | getLensShift (float *horizontal, float *vertical) const |
vec2 | getLensShift () const |
void | setLensShift (float horizontal, float vertical) |
void | setLensShift (const vec2 &shift) |
float | getLensShiftHorizontal () const |
void | setLensShiftHorizontal (float horizontal) |
float | getLensShiftVertical () const |
void | setLensShiftVertical (float vertical) |
bool | isPersp () const override |
CameraPersp | calcFraming (const Sphere &worldSpaceSphere) const |
vec3 | getEyePoint () const |
void | setEyePoint (const vec3 &eyePoint) |
vec3 | getWorldUp () const |
void | setWorldUp (const vec3 &worldUp) |
void | lookAt (const vec3 &target) |
void | lookAt (const vec3 &eyePoint, const vec3 &target) |
void | lookAt (const vec3 &eyePoint, const vec3 &target, const vec3 &up) |
vec3 | getViewDirection () const |
void | setViewDirection (const vec3 &viewDirection) |
quat | getOrientation () const |
void | setOrientation (const quat &orientation) |
float | getFov () const |
void | setFov (float verticalFov) |
float | getFovHorizontal () const |
void | setFovHorizontal (float horizontalFov) |
float | getFocalLength () const |
float | getPivotDistance () const |
void | setPivotDistance (float distance) |
vec3 | getPivotPoint () const |
float | getAspectRatio () const |
void | setAspectRatio (float aAspectRatio) |
float | getNearClip () const |
void | setNearClip (float nearClip) |
float | getFarClip () const |
void | setFarClip (float farClip) |
virtual void | getNearClipCoordinates (vec3 *topLeft, vec3 *topRight, vec3 *bottomLeft, vec3 *bottomRight) const |
virtual void | getFarClipCoordinates (vec3 *topLeft, vec3 *topRight, vec3 *bottomLeft, vec3 *bottomRight) const |
void | getFrustum (float *left, float *top, float *right, float *bottom, float *near, float *far) const |
virtual const mat4 & | getProjectionMatrix () const |
virtual const mat4 & | getViewMatrix () const |
virtual const mat4 & | getInverseViewMatrix () const |
Ray | generateRay (float u, float v, float imagePlaneAspectRatio) const |
Ray | generateRay (const vec2 &posPixels, const vec2 &imageSizePixels) const |
void | getBillboardVectors (vec3 *right, vec3 *up) const |
vec2 | worldToScreen (const vec3 &worldCoord, float screenWidth, float screenHeight) const |
vec2 | eyeToScreen (const vec3 &eyeCoord, const vec2 &screenSizePixels) const |
vec3 | worldToEye (const vec3 &worldCoord) const |
float | worldToEyeDepth (const vec3 &worldCoord) const |
vec3 | worldToNdc (const vec3 &worldCoord) const |
float | calcScreenArea (const Sphere &sphere, const vec2 &screenSizePixels) const |
void | calcScreenProjection (const Sphere &sphere, const vec2 &screenSizePixels, vec2 *outCenter, vec2 *outAxisA, vec2 *outAxisB) const |
Protected Member Functions | |
void | calcProjection () const override |
Ray | calcRay (float u, float v, float imagePlaneAspectRatio) const override |
void | calcMatrices () const |
virtual void | calcViewMatrix () const |
virtual void | calcInverseView () const |
Protected Attributes | |
vec2 | mLensShift |
vec3 | mEyePoint |
vec3 | mViewDirection |
quat | mOrientation |
vec3 | mWorldUp |
float | mFov |
float | mAspectRatio |
float | mNearClip |
float | mFarClip |
float | mPivotDistance |
vec3 | mU |
vec3 | mV |
vec3 | mW |
mat4 | mProjectionMatrix |
mat4 | mInverseProjectionMatrix |
bool | mProjectionCached |
mat4 | mViewMatrix |
bool | mModelViewCached |
mat4 | mInverseModelViewMatrix |
bool | mInverseModelViewCached |
float | mFrustumLeft |
float | mFrustumRight |
float | mFrustumTop |
float | mFrustumBottom |
A perspective Camera.
cinder::CameraPersp::CameraPersp | ( | ) |
Creates a default camera with eyePoint at ( 28, 21, 28 ), looking at the origin, 35deg vertical field-of-view and a 1.333 aspect ratio.
cinder::CameraPersp::CameraPersp | ( | int | pixelWidth, |
int | pixelHeight, | ||
float | fov | ||
) |
Constructs screen-aligned camera.
cinder::CameraPersp::CameraPersp | ( | int | pixelWidth, |
int | pixelHeight, | ||
float | fov, | ||
float | nearPlane, | ||
float | farPlane | ||
) |
Constructs screen-aligned camera.
void cinder::CameraPersp::setPerspective | ( | float | verticalFovDegrees, |
float | aspectRatio, | ||
float | nearPlane, | ||
float | farPlane | ||
) |
Configures the camera's projection according to the provided parameters.
void cinder::CameraPersp::getLensShift | ( | float * | horizontal, |
float * | vertical | ||
) | const |
Returns both the horizontal and vertical lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left) by half the width of the viewport. A vertical lens shift of 1 (-1) will shift the view up (down) by half the height of the viewport.
vec2 cinder::CameraPersp::getLensShift | ( | ) | const |
Returns both the horizontal and vertical lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left) by half the width of the viewport. A vertical lens shift of 1 (-1) will shift the view up (down) by half the height of the viewport.
void cinder::CameraPersp::setLensShift | ( | float | horizontal, |
float | vertical | ||
) |
Sets both the horizontal and vertical lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left) by half the width of the viewport. A vertical lens shift of 1 (-1) will shift the view up (down) by half the height of the viewport.
void cinder::CameraPersp::setLensShift | ( | const vec2 & | shift | ) |
Sets both the horizontal and vertical lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left) by half the width of the viewport. A vertical lens shift of 1 (-1) will shift the view up (down) by half the height of the viewport.
float cinder::CameraPersp::getLensShiftHorizontal | ( | ) | const |
Returns the horizontal lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left) by half the width of the viewport.
void cinder::CameraPersp::setLensShiftHorizontal | ( | float | horizontal | ) |
Sets the horizontal lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left) by half the width of the viewport.
float cinder::CameraPersp::getLensShiftVertical | ( | ) | const |
Returns the vertical lens shift. A vertical lens shift of 1 (-1) will shift the view up (down) by half the height of the viewport.
void cinder::CameraPersp::setLensShiftVertical | ( | float | vertical | ) |
Sets the vertical lens shift. A vertical lens shift of 1 (-1) will shift the view up (down) by half the height of the viewport.
|
overridevirtual |
Returns whether the camera represents a perspective projection instead of an orthographic.
Implements cinder::Camera.
CameraPersp cinder::CameraPersp::calcFraming | ( | const Sphere & | worldSpaceSphere | ) | const |
Returns a Camera whose eyePoint is positioned to exactly frame worldSpaceSphere but is equivalent in other parameters (including orientation). Sets the result's pivotDistance to be the distance to worldSpaceSphere's center.
|
overrideprotectedvirtual |
Implements cinder::Camera.
Reimplemented in cinder::CameraStereo.
|
overrideprotectedvirtual |
Reimplemented from cinder::Camera.
|
inherited |
Returns the position in world-space from which the Camera is viewing.
|
inherited |
Sets the position in world-space from which the Camera is viewing.
|
inherited |
Returns the vector in world-space which represents "up" - typically vec3( 0, 1, 0 )
|
inherited |
Sets the vector in world-space which represents "up" - typically vec3( 0, 1, 0 )
|
inherited |
Modifies the view direction to look from the current eyePoint to target. Also updates the pivot distance.
|
inherited |
Modifies the eyePoint and view direction to look from eyePoint to target. Also updates the pivot distance.
|
inherited |
Modifies the eyePoint and view direction to look from eyePoint to target with up vector up (to achieve camera roll). Also updates the pivot distance.
|
inherited |
Returns the world-space vector along which the camera is oriented.
|
inherited |
Sets the world-space vector along which the camera is oriented.
|
inherited |
Returns the world-space quaternion that expresses the camera's orientation.
|
inherited |
Sets the camera's orientation with world-space quaternion orientation.
|
inherited |
Returns the camera's vertical field of view measured in degrees.
|
inherited |
Sets the camera's vertical field of view measured in degrees.
|
inherited |
Returns the camera's horizontal field of view measured in degrees.
|
inherited |
Sets the camera's horizontal field of view measured in degrees.
|
inherited |
Returns the camera's focal length, calculating it based on the field of view.
|
inherited |
Primarily for user interaction, such as with CameraUi. Returns the distance from the camera along the view direction relative to which tumbling and dollying occur.
|
inherited |
Primarily for user interaction, such as with CameraUi. Sets the distance from the camera along the view direction relative to which tumbling and dollying occur.
|
inherited |
Primarily for user interaction, such as with CameraUi. Returns the world-space point relative to which tumbling and dollying occur.
|
inherited |
Returns the aspect ratio of the image plane - its width divided by its height.
|
inherited |
Sets the aspect ratio of the image plane - its width divided by its height.
|
inherited |
Returns the distance along the view direction to the Near clipping plane.
|
inherited |
Sets the distance along the view direction to the Near clipping plane.
|
inherited |
Returns the distance along the view direction to the Far clipping plane.
|
inherited |
Sets the distance along the view direction to the Far clipping plane.
|
virtualinherited |
Returns the four corners of the Camera's Near clipping plane, expressed in world-space.
Reimplemented in cinder::CameraStereo.
|
virtualinherited |
Returns the four corners of the Camera's Far clipping plane, expressed in world-space.
Reimplemented in cinder::CameraStereo.
|
inherited |
Returns the coordinates of the camera's frustum, suitable for passing to glFrustum
.
|
virtualinherited |
Returns the Camera's Projection matrix, which converts view-space into clip-space.
Reimplemented in cinder::CameraStereo.
|
virtualinherited |
Returns the Camera's View matrix, which converts world-space into view-space.
Reimplemented in cinder::CameraStereo.
|
virtualinherited |
Returns the Camera's Inverse View matrix, which converts view-space into world-space.
Reimplemented in cinder::CameraStereo.
|
inherited |
Returns a Ray that passes through the image plane coordinates (u, v) (expressed in the range [0,1]) on an image plane of aspect ratio imagePlaneAspectRatio.
|
inherited |
Returns a Ray that passes through the pixels coordinates posPixels on an image of size imageSizePixels.
|
inherited |
Returns the right and up vectors suitable for billboarding relative to the Camera.
|
inherited |
Converts a world-space coordinate worldCoord to screen coordinates as viewed by the camera, based on a screen which is screenWidth x screenHeight pixels.
|
inherited |
Converts a eye-space coordinate eyeCoord to screen coordinates as viewed by the camera.
|
inherited |
Converts a world-space coordinate worldCoord to eye-space, also known as camera-space. -Z is along the view direction.
|
inherited |
Converts a world-space coordinate worldCoord to the z axis of eye-space, also known as camera-space. -Z is along the view direction. Suitable for depth sorting.
|
inherited |
Converts a world-space coordinate worldCoord to normalized device coordinates.
|
inherited |
Calculates the area of the screen-space elliptical projection of sphere.
|
inherited |
Calculates the screen-space elliptical projection of sphere, putting the results in outCenter, outAxisA and outAxisB.
|
protectedinherited |
|
protectedvirtualinherited |
Reimplemented in cinder::CameraStereo.
|
protectedvirtualinherited |
Reimplemented in cinder::CameraStereo.
|
protected |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |