26#include <mitkIOUtil.h>
29#include <vtkSphereSource.h>
34 : m_Controls( nullptr )
48 m_Controls =
new Ui::QmitkNavigationDataPlayerViewControls;
75 connect(
m_Controls->m_SequentialWidget, SIGNAL(SignalUpdate()),
this, SLOT(
OnUpdate()) );
83 mitk::NavigationDataReaderInterface::Pointer reader =
nullptr;
85 QString filter = tr(
"NavigationData File (*.csv *.xml)");
87 QString fileName = QFileDialog::getOpenFileName(
nullptr, tr(
"Open NavigationData Set"),
"", filter);
89 if ( fileName.isNull() ) {
return; }
95 catch (
const mitk::Exception &e )
97 MITK_WARN(
"NavigationDataPlayerView") <<
"could not open file " << fileName.toStdString();
98 QMessageBox::critical(
nullptr,
"Error Reading File",
"The file '" + fileName
99 +
"' could not be read.\n" + e.GetDescription() );
103 if (
m_Controls->m_ChkConvertToPointSet->isChecked())
104 m_Data->ConvertNavigationDataToPointSet();
109 m_Controls->m_LblTools->setText(QString::number(
m_Data->GetNumberOfTools()));
120 m_Controls->m_SequentialWidget->setVisible(
true);
122 mitk::NavigationDataSequentialPlayer::Pointer seqPlayer = mitk::NavigationDataSequentialPlayer::New();
123 seqPlayer->SetNavigationDataSet(
m_Data);
124 m_Controls->m_SequentialWidget->SetPlayer(seqPlayer);
127 m_Controls->m_SequentialWidget->setVisible(
false);
129 mitk::NavigationDataPlayer::Pointer timedPlayer = mitk::NavigationDataPlayer::New();
130 timedPlayer->SetNavigationDataSet(
m_Data);
131 m_Controls->m_TimedWidget->SetPlayer(timedPlayer);
149 m_Player->SetRepeat(checkState != 0);
153 if(
m_Controls->m_ChkMicroservice->isChecked())
156 for (itk::ProcessObject::DataObjectPointerArraySizeType i = 0;
157 i <
m_Player->GetNumberOfIndexedOutputs(); i++)
159 mitk::NavigationTool::Pointer currentDummyTool = mitk::NavigationTool::New();
160 mitk::VirtualTrackingTool::Pointer dummyTool = mitk::VirtualTrackingTool::New();
161 std::stringstream name;
162 name <<
"Virtual Tool " << i;
163 dummyTool->SetToolName(name.str());
165 currentDummyTool->SetIdentifier(name.str());
184 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
197 m_VisFilter = mitk::NavigationDataObjectVisualizationFilter::New();
200 for (
unsigned int i = 0 ; i <
m_Player->GetNumberOfIndexedOutputs(); i++ ) {
201 mitk::DataNode::Pointer node = mitk::DataNode::New();
202 QString name =
"Recorded Tool " + QString::number(i + 1);
203 node->SetName(name.toStdString());
206 mitk::Surface::Pointer mySphere = mitk::Surface::New();
208 vtkData->SetRadius(5.0f);
209 vtkData->SetCenter(0.0, 0.0, 0.0);
211 mySphere->SetVtkPolyData(vtkData->GetOutput());
212 node->SetData(mySphere);
213 m_VisFilter->SetRepresentationObject(i, mySphere.GetPointer());
216 GetDataStorage()->Add(node);
221 mitk::RenderingManager::GetInstance()->InitializeViewsByBoundingObjects(GetDataStorage());
222 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
234 m_Controls->m_grpbxSettings->setEnabled(isActive);
235 m_Controls->m_grpbxControls->setEnabled(isActive);
void OnSelectPlayer()
Creates the correct player and displays the according widget.
void ConfigurePlayer()
configures the player according to the checkboxes set in the GUI
void CreateConnections()
This method creates this bundle's SIGNAL and SLOT connections.
void SetInteractionComponentsEnabledState(bool isActive)
Makes player component active or inactive.
Ui::QmitkNavigationDataPlayerViewControls * m_Controls
void OnSetRepeat(int)
Changes the repeat mode of the selected player.
void DestroyPipeline()
Destroys the Rendering Pipeline (but not the player)
void CreatePipeline()
Creates the Rendering Pipeline necessary to Render the images.
void OnSetMicroservice()
Registers or unregisters a virtual tracking device for the player.
void OnUpdate()
Updates the visualization.
mitk::NavigationToolStorage::Pointer m_ToolStorage
void CreateQtPartControl(QWidget *parent) override
mitk::NavigationDataSet::Pointer m_Data
static const std::string VIEW_ID
QmitkNavigationDataPlayerView()
void OnSetDisplay()
Triggers the creation and destruction of the rendering pipeline.
void OnOpenFile()
loads a file and triggers creation of players and the pipeline
mitk::NavigationDataObjectVisualizationFilter::Pointer m_VisFilter
std::vector< mitk::DataNode::Pointer > m_RenderingNodes
mitk::NavigationDataPlayerBase::Pointer m_Player
~QmitkNavigationDataPlayerView() override
Data structure which stores streams of mitk::NavigationData for multiple tools.