From 977f5351b9fdc3461a23c3d9072ac2d5753dce3e Mon Sep 17 00:00:00 2001 From: Camille KREWCUN Date: Fri, 4 Aug 2017 17:12:13 +0200 Subject: [PATCH 1/2] Changes to make MITK Simulation's sources compatible with SOFA 16.12 Signed-off-by: Camille KREWCUN --- Modules/Simulation/CMakeLists.txt | 2 ++ Modules/Simulation/mitkExportMitkVisitor.cpp | 2 +- Modules/Simulation/mitkExportMitkVisitor.h | 2 +- Modules/Simulation/mitkIndexROI.cpp | 2 +- Modules/Simulation/mitkPlaneIntersectionVisitor.cpp | 2 +- Modules/Simulation/mitkPlaneIntersectionVisitor.h | 2 +- Modules/Simulation/mitkSetVtkRendererVisitor.h | 2 +- Modules/Simulation/mitkSimulation.cpp | 3 ++- Modules/Simulation/mitkSimulation.h | 2 +- Modules/Simulation/mitkSimulationInteractor.cpp | 20 ++++++++++---------- Modules/Simulation/mitkSimulationObjectFactory.cpp | 5 ----- Modules/Simulation/mitkSimulationService.cpp | 10 ++++++++++ Modules/Simulation/mitkSimulationVtkMapper3D.cpp | 2 +- Modules/Simulation/mitkVtkModel.h | 2 +- .../src/internal/QmitkSceneTreeWidget.cpp | 4 ++-- .../src/internal/QmitkSceneTreeWidget.h | 2 +- .../src/internal/org_mitk_simulation_Activator.cpp | 10 ++++++++++ .../src/internal/org_mitk_simulation_Activator.h | 1 + .../org.mitk.simulation/src/mitkMeshMitkLoader.cpp | 20 ++++++++++---------- 19 files changed, 57 insertions(+), 38 deletions(-) diff --git a/Modules/Simulation/CMakeLists.txt b/Modules/Simulation/CMakeLists.txt index b3ef1af..1c18842 100644 --- a/Modules/Simulation/CMakeLists.txt +++ b/Modules/Simulation/CMakeLists.txt @@ -1,8 +1,10 @@ + MITK_CREATE_MODULE( DEPENDS MitkSceneSerializationBase PACKAGE_DEPENDS PUBLIC SOFA PRIVATE GLUT GLEW + AUTOLOAD_WITH MitkCore ) if(TARGET ${MODULE_TARGET}) diff --git a/Modules/Simulation/mitkExportMitkVisitor.cpp b/Modules/Simulation/mitkExportMitkVisitor.cpp index ce2c402..cce2116 100644 --- a/Modules/Simulation/mitkExportMitkVisitor.cpp +++ b/Modules/Simulation/mitkExportMitkVisitor.cpp @@ -18,7 +18,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include #include -#include +#include #include #include #include diff --git a/Modules/Simulation/mitkExportMitkVisitor.h b/Modules/Simulation/mitkExportMitkVisitor.h index e498e4a..3297e31 100644 --- a/Modules/Simulation/mitkExportMitkVisitor.h +++ b/Modules/Simulation/mitkExportMitkVisitor.h @@ -18,7 +18,7 @@ See LICENSE.txt or http://www.mitk.org for details. #define mitkExportMitkVisitor_h #include -#include +#include #include namespace mitk diff --git a/Modules/Simulation/mitkIndexROI.cpp b/Modules/Simulation/mitkIndexROI.cpp index ac4dd53..93ce0ee 100644 --- a/Modules/Simulation/mitkIndexROI.cpp +++ b/Modules/Simulation/mitkIndexROI.cpp @@ -48,7 +48,7 @@ void mitk::IndexROI::init() if (loader != nullptr) { - BaseData* parent = loader->findField("position"); + BaseData* parent = loader->findData("position"); if (parent != nullptr) { diff --git a/Modules/Simulation/mitkPlaneIntersectionVisitor.cpp b/Modules/Simulation/mitkPlaneIntersectionVisitor.cpp index 6bf0e9d..67667e1 100644 --- a/Modules/Simulation/mitkPlaneIntersectionVisitor.cpp +++ b/Modules/Simulation/mitkPlaneIntersectionVisitor.cpp @@ -15,7 +15,7 @@ See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkPlaneIntersectionVisitor.h" -#include +#include mitk::PlaneIntersectionVisitor::PlaneIntersectionVisitor(const Point3D& point, const Vector3D& normal, const sofa::core::ExecParams* params) : Visitor(params), diff --git a/Modules/Simulation/mitkPlaneIntersectionVisitor.h b/Modules/Simulation/mitkPlaneIntersectionVisitor.h index 72ec905..8209a37 100644 --- a/Modules/Simulation/mitkPlaneIntersectionVisitor.h +++ b/Modules/Simulation/mitkPlaneIntersectionVisitor.h @@ -19,7 +19,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include -#include +#include #include namespace mitk diff --git a/Modules/Simulation/mitkSetVtkRendererVisitor.h b/Modules/Simulation/mitkSetVtkRendererVisitor.h index bde9069..5553bb4 100644 --- a/Modules/Simulation/mitkSetVtkRendererVisitor.h +++ b/Modules/Simulation/mitkSetVtkRendererVisitor.h @@ -17,7 +17,7 @@ See LICENSE.txt or http://www.mitk.org for details. #ifndef mitkSetVtkRendererVisitor_h #define mitkSetVtkRendererVisitor_h -#include +#include #include class vtkRenderer; diff --git a/Modules/Simulation/mitkSimulation.cpp b/Modules/Simulation/mitkSimulation.cpp index 3c81545..0218af6 100644 --- a/Modules/Simulation/mitkSimulation.cpp +++ b/Modules/Simulation/mitkSimulation.cpp @@ -15,7 +15,8 @@ See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkSimulation.h" -#include +#include +#include #include "mitkGeometry3D.h" static sofa::simulation::Simulation::SPtr CreateSimulation() diff --git a/Modules/Simulation/mitkSimulation.h b/Modules/Simulation/mitkSimulation.h index cc1af57..4cc3f33 100644 --- a/Modules/Simulation/mitkSimulation.h +++ b/Modules/Simulation/mitkSimulation.h @@ -20,7 +20,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include #include -#include +#include #include namespace mitk diff --git a/Modules/Simulation/mitkSimulationInteractor.cpp b/Modules/Simulation/mitkSimulationInteractor.cpp index 398631c..0fa8244 100644 --- a/Modules/Simulation/mitkSimulationInteractor.cpp +++ b/Modules/Simulation/mitkSimulationInteractor.cpp @@ -15,16 +15,16 @@ See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "mitkSimulation.h" #include "mitkSimulationInteractor.h" diff --git a/Modules/Simulation/mitkSimulationObjectFactory.cpp b/Modules/Simulation/mitkSimulationObjectFactory.cpp index 2a8dbd2..4447760 100644 --- a/Modules/Simulation/mitkSimulationObjectFactory.cpp +++ b/Modules/Simulation/mitkSimulationObjectFactory.cpp @@ -23,19 +23,14 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include #include -#include #include #include -#include static void InitializeSofa() { int argc = 0; glutInit(&argc, nullptr); - sofa::component::init(); - sofa::simulation::xml::initXml(); - sofa::core::visual::VisualParams::defaultInstance()->setSupported(sofa::core::visual::API_OpenGL); } diff --git a/Modules/Simulation/mitkSimulationService.cpp b/Modules/Simulation/mitkSimulationService.cpp index d7e1a35..68fe55c 100644 --- a/Modules/Simulation/mitkSimulationService.cpp +++ b/Modules/Simulation/mitkSimulationService.cpp @@ -39,10 +39,20 @@ static void SwitchSimuluationContext(mitk::Simulation::Pointer activeSimulation) mitk::SimulationService::SimulationService() : m_Scheduler(SchedulingAlgorithm::WeightedRoundRobin) { + m_ActiveSimulation = Simulation::New(); + + sofa::simulation::setSimulation(m_ActiveSimulation->GetSOFASimulation().get()); + sofa::core::visual::VisualParams::defaultInstance()->drawTool() = m_ActiveSimulation->GetDrawTool(); } mitk::SimulationService::~SimulationService() { + if (m_ActiveSimulation.IsNotNull()) + { + sofa::simulation::setSimulation(NULL); + sofa::core::visual::VisualParams::defaultInstance()->drawTool() = NULL; + m_ActiveSimulation = nullptr; + } } mitk::Simulation::Pointer mitk::SimulationService::GetActiveSimulation() const diff --git a/Modules/Simulation/mitkSimulationVtkMapper3D.cpp b/Modules/Simulation/mitkSimulationVtkMapper3D.cpp index 4b56fff..0b9e342 100644 --- a/Modules/Simulation/mitkSimulationVtkMapper3D.cpp +++ b/Modules/Simulation/mitkSimulationVtkMapper3D.cpp @@ -18,7 +18,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include "mitkSimulation.h" #include "mitkSimulationVtkMapper3D.h" #include "mitkVtkSimulationPolyDataMapper3D.h" -#include +#include #include mitk::SimulationVtkMapper3D::LocalStorage::LocalStorage() diff --git a/Modules/Simulation/mitkVtkModel.h b/Modules/Simulation/mitkVtkModel.h index 7939e88..57267e5 100644 --- a/Modules/Simulation/mitkVtkModel.h +++ b/Modules/Simulation/mitkVtkModel.h @@ -21,7 +21,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include #include -#include +#include #include #include #include diff --git a/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.cpp b/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.cpp index c3946e2..3e9ce26 100644 --- a/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.cpp +++ b/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.cpp @@ -17,8 +17,8 @@ See LICENSE.txt or http://www.mitk.org for details. #include "QmitkSceneTreeWidget.h" #include #include -#include -#include +#include +#include template static inline T* as(QmitkSceneTreeWidget::Base* base) diff --git a/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.h b/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.h index 09fe9f4..b083d5b 100644 --- a/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.h +++ b/Plugins/org.mitk.gui.qt.simulation/src/internal/QmitkSceneTreeWidget.h @@ -19,7 +19,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include -#include +#include namespace sofa { diff --git a/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.cpp b/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.cpp index 78fdd5f..1629fe6 100644 --- a/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.cpp +++ b/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.cpp @@ -26,6 +26,12 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include +#include +#include +#include +#include +#include "sofa/simulation/simulationcore.h" + static void RegisterSofaClasses() { int MeshMitkLoaderClass = sofa::core::RegisterObject("").add(); @@ -90,6 +96,9 @@ void mitk::org_mitk_simulation_Activator::start(ctkPluginContext* context) RegisterSofaClasses(); LoadSofaPlugins(); AddPropertyFilters(); + + sofa::gui::initMain(); + sofa::simulation::graph::init(); QmitkNodeDescriptorManager* nodeDescriptorManager = QmitkNodeDescriptorManager::GetInstance(); @@ -102,5 +111,6 @@ void mitk::org_mitk_simulation_Activator::start(ctkPluginContext* context) void mitk::org_mitk_simulation_Activator::stop(ctkPluginContext*) { + sofa::simulation::graph::cleanup(); Context = nullptr; } diff --git a/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.h b/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.h index ad63a1f..b309a4f 100644 --- a/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.h +++ b/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.h @@ -19,6 +19,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include + namespace mitk { class org_mitk_simulation_Activator : public QObject, public ctkPluginActivator diff --git a/Plugins/org.mitk.simulation/src/mitkMeshMitkLoader.cpp b/Plugins/org.mitk.simulation/src/mitkMeshMitkLoader.cpp index f69e1ea..fb12574 100644 --- a/Plugins/org.mitk.simulation/src/mitkMeshMitkLoader.cpp +++ b/Plugins/org.mitk.simulation/src/mitkMeshMitkLoader.cpp @@ -105,11 +105,11 @@ bool mitk::MeshMitkLoader::load() // polyData = vtkPolyData::SafeDownCast(transformFilter->GetOutputDataObject(0)); - sofa::helper::vector& positions = *this->positions.beginEdit(); - sofa::helper::vector& edges = *this->edges.beginEdit(); - sofa::helper::vector& triangles = *this->triangles.beginEdit(); - sofa::helper::vector& quads = *this->quads.beginEdit(); - sofa::helper::vector > polygons = *this->polygons.beginEdit(); + sofa::helper::vector& positions = *this->d_positions.beginEdit(); + sofa::helper::vector& edges = *this->d_edges.beginEdit(); + sofa::helper::vector& triangles = *this->d_triangles.beginEdit(); + sofa::helper::vector& quads = *this->d_quads.beginEdit(); + sofa::helper::vector > polygons = *this->d_polygons.beginEdit(); vtkPoints* points = polyData->GetPoints(); vtkIdType numPoints = points->GetNumberOfPoints(); @@ -174,11 +174,11 @@ bool mitk::MeshMitkLoader::load() } } - this->positions.endEdit(); - this->edges.endEdit(); - this->triangles.endEdit(); - this->quads.endEdit(); - this->polygons.endEdit(); + this->d_positions.endEdit(); + this->d_edges.endEdit(); + this->d_triangles.endEdit(); + this->d_quads.endEdit(); + this->d_polygons.endEdit(); return true; } -- 2.8.1.windows.1