Public Member Functions | Static Public Attributes | Protected Slots | Protected Attributes | Static Protected Attributes | Friends

QmitkDiffusionQuantificationView Class Reference

QmitkDiffusionQuantificationView. More...

#include <QmitkDiffusionQuantificationView.h>

Inheritance diagram for QmitkDiffusionQuantificationView:
Inheritance graph
[legend]
Collaboration diagram for QmitkDiffusionQuantificationView:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QmitkDiffusionQuantificationView ()
virtual ~QmitkDiffusionQuantificationView ()
virtual void CreateQtPartControl (QWidget *parent)
virtual void CreateConnections ()
 Creation of the connections of main and control widget.
virtual void Activated ()
 Called when the functionality is activated.
virtual void Deactivated ()
virtual void StdMultiWidgetAvailable (QmitkStdMultiWidget &stdMultiWidget)
virtual void StdMultiWidgetNotAvailable ()

Static Public Attributes

static const std::string VIEW_ID = "org.mitk.views.diffusionquantification"

Protected Slots

void GFACheckboxClicked ()
void GFA ()
void Curvature ()
void FA ()
void RA ()
void AD ()
void RD ()
void ClusterAnisotropy ()
void QBIQuantify (int method)
void QBIQuantification (mitk::DataStorage::SetOfObjects::Pointer inImages, int method)
void TensorQuantify (int method)
void TensorQuantification (mitk::DataStorage::SetOfObjects::Pointer inImages, int method)

Protected Attributes

Ui::QmitkDiffusionQuantificationViewControlsm_Controls
QmitkStdMultiWidgetm_MultiWidget
berry::ISelectionListener::Pointer m_SelListener
berry::IStructuredSelection::ConstPointer m_CurrentSelection

Static Protected Attributes

static const float m_ScaleDAIValues = 100.0

Friends

struct DqSelListener

Detailed Description

QmitkDiffusionQuantificationView.

Document your class here.

See also:
QmitkFunctionality

Definition at line 42 of file QmitkDiffusionQuantificationView.h.


Constructor & Destructor Documentation

QmitkDiffusionQuantificationView::QmitkDiffusionQuantificationView (  )

Definition at line 125 of file QmitkDiffusionQuantificationView.cpp.

QmitkDiffusionQuantificationView::~QmitkDiffusionQuantificationView (  ) [virtual]

Definition at line 132 of file QmitkDiffusionQuantificationView.cpp.

References berry::WorkbenchPart::GetSite(), and m_SelListener.

{
  this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->RemovePostSelectionListener(/*"org.mitk.views.datamanager",*/ m_SelListener);
}

Member Function Documentation

void QmitkDiffusionQuantificationView::Activated (  ) [virtual]

Called when the functionality is activated.

Reimplemented from QmitkFunctionality.

Definition at line 187 of file QmitkDiffusionQuantificationView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), berry::WorkbenchPart::GetSite(), m_CurrentSelection, and m_SelListener.

{
  berry::ISelection::ConstPointer sel(
    this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->GetSelection("org.mitk.views.datamanager"));
  m_CurrentSelection = sel.Cast<const IStructuredSelection>();
  m_SelListener.Cast<DqSelListener>()->DoSelectionChanged(sel);
  QmitkFunctionality::Activated();
}
void QmitkDiffusionQuantificationView::AD (  ) [protected, slot]

Definition at line 234 of file QmitkDiffusionQuantificationView.cpp.

References TensorQuantify().

Referenced by CreateConnections().

void QmitkDiffusionQuantificationView::ClusterAnisotropy (  ) [protected, slot]

Definition at line 244 of file QmitkDiffusionQuantificationView.cpp.

References TensorQuantify().

Referenced by CreateConnections().

void QmitkDiffusionQuantificationView::CreateConnections (  ) [virtual]

Creation of the connections of main and control widget.

Definition at line 172 of file QmitkDiffusionQuantificationView.cpp.

