From 8171ae87d60e70fd018ce04dc1e66eee65721b54 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Tue, 1 Oct 2019 21:11:30 +0300
Subject: [PATCH] Allow virt cam lock to source pose

---
 applications/reconstruct/src/main.cpp   | 3 +++
 components/rgbd-sources/src/virtual.cpp | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/applications/reconstruct/src/main.cpp b/applications/reconstruct/src/main.cpp
index 92a65ea44..c2f357e18 100644
--- a/applications/reconstruct/src/main.cpp
+++ b/applications/reconstruct/src/main.cpp
@@ -136,6 +136,9 @@ static void run(ftl::Configurable *root) {
 	ftl::rgbd::Group group;
 	ftl::ILW *align = ftl::create<ftl::ILW>(root, "merge");
 
+	int o = root->value("origin_pose", 0) % sources.size();
+	virt->setPose(sources[o]->getPose());
+
 	// Generate virtual camera render when requested by streamer
 	virt->onRender([splat,virt,&scene_B,align](ftl::rgbd::Frame &out) {
 		virt->setTimestamp(scene_B.timestamp);
diff --git a/components/rgbd-sources/src/virtual.cpp b/components/rgbd-sources/src/virtual.cpp
index 016662695..9d9ccc852 100644
--- a/components/rgbd-sources/src/virtual.cpp
+++ b/components/rgbd-sources/src/virtual.cpp
@@ -8,7 +8,8 @@ class VirtualImpl : public ftl::rgbd::detail::Source {
 	public:
 	explicit VirtualImpl(ftl::rgbd::Source *host, const ftl::rgbd::Camera &params) : ftl::rgbd::detail::Source(host) {
 		params_ = params;
-		capabilities_ = ftl::rgbd::kCapMovable | ftl::rgbd::kCapVideo | ftl::rgbd::kCapStereo;
+		capabilities_ = ftl::rgbd::kCapVideo | ftl::rgbd::kCapStereo;
+		if (!host->value("locked", false)) capabilities_ |= ftl::rgbd::kCapMovable;
 	}
 
 	~VirtualImpl() {
-- 
GitLab