SceneEditorWidget.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package MemoryX::gui-plugins::SceneEditor
19  * @date 2015
20  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
21  * GNU General Public License
22  */
23 
24 #include "SceneEditorWidget.h"
25 
26 #include <QtConcurrent/qtconcurrentrun.h>
27 
28 #include "../controller/DeselectOperation.h"
29 #include "../controller/RemoveFromGroupOperation.h"
30 #include "../controller/RemoveOperation.h"
31 #include "OverrideAction.h"
32 
34  QWidget* parent) :
35  QWidget(parent),
37  sceneGraph(new ScenegraphWidget(control, this)),
38  collisionMeshToggleButton(new QPushButton(this)),
39  rotateManipulatorToggleButton(new QPushButton(this)),
40  translateManipulatorToggleButton(new QPushButton(this)),
41  undoButton(new QPushButton(this)),
42  redoButton(new QPushButton(this)),
43  removeSelectedObjectsButton(new QPushButton(this)),
44  editorToggleButton(new QPushButton(this)),
45  viewerToggleButton(new QPushButton(this)),
46  editorViewerButtonGroup(new QButtonGroup(this)),
47  mainLayout(new QVBoxLayout(this)),
48  leftButtonsSize(30, 30),
49  buttonColor("lightgray"),
50  margin(20),
51  spacing(10),
52  showCollisionMesh(false),
53  showTranslateManipulator(false),
54  showRotateManipulator(false)
55 {
56  setPalette(Qt::transparent);
57 
58  setObjectName(QString::fromUtf8("SceneEditorWidget"));
59 
60  mainLayout->addWidget(sceneGraph);
61 
62  this->setLayout(mainLayout);
63 
64  editorViewerButtonGroup->setExclusive(true);
65 
66  QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
67  sizePolicy.setHorizontalStretch(0);
68  sizePolicy.setVerticalStretch(0);
69 
70  collisionMeshToggleButton->setObjectName(QString::fromUtf8("collisionMeshToggleButton"));
71  sizePolicy.setHeightForWidth(collisionMeshToggleButton->sizePolicy().hasHeightForWidth());
72  collisionMeshToggleButton->setSizePolicy(sizePolicy);
73  QIcon icon1;
74  icon1.addFile(QString::fromUtf8(":/images/Collision.png"), QSize(), QIcon::Normal, QIcon::Off);
75  collisionMeshToggleButton->setIcon(icon1);
76  collisionMeshToggleButton->setToolTip(tr("Toggle Collisionmesh"));
77  collisionMeshToggleButton->setIconSize(leftButtonsSize);
78  collisionMeshToggleButton->setCheckable(true);
79  collisionMeshToggleButton->setFixedSize(leftButtonsSize);
80  collisionMeshToggleButton->setStyleSheet("background-color: " + buttonColor);
81  collisionMeshToggleButton->move(margin, margin);
82  collisionMeshToggleButton->show();
83 
84  rotateManipulatorToggleButton->setObjectName(
85  QString::fromUtf8("rotateManipulatorToggleButton"));
86  sizePolicy.setHeightForWidth(rotateManipulatorToggleButton->sizePolicy().hasHeightForWidth());
87  rotateManipulatorToggleButton->setSizePolicy(sizePolicy);
88  QIcon icon2;
89  icon2.addFile(QString::fromUtf8(":/images/Rotate.png"), QSize(), QIcon::Normal, QIcon::Off);
90  rotateManipulatorToggleButton->setIcon(icon2);
91  rotateManipulatorToggleButton->setToolTip(tr("Toggle Rotationmanipulator"));
92  rotateManipulatorToggleButton->setIconSize(leftButtonsSize);
93  rotateManipulatorToggleButton->setCheckable(true);
94  rotateManipulatorToggleButton->setFixedSize(leftButtonsSize);
95  rotateManipulatorToggleButton->setStyleSheet("background-color: " + buttonColor);
96  rotateManipulatorToggleButton->move(
97  margin, collisionMeshToggleButton->pos().y() + leftButtonsSize.height() + spacing);
98  rotateManipulatorToggleButton->show();
99 
100  translateManipulatorToggleButton->setObjectName(
101  QString::fromUtf8("translateManipulatorToggleButton"));
102  sizePolicy.setHeightForWidth(
103  translateManipulatorToggleButton->sizePolicy().hasHeightForWidth());
104  translateManipulatorToggleButton->setSizePolicy(sizePolicy);
105  QIcon icon3;
106  icon3.addFile(QString::fromUtf8(":/images/Translate.png"), QSize(), QIcon::Normal, QIcon::Off);
107  translateManipulatorToggleButton->setIcon(icon3);
108  translateManipulatorToggleButton->setToolTip(tr("Toggle Translationmanipulator"));
109  translateManipulatorToggleButton->setIconSize(leftButtonsSize);
110  translateManipulatorToggleButton->setCheckable(true);
111  translateManipulatorToggleButton->setFixedSize(leftButtonsSize);
112  translateManipulatorToggleButton->setStyleSheet("background-color: " + buttonColor);
113  translateManipulatorToggleButton->move(
114  margin, rotateManipulatorToggleButton->pos().y() + leftButtonsSize.height() + spacing);
115  translateManipulatorToggleButton->show();
116 
117 
118  undoButton->setObjectName(QString::fromUtf8("undoButton"));
119  sizePolicy.setHeightForWidth(undoButton->sizePolicy().hasHeightForWidth());
120  undoButton->setSizePolicy(sizePolicy);
121  QIcon icon4;
122  icon4.addFile(QString::fromUtf8(":/icons/edit-undo-3.svg"), QSize(), QIcon::Normal, QIcon::Off);
123  undoButton->setIcon(icon4);
124  undoButton->setToolTip(tr("Undo last Action"));
125  undoButton->setIconSize(leftButtonsSize);
126  undoButton->setFixedSize(leftButtonsSize);
127  undoButton->setStyleSheet("background-color: " + buttonColor);
128  undoButton->move(
129  margin, translateManipulatorToggleButton->pos().y() + leftButtonsSize.height() + spacing);
130  undoButton->show();
131 
132  redoButton = new QPushButton(this);
133  redoButton->setObjectName(QString::fromUtf8("redoButton"));
134  sizePolicy.setHeightForWidth(redoButton->sizePolicy().hasHeightForWidth());
135  redoButton->setSizePolicy(sizePolicy);
136  QIcon icon5;
137  icon5.addFile(QString::fromUtf8(":/icons/edit-redo-3.svg"), QSize(), QIcon::Normal, QIcon::Off);
138  redoButton->setIcon(icon5);
139  redoButton->setToolTip(tr("Redo last Action"));
140  redoButton->setIconSize(leftButtonsSize);
141  redoButton->setFixedSize(leftButtonsSize);
142  redoButton->setStyleSheet("background-color: " + buttonColor);
143  redoButton->move(margin, undoButton->pos().y() + leftButtonsSize.height() + spacing);
144  redoButton->show();
145 
146  removeSelectedObjectsButton = new QPushButton(this);
147  removeSelectedObjectsButton->setObjectName(QString::fromUtf8("removeSelectedObjectsButton"));
148  sizePolicy.setHeightForWidth(removeSelectedObjectsButton->sizePolicy().hasHeightForWidth());
149  removeSelectedObjectsButton->setSizePolicy(sizePolicy);
150  QIcon icon6;
151  icon6.addFile(
152  QString::fromUtf8(":/icons/dialog-close.ico"), QSize(), QIcon::Normal, QIcon::Off);
153  removeSelectedObjectsButton->setIcon(icon6);
154  removeSelectedObjectsButton->setToolTip(tr("Remove selected Objects from scene"));
155  removeSelectedObjectsButton->setIconSize(leftButtonsSize);
156  removeSelectedObjectsButton->setFixedSize(leftButtonsSize);
157  removeSelectedObjectsButton->setStyleSheet("background-color: " + buttonColor);
158  removeSelectedObjectsButton->move(margin,
159  redoButton->pos().y() + leftButtonsSize.height() + spacing);
160  removeSelectedObjectsButton->show();
161 
162  viewerToggleButton->setObjectName(QString::fromUtf8("viewerToggleButton"));
163  viewerToggleButton->setText(tr("Viewer"));
164  viewerToggleButton->setCheckable(true);
165  viewerToggleButton->adjustSize();
166  viewerToggleButton->setStyleSheet("background-color: " + buttonColor);
167  viewerToggleButton->show();
168  editorViewerButtonGroup->addButton(viewerToggleButton, VIEWER_BUTTON_ID);
169 
170  editorToggleButton->setObjectName(QString::fromUtf8("editorToggleButton"));
171  editorToggleButton->setText(tr("Editor"));
172  editorToggleButton->setCheckable(true);
173  editorToggleButton->setChecked(true);
174  editorToggleButton->adjustSize();
175  editorToggleButton->setStyleSheet("background-color: " + buttonColor);
176  editorToggleButton->show();
177  editorViewerButtonGroup->addButton(editorToggleButton, EDITOR_BUTTON_ID);
178 
179  connect(this, SIGNAL(sizeChangedSignal(QSize)), this, SLOT(sizeChanged(QSize)));
180  connect(undoButton, SIGNAL(released()), this, SLOT(undoButtonReleased()));
181  connect(redoButton, SIGNAL(released()), this, SLOT(redoButtonReleased()));
182  connect(removeSelectedObjectsButton,
183  SIGNAL(released()),
184  this,
185  SLOT(removeSelectedObjectsButtonReleased()));
186  connect(collisionMeshToggleButton,
187  SIGNAL(toggled(bool)),
188  this,
189  SLOT(collisionMeshToggleButtonToggled(bool)));
190  connect(rotateManipulatorToggleButton,
191  SIGNAL(toggled(bool)),
192  this,
193  SLOT(rotateManipulatorToggleButtonToggled(bool)));
194  connect(translateManipulatorToggleButton,
195  SIGNAL(toggled(bool)),
196  this,
197  SLOT(translateManipulatorToggleButtonToggled(bool)));
198  connect(editorViewerButtonGroup,
199  SIGNAL(buttonClicked(int)),
200  this,
201  SLOT(editorViewerButtonGroupButtonClicked(int)));
202 
203  std::shared_ptr<gui::ShortcutController> shortcutController = control->getShortcutController();
204 
205  QPointer<QAction> undoAction(new OverrideAction("Scene: Undo last Action", this));
206  this->addAction(undoAction);
207  connect(undoAction, SIGNAL(triggered()), undoButton, SLOT(click()));
208  shortcutController->registerAction(undoAction->text(), undoAction);
209 
210  QPointer<QAction> redoAction(new OverrideAction("Scene: Redo last Action", this));
211  this->addAction(redoAction);
212  connect(redoAction, SIGNAL(triggered()), redoButton, SLOT(click()));
213  shortcutController->registerAction(redoAction->text(), redoAction);
214 
215  QPointer<QAction> removeSelectedObjectsAction(
216  new OverrideAction("Scene: Remove the selected Objects", this));
217  this->addAction(removeSelectedObjectsAction);
218  connect(removeSelectedObjectsAction,
219  SIGNAL(triggered()),
220  removeSelectedObjectsButton,
221  SLOT(click()));
222  shortcutController->registerAction(removeSelectedObjectsAction->text(),
223  removeSelectedObjectsAction);
224 
225  QPointer<QAction> collisionAction(new OverrideAction("Scene: Toggle Collision Meshes", this));
226  this->addAction(collisionAction);
227  connect(collisionAction, SIGNAL(triggered()), collisionMeshToggleButton, SLOT(toggle()));
228  shortcutController->registerAction(collisionAction->text(), collisionAction);
229 
230  QPointer<QAction> rotateAction(new OverrideAction("Scene: Toggle Rotation Manipulator", this));
231  this->addAction(rotateAction);
232  connect(rotateAction, SIGNAL(triggered()), rotateManipulatorToggleButton, SLOT(toggle()));
233  shortcutController->registerAction(rotateAction->text(), rotateAction);
234 
235  QPointer<QAction> translateAction(
236  new OverrideAction("Scene: Toggle Translation Manipulator", this));
237  this->addAction(translateAction);
238  connect(translateAction, SIGNAL(triggered()), translateManipulatorToggleButton, SLOT(toggle()));
239  shortcutController->registerAction(translateAction->text(), translateAction);
240 
241  QPointer<QAction> editorAction(new OverrideAction("Scene: Switch to Editor Mode", this));
242  this->addAction(editorAction);
243  connect(editorAction, SIGNAL(triggered()), editorToggleButton, SLOT(click()));
244  shortcutController->registerAction(editorAction->text(), editorAction);
245 
246  QPointer<QAction> viewerAction(new OverrideAction("Scene: Switch to Viewer Mode", this));
247  this->addAction(viewerAction);
248  connect(viewerAction, SIGNAL(triggered()), viewerToggleButton, SLOT(click()));
249  shortcutController->registerAction(viewerAction->text(), viewerAction);
250 
251  QPointer<QAction> switchEditorViewerAction(
252  new OverrideAction("Scene: Switch between Editor and Viewer Mode", this));
253  this->addAction(switchEditorViewerAction);
254  connect(switchEditorViewerAction, SIGNAL(triggered()), this, SLOT(toggleEditorViewerMode()));
255  shortcutController->registerAction(switchEditorViewerAction->text(), switchEditorViewerAction);
256 
257  emit sizeChanged(this->size());
258 }
259 
261 {
262 }
263 
264 void
265 gui::SceneEditorWidget::resizeEvent(QResizeEvent* event)
266 {
267  QWidget::resizeEvent(event);
268  emit sizeChangedSignal(event->size());
269 }
270 
271 void
272 gui::SceneEditorWidget::sizeChanged(QSize newSize)
273 {
274  viewerToggleButton->move(newSize.width() - margin - viewerToggleButton->size().width(), margin);
275  editorToggleButton->move(viewerToggleButton->pos().x() - editorToggleButton->size().width(),
276  margin);
277 }
278 
279 void
280 gui::SceneEditorWidget::undoButtonReleased()
281 {
282  if (controller::ControllerPtr sharedController = control.lock())
283  {
284  sharedController->undo();
285  }
286 }
287 
288 void
289 gui::SceneEditorWidget::redoButtonReleased()
290 {
291  if (controller::ControllerPtr sharedController = control.lock())
292  {
293  sharedController->redo();
294  }
295 }
296 
297 void
298 gui::SceneEditorWidget::removeSelectedObjectsButtonReleased()
299 {
300  if (controller::ControllerPtr sharedController = control.lock())
301  {
302  std::shared_ptr<std::vector<controller::OperationPtr>> operations(
303  new std::vector<controller::OperationPtr>());
304  std::vector<scene3D::SceneObjectPtr> selectedObjects =
305  sharedController->getScene()->getSelectionManager()->getAllSelected();
306  std::vector<scene3D::SceneGroupPtr> groups =
307  sharedController->getScene()->getGroupManager()->getAllGroups();
308 
309  for (auto it = selectedObjects.rbegin(); it != selectedObjects.rend(); ++it)
310  {
311  controller::OperationPtr deselectOperation(
312  new controller::DeselectOperation(sharedController->getMemoryXController(),
313  sharedController->getScene(),
314  (*it)->getObjectId()));
315  operations->push_back(deselectOperation);
316 
317  for (auto itG = groups.begin(); itG != groups.end(); ++itG)
318  {
319  if ((*itG)->contains(*it))
320  {
321  controller::OperationPtr removeFromGroupOperation(
323  sharedController->getMemoryXController(),
324  sharedController->getScene(),
325  (*itG)->getGroupId(),
326  (*it)->getObjectId()));
327  operations->push_back(removeFromGroupOperation);
328  }
329  }
330 
331  controller::OperationPtr removeOperation(
332  new controller::RemoveOperation(sharedController->getMemoryXController(),
333  sharedController->getScene(),
334  (*it)->getObjectId()));
335  operations->push_back(removeOperation);
336  }
337 
338  sharedController->execute(controller::Controller::EXECUTE_ON_SCENE |
341  operations);
342  }
343 }
344 
345 void
346 gui::SceneEditorWidget::collisionMeshToggleButtonToggled(bool checked)
347 {
348  if (controller::ControllerPtr sharedController = control.lock())
349  {
350  for (scene3D::SceneObjectPtr object :
351  sharedController->getScene()->getObjectManager()->getAllObjects())
352  {
353  object->showCollisionMesh(checked);
354  }
355  }
356 }
357 
358 void
359 gui::SceneEditorWidget::rotateManipulatorToggleButtonToggled(bool checked)
360 {
361  if (controller::ControllerPtr sharedController = control.lock())
362  {
364 
365  if (checked)
366  {
367  if (sharedController->getScene()->getManipulatorManager()->getManipulatorMode() ==
369  {
371  }
372  else
373  {
375  }
376  }
377  else
378  {
379  if (sharedController->getScene()->getManipulatorManager()->getManipulatorMode() ==
381  {
383  }
384  else
385  {
387  }
388  }
389 
390  sharedController->getScene()->getManipulatorManager()->setManipulatorMode(mode);
391  }
392 }
393 
394 void
395 gui::SceneEditorWidget::translateManipulatorToggleButtonToggled(bool checked)
396 {
397  if (controller::ControllerPtr sharedController = control.lock())
398  {
400 
401  if (checked)
402  {
403  if (sharedController->getScene()->getManipulatorManager()->getManipulatorMode() ==
405  {
407  }
408  else
409  {
411  }
412  }
413  else
414  {
415  if (sharedController->getScene()->getManipulatorManager()->getManipulatorMode() ==
417  {
419  }
420  else
421  {
423  }
424  }
425 
426  sharedController->getScene()->getManipulatorManager()->setManipulatorMode(mode);
427  }
428 }
429 
430 void
431 gui::SceneEditorWidget::editorViewerButtonGroupButtonClicked(int id)
432 {
433  if (controller::ControllerPtr sharedController = control.lock())
434  {
435  if (id == VIEWER_BUTTON_ID)
436  {
437  showCollisionMesh = collisionMeshToggleButton->isChecked();
438 
439  if (showCollisionMesh)
440  {
441  collisionMeshToggleButton->click();
442  }
443 
444  collisionMeshToggleButton->hide();
445  collisionMeshToggleButton->setEnabled(false);
446  collisionMeshToggleButton->setCheckable(false);
447  showRotateManipulator = rotateManipulatorToggleButton->isChecked();
448 
449  if (showRotateManipulator)
450  {
451  rotateManipulatorToggleButton->click();
452  }
453 
454  rotateManipulatorToggleButton->hide();
455  rotateManipulatorToggleButton->setEnabled(false);
456  rotateManipulatorToggleButton->setCheckable(false);
457  showTranslateManipulator = translateManipulatorToggleButton->isChecked();
458 
459  if (showTranslateManipulator)
460  {
461  translateManipulatorToggleButton->click();
462  }
463 
464  translateManipulatorToggleButton->hide();
465  translateManipulatorToggleButton->setEnabled(false);
466  translateManipulatorToggleButton->setCheckable(false);
467  undoButton->hide();
468  undoButton->setEnabled(false);
469  redoButton->hide();
470  redoButton->setEnabled(false);
471  removeSelectedObjectsButton->hide();
472  removeSelectedObjectsButton->setEnabled(false);
473 
474  sharedController->getScene()->enterViewerMode();
475  }
476  else if (id == EDITOR_BUTTON_ID)
477  {
478  collisionMeshToggleButton->show();
479  collisionMeshToggleButton->setEnabled(true);
480  collisionMeshToggleButton->setCheckable(true);
481 
482  if (showCollisionMesh)
483  {
484  collisionMeshToggleButton->click();
485  }
486 
487  rotateManipulatorToggleButton->show();
488  rotateManipulatorToggleButton->setEnabled(true);
489  rotateManipulatorToggleButton->setCheckable(true);
490 
491  if (showRotateManipulator)
492  {
493  rotateManipulatorToggleButton->click();
494  }
495 
496  translateManipulatorToggleButton->show();
497  translateManipulatorToggleButton->setEnabled(true);
498  translateManipulatorToggleButton->setCheckable(true);
499 
500  if (showTranslateManipulator)
501  {
502  translateManipulatorToggleButton->click();
503  }
504 
505  undoButton->show();
506  undoButton->setEnabled(true);
507  redoButton->show();
508  redoButton->setEnabled(true);
509  removeSelectedObjectsButton->show();
510  removeSelectedObjectsButton->setEnabled(true);
511 
512  sharedController->getScene()->enterEditorMode();
513  }
514  }
515 }
516 
517 void
518 gui::SceneEditorWidget::toggleEditorViewerMode()
519 {
520  switch (this->editorViewerButtonGroup->checkedId())
521  {
522  case VIEWER_BUTTON_ID:
523  this->editorToggleButton->click();
524  break;
525 
526  case EDITOR_BUTTON_ID:
527  this->viewerToggleButton->click();
528  break;
529  }
530 }
531 
532 void
534 {
535  collisionMeshToggleButton->setToolTip(tr("Toggle Collisionmesh"));
536  rotateManipulatorToggleButton->setToolTip(tr("Toggle Rotationmanipulator"));
537  translateManipulatorToggleButton->setToolTip(tr("Toggle Translationmanipulator"));
538  undoButton->setToolTip(tr("Undo last Action"));
539  redoButton->setToolTip(tr("Redo last Action"));
540  removeSelectedObjectsButton->setToolTip(tr("Remove selected Objects from scene"));
541  viewerToggleButton->setText(tr("Viewer"));
542  editorToggleButton->setText(tr("Editor"));
543 }
544 
545 void
547 {
548  sceneGraph->postDocking();
549 }
gui::SceneEditorWidget::sizeChangedSignal
void sizeChangedSignal(QSize newSize)
Signal emitted when the size of the widget has changed.
scene3D::ManipulatorMode
ManipulatorMode
Definition: ManipulatorMode.h:33
gui::SceneEditorWidget::postDocking
void postDocking()
Definition: SceneEditorWidget.cpp:546
gui::OverrideAction
Definition: OverrideAction.h:31
controller::Controller::EXECUTE_ON_SCENE
static const int EXECUTE_ON_SCENE
A flag to execute operations on the Scene.
Definition: Controller.h:73
gui::SceneEditorWidget::retranslate
void retranslate()
Translates all translatable strings in this dialog.
Definition: SceneEditorWidget.cpp:533
GfxTL::Off
OnOff< false > Off
Definition: OnOff.h:13
gui::SceneEditorWidget::SceneEditorWidget
SceneEditorWidget(const controller::ControllerPtr &control, QWidget *parent=0)
Constructor.
Definition: SceneEditorWidget.cpp:33
SceneEditorWidget.h
gui::SceneEditorWidget::~SceneEditorWidget
~SceneEditorWidget() override
Definition: SceneEditorWidget.cpp:260
controller::Controller::UNDOABLE
static const int UNDOABLE
A flag to save the executed operations to the history.
Definition: Controller.h:80
scene3D::ALL
@ ALL
Definition: ManipulatorMode.h:35
controller::ControllerPtr
std::shared_ptr< Controller > ControllerPtr
Definition: ClassDefinitions.h:41
OverrideAction.h
gui::ScenegraphWidget
This class provides a widget which holds a scene3D::SceneViewer in which the scene graph is rendered.
Definition: ScenegraphWidget.h:48
controller::RemoveFromGroupOperation
A operation to removes a object from a existing group.
Definition: RemoveFromGroupOperation.h:41
controller::DeselectOperation
A operation to deselect a object.
Definition: DeselectOperation.h:41
scene3D::TRANSLATION
@ TRANSLATION
Definition: ManipulatorMode.h:37
armarx::aron::similarity::FloatSimilarity::NONE
@ NONE
Definition: FloatSimilarity.h:14
controller::OperationPtr
std::shared_ptr< Operation > OperationPtr
Definition: ClassDefinitions.h:54
scene3D::SceneObjectPtr
boost::intrusive_ptr< SceneObject > SceneObjectPtr
Definition: PointerDefinitions.h:40
controller::Controller::EXECUTE_ON_WM
static const int EXECUTE_ON_WM
A Flag to execute operations on the WorkingMemory.
Definition: Controller.h:66
armarx::transparent
QColor transparent()
Definition: StyleSheets.h:90
armarx::RemoteGui::buttonClicked
bool buttonClicked(RemoteGui::ValueMap const &newValues, RemoteGui::ValueMap const &oldValues, std::string const &name)
Definition: Storage.cpp:7
control
This file is part of ArmarX.
controller::RemoveOperation
A Operation to remove a object in the scene and the WorkingMemory.
Definition: RemoveOperation.h:47
scene3D::ROTATION
@ ROTATION
Definition: ManipulatorMode.h:36