Cinder  0.8.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cinder::Camera Class Referenceabstract

#include <Camera.h>

Inheritance diagram for cinder::Camera:
[legend]

Public Member Functions

 Camera ()
 
virtual ~Camera ()
 
Vec3f getEyePoint () const
 
void setEyePoint (const Vec3f &aEyePoint)
 
float getCenterOfInterest () const
 
void setCenterOfInterest (float aCenterOfInterest)
 
Vec3f getCenterOfInterestPoint () const
 
void setCenterOfInterestPoint (const Vec3f &centerOfInterestPoint)
 
Vec3f getWorldUp () const
 
void setWorldUp (const Vec3f &aWorldUp)
 
void lookAt (const Vec3f &target)
 
void lookAt (const Vec3f &aEyePoint, const Vec3f &target)
 
void lookAt (const Vec3f &aEyePoint, const Vec3f &target, const Vec3f &aUp)
 
Vec3f getViewDirection () const
 
void setViewDirection (const Vec3f &aViewDirection)
 
Quatf getOrientation () const
 
void setOrientation (const Quatf &aOrientation)
 
float getFov () const
 
void setFov (float aFov)
 
float getFovHorizontal () const
 
void setFovHorizontal (float aFov)
 
float getAspectRatio () const
 
void setAspectRatio (float aAspectRatio)
 
float getNearClip () const
 
void setNearClip (float aNearClip)
 
float getFarClip () const
 
void setFarClip (float aFarClip)
 
virtual void getNearClipCoordinates (Vec3f *topLeft, Vec3f *topRight, Vec3f *bottomLeft, Vec3f *bottomRight) const
 
virtual void getFarClipCoordinates (Vec3f *topLeft, Vec3f *topRight, Vec3f *bottomLeft, Vec3f *bottomRight) const
 
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. More...
 
virtual bool isPersp () const =0
 Returns whether the camera represents a perspective projection instead of an orthographic. More...
 
virtual const Matrix44fgetProjectionMatrix () const
 
virtual const Matrix44fgetModelViewMatrix () const
 
virtual const Matrix44fgetInverseModelViewMatrix () const
 
Ray generateRay (float u, float v, float imagePlaneAspectRatio) const
 
void getBillboardVectors (Vec3f *right, Vec3f *up) const
 
Vec2f worldToScreen (const Vec3f &worldCoord, float screenWidth, float screenHeight) const
 Converts a world-space coordinate worldCoord to screen coordinates as viewed by the camera, based ona s screen which is screenWidth x screenHeight pixels. More...
 
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. More...
 
float worldToEyeDepth (const Vec3f &worldCoord) const
 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. More...
 
Vec3f worldToNdc (const Vec3f &worldCoord)
 Converts a world-space coordinate worldCoord to normalized device coordinates. More...
 
float getScreenRadius (const class Sphere &sphere, float screenWidth, float screenHeight) const
 

Protected Member Functions

void calcMatrices () const
 
virtual void calcModelView () const
 
virtual void calcInverseModelView () const
 
virtual void calcProjection () const =0
 

Protected Attributes

Vec3f mEyePoint
 
Vec3f mViewDirection
 
Quatf mOrientation
 
float mCenterOfInterest
 
Vec3f mWorldUp
 
float mFov
 
float mAspectRatio
 
float mNearClip
 
float mFarClip
 
Vec3f mU
 
Vec3f mV
 
Vec3f mW
 
Matrix44f mProjectionMatrix
 
Matrix44f mInverseProjectionMatrix
 
bool mProjectionCached
 
Matrix44f mModelViewMatrix
 
bool mModelViewCached
 
Matrix44f mInverseModelViewMatrix
 
bool mInverseModelViewCached
 
float mFrustumLeft
 
float mFrustumRight
 
float mFrustumTop
 
float mFrustumBottom
 

Constructor & Destructor Documentation

cinder::Camera::Camera ( )
virtual cinder::Camera::~Camera ( )
virtual

Member Function Documentation