References AD(), ClusterAnisotropy(), Curvature(), FA(), GFA(), GFACheckboxClicked(), Ui_QmitkDiffusionQuantificationViewControls::m_ADButton, Ui_QmitkDiffusionQuantificationViewControls::m_ClusteringAnisotropy, m_Controls, Ui_QmitkDiffusionQuantificationViewControls::m_CurvatureButton, Ui_QmitkDiffusionQuantificationViewControls::m_FAButton, Ui_QmitkDiffusionQuantificationViewControls::m_GFAButton, Ui_QmitkDiffusionQuantificationViewControls::m_RAButton, Ui_QmitkDiffusionQuantificationViewControls::m_RDButton, Ui_QmitkDiffusionQuantificationViewControls::m_StandardGFACheckbox, RA(), and RD().

Referenced by CreateQtPartControl().

{
  if ( m_Controls )
  {
    connect( (QObject*)(m_Controls->m_StandardGFACheckbox), SIGNAL(clicked()), this, SLOT(GFACheckboxClicked()) );
    connect( (QObject*)(m_Controls->m_GFAButton), SIGNAL(clicked()), this, SLOT(GFA()) );
    connect( (QObject*)(m_Controls->m_CurvatureButton), SIGNAL(clicked()), this, SLOT(Curvature()) );
    connect( (QObject*)(m_Controls->m_FAButton), SIGNAL(clicked()), this, SLOT(FA()) );
    connect( (QObject*)(m_Controls->m_RAButton), SIGNAL(clicked()), this, SLOT(RA()) );
    connect( (QObject*)(m_Controls->m_ADButton), SIGNAL(clicked()), this, SLOT(AD()) );
    connect( (QObject*)(m_Controls->m_RDButton), SIGNAL(clicked()), this, SLOT(RD()) );
    connect( (QObject*)(m_Controls->m_ClusteringAnisotropy), SIGNAL(clicked()), this, SLOT(ClusterAnisotropy()) );
  }
}
void QmitkDiffusionQuantificationView::CreateQtPartControl ( QWidget *  parent ) [virtual]
void QmitkDiffusionQuantificationView::Curvature (  ) [protected, slot]

Definition at line 219 of file QmitkDiffusionQuantificationView.cpp.

References QBIQuantify().

Referenced by CreateConnections().

{
  QBIQuantify(12);
}
void QmitkDiffusionQuantificationView::Deactivated (  ) [virtual]

Only called when IsExclusiveFunctionality() returns true.

See also:
IsExclusiveFunctionality()

Reimplemented from QmitkFunctionality.

Definition at line 196 of file QmitkDiffusionQuantificationView.cpp.

void QmitkDiffusionQuantificationView::FA (  ) [protected, slot]

Definition at line 224 of file QmitkDiffusionQuantificationView.cpp.

References TensorQuantify().

Referenced by CreateConnections().

void QmitkDiffusionQuantificationView::GFA (  ) [protected, slot]
void QmitkDiffusionQuantificationView::GFACheckboxClicked (  ) [protected, slot]

Definition at line 201 of file QmitkDiffusionQuantificationView.cpp.

References Ui_QmitkDiffusionQuantificationViewControls::frame_2, and m_Controls.

Referenced by CreateConnections(), and CreateQtPartControl().

{
  m_Controls->frame_2->setVisible(m_Controls->
    m_StandardGFACheckbox->isChecked());
}
void QmitkDiffusionQuantificationView::QBIQuantification ( mitk::DataStorage::SetOfObjects::Pointer  inImages,
int  method 
) [protected, slot]

Definition at line 305 of file QmitkDiffusionQuantificationView.cpp.

References QmitkFunctionality::GetDefaultDataStorage(), mitk::StatusBar::GetInstance(), m_Controls, m_MultiWidget, Ui_QmitkDiffusionQuantificationViewControls::m_ParamKEdit, Ui_QmitkDiffusionQuantificationViewControls::m_ParamPEdit, m_ScaleDAIValues, Ui_QmitkDiffusionQuantificationViewControls::MaxAngle, MBI_DEBUG, MBI_INFO, Ui_QmitkDiffusionQuantificationViewControls::MinAngle, mitk::StringProperty::New(), mitk::DataNode::New(), mitk::Image::New(), QBALL_ODFSIZE, and QmitkStdMultiWidget::RequestUpdate().

Referenced by QBIQuantify().

