10 #ifndef EIGEN_CAMERA_H 11 #define EIGEN_CAMERA_H 13 #include <Eigen/Geometry> 22 inline Frame(
const Eigen::Vector3f&
pos = Eigen::Vector3f::Zero(),
47 Camera& operator=(
const Camera& other);
49 void setViewport(uint offsetx, uint offsety, uint width, uint height);
50 void setViewport(uint width, uint height);
52 inline uint
vpX(
void)
const {
return mVpX; }
53 inline uint
vpY(
void)
const {
return mVpY; }
54 inline uint
vpWidth(
void)
const {
return mVpWidth; }
55 inline uint
vpHeight(
void)
const {
return mVpHeight; }
57 inline float fovY(
void)
const {
return mFovY; }
58 void setFovY(
float value);
60 void setPosition(
const Eigen::Vector3f&
pos);
61 inline const Eigen::Vector3f&
position(
void)
const {
return mFrame.position; }
66 void setFrame(
const Frame&
f);
69 void setDirection(
const Eigen::Vector3f& newDirection);
70 Eigen::Vector3f direction(
void)
const;
71 void setUp(
const Eigen::Vector3f& vectorUp);
72 Eigen::Vector3f up(
void)
const;
73 Eigen::Vector3f
right(
void)
const;
75 void setTarget(
const Eigen::Vector3f& target);
76 inline const Eigen::Vector3f&
target(
void) {
return mTarget; }
79 const Eigen::Matrix4f& projectionMatrix(
void)
const;
85 void localTranslate(
const Eigen::Vector3f&
t);
88 void activateGL(
void);
90 Eigen::Vector3f unProject(
const Eigen::Vector2f& uv,
float depth,
const Eigen::Matrix4f& invModelview)
const;
91 Eigen::Vector3f unProject(
const Eigen::Vector2f& uv,
float depth)
const;
94 void updateViewMatrix(
void)
const;
95 void updateProjectionMatrix(
void)
const;
118 #endif // EIGEN_CAMERA_H
Frame lerp(float alpha, const Frame &other) const
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW
uint vpHeight(void) const
const Eigen::Quaternionf & orientation(void) const
Eigen::Quaternionf orientation
const Eigen::Vector3f & position(void) const
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Frame(const Eigen::Vector3f &pos=Eigen::Vector3f::Zero(), const Eigen::Quaternionf &o=Eigen::Quaternionf())
EIGEN_DEVICE_FUNC const Scalar & q
const Eigen::Vector3f & target(void)
Eigen::Affine3f mViewMatrix
const Frame & frame(void) const
The quaternion class used to represent 3D orientations and rotations.
Eigen::Matrix4f mProjectionMatrix
PinholePose< Cal3_S2 > Camera
EIGEN_DEVICE_FUNC Quaternion< Scalar > slerp(const Scalar &t, const QuaternionBase< OtherDerived > &other) const