35 #ifndef __CU_CAMERA_H__
36 #define __CU_CAMERA_H__
38 #include <cugl/math/CURect.h>
39 #include <cugl/math/CUVec2.h>
40 #include <cugl/math/CUVec3.h>
41 #include <cugl/math/CUMat4.h>
42 #include <cugl/math/CUQuaternion.h>
43 #include <cugl/math/CURay.h>
44 #include <cugl/util/CUDebug.h>
84 #pragma mark Constructor
107 #pragma mark Attributes
145 CUAssertLog(value >= 0,
"Value is not positive");
165 CUAssertLog(value >= 0,
"Value is not positive");
215 virtual void update() = 0;
235 void lookAt (
float x,
float y,
float z) {
252 #pragma mark View Transforms
338 rotate(_direction, angle);
438 #pragma mark Coordinate Transforms
static Mat4 createRotationX(float angle)
Definition: CUMat4.h:573
void translate(float tx, float ty)
Definition: CUCamera.h:419
void translate(const Vec3 &vec)
Definition: CUCamera.h:378
float x
Definition: CUVec2.h:66
float y
Definition: CUVec2.h:68
const Mat4 & getProjection() const
Definition: CUCamera.h:185
Vec3 & cross(const Vec3 &v)
Definition: CUVec3.h:1025
float x
Definition: CUVec3.h:66
void rotateZ(float angle)
Definition: CUCamera.h:322
~Camera()
Definition: CUCamera.h:96
float _near
Definition: CUCamera.h:76
Mat4 _modelview
Definition: CUCamera.h:69
float z
Definition: CUVec3.h:70
static Vec2 * transformVector(const Mat4 &mat, const Vec2 &vec, Vec2 *dst)
void translate(float tx, float ty, float tz)
Definition: CUCamera.h:404
static Mat4 createRotationY(float angle)
Definition: CUMat4.h:601
const Vec3 & getDirection() const
Definition: CUCamera.h:120
Mat4 _projection
Definition: CUCamera.h:67
Ray getPickRay(const Vec3 &windowCoords) const
void translate(const Vec2 &vec)
Definition: CUCamera.h:390
Vec2 worldToScreenCoords(const Vec3 &worldCoords) const
Definition: CUCamera.h:553
Vec3 _upwards
Definition: CUCamera.h:64
void transform(const Mat4 &transform)
Definition: CUCamera.h:432
float _far
Definition: CUCamera.h:78
Ray getPickRayFromScreen(const Vec2 &screenCoords) const
Definition: CUCamera.h:617
Vec3 screenToWorldCoords(const Vec2 &screenCoords) const
Definition: CUCamera.h:497
void rotate(const Mat4 &transform)
Definition: CUCamera.h:351
const Mat4 & getView() const
Definition: CUCamera.h:192
Vec3 _direction
Definition: CUCamera.h:62
void rotateAround(const Vec3 &point, const Vec3 &axis, float angle)
const Vec3 & getUp() const
Definition: CUCamera.h:127
float getFar() const
Definition: CUCamera.h:154
void rotateX(float angle)
Definition: CUCamera.h:292
const Vec3 & getPosition() const
Definition: CUCamera.h:113
Vec3 _position
Definition: CUCamera.h:60
void lookAt(const Vec3 &target)
Vec2 windowToScreenCoords(const Vec3 &windowCoords) const
void rotate(const Quaternion &quat)
Definition: CUCamera.h:261
const Rect & getViewport() const
Definition: CUCamera.h:178
Vec3 screenToWindowCoords(const Vec2 &screenCoords) const
Vec3 unproject(const Vec3 &windowCoords) const
void rotate(float angle)
Definition: CUCamera.h:337
void lookAt(float x, float y, float z)
Definition: CUCamera.h:235
Vec3 project(const Vec3 &worldCoords) const
void rotate(const Vec3 &axis, float angle)
Definition: CUCamera.h:277
const Mat4 & getCombined() const
Definition: CUCamera.h:199
void setNear(float value)
Definition: CUCamera.h:144
void setFar(float value)
Definition: CUCamera.h:164
Mat4 _inverse
Definition: CUCamera.h:73
Definition: CUCamera.h:56
static Mat4 createRotation(const Quaternion &quat)
Definition: CUMat4.h:518
void normalizeUp()
Definition: CUCamera.h:246
Rect _viewport
Definition: CUCamera.h:81
float y
Definition: CUVec3.h:68
void rotateY(float angle)
Definition: CUCamera.h:307
const Mat4 & getInverseProjectView() const
Definition: CUCamera.h:206
float getNear() const
Definition: CUCamera.h:134
Definition: CUAnimationNode.h:52
Definition: CUQuaternion.h:97
static Mat4 createRotationZ(float angle)
Definition: CUMat4.h:629
Mat4 _combined
Definition: CUCamera.h:71