80 virtual bool isPersp()
const = 0;
136 CameraPersp(
int pixelWidth,
int pixelHeight,
float fov );
137 CameraPersp(
int pixelWidth,
int pixelHeight,
float fov,
float nearPlane,
float farPlane );
139 void setPerspective(
float verticalFovDegrees,
float aspectRatio,
float nearPlane,
float farPlane );
183 void setOrtho(
float left,
float right,
float bottom,
float top,
float nearPlane,
float farPlane );
185 virtual bool isPersp()
const {
return false; }
194 : mConvergence(1.0
f), mEyeSeparation(0.05
f), mIsStereo(false), mIsLeft(true) {}
197 mConvergence(1.0
f), mEyeSeparation(0.05
f), mIsStereo(false), mIsLeft(true) {}
198 CameraStereo(
int pixelWidth,
int pixelHeight,
float fov,
float nearPlane,
float farPlane )
199 :
CameraPersp( pixelWidth, pixelHeight, fov, nearPlane, farPlane ),
200 mConvergence(1.0
f), mEyeSeparation(0.05
f), mIsStereo(false), mIsLeft(true) {}
208 if(adjustEyeSeparation)
209 mEyeSeparation = mConvergence / 30.0f;
249 float mEyeSeparation;
virtual void getNearClipCoordinates(Vec3f *topLeft, Vec3f *topRight, Vec3f *bottomLeft, Vec3f *bottomRight) const
Definition: Camera.cpp:88
Matrix44f mModelViewMatrixLeft
Definition: Camera.h:238
float getCenterOfInterest() const
Definition: Camera.h:44
float mFrustumBottom
Definition: Camera.h:124
CameraStereo(int pixelWidth, int pixelHeight, float fov)
Definition: Camera.h:195
Definition: CinderMath.h:40
GLdouble GLdouble GLdouble GLdouble top
Definition: GLee.h:13559
bool mInverseModelViewCached
Definition: Camera.h:122
float toDegrees(float x)
Definition: CinderMath.h:137
float getConvergence() const
Returns the current convergence, which is the distance at which there is no parallax.
Definition: Camera.h:203
float getAspectRatio() const
Definition: Camera.h:67
Matrix44f mProjectionMatrix
Definition: Camera.h:117
Quatf getOrientation() const
Definition: Camera.h:59
Matrix44f mInverseModelViewMatrixRight
Definition: Camera.h:239
Vec3f mV
Definition: Camera.h:114
Vec2< float > Vec2f
Definition: Vector.h:1314
Vec3< T > transformPoint(const Vec3< T > &rhs) const
Definition: Matrix44.h:1054
void setOrtho(float left, float right, float bottom, float top, float nearPlane, float farPlane)
Definition: Camera.cpp:371
bool mModelViewCached
Definition: Camera.h:120
float getNearClip() const
Definition: Camera.h:69
float worldToEyeDepth(const Vec3f &worldCoord) const
Converts a world-space coordinate worldCoord to the z axis of eye-space, also known as camera-space...
Definition: Camera.h:94
Vec2f mLensShift
Definition: Camera.h:173
float getEyeSeparation() const
Returns the distance between the camera's for the left and right eyes.
Definition: Camera.h:212
Vec3f getViewDirection() const
Definition: Camera.h:56
virtual void calcModelView() const
Definition: Camera.cpp:527
Matrix44f mInverseModelViewMatrix
Definition: Camera.h:121
T z
Definition: Vector.h:321
T x
Definition: Vector.h:321
Ray generateRay(float u, float v, float imagePlaneAspectRatio) const
Definition: Camera.cpp:128
CameraStereo()
Definition: Camera.h:193
T x
Definition: Vector.h:71
virtual const Matrix44f & getInverseModelViewMatrix() const
Definition: Camera.cpp:514
void setLensShift(float horizontal, float vertical)
Definition: Camera.cpp:312
Vec3f mViewDirection
Definition: Camera.h:103
GLenum target
Definition: GLee.h:13607
T y
Definition: Vector.h:321
bool isStereoRightEnabled() const
Definition: Camera.h:223
virtual void calcProjection() const
Definition: Camera.cpp:563
virtual ~Camera()
Definition: Camera.h:39
T m[16]
Definition: Matrix44.h:66
Vec3f worldToNdc(const Vec3f &worldCoord)
Converts a world-space coordinate worldCoord to normalized device coordinates.
Definition: Camera.h:96
void setFarClip(float aFarClip)
Definition: Camera.h:72
virtual void getFarClipCoordinates(Vec3f *topLeft, Vec3f *topRight, Vec3f *bottomLeft, Vec3f *bottomRight) const
Definition: Camera.cpp:465
float getFovHorizontal() const
Definition: Camera.h:64
Matrix44f mInverseProjectionMatrix
Definition: Camera.h:117
float mFov
Definition: Camera.h:108
Vec2f getLensShift() const
Definition: Camera.h:148
virtual const Matrix44f & getProjectionMatrix() const
Definition: Camera.h:82
Matrix44f mInverseProjectionMatrixLeft
Definition: Camera.h:236
virtual const Matrix44f & getInverseModelViewMatrix() const
Definition: Camera.h:84
Vec3f getWorldUp() const
Definition: Camera.h:50
virtual const Matrix44f & getProjectionMatrix() const
Definition: Camera.cpp:488
void setConvergence(float distance, bool adjustEyeSeparation=false)
Sets the convergence of the camera, which is the distance at which there is no parallax.
Definition: Camera.h:205
bool mProjectionCached
Definition: Camera.h:118
Matrix44f mModelViewMatrixRight
Definition: Camera.h:239
void setCenterOfInterestPoint(const Vec3f ¢erOfInterestPoint)
Definition: Camera.cpp:37
Vec3f mU
Definition: Camera.h:113
Vec3f getEyePointShifted() const
Returns the location of the currently enabled eye camera.
Definition: Camera.cpp:433
float mFrustumTop
Definition: Camera.h:124
void setCenterOfInterest(float aCenterOfInterest)
Definition: Camera.h:45
void enableStereoLeft()
Enables the left eye camera.
Definition: Camera.h:219
void setLensShift(const Vec2f &shift)
Definition: Camera.h:156
Matrix44f mModelViewMatrix
Definition: Camera.h:119
virtual const Matrix44f & getModelViewMatrix() const
Definition: Camera.h:83
float getScreenRadius(const class Sphere &sphere, float screenWidth, float screenHeight) const
Definition: Camera.cpp:153
void calcMatrices() const
Definition: Camera.cpp:161
Camera()
Definition: Camera.h:38
void setNearClip(float aNearClip)
Definition: Camera.h:70
void setOrientation(const Quatf &aOrientation)
Definition: Camera.cpp:50
void setPerspective(float verticalFovDegrees, float aspectRatio, float nearPlane, float farPlane)
Definition: Camera.cpp:239
float mFrustumLeft
Definition: Camera.h:124
Vec3f getCenterOfInterestPoint() const
Definition: Camera.h:47
void setEyeSeparation(float distance)
Sets the distance between the camera's for the left and right eyes. This affects the parallax effect...
Definition: Camera.h:214
Matrix44f mProjectionMatrixRight
Definition: Camera.h:237
CameraPersp getFrameSphere(const class Sphere &worldSpaceSphere, int maxIterations=20) const
Definition: Camera.cpp:320
virtual void calcInverseModelView() const
Definition: Camera.cpp:187
Vec3f getEyePoint() const
Definition: Camera.h:41
void setLensShiftHorizontal(float horizontal)
Definition: Camera.h:161
GLdouble left
Definition: GLee.h:13559
virtual bool isPersp() const
Returns whether the camera represents a perspective projection instead of an orthographic.
Definition: Camera.h:185
float getFov() const
Definition: Camera.h:62
const GLdouble * v
Definition: GLee.h:1384
GLdouble GLdouble right
Definition: GLee.h:13559
void enableStereoRight()
Enables the right eye camera.
Definition: Camera.h:222
void setEyePoint(const Vec3f &aEyePoint)
Definition: Camera.cpp:31
T y
Definition: Vector.h:71
virtual void calcProjection() const
Definition: Camera.cpp:383
void setFov(float aFov)
Definition: Camera.h:63
Vec3f mW
Definition: Camera.h:115
void setFovHorizontal(float aFov)
Definition: Camera.h:65
bool isStereoLeftEnabled() const
Definition: Camera.h:220
float mFrustumRight
Definition: Camera.h:124
Matrix44f mProjectionMatrixLeft
Definition: Camera.h:236
virtual bool isPersp() const
Returns whether the camera represents a perspective projection instead of an orthographic.
Definition: Camera.h:168
Vec3f mEyePoint
Definition: Camera.h:102
float getFarClip() const
Definition: Camera.h:71
float toRadians(float x)
Definition: CinderMath.h:127
Matrix44f mInverseModelViewMatrixLeft
Definition: Camera.h:238
virtual void getFarClipCoordinates(Vec3f *topLeft, Vec3f *topRight, Vec3f *bottomLeft, Vec3f *bottomRight) const
Definition: Camera.cpp:101
bool isStereoEnabled() const
Definition: Camera.h:226
void setAspectRatio(float aAspectRatio)
Definition: Camera.h:68
CameraOrtho()
Definition: Camera.cpp:346
void setWorldUp(const Vec3f &aWorldUp)
Definition: Camera.cpp:57
virtual bool isPersp() const =0
Returns whether the camera represents a perspective projection instead of an orthographic.
float mCenterOfInterest
Definition: Camera.h:105
CameraPersp()
Definition: Camera.cpp:231
void disableStereo()
Disables stereoscopic rendering, converting the camera to a standard CameraPersp. ...
Definition: Camera.h:225
virtual const Matrix44f & getModelViewMatrix() const
Definition: Camera.cpp:501
float mNearClip
Definition: Camera.h:110
virtual void calcInverseModelView() const
Definition: Camera.cpp:553
void lookAt(const Vec3f &target)
Definition: Camera.cpp:64
void getBillboardVectors(Vec3f *right, Vec3f *up) const
Definition: Camera.cpp:138
void setViewDirection(const Vec3f &aViewDirection)
Definition: Camera.cpp:43
GLdouble GLdouble GLdouble bottom
Definition: GLee.h:13559
virtual void calcModelView() const
Definition: Camera.cpp:170
Vec3< T > transformPointAffine(const Vec3< T > &rhs) const
Definition: Matrix44.h:1065
Matrix44f mInverseProjectionMatrixRight
Definition: Camera.h:237
virtual void getNearClipCoordinates(Vec3f *topLeft, Vec3f *topRight, Vec3f *bottomLeft, Vec3f *bottomRight) const
Definition: Camera.cpp:444
float mFarClip
Definition: Camera.h:111
virtual void calcProjection() const =0
virtual void calcProjection() const
Definition: Camera.cpp:249
Quatf mOrientation
Definition: Camera.h:104
Vec3f worldToEye(const Vec3f &worldCoord)
Converts a world-space coordinate worldCoord to eye-space, also known as camera-space. -Z is along the view direction.
Definition: Camera.h:92
Vec2f worldToScreen(const Vec3f &worldCoord, float screenWidth, float screenHeight) const
Converts a world-space coordinate worldCoord to screen coordinates as viewed by the camera...
Definition: Camera.cpp:144
GLclampf f
Definition: GLee.h:15307
void setLensShiftVertical(float vertical)
Definition: Camera.h:166
CameraStereo(int pixelWidth, int pixelHeight, float fov, float nearPlane, float farPlane)
Definition: Camera.h:198
float getLensShiftVertical() const
Returns the vertical lens shift. A vertical lens shift of 1 (-1) will shift the view up (down) by hal...
Definition: Camera.h:163
Vec3f mWorldUp
Definition: Camera.h:106
float mAspectRatio
Definition: Camera.h:109
float getLensShiftHorizontal() const
Returns the horizontal lens shift. A horizontal lens shift of 1 (-1) will shift the view right (left)...
Definition: Camera.h:158
void getLensShift(float *horizontal, float *vertical) const
Definition: Camera.h:144
void getFrustum(float *left, float *top, float *right, float *bottom, float *near, float *far) const
Returns the coordinates of the camera's frustum, suitable for passing to glFrustum.
Definition: Camera.cpp:116