diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp b/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp index e24d28e0e2..48d541d046 100644 --- a/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp @@ -1,340 +1,328 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. 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 "mitkConnectomicsNetworkMapper3D.h" #include #include "vtkGraphLayout.h" #include #include "vtkGraphToPolyData.h" #include #include "vtkGlyph3D.h" #include "vtkGlyphSource2D.h" #include "mitkConnectomicsRenderingProperties.h" +#include "mitkConnectomicsRenderingSchemeProperty.h" +#include "mitkConnectomicsRenderingEdgeFilteringProperty.h" +#include "mitkConnectomicsRenderingNodeFilteringProperty.h" +#include "mitkConnectomicsRenderingNodeColoringSchemeProperty.h" mitk::ConnectomicsNetworkMapper3D::ConnectomicsNetworkMapper3D() { //TODO: implement m_NetworkAssembly = vtkPropAssembly::New(); } mitk::ConnectomicsNetworkMapper3D:: ~ConnectomicsNetworkMapper3D() { //TODO: implement m_NetworkAssembly->Delete(); } void mitk::ConnectomicsNetworkMapper3D::GenerateDataForRenderer(mitk::BaseRenderer* renderer) { //TODO: implement if( this->GetInput() == NULL ) { return; } if( this->GetInput()->GetIsModified( ) ) { GenerateData(); } } void mitk::ConnectomicsNetworkMapper3D::GenerateData() { m_NetworkAssembly->Delete(); m_NetworkAssembly = vtkPropAssembly::New(); // Here is the part where a graph is given and converted to points and connections between points... std::vector< mitk::ConnectomicsNetwork::NetworkNode > vectorOfNodes = this->GetInput()->GetVectorOfAllNodes(); std::vector< std::pair< std::pair< mitk::ConnectomicsNetwork::NetworkNode, mitk::ConnectomicsNetwork::NetworkNode > , mitk::ConnectomicsNetwork::NetworkEdge > > vectorOfEdges = this->GetInput()->GetVectorOfAllEdges(); // Decide on the style of rendering due to property if( false ) { mitk::Point3D tempWorldPoint, tempCNFGeometryPoint; //////////////////////Create Spheres///////////////////////// for(unsigned int i = 0; i < vectorOfNodes.size(); i++) { vtkSmartPointer sphereSource = vtkSmartPointer::New(); for(unsigned int dimension = 0; dimension < 3; dimension++) { tempCNFGeometryPoint.SetElement( dimension , vectorOfNodes[i].coordinates[dimension] ); } this->GetData()->GetGeometry()->IndexToWorld( tempCNFGeometryPoint, tempWorldPoint ); sphereSource->SetCenter( tempWorldPoint[0] , tempWorldPoint[1], tempWorldPoint[2] ); sphereSource->SetRadius(1.0); vtkSmartPointer mapper = vtkSmartPointer::New(); mapper->SetInput(sphereSource->GetOutput()); vtkSmartPointer actor = vtkSmartPointer::New(); actor->SetMapper(mapper); m_NetworkAssembly->AddPart(actor); } //////////////////////Create Tubes///////////////////////// for(unsigned int i = 0; i < vectorOfEdges.size(); i++) { vtkSmartPointer lineSource = vtkSmartPointer::New(); for(unsigned int dimension = 0; dimension < 3; dimension++) { tempCNFGeometryPoint[ dimension ] = vectorOfEdges[i].first.first.coordinates[dimension]; } this->GetData()->GetGeometry()->IndexToWorld( tempCNFGeometryPoint, tempWorldPoint ); lineSource->SetPoint1(tempWorldPoint[0], tempWorldPoint[1],tempWorldPoint[2] ); for(unsigned int dimension = 0; dimension < 3; dimension++) { tempCNFGeometryPoint[ dimension ] = vectorOfEdges[i].first.second.coordinates[dimension]; } this->GetData()->GetGeometry()->IndexToWorld( tempCNFGeometryPoint, tempWorldPoint ); lineSource->SetPoint2(tempWorldPoint[0], tempWorldPoint[1], tempWorldPoint[2] ); vtkSmartPointer tubes = vtkSmartPointer::New(); tubes->SetInput( lineSource->GetOutput() ); tubes->SetNumberOfSides( 12 ); double radiusFactor = 1.0 + ((double) vectorOfEdges[i].second.weight) / 10.0 ; tubes->SetRadius( std::log10( radiusFactor ) ); vtkSmartPointer mapper2 = vtkSmartPointer::New(); mapper2->SetInput( tubes->GetOutput() ); vtkSmartPointer actor = vtkSmartPointer::New(); actor->SetMapper(mapper2); double maxWeight = (double) this->GetInput()->GetMaximumWeight(); double colourFactor = vectorOfEdges[i].second.weight / maxWeight; actor->GetProperty()->SetColor( colourFactor, colourFactor, colourFactor); m_NetworkAssembly->AddPart(actor); } } else { vtkSmartPointer graph = vtkSmartPointer::New(); std::vector< vtkIdType > networkToVTKvector; networkToVTKvector.resize(vectorOfNodes.size()); for(unsigned int i = 0; i < vectorOfNodes.size(); i++) { networkToVTKvector[vectorOfNodes[i].id] = graph->AddVertex(); } for(unsigned int i = 0; i < vectorOfEdges.size(); i++) { graph->AddEdge(networkToVTKvector[vectorOfEdges[i].first.first.id], networkToVTKvector[vectorOfEdges[i].first.second.id]); } vtkSmartPointer points = vtkSmartPointer::New(); for(unsigned int i = 0; i < vectorOfNodes.size(); i++) { double x = vectorOfNodes[i].coordinates[0]; double y = vectorOfNodes[i].coordinates[1]; double z = vectorOfNodes[i].coordinates[2]; points->InsertNextPoint( x, y, z); } graph->SetPoints(points); vtkGraphLayout* layout = vtkGraphLayout::New(); layout->SetInput(graph); layout->SetLayoutStrategy(vtkPassThroughLayoutStrategy::New()); vtkGraphToPolyData* graphToPoly = vtkGraphToPolyData::New(); graphToPoly->SetInputConnection(layout->GetOutputPort()); // Create the standard VTK polydata mapper and actor // for the connections (edges) in the tree. vtkPolyDataMapper* edgeMapper = vtkPolyDataMapper::New(); edgeMapper->SetInputConnection(graphToPoly->GetOutputPort()); vtkActor* edgeActor = vtkActor::New(); edgeActor->SetMapper(edgeMapper); edgeActor->GetProperty()->SetColor(0.0, 0.5, 1.0); // Glyph the points of the tree polydata to create // VTK_VERTEX cells at each vertex in the tree. vtkGlyph3D* vertGlyph = vtkGlyph3D::New(); vertGlyph->SetInputConnection(0, graphToPoly->GetOutputPort()); vtkGlyphSource2D* glyphSource = vtkGlyphSource2D::New(); glyphSource->SetGlyphTypeToVertex(); vertGlyph->SetInputConnection(1, glyphSource->GetOutputPort()); // Create a mapper for the vertices, and tell the mapper // to use the specified color array. vtkPolyDataMapper* vertMapper = vtkPolyDataMapper::New(); vertMapper->SetInputConnection(vertGlyph->GetOutputPort()); /*if (colorArray) { vertMapper->SetScalarModeToUsePointFieldData(); vertMapper->SelectColorArray(colorArray); vertMapper->SetScalarRange(colorRange); }*/ // Create an actor for the vertices. Move the actor forward // in the z direction so it is drawn on top of the edge actor. vtkActor* vertActor = vtkActor::New(); vertActor->SetMapper(vertMapper); vertActor->GetProperty()->SetPointSize(5); vertActor->SetPosition(0, 0, 0.001); m_NetworkAssembly->AddPart(edgeActor); m_NetworkAssembly->AddPart(vertActor); } (static_cast ( GetData() ) )->SetIsModified( false ); } const mitk::ConnectomicsNetwork* mitk::ConnectomicsNetworkMapper3D::GetInput() { return static_cast ( GetData() ); } void mitk::ConnectomicsNetworkMapper3D::SetDefaultProperties(DataNode* node, BaseRenderer* renderer , bool overwrite) { // Initialize enumeration properties - mitk::EnumerationProperty::Pointer connectomicsRenderingSchemeProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingSchemeProperty->AddEnum( connectomicsRenderingMITKScheme, 0 ); - connectomicsRenderingSchemeProperty->AddEnum( connectomicsRenderingVTKScheme, 1 ); - connectomicsRenderingSchemeProperty->SetValue( 0 ); - - mitk::EnumerationProperty::Pointer connectomicsRenderingEdgeFilteringProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingEdgeFilteringProperty->AddEnum( connectomicsRenderingEdgeNoFilter, 0 ); - connectomicsRenderingEdgeFilteringProperty->AddEnum( connectomicsRenderingEdgeShortestPathFilter, 1 ); - connectomicsRenderingEdgeFilteringProperty->AddEnum( connectomicsRenderingEdgeThresholdFilter, 2 ); - connectomicsRenderingEdgeFilteringProperty->SetValue( 0 ); - - mitk::EnumerationProperty::Pointer connectomicsRenderingNodeFilteringProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingNodeFilteringProperty->AddEnum( connectomicsRenderingNodeNoFilter, 0 ); - connectomicsRenderingNodeFilteringProperty->AddEnum( connectomicsRenderingNodeThresholdingFilter, 1 ); - connectomicsRenderingNodeFilteringProperty->SetValue( 0 ); - - mitk::EnumerationProperty::Pointer connectomicsRenderingNodeColoringSchemeProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingNodeColoringSchemeProperty->AddEnum( connectomicsRenderingNodeColoringGradientScheme, 0 ); - connectomicsRenderingNodeColoringSchemeProperty->AddEnum( connectomicsRenderingNodeColoringShortestPathScheme, 1 ); - connectomicsRenderingNodeColoringSchemeProperty->SetValue( 0 ); + mitk::ConnectomicsRenderingSchemeProperty::Pointer connectomicsRenderingScheme = + mitk::ConnectomicsRenderingSchemeProperty::New(); + mitk::ConnectomicsRenderingEdgeFilteringProperty::Pointer connectomicsRenderingEdgeFiltering = + mitk::ConnectomicsRenderingEdgeFilteringProperty::New(); + mitk::ConnectomicsRenderingNodeFilteringProperty::Pointer connectomicsRenderingNodeFiltering = + mitk::ConnectomicsRenderingNodeFilteringProperty::New(); + mitk::ConnectomicsRenderingNodeColoringSchemeProperty::Pointer connectomicsRenderingNodeColoringScheme = + mitk::ConnectomicsRenderingNodeColoringSchemeProperty::New(); // set the properties node->AddProperty( connectomicsRenderingSchemePropertyName.c_str(), - connectomicsRenderingSchemeProperty, renderer, overwrite ); + connectomicsRenderingScheme, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeFilteringPropertyName.c_str(), - connectomicsRenderingEdgeFilteringProperty, renderer, overwrite ); + connectomicsRenderingEdgeFiltering, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeThresholdFilterParameterName.c_str(), connectomicsRenderingEdgeThresholdFilterParameterDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeThresholdFilterThresholdName.c_str(), connectomicsRenderingEdgeThresholdFilterThresholdDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeFilteringPropertyName.c_str(), - connectomicsRenderingNodeFilteringProperty, renderer, overwrite ); + connectomicsRenderingNodeFiltering, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeThresholdFilterParameterName.c_str(), connectomicsRenderingNodeThresholdFilterParameterDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeThresholdFilterThresholdName.c_str(), connectomicsRenderingNodeThresholdFilterThresholdDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeColoringSchemeName.c_str(), - connectomicsRenderingNodeColoringSchemeProperty, renderer, overwrite ); + connectomicsRenderingNodeColoringScheme, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeGradientStartColorName.c_str(), connectomicsRenderingNodeGradientStartColorDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeGradientEndColorName.c_str(), connectomicsRenderingNodeGradientEndColorDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeGradientColorParameterName.c_str(), connectomicsRenderingNodeGradientColorParameterDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeRadiusStartName.c_str(), connectomicsRenderingNodeRadiusStartDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeRadiusEndName.c_str(), connectomicsRenderingNodeRadiusEndDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeRadiusParameterName.c_str(), connectomicsRenderingNodeRadiusParameterDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeChosenNodeName.c_str(), connectomicsRenderingNodeChosenNodeDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeGradientStartColorName.c_str(), connectomicsRenderingEdgeGradientStartColorDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeGradientEndColorName.c_str(), connectomicsRenderingEdgeGradientEndColorDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeGradientColorParameterName.c_str(), connectomicsRenderingEdgeGradientColorParameterDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeRadiusStartName.c_str(), connectomicsRenderingEdgeRadiusStartDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeRadiusEndName.c_str(), connectomicsRenderingEdgeRadiusEndDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeRadiusParameterName.c_str(), connectomicsRenderingEdgeRadiusParameterDefault, renderer, overwrite ); Superclass::SetDefaultProperties(node, renderer, overwrite); } void mitk::ConnectomicsNetworkMapper3D::ApplyProperties(mitk::BaseRenderer* renderer) { //TODO: implement } void mitk::ConnectomicsNetworkMapper3D::SetVtkMapperImmediateModeRendering(vtkMapper *mapper) { //TODO: implement } void mitk::ConnectomicsNetworkMapper3D::UpdateVtkObjects() { //TODO: implement } vtkProp* mitk::ConnectomicsNetworkMapper3D::GetVtkProp(mitk::BaseRenderer *renderer) { return m_NetworkAssembly; } diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp new file mode 100644 index 0000000000..9ea9a12a0a --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp @@ -0,0 +1,70 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 "mitkConnectomicsRenderingEdgeFilteringProperty.h" +#include "mitkConnectomicsRenderingProperties.h" + +#define NO_FILTER 0 +#define SHORTEST_PATH_FILTER 1 +#define THRESHOLDING_FILTER 2 + +mitk::ConnectomicsRenderingEdgeFilteringProperty::ConnectomicsRenderingEdgeFilteringProperty( ) +{ + AddRenderingFilter(); + SetValue( NO_FILTER ); +} + + +mitk::ConnectomicsRenderingEdgeFilteringProperty::ConnectomicsRenderingEdgeFilteringProperty( const IdType& value ) +{ + AddRenderingFilter(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ) ; + } + else + { + SetValue( NO_FILTER ); + } +} + +mitk::ConnectomicsRenderingEdgeFilteringProperty::ConnectomicsRenderingEdgeFilteringProperty( const std::string& value ) +{ + AddRenderingFilter(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ); + } + else + { + SetValue( NO_FILTER ); + } +} + + + +void mitk::ConnectomicsRenderingEdgeFilteringProperty::AddRenderingFilter() +{ + AddEnum( connectomicsRenderingEdgeNoFilter, NO_FILTER ); + AddEnum( connectomicsRenderingEdgeShortestPathFilter, SHORTEST_PATH_FILTER ); + AddEnum( connectomicsRenderingEdgeThresholdFilter, THRESHOLDING_FILTER ); +} + + +bool mitk::ConnectomicsRenderingEdgeFilteringProperty::AddEnum( const std::string& name, const IdType& id ) +{ + return Superclass::AddEnum( name, id ); +} diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h new file mode 100644 index 0000000000..479986d5f7 --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h @@ -0,0 +1,94 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 _MITK_CONNECTOMICS_RENDERING_EDGE_FILTERING_PROPERTY__H_ +#define _MITK_CONNECTOMICS_RENDERING_EDGE_FILTERING_PROPERTY__H_ + +#include "mitkEnumerationProperty.h" +#include "MitkDiffusionImagingExports.h" + +namespace mitk +{ + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4522) +#endif + +/** + * Encapsulates the enumeration of different edge filtering options for rendering connectomics networks + */ +class MitkDiffusionImaging_EXPORT ConnectomicsRenderingEdgeFilteringProperty : public EnumerationProperty +{ +public: + + mitkClassMacro( ConnectomicsRenderingEdgeFilteringProperty, EnumerationProperty ); + + itkNewMacro(ConnectomicsRenderingEdgeFilteringProperty); + + mitkNewMacro1Param(ConnectomicsRenderingEdgeFilteringProperty, const IdType&); + + mitkNewMacro1Param(ConnectomicsRenderingEdgeFilteringProperty, const std::string&); + + using BaseProperty::operator=; + +protected: + + /** + * Constructor. Sets the representation to a default value of 0 + */ + ConnectomicsRenderingEdgeFilteringProperty( ); + + /** + * Constructor. Sets the filter to the given value. If it is not + * valid, the value is set to 0 + * @param value the integer representation of the filter + */ + ConnectomicsRenderingEdgeFilteringProperty( const IdType& value ); + + /** + * Constructor. Sets the filter to the given value. If it is not + * valid, the value is set to 0 + * @param value the string representation of the filter + */ + ConnectomicsRenderingEdgeFilteringProperty( const std::string& value ); + + /** + * this function is overridden as protected, so that the user may not add + * additional enumerations. + */ + virtual bool AddEnum( const std::string& name, const IdType& id ); + + /** + * Adds the enumeration types as defined by vtk to the list of known + * enumeration values. + */ + virtual void AddRenderingFilter(); + +private: + + // purposely not implemented + ConnectomicsRenderingEdgeFilteringProperty(const ConnectomicsRenderingEdgeFilteringProperty&); + ConnectomicsRenderingEdgeFilteringProperty& operator=(const ConnectomicsRenderingEdgeFilteringProperty&); +}; + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +} // end of namespace mitk + +#endif diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.cpp b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.cpp new file mode 100644 index 0000000000..84192c5c9c --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.cpp @@ -0,0 +1,68 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 "mitkConnectomicsRenderingNodeColoringSchemeProperty.h" +#include "mitkConnectomicsRenderingProperties.h" + +#define GRADIENT_SCHEME 0 +#define SHORTEST_PATH_SCHEME 1 + +mitk::ConnectomicsRenderingNodeColoringSchemeProperty::ConnectomicsRenderingNodeColoringSchemeProperty( ) +{ + AddRenderingColorOption(); + SetValue( GRADIENT_SCHEME ); +} + + +mitk::ConnectomicsRenderingNodeColoringSchemeProperty::ConnectomicsRenderingNodeColoringSchemeProperty( const IdType& value ) +{ + AddRenderingColorOption(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ) ; + } + else + { + SetValue( GRADIENT_SCHEME ); + } +} + +mitk::ConnectomicsRenderingNodeColoringSchemeProperty::ConnectomicsRenderingNodeColoringSchemeProperty( const std::string& value ) +{ + AddRenderingColorOption(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ); + } + else + { + SetValue( GRADIENT_SCHEME ); + } +} + + + +void mitk::ConnectomicsRenderingNodeColoringSchemeProperty::AddRenderingColorOption() +{ + AddEnum( connectomicsRenderingNodeColoringGradientScheme, GRADIENT_SCHEME ); + AddEnum( connectomicsRenderingNodeColoringShortestPathScheme, SHORTEST_PATH_SCHEME ); +} + + +bool mitk::ConnectomicsRenderingNodeColoringSchemeProperty::AddEnum( const std::string& name, const IdType& id ) +{ + return Superclass::AddEnum( name, id ); +} diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.h b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.h new file mode 100644 index 0000000000..1ecca1e2ba --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.h @@ -0,0 +1,94 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 _MITK_CONNECTOMICS_RENDERING_NODE_COLORING_PROPERTY__H_ +#define _MITK_CONNECTOMICS_RENDERING_NODE_COLORING_PROPERTY__H_ + +#include "mitkEnumerationProperty.h" +#include "MitkDiffusionImagingExports.h" + +namespace mitk +{ + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4522) +#endif + +/** + * Encapsulates the enumeration of different node coloring options for rendering connectomics networks + */ +class MitkDiffusionImaging_EXPORT ConnectomicsRenderingNodeColoringSchemeProperty : public EnumerationProperty +{ +public: + + mitkClassMacro( ConnectomicsRenderingNodeColoringSchemeProperty, EnumerationProperty ); + + itkNewMacro(ConnectomicsRenderingNodeColoringSchemeProperty); + + mitkNewMacro1Param(ConnectomicsRenderingNodeColoringSchemeProperty, const IdType&); + + mitkNewMacro1Param(ConnectomicsRenderingNodeColoringSchemeProperty, const std::string&); + + using BaseProperty::operator=; + +protected: + + /** + * Constructor. Sets the representation to a default value of 0 + */ + ConnectomicsRenderingNodeColoringSchemeProperty( ); + + /** + * Constructor. Sets the color option to the given value. If it is not + * valid, the value is set to 0 + * @param value the integer representation of the color option + */ + ConnectomicsRenderingNodeColoringSchemeProperty( const IdType& value ); + + /** + * Constructor. Sets the color option to the given value. If it is not + * valid, the value is set to 0 + * @param value the string representation of the color option + */ + ConnectomicsRenderingNodeColoringSchemeProperty( const std::string& value ); + + /** + * this function is overridden as protected, so that the user may not add + * additional enumerations. + */ + virtual bool AddEnum( const std::string& name, const IdType& id ); + + /** + * Adds the enumeration types as defined by vtk to the list of known + * enumeration values. + */ + virtual void AddRenderingColorOption(); + +private: + + // purposely not implemented + ConnectomicsRenderingNodeColoringSchemeProperty(const ConnectomicsRenderingNodeColoringSchemeProperty&); + ConnectomicsRenderingNodeColoringSchemeProperty& operator=(const ConnectomicsRenderingNodeColoringSchemeProperty&); +}; + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +} // end of namespace mitk + +#endif diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp new file mode 100644 index 0000000000..265785f019 --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp @@ -0,0 +1,68 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 "mitkConnectomicsRenderingNodeFilteringProperty.h" +#include "mitkConnectomicsRenderingProperties.h" + +#define NO_FILTER 0 +#define THRESHOLDING_FILTER 1 + +mitk::ConnectomicsRenderingNodeFilteringProperty::ConnectomicsRenderingNodeFilteringProperty( ) +{ + AddRenderingFilter(); + SetValue( NO_FILTER ); +} + + +mitk::ConnectomicsRenderingNodeFilteringProperty::ConnectomicsRenderingNodeFilteringProperty( const IdType& value ) +{ + AddRenderingFilter(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ) ; + } + else + { + SetValue( NO_FILTER ); + } +} + +mitk::ConnectomicsRenderingNodeFilteringProperty::ConnectomicsRenderingNodeFilteringProperty( const std::string& value ) +{ + AddRenderingFilter(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ); + } + else + { + SetValue( NO_FILTER ); + } +} + + + +void mitk::ConnectomicsRenderingNodeFilteringProperty::AddRenderingFilter() +{ + AddEnum( connectomicsRenderingNodeNoFilter, NO_FILTER ); + AddEnum( connectomicsRenderingNodeThresholdingFilter, THRESHOLDING_FILTER ); +} + + +bool mitk::ConnectomicsRenderingNodeFilteringProperty::AddEnum( const std::string& name, const IdType& id ) +{ + return Superclass::AddEnum( name, id ); +} diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h new file mode 100644 index 0000000000..b0855549c1 --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h @@ -0,0 +1,94 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 _MITK_CONNECTOMICS_RENDERING_NODE_FILTERING_PROPERTY__H_ +#define _MITK_CONNECTOMICS_RENDERING_NODE_FILTERING_PROPERTY__H_ + +#include "mitkEnumerationProperty.h" +#include "MitkDiffusionImagingExports.h" + +namespace mitk +{ + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4522) +#endif + +/** + * Encapsulates the enumeration of different node filtering options for rendering connectomics networks + */ +class MitkDiffusionImaging_EXPORT ConnectomicsRenderingNodeFilteringProperty : public EnumerationProperty +{ +public: + + mitkClassMacro( ConnectomicsRenderingNodeFilteringProperty, EnumerationProperty ); + + itkNewMacro(ConnectomicsRenderingNodeFilteringProperty); + + mitkNewMacro1Param(ConnectomicsRenderingNodeFilteringProperty, const IdType&); + + mitkNewMacro1Param(ConnectomicsRenderingNodeFilteringProperty, const std::string&); + + using BaseProperty::operator=; + +protected: + + /** + * Constructor. Sets the representation to a default value of 0 + */ + ConnectomicsRenderingNodeFilteringProperty( ); + + /** + * Constructor. Sets the filter to the given value. If it is not + * valid, the value is set to 0 + * @param value the integer representation of the filter + */ + ConnectomicsRenderingNodeFilteringProperty( const IdType& value ); + + /** + * Constructor. Sets the filter to the given value. If it is not + * valid, the value is set to 0 + * @param value the string representation of the filter + */ + ConnectomicsRenderingNodeFilteringProperty( const std::string& value ); + + /** + * this function is overridden as protected, so that the user may not add + * additional enumerations. + */ + virtual bool AddEnum( const std::string& name, const IdType& id ); + + /** + * Adds the enumeration types as defined by vtk to the list of known + * enumeration values. + */ + virtual void AddRenderingFilter(); + +private: + + // purposely not implemented + ConnectomicsRenderingNodeFilteringProperty(const ConnectomicsRenderingNodeFilteringProperty&); + ConnectomicsRenderingNodeFilteringProperty& operator=(const ConnectomicsRenderingNodeFilteringProperty&); +}; + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +} // end of namespace mitk + +#endif diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h index 3712ebc4bb..f005cfcccf 100644 --- a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h @@ -1,312 +1,313 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. 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 ConnectomicsRenderingProperties_H_HEADER_INCLUDED #define ConnectomicsRenderingProperties_H_HEADER_INCLUDED #include #include "mitkproperties.h" #include "mitkStringProperty.h" #include "mitkEnumerationProperty.h" +#include "mitkColorProperty.h" namespace mitk { /** \file mitkConnectomicsRenderingProperties.h * \brief This file defines the rendering properties available for connectomics newtorks in MITK. * * This file collects and explains the properties which can be used to modify the visualisation * of connectomics networks. */ // Switching between rendering modes /** * \brief Define the rendering scheme to be used. * * Currently there are two possible rendering schemes in MITK. *
    *
  1. The VTK Graph Layout *
  2. The MITK Connectomics Visualisation - Default *
