Public Member Functions | Protected Slots | Protected Attributes

QmitkVolumeVisualizationView Class Reference
[Internal]

#include <QmitkVolumeVisualizationView.h>

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

List of all members.

Public Member Functions

void SetFocus ()
 QmitkVolumeVisualizationView ()
virtual ~QmitkVolumeVisualizationView ()
virtual void CreateQtPartControl (QWidget *parent)
virtual void OnSelectionChanged (std::vector< mitk::DataNode * > nodes)

Protected Slots

void OnEnableRendering (bool state)
void OnEnableLOD (bool state)
void OnRenderMode (int mode)

Protected Attributes

berry::ISelectionListener::Pointer m_SelectionListener
Ui::QmitkVolumeVisualizationViewControlsm_Controls

Detailed Description

Definition at line 41 of file QmitkVolumeVisualizationView.h.


Constructor & Destructor Documentation

QmitkVolumeVisualizationView::QmitkVolumeVisualizationView (  )

Definition at line 54 of file QmitkVolumeVisualizationView.cpp.

QmitkVolumeVisualizationView::~QmitkVolumeVisualizationView (  ) [virtual]

Definition at line 60 of file QmitkVolumeVisualizationView.cpp.

{
}

Member Function Documentation

void QmitkVolumeVisualizationView::CreateQtPartControl ( QWidget *  parent ) [virtual]

Implements berry::QtViewPart.

Definition at line 64 of file QmitkVolumeVisualizationView.cpp.

References m_Controls, Ui_QmitkVolumeVisualizationViewControls::m_EnableLOD, Ui_QmitkVolumeVisualizationViewControls::m_EnableRenderingCB, Ui_QmitkVolumeVisualizationViewControls::m_ErrorImageLabel, Ui_QmitkVolumeVisualizationViewControls::m_RenderMode, Ui_QmitkVolumeVisualizationViewControls::m_SelectedImageLabel, Ui_QmitkVolumeVisualizationViewControls::m_TransferFunctionGeneratorWidget, Ui_QmitkVolumeVisualizationViewControls::m_TransferFunctionWidget, OnEnableLOD(), OnEnableRendering(), OnRenderMode(), and Ui_QmitkVolumeVisualizationViewControls::setupUi().

{
   
  if (!m_Controls)
  {
    m_Controls = new Ui::QmitkVolumeVisualizationViewControls;
    m_Controls->setupUi(parent);

    m_Controls->m_RenderMode->addItem("CPU raycast");
    m_Controls->m_RenderMode->addItem("CPU MIP raycast");
    m_Controls->m_RenderMode->addItem("GPU slicing");
// Only with VTK 5.6 or above
#if ((VTK_MAJOR_VERSION > 5) || ((VTK_MAJOR_VERSION==5) && (VTK_MINOR_VERSION>=6) ))
    m_Controls->m_RenderMode->addItem("GPU raycast");
    m_Controls->m_RenderMode->addItem("GPU MIP raycast");
#endif

    connect( m_Controls->m_EnableRenderingCB, SIGNAL( toggled(bool) ),this, SLOT( OnEnableRendering(bool) ));
    connect( m_Controls->m_EnableLOD, SIGNAL( toggled(bool) ),this, SLOT( OnEnableLOD(bool) ));
    connect( m_Controls->m_RenderMode, SIGNAL( activated(int) ),this, SLOT( OnRenderMode(int) ));

    connect( m_Controls->m_TransferFunctionGeneratorWidget, SIGNAL( SignalUpdateCanvas( ) ),   m_Controls->m_TransferFunctionWidget, SLOT( OnUpdateCanvas( ) ) );
 
    m_Controls->m_EnableRenderingCB->setEnabled(false);
    m_Controls->m_EnableLOD->setEnabled(false);
    m_Controls->m_RenderMode->setEnabled(false);
    m_Controls->m_TransferFunctionWidget->setEnabled(false);
    m_Controls->m_TransferFunctionGeneratorWidget->setEnabled(false);
    
    m_Controls->m_SelectedImageLabel->hide();
    m_Controls->m_ErrorImageLabel->hide();
    
  }
}
void QmitkVolumeVisualizationView::OnEnableLOD ( bool  state ) [protected, slot]

Definition at line 273 of file QmitkVolumeVisualizationView.cpp.

References mitk::RenderingManager::GetInstance(), mitk::WeakPointer< TObjectType >::IsNull(), and mitk::BoolProperty::New().

Referenced by CreateQtPartControl().

