11 namespace visualization {
16 : min_far_plane_(min_far_plane), camera_(camera) {}
21 const Eigen::Vector3f& center) {
34 Eigen::Vector3f new_trans = matrix.translation() + world_move;
35 matrix.fromPositionOrientationScale(new_trans, matrix.rotation(),
36 Eigen::Vector3f(1, 1, 1));
54 float hal_fov_radians = half_fov * float(
M_PI / 180.0);
55 float units_at_dist = 2.0f * std::tan(hal_fov_radians) * (near_v +
dist);
56 float units_per_px = units_at_dist / float(
view_height_);
62 Eigen::Vector3f camera_local_move(-dx * units_per_px, dy * units_per_px, 0);
63 Eigen::Vector3f world_move =
85 if (proj.is_intrinsic) {
86 Eigen::Matrix3d intrinsic;
87 intrinsic << proj.
proj.
intrinsics.fx, 0.0, proj.proj.intrinsics.cx, 0.0,
88 proj.proj.intrinsics.fy, proj.proj.intrinsics.cy, 0.0, 0.0, 1.0;
90 far_v, proj.proj.intrinsics.width,
91 proj.proj.intrinsics.height);
92 }
else if (proj.is_ortho) {
94 proj.proj.ortho.right, proj.proj.ortho.bottom,
95 proj.proj.ortho.top, proj.proj.ortho.near_plane,
99 proj.proj.perspective.aspect,
100 proj.proj.perspective.near_plane, far_v,
101 proj.proj.perspective.fov_type);
virtual const ProjectionInfo & GetProjection() const =0
virtual Eigen::Vector3f GetForwardVector() const =0
virtual Eigen::Vector3f GetPosition() const =0
virtual double GetNear() const =0
virtual Transform GetModelMatrix() const =0
virtual double GetFieldOfView() const =0
only valid if fov was passed to SetProjection()
virtual void SetProjection(double fov, double aspect, double near, double far, FovType fov_type)=0
static float CalcFarPlane(const rendering::Camera &camera, const ccBBox &scene_bounds)
void SetMouseDownInfo(const Camera::Transform &matrix, const Eigen::Vector3f ¢er_of_rotation)
const Camera::Transform & GetMatrix() const
void SetMatrix(const Camera::Transform &matrix)
Eigen::Vector3f center_of_rotation_
Camera::Transform matrix_at_mouse_down_
Eigen::Vector3f center_of_rotation_at_mouse_down_
RotationInteractorLogic(Camera *camera, double min_far_plane)
virtual void UpdateMouseDragUI()
void UpdateCameraFarPlane()
virtual void StartMouseDrag()
~RotationInteractorLogic()
virtual void Pan(int dx, int dy)
virtual void EndMouseDrag()
virtual void SetCenterOfRotation(const Eigen::Vector3f ¢er)
Eigen::Vector3f CalcPanVectorWorld(int dx, int dy)
static double dist(double x1, double y1, double x2, double y2)
Generic file read and write utility for python interface.
struct cloudViewer::visualization::rendering::Camera::ProjectionInfo::@23::@26 intrinsics
union cloudViewer::visualization::rendering::Camera::ProjectionInfo::@23 proj