{
  itk::TimeProbe clock;
  QString status;

  int nrFiles = inImages->size();
  if (!nrFiles) return;

  mitk::DataStorage::SetOfObjects::const_iterator itemiter( inImages->begin() ); 
  mitk::DataStorage::SetOfObjects::const_iterator itemiterend( inImages->end() ); 

  std::vector<mitk::DataNode::Pointer> nodes;
  while ( itemiter != itemiterend ) // for all items
  {

    typedef float TOdfPixelType;
    const int odfsize = QBALL_ODFSIZE;
    typedef itk::Vector<TOdfPixelType,odfsize> OdfVectorType;
    typedef itk::Image<OdfVectorType,3> OdfVectorImgType;
    mitk::Image* vol = 
      static_cast<mitk::Image*>((*itemiter)->GetData());
    OdfVectorImgType::Pointer itkvol = OdfVectorImgType::New();
    mitk::CastToItkImage<OdfVectorImgType>(vol, itkvol);

    std::string nodename;
    (*itemiter)->GetStringProperty("name", nodename);
    ++itemiter;

    float p1 = m_Controls->m_ParamKEdit->text().toFloat();
    float p2 = m_Controls->m_ParamPEdit->text().toFloat();

    // COMPUTE RA
    clock.Start();
    MBI_INFO << "Computing GFA ";
    mitk::StatusBar::GetInstance()->DisplayText(status.sprintf(
      "Computing GFA for %s", nodename.c_str()).toAscii());
    typedef OdfVectorType::ValueType                 RealValueType;
    typedef itk::Image< RealValueType, 3 >                 RAImageType;
    typedef itk::DiffusionQballGeneralizedFaImageFilter<TOdfPixelType,TOdfPixelType,odfsize>
      GfaFilterType;
    GfaFilterType::Pointer gfaFilter = GfaFilterType::New();
    gfaFilter->SetInput(itkvol);
    gfaFilter->SetNumberOfThreads(8);

    double scale = 1;
    std::string newname;
    newname.append(nodename);
    switch(method)
    {
    case 0:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_STANDARD);
        newname.append("GFA");
        scale = m_ScaleDAIValues;
        break;
      }
    case 1:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILES_HIGH_LOW);
        newname.append("01");
        scale = m_ScaleDAIValues;
        break;
      }
    case 2:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILE_HIGH);
        newname.append("02");
        scale = m_ScaleDAIValues;
        break;
      }
    case 3:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_MAX_ODF_VALUE);
        newname.append("03");
        scale = m_ScaleDAIValues;
        break;
      }
    case 4:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_DECONVOLUTION_COEFFS);
        newname.append("04");
        scale = m_ScaleDAIValues;
        break;
      }
    case 5:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_MIN_MAX_NORMALIZED_STANDARD);
        newname.append("05");
        scale = m_ScaleDAIValues;
        break;
      }    
    case 6:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_NORMALIZED_ENTROPY);
        newname.append("06");
        break;
      }
    case 7:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_NEMATIC_ORDER_PARAMETER);
        newname.append("07");
        scale = m_ScaleDAIValues;
        break;
      }
    case 8:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILES_LOW_HIGH);
        newname.append("08");
        scale = m_ScaleDAIValues;
        break;
      }
    case 9:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILE_LOW);
        newname.append("09");
        scale = m_ScaleDAIValues;
        break;
      }
    case 10:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_MIN_ODF_VALUE);
        newname.append("10");
        scale = m_ScaleDAIValues;
        break;
      }
    case 11:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_STD_BY_MAX);
        newname.append("11");
        scale = m_ScaleDAIValues;
        break;
      }
    case 12:
      {
        p1 = m_Controls->MinAngle->text().toFloat();
        p2 = m_Controls->MaxAngle->text().toFloat();
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_PRINCIPLE_CURVATURE);
        QString paramString;
        paramString = paramString.append("PC%1-%2").arg(p1).arg(p2);
        newname.append(paramString.toAscii());
        gfaFilter->SetParam1(p1);
        gfaFilter->SetParam2(p2);
        scale = m_ScaleDAIValues;
        break;
      }
    case 13:
      {
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_GENERALIZED_GFA);
        QString paramString;
        paramString = paramString.append("GFAK%1P%2").arg(p1).arg(p2);
        newname.append(paramString.toAscii());
        gfaFilter->SetParam1(p1);
        gfaFilter->SetParam2(p2);
        scale = m_ScaleDAIValues;
        break;
      }
    default:
      {
        newname.append("0");
        gfaFilter->SetComputationMethod(GfaFilterType::GFA_STANDARD);
        scale = m_ScaleDAIValues;
      }
    }
    gfaFilter->Update();
    clock.Stop();
    MBI_DEBUG << "took " << clock.GetMeanTime() << "s.";

    typedef itk::Image<TOdfPixelType, 3> ImgType;
    ImgType::Pointer img = ImgType::New();
    img->SetSpacing( gfaFilter->GetOutput()->GetSpacing() );   // Set the image spacing
    img->SetOrigin( gfaFilter->GetOutput()->GetOrigin() );     // Set the image origin
    img->SetDirection( gfaFilter->GetOutput()->GetDirection() );  // Set the image direction
    img->SetLargestPossibleRegion( gfaFilter->GetOutput()->GetLargestPossibleRegion());
    img->SetBufferedRegion( gfaFilter->GetOutput()->GetLargestPossibleRegion() );
    img->Allocate();
    itk::ImageRegionIterator<ImgType> ot (img, img->GetLargestPossibleRegion() );
    ot = ot.Begin();
    itk::ImageRegionConstIterator<GfaFilterType::OutputImageType> it 
      (gfaFilter->GetOutput(), gfaFilter->GetOutput()->GetLargestPossibleRegion() );
    it = it.Begin();

    for (it = it.Begin(); !it.IsAtEnd(); ++it)
    {
      GfaFilterType::OutputImageType::PixelType val = it.Get();
      ot.Set(val * scale);
      ++ot;
    }


    // GFA TO DATATREE
    mitk::Image::Pointer image = mitk::Image::New();
    image->InitializeByItk( img.GetPointer() );
    image->SetVolume( img->GetBufferPointer() );
    mitk::DataNode::Pointer node=mitk::DataNode::New();
    node->SetData( image );
    node->SetProperty( "name", mitk::StringProperty::New(newname) );    
    nodes.push_back(node);
 
    mitk::StatusBar::GetInstance()->DisplayText("Computation complete.");

  }

  std::vector<mitk::DataNode::Pointer>::iterator nodeIt;
  for(nodeIt = nodes.begin(); nodeIt != nodes.end(); ++nodeIt)
    GetDefaultDataStorage()->Add(*nodeIt);

  m_MultiWidget->RequestUpdate();

}
void QmitkDiffusionQuantificationView::QBIQuantify ( int  method ) [protected, slot]

