6 #include "../core/log.h" 7 #include "../core/transformer.h" 8 #include "../core/workspace.h" 10 void FrameDisplayMixin::renderSyncRecursiveImpl(
12 const Pose &transform) {
16 if (
auto transformer =
LockScope()->document()->display()->transformer) {
17 if (
auto f = frame.pose(transformer)) {
18 c.pose = Eigen::Affine3d(*f);
21 LOG_WARN_THROTTLE(1,
"frame not found: " << frame.name());
24 LOG_ERROR(
"no transformer");
28 c.pose = c.pose * transform.toIsometry3d();
29 display->renderSync(c);
30 if (
auto *group = dynamic_cast<DisplayGroupBase *>(display)) {
31 for (
auto &display2 : group->displays()) {
32 display2->renderSyncRecursive(c);
37 std::vector<std::string> FrameDisplay_listFrames(
const Property &) {
38 auto ret =
LockScope()->document()->display()->transformer->list();
39 std::sort(ret.begin(), ret.end());