diff --git a/source/RobotAPI/components/RobotToArViz/RobotToArViz.cpp b/source/RobotAPI/components/RobotToArViz/RobotToArViz.cpp index 63311003da6f9911fad75c5faa154010e2280725..05ea121479788774bd7e63af534734f1c7720fb7 100644 --- a/source/RobotAPI/components/RobotToArViz/RobotToArViz.cpp +++ b/source/RobotAPI/components/RobotToArViz/RobotToArViz.cpp @@ -38,6 +38,8 @@ namespace armarx // defs->optional(updateFrequency, "updateFrequency", "Target number of updates per second."); defs->defineOptionalProperty("updateFrequency", updateFrequency, "Target number of updates per second."); + defs->optional(gui.useCollisionModel, "UseCollisionModel", "Use the collision model for visualization"); + defs->optional(gui.showRobotNodeFrames, "ShowRobotNodeFrames", "If true, show frames of robot nodes (can be changed in RemoteGui)."); @@ -65,6 +67,11 @@ namespace armarx // Initialize robot visu element. this->robotViz = viz::Robot(robot->getName()).file("", robot->getFilename()); + if (gui.useCollisionModel) + { + this->robotViz.useCollisionModel(); + } + createRemoteGuiTab(); RemoteGui_startRunningTask(); @@ -98,6 +105,11 @@ namespace armarx root.add(Label("Show Robot Node Frames"), {row, 0}); root.add(tab.showRobotNodeFrames, {row, 1}); row += 1; + + tab.useCollisionModel.setValue(gui.useCollisionModel); + root.add(Label("Use Collision Model"), {row, 0}); + root.add(tab.useCollisionModel, {row, 1}); + row += 1; } RemoteGui_createTab(getName(), root, &tab); } @@ -109,6 +121,20 @@ namespace armarx { gui.showRobotNodeFrames = newShowRobotNodeFrames; } + + bool newUseCollisionmodel = tab.useCollisionModel.getValue(); + if (newUseCollisionmodel != gui.useCollisionModel) + { + gui.useCollisionModel = newUseCollisionmodel; + if (newUseCollisionmodel) + { + robotViz.useCollisionModel(); + } + else + { + robotViz.useFullModel(); + } + } } diff --git a/source/RobotAPI/components/RobotToArViz/RobotToArViz.h b/source/RobotAPI/components/RobotToArViz/RobotToArViz.h index c289de35fdb7d98d92bb22b68fdeb93c6b91eb2c..ebf9ba01103e771bea9b667ef98a9352bbc562d1 100644 --- a/source/RobotAPI/components/RobotToArViz/RobotToArViz.h +++ b/source/RobotAPI/components/RobotToArViz/RobotToArViz.h @@ -116,6 +116,8 @@ namespace armarx struct Tab : RemoteGui::Client::Tab { RemoteGui::Client::CheckBox showRobotNodeFrames; + + RemoteGui::Client::CheckBox useCollisionModel; // Todo: add spin box for scale }; Tab tab; @@ -123,6 +125,9 @@ namespace armarx struct Gui { bool showRobotNodeFrames = false; + + bool useCollisionModel = false; + }; Gui gui;