diff --git a/applications/reconstruct/src/main.cpp b/applications/reconstruct/src/main.cpp index 92a65ea44c3598fd257d53ac6c10c22dafdba0e6..c2f357e187e99c04c190df448346b1954d9e95a9 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 0166626957f2ae16ea5b9e3fa9f960dc2fc22538..9d9ccc852fd94a6aa701e7da7e4b4f48cad9d0a0 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 ¶ms) : 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() {