Skip to content
Snippets Groups Projects
Commit 76d93864 authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Working virtual camera pose input

parent d4f86dc5
No related branches found
No related tags found
1 merge request!316Resolves #343 GUI and Frame Refactor
......@@ -140,3 +140,11 @@ bool Camera::hasFrame() {
}
return false;
}
void Camera::sendPose(const Eigen::Matrix4d &pose) {
if (auto ptr = std::atomic_load(&current_fs_)) {
auto response = ptr->frames[frame_idx].response();
auto &rgbdresponse = response.cast<ftl::rgbd::Frame>();
rgbdresponse.setPose() = pose;
}
}
......@@ -30,6 +30,8 @@ public:
/** Check if new frame is available */
bool hasFrame();
void sendPose(const Eigen::Matrix4d &pose);
ftl::render::Colouriser* colouriser() { return colouriser_.get(); };
ftl::overlay::Overlay* overlay() { return overlay_.get(); }
......
#include "camera3d.hpp"
#include "../modules/camera.hpp"
using ftl::gui2::CameraView3D;
......@@ -55,7 +56,8 @@ bool CameraView3D::keyboardEvent(int key, int scancode, int action, int modifier
//transform_ix_ = ix-1;
}
LOG(INFO) << "New pose: \n" << getUpdatedPose();
//LOG(INFO) << "New pose: \n" << getUpdatedPose();
//ctrl_->sendPose(getUpdatedPose());
return true;
}
......@@ -72,7 +74,8 @@ bool CameraView3D::mouseMotionEvent(const Eigen::Vector2i &p, const Eigen::Vecto
rx_ += rel[0];
ry_ += rel[1];
LOG(INFO) << "New pose: \n" << getUpdatedPose();
//LOG(INFO) << "New pose: \n" << getUpdatedPose();
//ctrl_->sendPose(getUpdatedPose());
return true;
}
......@@ -107,5 +110,6 @@ Eigen::Matrix4d CameraView3D::getUpdatedPose() {
void CameraView3D::draw(NVGcontext* ctx) {
imview_->fit(); // TODO: should be moved to ::performLayout(ctx)?
ctrl_->sendPose(getUpdatedPose());
CameraView::draw(ctx);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment