diff --git a/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp b/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp index eada9f6614..e24d28e0e2 100644 --- a/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsNetworkMapper3D.cpp @@ -1,317 +1,340 @@ /*=================================================================== 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" 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 ); // set the properties node->AddProperty( connectomicsRenderingSchemePropertyName.c_str(), connectomicsRenderingSchemeProperty, renderer, overwrite ); node->AddProperty( connectomicsRenderingEdgeFilteringPropertyName.c_str(), connectomicsRenderingEdgeFilteringProperty, 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 ); node->AddProperty( connectomicsRenderingNodeThresholdFilterParameterName.c_str(), connectomicsRenderingNodeThresholdFilterParameterDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeThresholdFilterThresholdName.c_str(), connectomicsRenderingNodeThresholdFilterThresholdDefault, renderer, overwrite ); node->AddProperty( connectomicsRenderingNodeColoringSchemeName.c_str(), connectomicsRenderingNodeColoringSchemeProperty, 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/mitkConnectomicsRenderingProperties.h b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h index 6d9845e0dc..3712ebc4bb 100644 --- a/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h +++ b/Modules/DiffusionImaging/Rendering/mitkConnectomicsRenderingProperties.h @@ -1,339 +1,312 @@ /*=================================================================== 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" 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"; - // Default values - - mitk::EnumerationProperty::Pointer connectomicsRenderingSchemeProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingSchemeProperty.AddEnum( connectomicsRenderingMITKScheme, 0 ); - connectomicsRenderingSchemeProperty.AddEnum( connectomicsRenderingVTKScheme, 1 ); - connectomicsRenderingSchemeProperty.SetValue( 0 ); - // 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 - mitk::EnumerationProperty::Pointer connectomicsRenderingEdgeFilteringProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingEdgeFilteringProperty.AddEnum( connectomicsRenderingEdgeNoFilter, 0 ); - connectomicsRenderingEdgeFilteringProperty.AddEnum( connectomicsRenderingEdgeShortestPathFilter, 1 ); - connectomicsRenderingEdgeFilteringProperty.AddEnum( connectomicsRenderingEdgeThresholdFilter, 2 ); - connectomicsRenderingEdgeFilteringProperty.SetValue( 0 ); - const mitk::StringProperty::Pointer connectomicsRenderingEdgeThresholdFilterParameterDefault = mitk::StringProperty::New( "" ); const mitk::FloatProperty::Pointer connectomicsRenderingEdgeThresholdFilterThresholdDefault = mitk::FloatProperty::New( 1.0 ); - mitk::EnumerationProperty::Pointer connectomicsRenderingNodeFilteringProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingNodeFilteringProperty.AddEnum( connectomicsRenderingNodeNoFilter, 0 ); - connectomicsRenderingNodeFilteringProperty.AddEnum( connectomicsRenderingNodeThresholdingFilter, 1 ); - connectomicsRenderingNodeFilteringProperty.SetValue( 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 - mitk::EnumerationProperty::Pointer connectomicsRenderingNodeColoringSchemeProperty = - mitk::EnumerationProperty::New( ); - connectomicsRenderingNodeColoringSchemeProperty.AddEnum( connectomicsRenderingNodeColoringGradientScheme, 0 ); - connectomicsRenderingNodeColoringSchemeProperty.AddEnum( connectomicsRenderingNodeColoringShortestPathScheme, 1 ); - connectomicsRenderingNodeColoringSchemeProperty.SetValue( 0 ); - 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 */