* * The VTK Graph Layout is faster than the MITK Connectomics Visualisation, but provides less features * and settings. */ const std::string connectomicsRenderingSchemePropertyName = "Connectomics.Rendering.Scheme"; /** * \brief Much faster but less features. */ const std::string connectomicsRenderingVTKScheme = "VTK Graph Layout"; /** * \brief Slower but with several visualisation options. */ const std::string connectomicsRenderingMITKScheme = "MITK Connectomics Visualisation"; // All options below are only for the MITK Connectomics Visualisation scheme //////////////////////////////////////// // Filtering Options //////////////////////////////////////// /** \brief Edge filter option * * This option controls the filtering of edges for visualization purposes. Edges filtered out will not be shown, but still included in calculations. * * Currently there these options: *
    *
  1. No Edge Filtering - Default *
  2. Shortest Path to Node *
  3. Thresholding *
* */ const std::string connectomicsRenderingEdgeFilteringPropertyName = "Connectomics.Rendering.Edges.Filtering"; /** * \brief Do not filter edges */ const std::string connectomicsRenderingEdgeNoFilter = "No Edge Filtering"; /** * \brief Only show edges which are part of a shortest path to the selected node from any other node */ const std::string connectomicsRenderingEdgeShortestPathFilter = "Shortest Path to Node"; /** * \brief Show only edges above a certain parameter threshold */ const std::string connectomicsRenderingEdgeThresholdFilter = "Thresholding"; /** * \brief Parameter to be thresholded */ const std::string connectomicsRenderingEdgeThresholdFilterParameterName = "Connectomics.Rendering.Edges.Filtering.ThresholdParameter"; /** * \brief Threshold */ const std::string connectomicsRenderingEdgeThresholdFilterThresholdName = "Connectomics.Rendering.Edges.Filtering.Threshold"; /** \brief Node filter option * * This option controls the filtering of nodes for visualization purposes. Nodes filtered out will not be shown, but still included in calculations. * * Currently there these options: *
    *
  1. No Node Filtering - Default *
  2. Thresholding *
* */ const std::string connectomicsRenderingNodeFilteringPropertyName = "Connectomics.Rendering.Nodes.Filtering"; /** * \brief Do not filter nodes */ const std::string connectomicsRenderingNodeNoFilter = "No Node Filtering"; /** * \brief Only show nodes above a certain parameter threshold */ const std::string connectomicsRenderingNodeThresholdingFilter = "Thresholding"; /** * \brief Parameter to be thresholded */ const std::string connectomicsRenderingNodeThresholdFilterParameterName = "Connectomics.Rendering.Nodes.Filtering.ThresholdParameter"; /** * \brief Threshold */ const std::string connectomicsRenderingNodeThresholdFilterThresholdName = "Connectomics.Rendering.Nodes.Filtering.Threshold"; // Default values const mitk::StringProperty::Pointer connectomicsRenderingEdgeThresholdFilterParameterDefault = mitk::StringProperty::New( "" ); const mitk::FloatProperty::Pointer connectomicsRenderingEdgeThresholdFilterThresholdDefault = mitk::FloatProperty::New( 1.0 ); const mitk::StringProperty::Pointer connectomicsRenderingNodeThresholdFilterParameterDefault = mitk::StringProperty::New( "" ); const mitk::FloatProperty::Pointer connectomicsRenderingNodeThresholdFilterThresholdDefault = mitk::FloatProperty::New( 1.0 ); //////////////////////////////////////// // Node Options //////////////////////////////////////// /** \brief Node coloring option * * This option controls the coloring of nodes. * * Currently there these options: *
    *
  1. Color Gradient - Default *
  2. Shortest Path Steps *
