diff --git a/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.cpp b/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.cpp index e2436920ed1c5fe526b7abb556d8a8e4e1605e1f..e04d149a3eed50980d1a0d72011fa43a274d6001 100644 --- a/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.cpp +++ b/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.cpp @@ -6,6 +6,10 @@ #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h> +#include <Inventor/nodes/SoUnits.h> +#include <Inventor/nodes/SoTransform.h> +#include <Inventor/nodes/SoMaterial.h> + namespace armarx::viz::coin { ElementVisualization::ElementVisualization() diff --git a/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.h b/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.h index 9be0fa5b5c44d5256ae0adb4cc0c6a74d5dfe619..af58bde80e165d9ccded34548f2d57a58bab5f70 100644 --- a/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.h +++ b/source/RobotAPI/components/ArViz/Coin/ElementVisualizer.h @@ -1,19 +1,20 @@ #pragma once -#include <Inventor/nodes/SoMaterial.h> +#include <RobotAPI/interface/ArViz/Elements.h> + #include <Inventor/nodes/SoSeparator.h> -#include <Inventor/nodes/SoUnits.h> -#include <Inventor/nodes/SoTransform.h> #include <memory> -#include <RobotAPI/interface/ArViz/Elements.h> - namespace armarx::viz::data { class Element; } +class SoUnits; +class SoTransform; +class SoMaterial; + namespace armarx::viz::coin { struct ElementVisualization diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizationCylindroid.h b/source/RobotAPI/components/ArViz/Coin/VisualizationCylindroid.h index 06e58d26a4c1119598bd73ce90e61dfa735f12b7..478f99c019e82321a860f7b6a4be18454f97064a 100644 --- a/source/RobotAPI/components/ArViz/Coin/VisualizationCylindroid.h +++ b/source/RobotAPI/components/ArViz/Coin/VisualizationCylindroid.h @@ -7,6 +7,8 @@ #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h> #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h> +#include <Inventor/nodes/SoUnits.h> + namespace armarx::viz::coin { struct VisualizationCylindroid : TypedElementVisualization<SoSeparator> diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizationPath.cpp b/source/RobotAPI/components/ArViz/Coin/VisualizationPath.cpp index a0190abd75a8438a2371c728a580837d68c3eecc..84c7b3a30512d5c0a93339d1f602c524fd613a38 100644 --- a/source/RobotAPI/components/ArViz/Coin/VisualizationPath.cpp +++ b/source/RobotAPI/components/ArViz/Coin/VisualizationPath.cpp @@ -7,6 +7,7 @@ #include <Inventor/nodes/SoDrawStyle.h> #include <Inventor/nodes/SoLineSet.h> #include <Inventor/nodes/SoPointSet.h> +#include <Inventor/nodes/SoMaterial.h> namespace armarx::viz::coin { @@ -94,4 +95,4 @@ namespace armarx::viz::coin return true; } -} // namespace armarx::viz::coin \ No newline at end of file +} // namespace armarx::viz::coin diff --git a/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp b/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp index e25405e6ad5168eadd59650471b5e5b2a9e6c610..c76af807a1c9457e205de2dbf95d5540f89dfeac 100644 --- a/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp +++ b/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp @@ -1,23 +1,21 @@ #include "Visualizer.h" +#include "VisualizationRobot.h" +#include "VisualizationObject.h" + #include <ArmarXCore/core/logging/Logging.h> #include <ArmarXCore/util/CPPUtility/GetTypeString.h> -#include <Inventor/sensors/SoTimerSensor.h> -#include <Inventor/nodes/SoUnits.h> -#include <QCoreApplication> -#include <thread> - +#include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h> +#include <VirtualRobot/Visualization/VisualizationFactory.h> +#include <Inventor/nodes/SoUnits.h> #include <Inventor/actions/SoWriteAction.h> #include <Inventor/actions/SoToVRML2Action.h> #include <Inventor/VRMLnodes/SoVRMLGroup.h> -#include <Inventor/nodes/SoRotation.h> -#include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h> -#include <VirtualRobot/Visualization/VisualizationFactory.h> -#include "VisualizationRobot.h" +#include <thread> namespace armarx::viz { @@ -93,8 +91,12 @@ namespace armarx::viz CoinVisualizer::~CoinVisualizer() { - // We need to clear the caches while Coin is still initialized + } + + void CoinVisualizer::clearCache() + { coin::clearRobotCache(); + coin::clearObjectCache(); } @@ -120,14 +122,6 @@ namespace armarx::viz } state = CoinVisualizerState::STOPPED; - /* - state = CoinVisualizerState::STOPPING; - while (state != CoinVisualizerState::STOPPED) - { - QCoreApplication::processEvents(); - usleep(1000); - } - */ } CoinVisualizer_ApplyTiming CoinVisualizer::apply(data::LayerUpdate const& update) diff --git a/source/RobotAPI/components/ArViz/Coin/Visualizer.h b/source/RobotAPI/components/ArViz/Coin/Visualizer.h index 1494be07dc5615b787f2a50f12a48451b40e045a..195172e9c812c4fef9bd391853748592e113b5d8 100644 --- a/source/RobotAPI/components/ArViz/Coin/Visualizer.h +++ b/source/RobotAPI/components/ArViz/Coin/Visualizer.h @@ -191,6 +191,8 @@ namespace armarx::viz ~CoinVisualizer(); + void clearCache(); + void registerVisualizationTypes(); void startAsync(StorageInterfacePrx const& storage); diff --git a/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp b/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp index 4b34e9a3a6248223fadafcf4af4b54af9a069eaa..c3aad744b56229d4ae2f01b716e092abfa5f76f2 100644 --- a/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp @@ -21,10 +21,7 @@ */ #include "ArVizWidgetController.h" -#include <RobotAPI/components/ArViz/Coin/VisualizationObject.h> -#include <RobotAPI/components/ArViz/Coin/VisualizationRobot.h> -#include <ArmarXCore/core/ArmarXManager.h> #include <ArmarXCore/observers/variant/Variant.h> #include <SimoxUtility/algorithm/string/string_tools.h> @@ -150,8 +147,7 @@ namespace armarx void ArVizWidgetController::onExitComponent() { - armarx::viz::coin::clearObjectCache(); - armarx::viz::coin::clearRobotCache(); + visualizer.clearCache(); } void ArVizWidgetController::onConnectComponent() diff --git a/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.h b/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.h index 4a493dbd19a4c4cab6e05aa2a7ab5376936a3ebe..2dd295afccc97080bea8e7d4a7dc222324fb71d5 100644 --- a/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.h +++ b/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.h @@ -33,8 +33,6 @@ #include <ArmarXCore/interface/observers/ObserverInterface.h> #include <ArmarXCore/core/system/ImportExportComponent.h> -#include <Inventor/nodes/SoSeparator.h> - #include "LayerInfoTree.h"