{
  if(m_SelectedNode.IsNull())
    return;

  m_SelectedNode->SetProperty("volumerendering.uselod",mitk::BoolProperty::New(state));
  mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
void QmitkVolumeVisualizationView::OnEnableRendering ( bool  state ) [protected, slot]

Definition at line 263 of file QmitkVolumeVisualizationView.cpp.

References mitk::RenderingManager::GetInstance(), mitk::WeakPointer< TObjectType >::IsNull(), and mitk::BoolProperty::New().

Referenced by CreateQtPartControl().

{
  if(m_SelectedNode.IsNull())
    return;

  m_SelectedNode->SetProperty("volumerendering",mitk::BoolProperty::New(state));
  UpdateInterface();
  mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
void QmitkVolumeVisualizationView::OnRenderMode ( int  mode ) [protected, slot]

Definition at line 282 of file QmitkVolumeVisualizationView.cpp.

References mitk::RenderingManager::GetInstance(), mitk::WeakPointer< TObjectType >::IsNull(), mitk::BoolProperty::New(), RM_CPU_MIP_RAYCAST, RM_GPU_COMPOSITE_RAYCAST, RM_GPU_COMPOSITE_SLICING, and RM_GPU_MIP_RAYCAST.

Referenced by CreateQtPartControl().

{
  if(m_SelectedNode.IsNull())
    return;

  bool usegpu=mode==RM_GPU_COMPOSITE_SLICING;
// Only with VTK 5.6 or above
#if ((VTK_MAJOR_VERSION > 5) || ((VTK_MAJOR_VERSION==5) && (VTK_MINOR_VERSION>=6) ))
  bool useray=(mode==RM_GPU_COMPOSITE_RAYCAST)||(mode==RM_GPU_MIP_RAYCAST);
#endif
  bool usemip=(mode==RM_GPU_MIP_RAYCAST)||(mode==RM_CPU_MIP_RAYCAST);
      
  m_SelectedNode->SetProperty("volumerendering.usegpu",mitk::BoolProperty::New(usegpu));
// Only with VTK 5.6 or above
#if ((VTK_MAJOR_VERSION > 5) || ((VTK_MAJOR_VERSION==5) && (VTK_MINOR_VERSION>=6) ))
  m_SelectedNode->SetProperty("volumerendering.useray",mitk::BoolProperty::New(useray));
#endif
  m_SelectedNode->SetProperty("volumerendering.usemip",mitk::BoolProperty::New(usemip));
  
  mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
void QmitkVolumeVisualizationView::OnSelectionChanged ( std::vector< mitk::DataNode * >  nodes ) [virtual]

Invoked when the DataManager selection changed

Reimplemented from QmitkFunctionality.

Definition at line 100 of file QmitkVolumeVisualizationView.cpp.

References m_Controls, Ui_QmitkVolumeVisualizationViewControls::m_ErrorImageLabel, Ui_QmitkVolumeVisualizationViewControls::m_NoSelectedImageLabel, and Ui_QmitkVolumeVisualizationViewControls::m_SelectedImageLabel.

{ 
  bool weHadAnImageButItsNotThreeDeeOrFourDee = false;

  mitk::DataNode::Pointer node;

  for (std::vector<mitk::DataNode*>::iterator iter = nodes.begin();
       iter != nodes.end();
       ++iter)
  {
    mitk::DataNode::Pointer currentNode = *iter;
  
    if( currentNode.IsNotNull() && dynamic_cast<mitk::Image*>(currentNode->GetData()) )
    {
      if( dynamic_cast<mitk::Image*>(currentNode->GetData())->GetDimension()>=3 )
      {
        if (node.IsNull())
        {
          node = currentNode;
        }
      }
      else
      {
        weHadAnImageButItsNotThreeDeeOrFourDee = true;
      } 
    }
  }

  if( node.IsNotNull() )
  {
    m_Controls->m_NoSelectedImageLabel->hide();
    m_Controls->m_ErrorImageLabel->hide();
    m_Controls->m_SelectedImageLabel->show();
    
    std::string  infoText;
    
    if (node->GetName().empty())
      infoText = std::string("Selected Image: [currently selected image has no name]");
    else
      infoText = std::string("Selected Image: ") + node->GetName();
    
    m_Controls->m_SelectedImageLabel->setText( QString( infoText.c_str() ) );
    
    m_SelectedNode = node;
  }
  else
  {
    if(weHadAnImageButItsNotThreeDeeOrFourDee)
    {
      m_Controls->m_NoSelectedImageLabel->hide();
      m_Controls->m_ErrorImageLabel->show();
      std::string  infoText;
      infoText = std::string("only 3D or 4D images are supported");
      m_Controls->m_ErrorImageLabel->setText( QString( infoText.c_str() ) ); 
    }
    else
    {
      m_Controls->m_SelectedImageLabel->hide();
      m_Controls->m_ErrorImageLabel->hide();
      m_Controls->m_NoSelectedImageLabel->show();
    }
    
    m_SelectedNode = 0;
  }

  UpdateInterface();
}
void QmitkVolumeVisualizationView::SetFocus (  ) [virtual]

Called when this view receives the focus. Same as Activated()

See also:
Activated()

Reimplemented from QmitkFunctionality.

Definition at line 304 of file QmitkVolumeVisualizationView.cpp.

{

}

Member Data Documentation

Definition at line 75 of file QmitkVolumeVisualizationView.h.

Referenced by CreateQtPartControl(), and OnSelectionChanged().

A selection listener for datatreenode events

Definition at line 73 of file QmitkVolumeVisualizationView.h.


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