* */ const std::string connectomicsRenderingNodeColoringSchemeName = "Connectomics.Rendering.Nodes.ColorScheme"; /** * \brief Color node using a color gradient */ const std::string connectomicsRenderingNodeColoringGradientScheme = "Color Gradient"; /** * \brief Color nodes by shortest path length to a chosen node */ const std::string connectomicsRenderingNodeColoringShortestPathScheme = "Shortest Path Steps"; /** * \brief The chosen node label * * This node will be used for any visualisation requiring a specific node */ const std::string connectomicsRenderingNodeChosenNodeName = "Connectomics.Rendering.Nodes.ChosenNode"; // Color gradient /** * \brief Start Color * * The start color that will be used for gradient creation */ const std::string connectomicsRenderingNodeGradientStartColorName = "Connectomics.Rendering.Nodes.Gradient.StartColor"; /** * \brief End Color * * The end color that will be used for gradient creation */ const std::string connectomicsRenderingNodeGradientEndColorName = "Connectomics.Rendering.Nodes.Gradient.EndColor"; /** * \brief Color parameter * * This parameter will be used to select the color of the node. */ const std::string connectomicsRenderingNodeGradientColorParameterName = "Connectomics.Rendering.Nodes.Gradient.Parameter"; // Radius /** * \brief Start Radius * * The start radius that will be used */ const std::string connectomicsRenderingNodeRadiusStartName = "Connectomics.Rendering.Nodes.Radius.Start"; /** * \brief End Radius * * The end radius that will be used */ const std::string connectomicsRenderingNodeRadiusEndName = "Connectomics.Rendering.Nodes.Radius.End"; /** * \brief Radius parameter * * This parameter will be used to select the radius of the node. */ const std::string connectomicsRenderingNodeRadiusParameterName = "Connectomics.Rendering.Nodes.Radius.Parameter"; // Default values const mitk::StringProperty::Pointer connectomicsRenderingNodeChosenNodeDefault = mitk::StringProperty::New(""); const mitk::ColorProperty::Pointer connectomicsRenderingNodeGradientStartColorDefault = mitk::ColorProperty::New(0.0f, 0.0f, 1.0f); const mitk::ColorProperty::Pointer connectomicsRenderingNodeGradientEndColorDefault = mitk::ColorProperty::New(0.0f, 1.0f, 0.0f); const mitk::StringProperty::Pointer connectomicsRenderingNodeGradientColorParameterDefault = mitk::StringProperty::New(""); const mitk::FloatProperty::Pointer connectomicsRenderingNodeRadiusStartDefault = mitk::FloatProperty::New( 1.0 ); const mitk::FloatProperty::Pointer connectomicsRenderingNodeRadiusEndDefault = mitk::FloatProperty::New( 1.0 ); const mitk::StringProperty::Pointer connectomicsRenderingNodeRadiusParameterDefault = mitk::StringProperty::New(""); //////////////////////////////////////// // Edge Options //////////////////////////////////////// // Color gradient /** * \brief Start Color * * The start color that will be used for gradient creation */ const std::string connectomicsRenderingEdgeGradientStartColorName = "Connectomics.Rendering.Edges.Gradient.StartColor"; /** * \brief End Color * * The end color that will be used for gradient creation */ const std::string connectomicsRenderingEdgeGradientEndColorName = "Connectomics.Rendering.Edges.Gradient.EndColor"; /** * \brief Color parameter * * This parameter will be used to select the color of the edge. */ const std::string connectomicsRenderingEdgeGradientColorParameterName = "Connectomics.Rendering.Edges.Gradient.Parameter"; // Radius /** * \brief Start Radius * * The start radius that will be used */ const std::string connectomicsRenderingEdgeRadiusStartName = "Connectomics.Rendering.Edges.Radius.Start"; /** * \brief End Radius * * The end radius that will be used */ const std::string connectomicsRenderingEdgeRadiusEndName = "Connectomics.Rendering.Edges.Radius.End"; /** * \brief Radius parameter * * This parameter will be used to select the radius of the edge. */ const std::string connectomicsRenderingEdgeRadiusParameterName = "Connectomics.Rendering.Edges.Radius.Parameter"; // Default values const mitk::ColorProperty::Pointer connectomicsRenderingEdgeGradientStartColorDefault = mitk::ColorProperty::New(1.0f, 0.0f, 0.5f); const mitk::ColorProperty::Pointer connectomicsRenderingEdgeGradientEndColorDefault = mitk::ColorProperty::New(0.0f, 1.0f, 0.5f); const mitk::StringProperty::Pointer connectomicsRenderingEdgeGradientColorParameterDefault = mitk::StringProperty::New(""); const mitk::FloatProperty::Pointer connectomicsRenderingEdgeRadiusStartDefault = mitk::FloatProperty::New( 0.2 ); const mitk::FloatProperty::Pointer connectomicsRenderingEdgeRadiusEndDefault = mitk::FloatProperty::New( 0.8 ); const mitk::StringProperty::Pointer connectomicsRenderingEdgeRadiusParameterDefault = mitk::StringProperty::New(""); } // namespace mitk #endif /* ConnectomicsRenderingProperties_H_HEADER_INCLUDED */ diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp new file mode 100644 index 0000000000..988fb32bd1 --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp @@ -0,0 +1,68 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 "mitkConnectomicsRenderingSchemeProperty.h" +#include "mitkConnectomicsRenderingProperties.h" + +#define MITK_SCHEME 0 +#define VTK_SCHEME 1 + +mitk::ConnectomicsRenderingSchemeProperty::ConnectomicsRenderingSchemeProperty( ) +{ + AddRenderingSchemes(); + SetValue( MITK_SCHEME ); +} + + +mitk::ConnectomicsRenderingSchemeProperty::ConnectomicsRenderingSchemeProperty( const IdType& value ) +{ + AddRenderingSchemes(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ) ; + } + else + { + SetValue( MITK_SCHEME ); + } +} + +mitk::ConnectomicsRenderingSchemeProperty::ConnectomicsRenderingSchemeProperty( const std::string& value ) +{ + AddRenderingSchemes(); + if ( IsValidEnumerationValue( value ) ) + { + SetValue( value ); + } + else + { + SetValue( MITK_SCHEME ); + } +} + + + +void mitk::ConnectomicsRenderingSchemeProperty::AddRenderingSchemes() +{ + AddEnum( connectomicsRenderingMITKScheme, MITK_SCHEME ); + AddEnum( connectomicsRenderingVTKScheme, VTK_SCHEME ); +} + + +bool mitk::ConnectomicsRenderingSchemeProperty::AddEnum( const std::string& name, const IdType& id ) +{ + return Superclass::AddEnum( name, id ); +} diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingSchemeProperty.h b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingSchemeProperty.h new file mode 100644 index 0000000000..8a51bd540c --- /dev/null +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingSchemeProperty.h @@ -0,0 +1,94 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +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 _MITK_CONNECTOMICS_RENDERING_SCHEME_PROPERTY__H_ +#define _MITK_CONNECTOMICS_RENDERING_SCHEME_PROPERTY__H_ + +#include "mitkEnumerationProperty.h" +#include "MitkDiffusionImagingExports.h" + +namespace mitk +{ + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4522) +#endif + +/** + * Encapsulates the enumeration of different rendering schemes for connectomics networks + */ +class MitkDiffusionImaging_EXPORT ConnectomicsRenderingSchemeProperty : public EnumerationProperty +{ +public: + + mitkClassMacro( ConnectomicsRenderingSchemeProperty, EnumerationProperty ); + + itkNewMacro(ConnectomicsRenderingSchemeProperty); + + mitkNewMacro1Param(ConnectomicsRenderingSchemeProperty, const IdType&); + + mitkNewMacro1Param(ConnectomicsRenderingSchemeProperty, const std::string&); + + using BaseProperty::operator=; + +protected: + + /** + * Constructor. Sets the representation to a default value of 0 + */ + ConnectomicsRenderingSchemeProperty( ); + + /** + * Constructor. Sets the scheme to the given value. If it is not + * valid, the value is set to 0 + * @param value the integer representation of the scheme + */ + ConnectomicsRenderingSchemeProperty( const IdType& value ); + + /** + * Constructor. Sets the scheme to the given value. If it is not + * valid, the value is set to 0 + * @param value the string representation of the scheme + */ + ConnectomicsRenderingSchemeProperty( const std::string& value ); + + /** + * this function is overridden as protected, so that the user may not add + * additional enumerations. + */ + virtual bool AddEnum( const std::string& name, const IdType& id ); + + /** + * Adds the enumeration types as defined by vtk to the list of known + * enumeration values. + */ + virtual void AddRenderingSchemes(); + +private: + + // purposely not implemented + ConnectomicsRenderingSchemeProperty(const ConnectomicsRenderingSchemeProperty&); + ConnectomicsRenderingSchemeProperty& operator=(const ConnectomicsRenderingSchemeProperty&); +}; + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +} // end of namespace mitk + +#endif diff --git a/Modules/DiffusionImaging/files.cmake b/Modules/DiffusionImaging/files.cmake index 24c712f4d5..b72f1ad22c 100644 --- a/Modules/DiffusionImaging/files.cmake +++ b/Modules/DiffusionImaging/files.cmake @@ -1,259 +1,267 @@ set(CPP_FILES # DicomImport DicomImport/mitkDicomDiffusionImageReader.cpp DicomImport/mitkGroupDiffusionHeadersFilter.cpp DicomImport/mitkDicomDiffusionImageHeaderReader.cpp DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp # DataStructures IODataStructures/mitkDiffusionImagingObjectFactory.cpp # DataStructures -> DWI IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSource.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageReader.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageWriter.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageIOFactory.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageWriterFactory.cpp IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.cpp # DataStructures -> QBall IODataStructures/QBallImages/mitkQBallImageSource.cpp IODataStructures/QBallImages/mitkNrrdQBallImageReader.cpp IODataStructures/QBallImages/mitkNrrdQBallImageWriter.cpp IODataStructures/QBallImages/mitkNrrdQBallImageIOFactory.cpp IODataStructures/QBallImages/mitkNrrdQBallImageWriterFactory.cpp IODataStructures/QBallImages/mitkQBallImage.cpp IODataStructures/QBallImages/mitkQBallImageSerializer.cpp # DataStructures -> Tensor IODataStructures/TensorImages/mitkTensorImageSource.cpp IODataStructures/TensorImages/mitkNrrdTensorImageReader.cpp IODataStructures/TensorImages/mitkNrrdTensorImageWriter.cpp IODataStructures/TensorImages/mitkNrrdTensorImageIOFactory.cpp IODataStructures/TensorImages/mitkNrrdTensorImageWriterFactory.cpp IODataStructures/TensorImages/mitkTensorImage.cpp IODataStructures/TensorImages/mitkTensorImageSerializer.cpp # DataStructures -> FiberBundleX IODataStructures/FiberBundleX/mitkFiberBundleX.cpp IODataStructures/FiberBundleX/mitkFiberBundleXWriter.cpp IODataStructures/FiberBundleX/mitkFiberBundleXReader.cpp IODataStructures/FiberBundleX/mitkFiberBundleXIOFactory.cpp IODataStructures/FiberBundleX/mitkFiberBundleXWriterFactory.cpp IODataStructures/FiberBundleX/mitkFiberBundleXSerializer.cpp IODataStructures/FiberBundleX/mitkFiberBundleXThreadMonitor.cpp # DataStructures -> PlanarFigureComposite IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.cpp # DataStructures -> Tbss IODataStructures/TbssImages/mitkTbssImageSource.cpp IODataStructures/TbssImages/mitkTbssRoiImageSource.cpp IODataStructures/TbssImages/mitkNrrdTbssImageReader.cpp IODataStructures/TbssImages/mitkNrrdTbssImageIOFactory.cpp IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.cpp IODataStructures/TbssImages/mitkNrrdTbssRoiImageIOFactory.cpp IODataStructures/TbssImages/mitkTbssImage.cpp IODataStructures/TbssImages/mitkTbssRoiImage.cpp IODataStructures/TbssImages/mitkNrrdTbssImageWriter.cpp IODataStructures/TbssImages/mitkNrrdTbssImageWriterFactory.cpp IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.cpp IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriterFactory.cpp IODataStructures/TbssImages/mitkTbssImporter.cpp # DataStructures Connectomics IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetwork.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkReader.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkIOFactory.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkSerializer.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkWriter.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkWriterFactory.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkDefinitions.cpp IODataStructures/ConnectomicsNetwork/mitkConnectomicsConstantsManager.cpp # Rendering Rendering/vtkMaskedProgrammableGlyphFilter.cpp Rendering/mitkCompositeMapper.cpp Rendering/mitkVectorImageVtkGlyphMapper3D.cpp Rendering/vtkOdfSource.cxx Rendering/vtkThickPlane.cxx Rendering/mitkOdfNormalizationMethodProperty.cpp Rendering/mitkOdfScaleByProperty.cpp Rendering/mitkFiberBundleXMapper2D.cpp Rendering/mitkFiberBundleXMapper3D.cpp Rendering/mitkFiberBundleXThreadMonitorMapper3D.cpp Rendering/mitkTbssImageMapper.cpp Rendering/mitkPlanarFigureMapper3D.cpp Rendering/mitkConnectomicsNetworkMapper3D.cpp + Rendering/mitkConnectomicsRenderingSchemeProperty.cpp + Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp + Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp + Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.cpp # Interactions Interactions/mitkFiberBundleInteractor.cpp # Algorithms Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp Algorithms/mitkTractAnalyzer.cpp # Algorithms Connectomics Algorithms/Connectomics/mitkConnectomicsNetworkCreator.cpp Algorithms/Connectomics/mitkConnectomicsHistogramBase.cpp Algorithms/Connectomics/mitkConnectomicsDegreeHistogram.cpp Algorithms/Connectomics/mitkConnectomicsShortestPathHistogram.cpp Algorithms/Connectomics/mitkConnectomicsBetweennessHistogram.cpp Algorithms/Connectomics/mitkConnectomicsHistogramCache.cpp Algorithms/Connectomics/mitkConnectomicsSyntheticNetworkGenerator.cpp Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingPermutationBase.cpp Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingPermutationModularity.cpp Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingManager.cpp Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingCostFunctionBase.cpp Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.cpp Algorithms/Connectomics/itkConnectomicsNetworkToConnectivityMatrixImageFilter.cpp # Tractography Tractography/GibbsTracking/mitkParticleGrid.cpp Tractography/GibbsTracking/mitkMetropolisHastingsSampler.cpp Tractography/GibbsTracking/mitkEnergyComputer.cpp Tractography/GibbsTracking/mitkGibbsEnergyComputer.cpp Tractography/GibbsTracking/mitkFiberBuilder.cpp # Function Collection mitkDiffusionFunctionCollection.cpp ) set(H_FILES # function Collection mitkDiffusionFunctionCollection.h # Rendering Rendering/mitkDiffusionImageMapper.h Rendering/mitkTbssImageMapper.h Rendering/mitkOdfVtkMapper2D.h Rendering/mitkFiberBundleXMapper3D.h Rendering/mitkFiberBundleXMapper2D.h Rendering/mitkFiberBundleXThreadMonitorMapper3D.h Rendering/mitkConnectomicsNetworkMapper3D.h Rendering/mitkConnectomicsRenderingProperties.h + Rendering/mitkConnectomicsRenderingSchemeProperty.h + Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h + Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h + Rendering/mitkConnectomicsRenderingNodeColoringSchemeProperty.h Rendering/mitkPlanarFigureMapper3D.h # Reconstruction Reconstruction/itkDiffusionQballReconstructionImageFilter.h Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h Reconstruction/itkPointShell.h Reconstruction/itkOrientationDistributionFunction.h Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h Reconstruction/itkRegularizedIVIMLocalVariationImageFilter.h Reconstruction/itkRegularizedIVIMReconstructionFilter.h Reconstruction/itkRegularizedIVIMReconstructionSingleIteration.h # IO Datastructures IODataStructures/DiffusionWeightedImages/mitkDiffusionImage.h IODataStructures/TbssImages/mitkTbssImporter.h # DataStructures -> FiberBundleX IODataStructures/FiberBundleX/mitkFiberBundleX.h IODataStructures/FiberBundleX/mitkFiberBundleXWriter.h IODataStructures/FiberBundleX/mitkFiberBundleXReader.h IODataStructures/FiberBundleX/mitkFiberBundleXIOFactory.h IODataStructures/FiberBundleX/mitkFiberBundleXWriterFactory.h IODataStructures/FiberBundleX/mitkFiberBundleXSerializer.h IODataStructures/FiberBundleX/mitkFiberBundleXThreadMonitor.h # Datastructures Connectomics IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetwork.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkReader.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkIOFactory.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkSerializer.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkWriter.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkWriterFactory.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsNetworkDefinitions.h IODataStructures/ConnectomicsNetwork/mitkConnectomicsConstantsManager.h # Tractography Tractography/itkGibbsTrackingFilter.h Tractography/itkStochasticTractographyFilter.h Tractography/itkStreamlineTrackingFilter.h Tractography/GibbsTracking/mitkParticle.h Tractography/GibbsTracking/mitkParticleGrid.h Tractography/GibbsTracking/mitkMetropolisHastingsSampler.h Tractography/GibbsTracking/mitkSimpSamp.h Tractography/GibbsTracking/mitkEnergyComputer.h Tractography/GibbsTracking/mitkGibbsEnergyComputer.h Tractography/GibbsTracking/mitkSphereInterpolator.h Tractography/GibbsTracking/mitkFiberBuilder.h # Algorithms Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.h Algorithms/itkTensorDerivedMeasurementsFilter.h Algorithms/itkBrainMaskExtractionImageFilter.h Algorithms/itkB0ImageExtractionImageFilter.h Algorithms/itkB0ImageExtractionToSeparateImageFilter.h Algorithms/itkTensorImageToDiffusionImageFilter.h Algorithms/itkTensorToL2NormImageFilter.h Algorithms/itkTractDensityImageFilter.h Algorithms/itkTractsToFiberEndingsImageFilter.h Algorithms/itkTractsToRgbaImageFilter.h Algorithms/itkGaussianInterpolateImageFunction.h Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h Algorithms/itkCartesianToPolarVectorImageFilter.h Algorithms/itkPolarToCartesianVectorImageFilter.h Algorithms/itkDistanceMapFilter.h Algorithms/itkProjectionFilter.h Algorithms/itkSkeletonizationFilter.h Algorithms/itkResidualImageFilter.h Algorithms/itkExtractChannelFromRgbaImageFilter.h Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h Algorithms/itkMergeDiffusionImagesFilter.h Algorithms/itkDwiPhantomGenerationFilter.h Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h Algorithms/itkMrtrixPeakImageConverter.h Algorithms/itkFslPeakImageConverter.h Algorithms/itkFslShCoefficientImageConverter.h Algorithms/itkOdfMaximaExtractionFilter.h Algorithms/itkFibersFromPlanarFiguresFilter.h Algorithms/itkTractsToDWIImageFilter.h Algorithms/itkTractsToVectorImageFilter.h # Algorithms Connectomics Algorithms/Connectomics/mitkConnectomicsNetworkCreator.h Algorithms/Connectomics/mitkConnectomicsHistogramBase.h Algorithms/Connectomics/mitkConnectomicsDegreeHistogram.h Algorithms/Connectomics/mitkConnectomicsShortestPathHistogram.h Algorithms/Connectomics/mitkConnectomicsBetweennessHistogram.h Algorithms/Connectomics/mitkConnectomicsHistogramCache.h Algorithms/Connectomics/mitkConnectomicsSyntheticNetworkGenerator.h Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingPermutationBase.h Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingPermutationModularity.h Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingManager.h Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingCostFunctionBase.h Algorithms/Connectomics/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.h Algorithms/Connectomics/itkConnectomicsNetworkToConnectivityMatrixImageFilter.h SignalModels/mitkDiffusionSignalModel.h SignalModels/mitkTensorModel.h SignalModels/mitkBallModel.h SignalModels/mitkStickModel.h SignalModels/mitkDiffusionNoiseModel.h SignalModels/mitkRicianNoiseModel.h SignalModels/mitkKspaceArtifact.h SignalModels/mitkGibbsRingingArtifact.h SignalModels/mitkT2SmearingArtifact.h ) set( TOOL_FILES ) if(WIN32) endif(WIN32) #MITK_MULTIPLEX_PICTYPE( Algorithms/mitkImageRegistrationMethod-TYPE.cpp )