15#include <mitkTransferFunction.h>
16#include <mitkTransferFunctionProperty.h>
17#include <mitkImageStatisticsHolder.h>
21#include <mitkTransferFunctionProperty.h>
22#include <mitkTransferFunction.h>
30, m_MitkDistanceImageNode(nullptr)
31, m_MitkAmplitudeImageNode(nullptr)
32, m_MitkIntensityImageNode(nullptr)
33, m_Widget1ColorTransferFunction(nullptr)
34, m_Widget2ColorTransferFunction(nullptr)
35, m_Widget3ColorTransferFunction(nullptr)
36, m_Widget1TransferFunctionType(1)
37, m_Widget2TransferFunctionType(0)
38, m_Widget3TransferFunctionType(0)
52 m_Controls =
new Ui::QmitkToFVisualisationSettingsWidgetControls;
62 connect( (QObject*)(
m_Controls->m_SelectWidgetCombobox), SIGNAL(currentIndexChanged(
int)),(QObject*)
this, SLOT(
OnWidgetSelected(
int)) );
76 m_Controls->m_ColorTransferFunctionCanvas->SetTitle(
"");
85 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
92 m_Controls->m_ColorTransferFunctionCanvas->update();
99 m_Controls->m_ColorTransferFunctionCanvas->update();
105 m_Controls->m_ColorTransferFunctionCanvas->update();
114 m_Controls->m_ColorTransferFunctionCanvas->update();
119 int lower =
m_Controls->m_RangeSlider->minimumValue();
120 int upper =
m_Controls->m_RangeSlider->maximumValue();
122 m_Controls->m_ColorTransferFunctionCanvas->SetMin(lower);
123 m_Controls->m_ColorTransferFunctionCanvas->SetMax(upper);
126void QmitkToFVisualisationSettingsWidget::UpdateSurfaceProperty()
130 mitk::TransferFunction::Pointer transferFunction = mitk::TransferFunction::New();
133 this->
m_MitkSurfaceNode->SetProperty(
"Surface.TransferFunction", mitk::TransferFunctionProperty::New(transferFunction));
138 mitk::DataNode* intensityImageNode, mitk::DataNode* surfaceNode)
151 m_Controls->m_ColorTransferFunctionCanvas->setEnabled(
false);
155 m_Controls->m_ColorTransferFunctionCanvas->setEnabled(
true);
156 int numberOfImages = 0;
176 m_Controls->m_SelectWidgetCombobox->setMaxCount(numberOfImages);
178 this->ReinitTransferFunction(0,1);
179 this->ReinitTransferFunction(1,0);
180 this->ReinitTransferFunction(2,0);
187 m_Controls->m_ColorTransferFunctionCanvas->update();
192 int currentWidgetIndex =
m_Controls->m_SelectWidgetCombobox->currentIndex();
193 if (currentWidgetIndex == 0)
197 else if (currentWidgetIndex == 1)
201 else if (currentWidgetIndex == 2)
209 this->UpdateSurfaceProperty();
214 this->
m_Controls->m_MappingGroupBox->setVisible(checked);
215 this->
m_Controls->m_SelectTransferFunctionTypeCombobox->setVisible(checked);
216 this->
m_Controls->m_SelectWidgetCombobox->setVisible(checked);
217 this->
m_Controls->m_TransferFunctionResetButton->setVisible(checked);
222 int currentWidgetIndex = index;
227 if (currentWidgetIndex == 0)
235 else if (currentWidgetIndex == 1)
243 else if (currentWidgetIndex == 2)
251 else if (currentWidgetIndex == 3)
267 m_Controls->m_ColorTransferFunctionCanvas->update();
268 this->UpdateSurfaceProperty();
271void QmitkToFVisualisationSettingsWidget::ResetTransferFunction(vtkColorTransferFunction* colorTransferFunction,
int type,
double min,
double max)
273 colorTransferFunction->RemoveAllPoints();
276 colorTransferFunction->AddRGBPoint(min, 0, 0, 0);
277 colorTransferFunction->AddRGBPoint(max, 1, 1, 1);
283 colorTransferFunction->AddRGBPoint(0.0, 0, 0, 0);
284 colorTransferFunction->AddRGBPoint(min-0.01, 0, 0, 0);
286 colorTransferFunction->AddRGBPoint(min, 1, 0, 0);
287 colorTransferFunction->AddRGBPoint(min+(max-min)/2, 1, 1, 0);
288 colorTransferFunction->AddRGBPoint(max, 0, 0, 1);
290 colorTransferFunction->SetColorSpaceToHSV();
293void QmitkToFVisualisationSettingsWidget::ReinitTransferFunction(
int widget,
int type)
307 mitk::TransferFunction::Pointer tf1 = mitk::TransferFunction::New();
309 m_MitkDistanceImageNode->SetProperty(
"Image Rendering.Transfer Function",mitk::TransferFunctionProperty::New(tf1));
317 if (amplitudeImage.IsNotNull())
325 mitk::TransferFunction::Pointer tf2 = mitk::TransferFunction::New();
327 m_MitkAmplitudeImageNode->SetProperty(
"Image Rendering.Transfer Function",mitk::TransferFunctionProperty::New(tf2));
337 if (intensityImage.IsNotNull())
345 mitk::TransferFunction::Pointer tf3 = mitk::TransferFunction::New();
347 m_MitkIntensityImageNode->SetProperty(
"Image Rendering.Transfer Function",mitk::TransferFunctionProperty::New(tf3));
355 this->UpdateSurfaceProperty();
360 int currentTransferFunctionTypeIndex =
m_Controls->m_SelectTransferFunctionTypeCombobox->currentIndex();
361 int currentWidgetIndex =
m_Controls->m_SelectWidgetCombobox->currentIndex();
363 this->ReinitTransferFunction(currentWidgetIndex,currentTransferFunctionTypeIndex);
372 m_Controls->m_ColorTransferFunctionCanvas->update();
373 this->UpdateSurfaceProperty();
393 int currentWidgetIndex =
m_Controls->m_SelectWidgetCombobox->currentIndex();
394 if (currentWidgetIndex==0)
398 else if (currentWidgetIndex==1)
402 else if (currentWidgetIndex==2)
414 return this->
m_Controls->m_SelectWidgetCombobox->currentIndex();