Definition at line 249 of file QmitkDiffusionQuantificationView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), m_CurrentSelection, and QBIQuantification().

Referenced by Curvature(), and GFA().

{
  if (m_CurrentSelection)
  {
    mitk::DataStorage::SetOfObjects::Pointer set =
      mitk::DataStorage::SetOfObjects::New();

    int at = 0;
    for (IStructuredSelection::iterator i = m_CurrentSelection->Begin(); 
      i != m_CurrentSelection->End(); 
      ++i)
    {

      if (mitk::DataNodeObject::Pointer nodeObj = i->Cast<mitk::DataNodeObject>())
      {
        mitk::DataNode::Pointer node = nodeObj->GetDataNode();
        if(QString("QBallImage").compare(node->GetData()->GetNameOfClass())==0)
        {
          set->InsertElement(at++, node);
        }
      }
    }
 
    QBIQuantification(set, method);

  }
}
void QmitkDiffusionQuantificationView::RA (  ) [protected, slot]

Definition at line 229 of file QmitkDiffusionQuantificationView.cpp.

References TensorQuantify().

Referenced by CreateConnections().

void QmitkDiffusionQuantificationView::RD (  ) [protected, slot]

Definition at line 239 of file QmitkDiffusionQuantificationView.cpp.

References TensorQuantify().

Referenced by CreateConnections().

void QmitkDiffusionQuantificationView::StdMultiWidgetAvailable ( QmitkStdMultiWidget stdMultiWidget ) [virtual]

Called when a StdMultiWidget is available. Should not be used anymore, see GetActiveStdMultiWidget()

See also:
GetActiveStdMultiWidget()

Reimplemented from QmitkFunctionality.

Definition at line 162 of file QmitkDiffusionQuantificationView.cpp.

References m_MultiWidget.

