From f3fcf46a7acb06e179f2a120c590187d796aaf68 Mon Sep 17 00:00:00 2001 From: Fabian Paus <fabian.paus@kit.edu> Date: Mon, 25 Apr 2022 11:03:18 +0200 Subject: [PATCH] Get rid of <ArmarXCore/util/CPPUtility/Iterator.h> uses The header is very expensive and is often used in cases where a simple for loop does the exact same thing.. --- .../components/ArViz/Client/elements/Mesh.h | 14 ++++++-------- .../components/DebugDrawer/DebugDrawerHelper.cpp | 7 ++++--- .../NJointCartesianNaturalPositionController.cpp | 4 ++-- .../NJointCartesianWaypointController.cpp | 7 ++++--- .../RobotUnitModules/RobotUnitModuleLogging.cpp | 5 +++-- .../RobotUnitPluginWidgetController.cpp | 5 +++-- .../SkillManagerMonitorWidgetController.cpp | 2 -- .../visitors/AronTreeWidgetConverter.cpp | 2 -- .../visitors/AronTreeWidgetCreator.cpp | 2 -- .../visitors/AronTreeWidgetModalCreator.cpp | 2 -- 10 files changed, 22 insertions(+), 28 deletions(-) diff --git a/source/RobotAPI/components/ArViz/Client/elements/Mesh.h b/source/RobotAPI/components/ArViz/Client/elements/Mesh.h index a75475aee..b2530de11 100644 --- a/source/RobotAPI/components/ArViz/Client/elements/Mesh.h +++ b/source/RobotAPI/components/ArViz/Client/elements/Mesh.h @@ -1,17 +1,15 @@ #pragma once -#include <functional> -#include <numeric> // for std::accumulate -#include <vector> +#include "ElementOps.h" -#include <Eigen/Core> +#include <RobotAPI/interface/ArViz/Elements.h> -#include <ArmarXCore/util/CPPUtility/Iterator.h> -#include <ArmarXCore/core/exceptions/local/ExpressionException.h> +#include <Eigen/Core> -#include <RobotAPI/interface/ArViz/Elements.h> +#include <functional> +#include <numeric> // for std::accumulate +#include <vector> -#include "ElementOps.h" namespace CGAL { diff --git a/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp b/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp index 2edd13823..e65fa6a4f 100644 --- a/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp +++ b/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp @@ -25,7 +25,6 @@ #include <VirtualRobot/math/Helpers.h> -#include <ArmarXCore/util/CPPUtility/Iterator.h> #include <ArmarXCore/util/CPPUtility/trace.h> #include <ArmarXCore/core/exceptions/local/ExpressionException.h> @@ -188,16 +187,18 @@ namespace armarx::detail::DebugDrawerHelper void FrameView::drawPoses(const std::string& prefix, const std::vector<Eigen::Matrix4f>& poses) { ARMARX_TRACE; - for (const auto& [idx, pose] : MakeIndexedContainer(poses)) + for (std::size_t idx = 0; idx < poses.size(); ++idx) { + Eigen::Matrix4f const& pose = poses[idx]; drawPose(prefix + std::to_string(idx), pose); } } void FrameView::drawPoses(const std::string& prefix, const std::vector<Eigen::Matrix4f>& poses, float scale) { ARMARX_TRACE; - for (const auto& [idx, pose] : MakeIndexedContainer(poses)) + for (std::size_t idx = 0; idx < poses.size(); ++idx) { + Eigen::Matrix4f const& pose = poses[idx]; drawPose(prefix + std::to_string(idx), pose, scale); } } diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianNaturalPositionController.cpp b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianNaturalPositionController.cpp index 3cbe59bdf..ff1afaf68 100644 --- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianNaturalPositionController.cpp +++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianNaturalPositionController.cpp @@ -1,4 +1,3 @@ -#include <ArmarXCore/util/CPPUtility/Iterator.h> #include <ArmarXCore/util/CPPUtility/trace.h> #include <RobotAPI/components/units/RobotUnit/ControlTargets/ControlTarget1DoFActuator.h> @@ -356,8 +355,9 @@ namespace armarx //write targets ARMARX_CHECK_EQUAL(static_cast<std::size_t>(goal.size()), _rtVelTargets.size()); - for (const auto& [idx, ptr] : MakeIndexedContainer(_rtVelTargets)) + for (std::size_t idx = 0; idx < _rtVelTargets.size(); ++idx) { + float* ptr = _rtVelTargets[idx]; *ptr = goal(idx); } } diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianWaypointController.cpp b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianWaypointController.cpp index 0ae54afc6..2b53ca18e 100644 --- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianWaypointController.cpp +++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointCartesianWaypointController.cpp @@ -1,4 +1,3 @@ -#include <ArmarXCore/util/CPPUtility/Iterator.h> #include <ArmarXCore/util/CPPUtility/trace.h> #include <RobotAPI/components/units/RobotUnit/ControlTargets/ControlTarget1DoFActuator.h> @@ -150,8 +149,9 @@ namespace armarx { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" - for (const auto& [idx, ptr] : MakeIndexedContainer(_rtVelSensors)) + for (std::size_t idx = 0; idx < _rtVelSensors.size(); ++idx) { + const float* ptr = _rtVelSensors[idx]; _rtJointVelocityFeedbackBuffer(idx) = *ptr; } _rtWpController->setCurrentJointVelocity(_rtJointVelocityFeedbackBuffer); @@ -272,8 +272,9 @@ namespace armarx const Eigen::VectorXf& goal = _rtWpController->calculate(timeSinceLastIteration.toSecondsDouble()); //write targets ARMARX_CHECK_EQUAL(static_cast<std::size_t>(goal.size()), _rtVelTargets.size()); - for (const auto& [idx, ptr] : MakeIndexedContainer(_rtVelTargets)) + for (std::size_t idx = 0; idx < _rtVelTargets.size(); ++idx) { + float* ptr = _rtVelTargets[idx]; *ptr = goal(idx); } } diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp index 5cf5fed08..c1b9e88ca 100644 --- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp +++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleLogging.cpp @@ -27,7 +27,6 @@ #include <ArmarXCore/core/ArmarXManager.h> #include <ArmarXCore/core/util/FileSystemPathBuilder.h> -#include <ArmarXCore/util/CPPUtility/Iterator.h> #include <ArmarXCore/util/CPPUtility/trace.h> #include "../util/ControlThreadOutputBuffer.h" @@ -893,8 +892,10 @@ Logging::_postFinishDeviceInitialization() ValueMetaData data; const auto names = val->getDataFieldNames(); data.fields.resize(names.size()); - for (const auto& [fieldIdx, fieldName] : MakeIndexedContainer(names)) + + for (std::size_t fieldIdx = 0; fieldIdx < names.size(); ++fieldIdx) { + std::string const& fieldName = names[fieldIdx]; data.fields.at(fieldIdx).name = namePre + '.' + fieldName; data.fields.at(fieldIdx).type = &(val->getDataFieldType(fieldIdx)); } diff --git a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp index 273a2d631..5e117d1e6 100644 --- a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp @@ -31,7 +31,6 @@ #include <QSortFilterProxyModel> #include <QAction> -#include <ArmarXCore/util/CPPUtility/Iterator.h> #include <ArmarXCore/core/system/cmake/CMakePackageFinder.h> #include <ArmarXCore/core/exceptions/local/ExpressionException.h> #include <ArmarXCore/core/util/FileSystemPathBuilder.h> @@ -523,8 +522,10 @@ void armarx::RobotUnitPluginWidgetController::on_lineEditLoggingFilter_textChang } } widget.treeWidgetLoggingNames->blockSignals(true); - for (auto item : MakeReversedRange(loggingData.allItems)) + // Iterate in reverse order + for (auto iter = loggingData.allItems.rbegin(); iter != loggingData.allItems.rend(); ++iter) { + QTreeWidgetItem* item = *iter; loggingData.updateCheckStateUpward(item, false); } widget.treeWidgetLoggingNames->blockSignals(false); diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp index 431ce92ca..e9942f7ec 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp @@ -22,8 +22,6 @@ #include <string> -#include <ArmarXCore/util/CPPUtility/Iterator.h> - #include "SkillManagerMonitorWidgetController.h" #include "aronTreeWidget/visitors/AronTreeWidgetCreator.h" diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp index e9effb321..0da02a754 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp @@ -22,8 +22,6 @@ #include <string> -#include <ArmarXCore/util/CPPUtility/Iterator.h> - #include "AronTreeWidgetConverter.h" // debug diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp index b3a868208..37a59c62a 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp @@ -22,8 +22,6 @@ #include <string> -#include <ArmarXCore/util/CPPUtility/Iterator.h> - #include "AronTreeWidgetCreator.h" // debug diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetModalCreator.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetModalCreator.cpp index a2a2240d3..201089459 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetModalCreator.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetModalCreator.cpp @@ -22,8 +22,6 @@ #include <string> -#include <ArmarXCore/util/CPPUtility/Iterator.h> - #include "AronTreeWidgetModalCreator.h" #include <SimoxUtility/algorithm/string.h> -- GitLab