33 QWidget* viewerWidget,
39 this->selectedViewer = 0;
40 this->viewer = viewer;
41 this->viewerWidget = viewerWidget;
42 viewerWidget->setObjectName(
"0");
43 this->childrenCounter = 1;
44 this->leftSplitter =
new QSplitter(Qt::Orientation::Vertical,
this);
45 this->rightSplitter =
new QSplitter(Qt::Orientation::Vertical,
this);
46 this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
49 QObject::connect(QApplication::instance(),
50 SIGNAL(focusChanged(QWidget*, QWidget*)),
52 SLOT(activeWidgetChanged(QWidget*, QWidget*)));
55 viewerWidget->setFocusPolicy(Qt::FocusPolicy::WheelFocus);
56 this->leftSplitter->addWidget(viewerWidget);
67 if (childrenCounter < 4)
69 QWidget* parent =
new QWidget();
70 clones.push_back(viewer->reproduce(parent));
71 parent->setObjectName(QString::fromStdString(
std::to_string(childrenCounter)));
72 parent->setFocusPolicy(Qt::FocusPolicy::WheelFocus);
73 cloneWidgets.push_back(parent);
75 if (childrenCounter == 0)
77 leftSplitter->addWidget(parent);
80 else if (childrenCounter == 1)
82 rightSplitter->addWidget(parent);
85 else if (childrenCounter == 2)
87 rightSplitter->addWidget(parent);
90 else if (childrenCounter == 3)
92 leftSplitter->addWidget(parent);
102 if (childrenCounter == 2)
104 if (rightSplitter->children().at(0))
106 cloneWidgets.pop_back();
108 rightSplitter->children().at(0)->~QObject();
113 else if (childrenCounter == 3)
115 if (rightSplitter->children().at(1))
117 cloneWidgets.pop_back();
119 rightSplitter->children().at(0)->~QObject();
124 else if (childrenCounter == 4)
126 if (leftSplitter->children().at(1))
128 cloneWidgets.pop_back();
130 leftSplitter->children().at(0)->~QObject();
134 if (selectedViewer == childrenCounter)
142 Eigen::Vector3f pointAtA,
143 Eigen::Vector3f pointAtB)
145 if (selectedViewer == 0)
147 viewer->setCamera(position, pointAtA, pointAtB);
153 clone->setCamera(position, pointAtA, pointAtB);
158 RobotVisualizationWidget::activeWidgetChanged(QWidget* old, QWidget* now)
170 if (now == viewerWidget ||
171 (now->parentWidget() && now->parentWidget()->parentWidget() &&
172 now->parentWidget()->parentWidget()->parentWidget() &&
173 now->parentWidget()->parentWidget()->parentWidget() == viewerWidget))
178 for (QWidget* clone : cloneWidgets)
180 if (now == clone || (now->parentWidget() && now->parentWidget()->parentWidget() &&
181 now->parentWidget()->parentWidget()->parentWidget() &&
182 now->parentWidget()->parentWidget()->parentWidget() == clone))
184 this->selectedViewer = j;