{
  m_MultiWidget = &stdMultiWidget;
}
void QmitkDiffusionQuantificationView::StdMultiWidgetNotAvailable (  ) [virtual]

Called when no StdMultiWidget is available anymore. Should not be used anymore, see GetActiveStdMultiWidget()

See also:
GetActiveStdMultiWidget()

Reimplemented from QmitkFunctionality.

Definition at line 167 of file QmitkDiffusionQuantificationView.cpp.

References m_MultiWidget.

{
  m_MultiWidget = NULL;
}
void QmitkDiffusionQuantificationView::TensorQuantification ( mitk::DataStorage::SetOfObjects::Pointer  inImages,
int  method 
) [protected, slot]

Definition at line 516 of file QmitkDiffusionQuantificationView.cpp.

References QmitkFunctionality::GetDefaultDataStorage(), mitk::StatusBar::GetInstance(), m_MultiWidget, m_ScaleDAIValues, MBI_DEBUG, MBI_INFO, mitk::StringProperty::New(), mitk::DataNode::New(), mitk::Image::New(), and QmitkStdMultiWidget::RequestUpdate().

Referenced by TensorQuantify().

{
  itk::TimeProbe clock;
  QString status;

  int nrFiles = inImages->size();
  if (!nrFiles) return;

  mitk::DataStorage::SetOfObjects::const_iterator itemiter( inImages->begin() ); 
  mitk::DataStorage::SetOfObjects::const_iterator itemiterend( inImages->end() ); 

  std::vector<mitk::DataNode::Pointer> nodes;
  while ( itemiter != itemiterend ) // for all items
  {

    typedef float                                       TTensorPixelType;
    typedef itk::DiffusionTensor3D< TTensorPixelType >  TensorPixelType;
    typedef itk::Image< TensorPixelType, 3 >            TensorImageType;

    mitk::Image* vol = 
      static_cast<mitk::Image*>((*itemiter)->GetData());
    TensorImageType::Pointer itkvol = TensorImageType::New();
    mitk::CastToItkImage<TensorImageType>(vol, itkvol);

    std::string nodename;
    (*itemiter)->GetStringProperty("name", nodename);
    ++itemiter;

    // COMPUTE FA
    clock.Start();
    MBI_INFO << "Computing FA ";
    mitk::StatusBar::GetInstance()->DisplayText(status.sprintf(
      "Computing FA for %s", nodename.c_str()).toAscii());
    typedef itk::Image< TTensorPixelType, 3 >              FAImageType;

    typedef itk::ShiftScaleImageFilter<FAImageType, FAImageType> 
      ShiftScaleFilterType;
    ShiftScaleFilterType::Pointer multi =
      ShiftScaleFilterType::New();
    multi->SetShift(0.0);
    multi->SetScale(m_ScaleDAIValues);//itk::NumericTraits<RealValueType>::max()

    typedef itk::TensorDerivedMeasurementsFilter<TTensorPixelType> MeasurementsType;

    if(method == 0) //FA
    {
     /* typedef itk::TensorFractionalAnisotropyImageFilter< 
        TensorImageType, FAImageType >                       FilterType;    
      FilterType::Pointer anisotropyFilter = FilterType::New();
      anisotropyFilter->SetInput( itkvol.GetPointer() );
      anisotropyFilter->Update();
      multi->SetInput(anisotropyFilter->GetOutput());
      nodename = QString(nodename.c_str()).append("_FA").toStdString();*/

      
      MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
      measurementsCalculator->SetInput(itkvol.GetPointer() );
      measurementsCalculator->SetMeasure(MeasurementsType::FA);
      measurementsCalculator->Update();
      multi->SetInput(measurementsCalculator->GetOutput());
      nodename = QString(nodename.c_str()).append("_FA").toStdString();

    }
    else if(method == 1) //RA
    {
      /*typedef itk::TensorRelativeAnisotropyImageFilter< 
        TensorImageType, FAImageType >                       FilterType;
      FilterType::Pointer anisotropyFilter = FilterType::New();
      anisotropyFilter->SetInput( itkvol.GetPointer() );
      anisotropyFilter->Update();
      multi->SetInput(anisotropyFilter->GetOutput());
      nodename = QString(nodename.c_str()).append("_RA").toStdString();*/
      
      MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
      measurementsCalculator->SetInput(itkvol.GetPointer() );
      measurementsCalculator->SetMeasure(MeasurementsType::RA);
      measurementsCalculator->Update();
      multi->SetInput(measurementsCalculator->GetOutput());
      nodename = QString(nodename.c_str()).append("_RA").toStdString();

    }  
    else if(method == 2) // AD (Axial diffusivity)
    {
      MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
      measurementsCalculator->SetInput(itkvol.GetPointer() );
      measurementsCalculator->SetMeasure(MeasurementsType::AD);
      measurementsCalculator->Update();
      multi->SetInput(measurementsCalculator->GetOutput());
      nodename = QString(nodename.c_str()).append("_AD").toStdString();
    }
    else if(method == 3) // RD (Radial diffusivity, (Lambda2+Lambda3)/2
    {
      MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
      measurementsCalculator->SetInput(itkvol.GetPointer() );
      measurementsCalculator->SetMeasure(MeasurementsType::RD);
      measurementsCalculator->Update();
      multi->SetInput(measurementsCalculator->GetOutput());
      nodename = QString(nodename.c_str()).append("_RD").toStdString();
    }
    else if(method == 4) // 1-(Lambda2+Lambda3)/(2*Lambda1)
    {
      MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
      measurementsCalculator->SetInput(itkvol.GetPointer() );
      measurementsCalculator->SetMeasure(MeasurementsType::CA);
      measurementsCalculator->Update();
      multi->SetInput(measurementsCalculator->GetOutput());
      nodename = QString(nodename.c_str()).append("_CA").toStdString();
    }

    multi->Update();
    clock.Stop();
    MBI_DEBUG << "took " << clock.GetMeanTime() << "s.";

    // FA TO DATATREE
    mitk::Image::Pointer image = mitk::Image::New();
    image->InitializeByItk( multi->GetOutput() );
    image->SetVolume( multi->GetOutput()->GetBufferPointer() );
    mitk::DataNode::Pointer node=mitk::DataNode::New();
    node->SetData( image );
    node->SetProperty( "name", mitk::StringProperty::New(nodename) );
    nodes.push_back(node);
 
    mitk::StatusBar::GetInstance()->DisplayText("Computation complete.");

  }

  std::vector<mitk::DataNode::Pointer>::iterator nodeIt;
  for(nodeIt = nodes.begin(); nodeIt != nodes.end(); ++nodeIt)
    GetDefaultDataStorage()->Add(*nodeIt);

  m_MultiWidget->RequestUpdate();

}
void QmitkDiffusionQuantificationView::TensorQuantify ( int  method ) [protected, slot]

