diff --git a/Modules/DiffusionCore/CMakeLists.txt b/Modules/DiffusionCore/CMakeLists.txt index a6357f9..303e15b 100644 --- a/Modules/DiffusionCore/CMakeLists.txt +++ b/Modules/DiffusionCore/CMakeLists.txt @@ -1,28 +1,28 @@ # With apple gcc 4.2.1 the following waring leads to an build error if boost is enabled if(APPLE) mitkFunctionCheckCAndCXXCompilerFlags("-Wno-error=empty-body" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif() MITK_CREATE_MODULE( SUBPROJECTS MITK-Diffusion INCLUDE_DIRS Algorithms Algorithms/Reconstruction Algorithms/Registration Algorithms/Reconstruction/MultishellProcessing Algorithms/Reconstruction/FittingFunctions DicomImport IODataStructures/DiffusionWeightedImages IODataStructures/Properties IODataStructures Rendering ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS MitkMapperExt MitkPlanarFigure MitkImageExtraction MitkDICOMReader MitkMatchPointRegistration + DEPENDS MitkMapperExt MitkPlanarFigure MitkImageExtraction MitkDICOM MitkMatchPointRegistration PACKAGE_DEPENDS PUBLIC VTK|vtkFiltersProgrammable Vigra HDF5 ) if(TARGET ${MODULE_TARGET} AND MITK_USE_OpenMP) target_link_libraries(${MODULE_TARGET} PUBLIC OpenMP::OpenMP_CXX) endif() if(MSVC) mitkFunctionCheckCAndCXXCompilerFlags("/wd4005" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif() add_subdirectory(Testing) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mitkDiffusionImagingConfigure.h.in ${CMAKE_CURRENT_BINARY_DIR}/mitkDiffusionImagingConfigure.h) mitkFunctionGetVersion(${CMAKE_CURRENT_SOURCE_DIR} MITKDIFFUSION) mitkFunctionGetVersionDescription(${CMAKE_CURRENT_SOURCE_DIR} MITKDIFFUSION) configure_file(mitkDiffusionVersion.h.in ${MITK_BINARY_DIR}/mitkDiffusionVersion.h) diff --git a/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.cpp b/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.cpp index aed9f88..e2d3a8f 100644 --- a/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.cpp +++ b/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.cpp @@ -1,110 +1,110 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkConnectomicsObjectFactory.h" #include "mitkConnectomicsNetwork.h" #include "mitkConnectomicsNetworkMapper3D.h" mitk::ConnectomicsObjectFactory::ConnectomicsObjectFactory() : CoreObjectFactoryBase() { static bool alreadyDone = false; if (!alreadyDone) { MITK_DEBUG << "ConnectomicsObjectFactory c'tor" << std::endl; alreadyDone = true; } } mitk::ConnectomicsObjectFactory::~ConnectomicsObjectFactory() { } mitk::Mapper::Pointer mitk::ConnectomicsObjectFactory::CreateMapper(mitk::DataNode* node, MapperSlotId id) { mitk::Mapper::Pointer newMapper=nullptr; if ( id == mitk::BaseRenderer::Standard3D ) { std::string classname("ConnectomicsNetwork"); if (node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::ConnectomicsNetworkMapper3D::New(); newMapper->SetDataNode(node); } } return newMapper; } void mitk::ConnectomicsObjectFactory::SetDefaultProperties(mitk::DataNode* node) { std::string classname("ConnectomicsNetwork"); if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) { mitk::ConnectomicsNetworkMapper3D::SetDefaultProperties(node); } } -const char* mitk::ConnectomicsObjectFactory::GetFileExtensions() +std::string mitk::ConnectomicsObjectFactory::GetFileExtensions() { std::string fileExtension; this->CreateFileExtensions(m_FileExtensionsMap, fileExtension); return fileExtension.c_str(); }; mitk::CoreObjectFactoryBase::MultimapType mitk::ConnectomicsObjectFactory::GetFileExtensionsMap() { return m_FileExtensionsMap; } -const char* mitk::ConnectomicsObjectFactory::GetSaveFileExtensions() +std::string mitk::ConnectomicsObjectFactory::GetSaveFileExtensions() { std::string fileExtension; this->CreateFileExtensions(m_SaveFileExtensionsMap, fileExtension); return fileExtension.c_str(); }; mitk::CoreObjectFactoryBase::MultimapType mitk::ConnectomicsObjectFactory::GetSaveFileExtensionsMap() { return m_SaveFileExtensionsMap; } void mitk::ConnectomicsObjectFactory::CreateFileExtensionsMap() { } struct RegisterConnectomicsObjectFactory{ RegisterConnectomicsObjectFactory() : m_Factory( mitk::ConnectomicsObjectFactory::New() ) { mitk::CoreObjectFactory::GetInstance()->RegisterExtraFactory( m_Factory ); } ~RegisterConnectomicsObjectFactory() { mitk::CoreObjectFactory::GetInstance()->UnRegisterExtraFactory( m_Factory ); } mitk::ConnectomicsObjectFactory::Pointer m_Factory; }; static RegisterConnectomicsObjectFactory registerDiffusionCoreObjectFactory; diff --git a/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.h b/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.h index 26addc0..f412c80 100644 --- a/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.h +++ b/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.h @@ -1,62 +1,62 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef MITKCONNECTOMICSOBJECTFACTORY_H #define MITKCONNECTOMICSOBJECTFACTORY_H #include "mitkCoreObjectFactory.h" namespace mitk { class ConnectomicsObjectFactory : public CoreObjectFactoryBase { public: mitkClassMacro(ConnectomicsObjectFactory,CoreObjectFactoryBase) itkFactorylessNewMacro(Self) itkCloneMacro(Self) ~ConnectomicsObjectFactory() override; Mapper::Pointer CreateMapper(mitk::DataNode* node, MapperSlotId slotId) override; void SetDefaultProperties(mitk::DataNode* node) override; - const char* GetFileExtensions() override; + std::string GetFileExtensions() override; mitk::CoreObjectFactoryBase::MultimapType GetFileExtensionsMap() override; - const char* GetSaveFileExtensions() override; + std::string GetSaveFileExtensions() override; mitk::CoreObjectFactoryBase::MultimapType GetSaveFileExtensionsMap() override; protected: ConnectomicsObjectFactory(); private: void CreateFileExtensionsMap(); std::string m_ExternalFileExtensions; std::string m_InternalFileExtensions; std::string m_SaveFileExtensions; MultimapType m_FileExtensionsMap; MultimapType m_SaveFileExtensionsMap; itk::ObjectFactoryBase::Pointer m_ConnectomicsNetworkIOFactory; itk::ObjectFactoryBase::Pointer m_ConnectomicsNetworkWriterFactory; }; } #endif diff --git a/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp index 94cb6b0..0b6d45b 100644 --- a/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp +++ b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp @@ -1,204 +1,204 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkDiffusionCoreObjectFactory.h" #include "mitkProperties.h" #include "mitkBaseRenderer.h" #include "mitkDataNode.h" #include "mitkCompositeMapper.h" #include "mitkGPUVolumeMapper3D.h" #include #include #include #include typedef short DiffusionPixelType; typedef std::multimap MultimapType; mitk::DiffusionCoreObjectFactory::DiffusionCoreObjectFactory() : CoreObjectFactoryBase() { static bool alreadyDone = false; if (!alreadyDone) { MITK_DEBUG << "DiffusionCoreObjectFactory c'tor" << std::endl; CreateFileExtensionsMap(); alreadyDone = true; } } mitk::DiffusionCoreObjectFactory::~DiffusionCoreObjectFactory() { } mitk::Mapper::Pointer mitk::DiffusionCoreObjectFactory::CreateMapper(mitk::DataNode* node, MapperSlotId id) { mitk::Mapper::Pointer newMapper=nullptr; if (!node->GetData()) return newMapper; if ( id == mitk::BaseRenderer::Standard2D ) { if(std::string("OdfImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::CompositeMapper::New(); newMapper->SetDataNode(node); node->SetMapper(3, static_cast(newMapper.GetPointer())->GetImageMapper()); } else if(std::string("TensorImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::CompositeMapper::New(); newMapper->SetDataNode(node); node->SetMapper(3, static_cast(newMapper.GetPointer())->GetImageMapper()); } else if(std::string("ShImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::CompositeMapper::New(); newMapper->SetDataNode(node); node->SetMapper(3, static_cast(newMapper.GetPointer())->GetImageMapper()); } else if(std::string("FiberBundle").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::FiberBundleMapper2D::New(); newMapper->SetDataNode(node); } else if(std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::PeakImageMapper2D::New(); newMapper->SetDataNode(node); } } else if ( id == mitk::BaseRenderer::Standard3D ) { if(std::string("OdfImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::GPUVolumeMapper3D::New(); newMapper->SetDataNode(node); } else if(std::string("TensorImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::GPUVolumeMapper3D::New(); newMapper->SetDataNode(node); } else if(std::string("ShImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::GPUVolumeMapper3D::New(); newMapper->SetDataNode(node); } else if(std::string("FiberBundle").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::FiberBundleMapper3D::New(); newMapper->SetDataNode(node); } else if(std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::PeakImageMapper3D::New(); newMapper->SetDataNode(node); } } return newMapper; } void mitk::DiffusionCoreObjectFactory::SetDefaultProperties(mitk::DataNode* node) { if (!node->GetData()) return; if(std::string("OdfImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::CompositeMapper::SetDefaultProperties(node); mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } else if(std::string("TensorImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::CompositeMapper::SetDefaultProperties(node); mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } else if(std::string("ShImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::CompositeMapper::SetDefaultProperties(node); mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } else if(std::string("FiberBundle").compare(node->GetData()->GetNameOfClass())==0) { mitk::FiberBundleMapper3D::SetDefaultProperties(node); mitk::FiberBundleMapper2D::SetDefaultProperties(node); } else if (std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::PeakImageMapper3D::SetDefaultProperties(node); mitk::PeakImageMapper2D::SetDefaultProperties(node); } } -const char* mitk::DiffusionCoreObjectFactory::GetFileExtensions() +std::string mitk::DiffusionCoreObjectFactory::GetFileExtensions() { std::string fileExtension; this->CreateFileExtensions(m_FileExtensionsMap, fileExtension); - return fileExtension.c_str(); + return fileExtension; } mitk::CoreObjectFactoryBase::MultimapType mitk::DiffusionCoreObjectFactory::GetFileExtensionsMap() { return m_FileExtensionsMap; } -const char* mitk::DiffusionCoreObjectFactory::GetSaveFileExtensions() +std::string mitk::DiffusionCoreObjectFactory::GetSaveFileExtensions() { std::string fileExtension; this->CreateFileExtensions(m_SaveFileExtensionsMap, fileExtension); - return fileExtension.c_str(); + return fileExtension; } mitk::CoreObjectFactoryBase::MultimapType mitk::DiffusionCoreObjectFactory::GetSaveFileExtensionsMap() { return m_SaveFileExtensionsMap; } void mitk::DiffusionCoreObjectFactory::CreateFileExtensionsMap() { } struct RegisterDiffusionCoreObjectFactory{ RegisterDiffusionCoreObjectFactory() : m_Factory( mitk::DiffusionCoreObjectFactory::New() ) { mitk::CoreObjectFactory::GetInstance()->RegisterExtraFactory( m_Factory ); } ~RegisterDiffusionCoreObjectFactory() { mitk::CoreObjectFactory::GetInstance()->UnRegisterExtraFactory( m_Factory ); } mitk::DiffusionCoreObjectFactory::Pointer m_Factory; }; static RegisterDiffusionCoreObjectFactory registerDiffusionCoreObjectFactory; diff --git a/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.h b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.h index 4f8d1b6..5d0ec7a 100644 --- a/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.h +++ b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.h @@ -1,66 +1,66 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef DiffusionCoreObjectFactory_H_INCLUDED #define DiffusionCoreObjectFactory_H_INCLUDED #include "mitkCoreObjectFactory.h" namespace mitk { class DiffusionCoreObjectFactory : public CoreObjectFactoryBase { public: mitkClassMacro(DiffusionCoreObjectFactory,CoreObjectFactoryBase) itkFactorylessNewMacro(Self) itkCloneMacro(Self) ~DiffusionCoreObjectFactory() override; Mapper::Pointer CreateMapper(mitk::DataNode* node, MapperSlotId slotId) override; void SetDefaultProperties(mitk::DataNode* node) override; - const char* GetFileExtensions() override; + std::string GetFileExtensions() override; mitk::CoreObjectFactoryBase::MultimapType GetFileExtensionsMap() override; - const char* GetSaveFileExtensions() override; + std::string GetSaveFileExtensions() override; mitk::CoreObjectFactoryBase::MultimapType GetSaveFileExtensionsMap() override; protected: DiffusionCoreObjectFactory(); void CreateFileExtensionsMap(); MultimapType m_FileExtensionsMap; MultimapType m_SaveFileExtensionsMap; private: std::string m_ExternalFileExtensions; std::string m_InternalFileExtensions; std::string m_SaveFileExtensions; itk::ObjectFactoryBase::Pointer m_NrrdDiffusionImageIOFactory; itk::ObjectFactoryBase::Pointer m_NrrdOdfImageIOFactory; itk::ObjectFactoryBase::Pointer m_NrrdDiffusionImageWriterFactory; itk::ObjectFactoryBase::Pointer m_NrrdOdfImageWriterFactory; }; } #endif