16 using namespace Eigen;
19 : mViewIsUptodate(false), mProjIsUptodate(false)
105 Vector3f
up = this->
up();
109 camAxes.col(2) = (-newDirection).normalized();
110 camAxes.col(0) = up.cross( camAxes.col(2) ).normalized();
111 camAxes.col(1) = camAxes.col(2).cross( camAxes.col(0) ).normalized();
147 Matrix4f mrot, mt, mtm;
217 float theta =
mFovY*0.5;
219 float invtan = 1./
tan(theta);
262 Vector4f
b = invModelview * Vector4f(a.x(), a.y(), a.z(), 1.);
263 return Vector3f(b.x(), b.y(), b.z());
Camera & operator=(const Camera &other)
void rotateAroundTarget(const Eigen::Quaternionf &q)
Eigen::Vector3f right(void) const
Namespace containing all symbols from the Eigen library.
uint vpHeight(void) const
Eigen::Vector3f up(void) const
Eigen::Vector3f direction(void) const
void localRotate(const Eigen::Quaternionf &q)
Translation< float, 3 > Translation3f
void setOrientation(const Eigen::Quaternionf &q)
const Eigen::Quaternionf & orientation(void) const
void setDirection(const Eigen::Vector3f &newDirection)
EIGEN_DEVICE_FUNC Quaternion< Scalar > conjugate() const
const Eigen::Matrix4f & projectionMatrix(void) const
Eigen::Quaternionf orientation
void loadMatrix(const Eigen::Matrix< Scalar, 4, 4, _Flags, 4, 4 > &mat, GLenum matrixTarget)
const Eigen::Vector3f & position(void) const
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
EIGEN_DEVICE_FUNC const Scalar & q
void updateViewMatrix(void) const
const Eigen::Affine3f & viewMatrix(void) const
const Eigen::Vector3f & target(void)
void setTarget(const Eigen::Vector3f &target)
void setFovY(float value)
Eigen::Affine3f mViewMatrix
The quaternion class used to represent 3D orientations and rotations.
Double_ range(const Point2_ &p, const Point2_ &q)
EIGEN_DEVICE_FUNC const TanReturnType tan() const
Eigen::Matrix4f mProjectionMatrix
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Camera(void)
void setViewport(uint offsetx, uint offsety, uint width, uint height)
void localTranslate(const Eigen::Vector3f &t)
EIGEN_DEVICE_FUNC Matrix3 toRotationMatrix() const
Eigen::Vector3f unProject(const Eigen::Vector2f &uv, float depth, const Eigen::Matrix4f &invModelview) const
Map< Matrix< T, Dynamic, Dynamic, ColMajor >, 0, OuterStride<> > matrix(T *data, int rows, int cols, int stride)
void setFrame(const Frame &f)
void updateProjectionMatrix(void) const
Quaternion< float > Quaternionf
void setPosition(const Eigen::Vector3f &pos)