Definition at line 277 of file QmitkDiffusionQuantificationView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), m_CurrentSelection, and TensorQuantification().

Referenced by AD(), ClusterAnisotropy(), FA(), RA(), and RD().

{
  if (m_CurrentSelection)
  {
    mitk::DataStorage::SetOfObjects::Pointer set =
      mitk::DataStorage::SetOfObjects::New();

    int at = 0;
    for (IStructuredSelection::iterator i = m_CurrentSelection->Begin(); 
      i != m_CurrentSelection->End(); 
      ++i)
    {

      if (mitk::DataNodeObject::Pointer nodeObj = i->Cast<mitk::DataNodeObject>())
      {
        mitk::DataNode::Pointer node = nodeObj->GetDataNode();
        if(QString("TensorImage").compare(node->GetData()->GetNameOfClass())==0)
        {
          set->InsertElement(at++, node);
        }
      }
    }
 
    TensorQuantification(set, method);

  }
}

Friends And Related Function Documentation

friend struct DqSelListener [friend]

Definition at line 45 of file QmitkDiffusionQuantificationView.h.

Referenced by CreateQtPartControl().


Member Data Documentation

const float QmitkDiffusionQuantificationView::m_ScaleDAIValues = 100.0 [static, protected]

Definition at line 99 of file QmitkDiffusionQuantificationView.h.

Referenced by QBIQuantification(), and TensorQuantification().

const std::string QmitkDiffusionQuantificationView::VIEW_ID = "org.mitk.views.diffusionquantification" [static]

Definition at line 52 of file QmitkDiffusionQuantificationView.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines