diff --git a/scenarios/LaserScannerTest/config/HokuyoLaserUnitApp.cfg b/scenarios/LaserScannerTest/config/HokuyoLaserUnitApp.cfg index 37804992be69d3fba75c67f1ce9a91b49055a8c3..effbf0059a3f5aee7da7b6aa9b5d3b7b46c9194c 100644 --- a/scenarios/LaserScannerTest/config/HokuyoLaserUnitApp.cfg +++ b/scenarios/LaserScannerTest/config/HokuyoLaserUnitApp.cfg @@ -79,10 +79,10 @@ # - Default: -2.3561945 # - Case sensitivity: no # - Required: no -# ArmarX.HokuyoLaserUnit.AngleOffset = -2.3561945 +ArmarX.HokuyoLaserUnit.AngleOffset = 0 -# ArmarX.HokuyoLaserUnit.Devices: List of devices in form of 'IP1,port1;IP2,port2;...' +# ArmarX.HokuyoLaserUnit.Devices: List of devices in form of 'IP1,port1,frame1;IP2,port2,frame2;...' # Attributes: # - Default: "" # - Case sensitivity: no diff --git a/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.cpp b/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.cpp index 4ed9add233d600fe99badbeaa85c17791c959e41..01a0f8d8cb851b70b8ae3025099f059926cdeca5 100644 --- a/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.cpp @@ -32,8 +32,6 @@ using namespace armarx; LaserScannerPluginWidgetController::LaserScannerPluginWidgetController() { widget.setupUi(getWidget()); - - widget.graphicsView->setScene(&scene); } @@ -129,10 +127,10 @@ void LaserScannerPluginWidgetController::onNewSensorValuesReported() QGraphicsView* view = widget.graphicsView; - - scene.clear(); + scene.reset(new QGraphicsScene()); + widget.graphicsView->setScene(scene.get()); int outerR = std::min(view->width() / 2, view->height() / 2); - scene.addEllipse(-outerR, -outerR, 2 * outerR, 2 * outerR, QPen(QColor(255, 255, 255))); + scene->addEllipse(-outerR, -outerR, 2 * outerR, 2 * outerR, QPen(QColor(255, 255, 255))); int r = outerR - 10; //scene.addEllipse(-r, -r, 2 * r, 2 * r, QPen(QColor(200, 200, 200))); QColor stepColor(QColor::fromRgb(100, 100, 255)); @@ -141,7 +139,7 @@ void LaserScannerPluginWidgetController::onNewSensorValuesReported() auto line = [&](float angle, float d) { float di = d * r; - QGraphicsEllipseItem* item = scene.addEllipse(-di, -di, 2 * di, 2 * di, stepPen, stepBrush); + QGraphicsEllipseItem* item = scene->addEllipse(-di, -di, 2 * di, 2 * di, stepPen, stepBrush); // Angles for Qt ellipse are in 16th of degree (who thought that would be a great idea?) item->setStartAngle(std::round(16.0f * angle * 180.0 / M_PI) + 90 * 16); item->setSpanAngle(std::round(stepSize * 16.0f * 180.0 / M_PI)); @@ -175,10 +173,10 @@ void LaserScannerPluginWidgetController::onNewSensorValuesReported() for (int ringIndex = 1; ringIndex <= maxNumberOfRings; ++ringIndex) { float ri = 1.0f * ringIndex / maxNumberOfRings * r; - scene.addEllipse(-ri, -ri, 2 * ri, 2 * ri, QPen(QColor(200, 200, 200))); + scene->addEllipse(-ri, -ri, 2 * ri, 2 * ri, QPen(QColor(200, 200, 200))); } - view->fitInView(scene.itemsBoundingRect(), Qt::KeepAspectRatio); + view->fitInView(scene->itemsBoundingRect(), Qt::KeepAspectRatio); } void LaserScannerPluginWidgetController::onDeviceSelected(int index) diff --git a/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.h b/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.h index f0310dba015af5435c0b9cbab8a85e09b473fe6d..61de784ae16b9626c5c8962378d9383a4da7eedd 100644 --- a/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.h +++ b/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginWidgetController.h @@ -125,7 +125,7 @@ namespace armarx std::unordered_map<std::string, std::deque<int>> numberOfRingsHistory; - QGraphicsScene scene; + std::unique_ptr<QGraphicsScene> scene; }; }