Vec3f cinder::Camera::getEyePoint ( ) const
void cinder::Camera::setEyePoint ( const Vec3f aEyePoint)
float cinder::Camera::getCenterOfInterest ( ) const
void cinder::Camera::setCenterOfInterest ( float  aCenterOfInterest)
Vec3f cinder::Camera::getCenterOfInterestPoint ( ) const
void cinder::Camera::setCenterOfInterestPoint ( const Vec3f centerOfInterestPoint)
Vec3f cinder::Camera::getWorldUp ( ) const
void cinder::Camera::setWorldUp ( const Vec3f aWorldUp)
void cinder::Camera::lookAt ( const Vec3f target)
void cinder::Camera::lookAt ( const Vec3f aEyePoint,
const Vec3f target 
)
void cinder::Camera::lookAt ( const Vec3f aEyePoint,
const Vec3f target,
const Vec3f aUp 
)
Vec3f cinder::Camera::getViewDirection ( ) const
void cinder::Camera::setViewDirection ( const Vec3f aViewDirection)
Quatf cinder::Camera::getOrientation ( ) const
void cinder::Camera::setOrientation ( const Quatf aOrientation)
float cinder::Camera::getFov ( ) const
void cinder::Camera::setFov ( float  aFov)
float cinder::Camera::getFovHorizontal ( ) const
void cinder::Camera::setFovHorizontal ( float  aFov)
float cinder::Camera::getAspectRatio ( ) const
void cinder::Camera::setAspectRatio ( float  aAspectRatio)
float cinder::Camera::getNearClip ( ) const
void cinder::Camera::setNearClip ( float  aNearClip)
float cinder::Camera::getFarClip ( ) const
void cinder::Camera::setFarClip ( float  aFarClip)
void cinder::Camera::getNearClipCoordinates ( Vec3f topLeft,
Vec3f topRight,
Vec3f bottomLeft,
Vec3f bottomRight 
) const
virtual

Reimplemented in cinder::CameraStereo.

void cinder::Camera::getFarClipCoordinates ( Vec3f topLeft,
Vec3f topRight,
Vec3f bottomLeft,
Vec3f bottomRight 
) const
virtual

Reimplemented in cinder::CameraStereo.

void cinder::Camera::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.

virtual bool cinder::Camera::isPersp ( ) const
pure virtual

Returns whether the camera represents a perspective projection instead of an orthographic.

Implemented in cinder::CameraOrtho, and cinder::CameraPersp.

virtual const Matrix44f& cinder::Camera::getProjectionMatrix ( ) const
virtual

Reimplemented in cinder::CameraStereo.

virtual const Matrix44f& cinder::Camera::getModelViewMatrix ( ) const
virtual

Reimplemented in cinder::CameraStereo.

virtual const Matrix44f& cinder::Camera::getInverseModelViewMatrix ( ) const
virtual

Reimplemented in cinder::CameraStereo.

Ray cinder::Camera::generateRay ( float  u,
float  v,
float  imagePlaneAspectRatio 
) const
void cinder::Camera::getBillboardVectors ( Vec3f right,
Vec3f up 
) const
Vec2f cinder::Camera::worldToScreen ( const Vec3f worldCoord,
float  screenWidth,
float  screenHeight 
) const

Converts a world-space coordinate worldCoord to screen coordinates as viewed by the camera, based ona s screen which is screenWidth x screenHeight pixels.

Vec3f cinder::Camera::worldToEye ( const Vec3f worldCoord)

Converts a world-space coordinate worldCoord to eye-space, also known as camera-space. -Z is along the view direction.

float cinder::Camera::worldToEyeDepth ( const Vec3f worldCoord) const

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.

Vec3f cinder::Camera::worldToNdc ( const Vec3f worldCoord)

Converts a world-space coordinate worldCoord to normalized device coordinates.

float cinder::Camera::getScreenRadius ( const class Sphere sphere,
float  screenWidth,
float  screenHeight 
) const
void cinder::Camera::calcMatrices ( ) const
protected
void cinder::Camera::calcModelView ( ) const
protectedvirtual

Reimplemented in cinder::CameraStereo.

void cinder::Camera::calcInverseModelView ( ) const
protectedvirtual

Reimplemented in cinder::CameraStereo.

virtual void cinder::Camera::calcProjection ( ) const
protectedpure virtual

Member Data Documentation

Vec3f cinder::Camera::mEyePoint
protected
Vec3f cinder::Camera::mViewDirection
protected
Quatf cinder::Camera::mOrientation
protected
float cinder::Camera::mCenterOfInterest
protected
Vec3f cinder::Camera::mWorldUp
protected
float cinder::Camera::mFov
protected
float cinder::Camera::mAspectRatio
protected
float cinder::Camera::mNearClip
protected
float cinder::Camera::mFarClip
protected
Vec3f cinder::Camera::mU
mutableprotected
Vec3f cinder::Camera::mV
mutableprotected
Vec3f cinder::Camera::mW
mutableprotected
Matrix44f cinder::Camera::mProjectionMatrix
mutableprotected
Matrix44f cinder::Camera::mInverseProjectionMatrix
mutableprotected
bool cinder::Camera::mProjectionCached
mutableprotected
Matrix44f cinder::Camera::mModelViewMatrix
mutableprotected
bool cinder::Camera::mModelViewCached
mutableprotected
Matrix44f cinder::Camera::mInverseModelViewMatrix
mutableprotected
bool cinder::Camera::mInverseModelViewCached
mutableprotected
float cinder::Camera::mFrustumLeft
mutableprotected
float cinder::Camera::mFrustumRight
mutableprotected
float cinder::Camera::mFrustumTop
mutableprotected
float cinder::Camera::mFrustumBottom
mutableprotected

The documentation for this class was generated from the following files: