#include "vvInteractorStyleNavigator.h"
#include "vvSlicer.h"
+#include <vtkVersion.h>
+#include <vtkStreamingDemandDrivenPipeline.h>
+#include <vtkInformation.h>
#include "vtkMarchingCubes.h"
#include "vtkMarchingSquares.h"
#include "vtkImageClip.h"
#include <vtkPolyDataWriter.h>
#include <QMessageBox>
+#include <QFileDialog>
+
+#ifdef Q_OS_OSX
+# include "vvOSXHelper.h"
+#endif
//====================================================================
vvSegmentationDialog::vvSegmentationDialog(QWidget * parent, Qt::WindowFlags f)
erodeButton->setEnabled(0);
dilateButton->setEnabled(0);
infoLabel->setText("Select Up and Down threshold before clicking binarise !");
+
+#ifdef Q_OS_OSX
+ disableGLHiDPI(viewWidget->winId());
+#endif
}
vvSegmentationDialog::~vvSegmentationDialog()
clipping1Slider->setValue(range[0]);
clipping2Slider->setValue(range[1]);
+#if VTK_MAJOR_VERSION <= 5
mClipper->SetInput(mManager->GetSlicer(0)->GetInput());
+#else
+ mClipper->SetInputData(mManager->GetSlicer(0)->GetInput());
+#endif
mSquares1->SetValue(0,clipping1Slider->value());
mSquares2->SetValue(0,clipping2Slider->value());
+
+#if VTK_MAJOR_VERSION <= 5
mSquares1->SetInput(mClipper->GetOutput());
mSquares2->SetInput(mClipper->GetOutput());
mSquaresMapper1->SetInput(mSquares1->GetOutput());
mSquaresMapper2->SetInput(mSquares2->GetOutput());
+#else
+ mSquares1->SetInputData(mClipper->GetOutput());
+ mSquares2->SetInputData(mClipper->GetOutput());
+
+ mSquaresMapper1->SetInputData(mSquares1->GetOutput());
+ mSquaresMapper2->SetInputData(mSquares2->GetOutput());
+#endif
mSquaresMapper1->ScalarVisibilityOff();
mSquaresMapper2->ScalarVisibilityOff();
{
int slice = mManager->GetSlicer(0)->GetSlice();
int tslice = mManager->GetSlicer(0)->GetTSlice();
+#if VTK_MAJOR_VERSION <= 5
mClipper->SetInput(mManager->GetSlicer(0)->GetInput());
+#else
+ mClipper->SetInputData(mManager->GetSlicer(0)->GetInput());
+#endif
int* extent = mManager->GetSlicer(0)->GetImageActor()->GetDisplayExtent();
mClipper->SetOutputWholeExtent(extent[0],extent[1],extent[2],extent[3],extent[4],extent[5]);
int i;
for (unsigned int numImage = 0; numImage < mManager->GetSlicer(0)->GetImage()->GetVTKImages().size(); numImage++) {
vtkImageData* image = mManager->GetSlicer(0)->GetImage()->GetVTKImages()[numImage];
int ext[6];
+#if VTK_MAJOR_VERSION <= 5
image->GetWholeExtent(ext);
+#else
+ image->GetExtent(ext);
+#endif
void *in1Ptr;
in1Ptr = image->GetScalarPointerForExtent(ext);
outputImage->SetExtent(ext);
outputImage->SetOrigin(image->GetOrigin());
outputImage->SetSpacing(image->GetSpacing());
+#if VTK_MAJOR_VERSION <= 5
outputImage->SetScalarTypeToUnsignedChar();
+#else
+ outputImage->AllocateScalars(VTK_UNSIGNED_CHAR, 1);
+#endif
outputImage->CopyAndCastFrom(image,ext);
+#if VTK_MAJOR_VERSION <= 5
outputImage->Update();
+#else
+ //outputImage->Update();
+#endif
image->DeepCopy(outputImage);
+#if VTK_MAJOR_VERSION <= 5
image->UpdateInformation();
image->PropagateUpdateExtent();
+#else
+ //image->UpdateInformation();
+ //image->PropagateUpdateExtent();
+#endif
vtkImageData* imageBin = vtkImageData::New();
imageBin->DeepCopy(image);
+#if VTK_MAJOR_VERSION <= 5
imageBin->Update();
+#else
+ //imageBin->Update();
+#endif
mBinaireImages.push_back(imageBin);
}
erode->SetKernelSize(mKernelValue,mKernelValue,mKernelValue);
for (unsigned int numImage = 0; numImage < mManager->GetSlicer(0)->GetImage()->GetVTKImages().size(); numImage++) {
vtkImageData* image = mManager->GetSlicer(0)->GetImage()->GetVTKImages()[numImage];
+#if VTK_MAJOR_VERSION <= 5
erode->SetInput(image);
erode->Update();
+#else
+ erode->SetInputData(image);
+ //erode->Update();
+#endif
image->DeepCopy(erode->GetOutput());
+#if VTK_MAJOR_VERSION <= 5
image->Update();
+#else
+ //image->Update();
+#endif
}
erode->Delete();
dilateButton->setEnabled(1);
dilate->SetKernelSize(mKernelValue,mKernelValue,mKernelValue);
for (unsigned int numImage = 0; numImage < mManager->GetSlicer(0)->GetImage()->GetVTKImages().size(); numImage++) {
vtkImageData* image = mManager->GetSlicer(0)->GetImage()->GetVTKImages()[numImage];
+#if VTK_MAJOR_VERSION <= 5
dilate->SetInput(image);
+#else
+ dilate->SetInputData(image);
+#endif
vtkImageData* mask = mBinaireImages[numImage];
+#if VTK_MAJOR_VERSION <= 5
And->SetInput1(dilate->GetOutput());
And->SetInput2(mask);
+#else
+ And->SetInput1Data(dilate->GetOutput());
+ And->SetInput2Data(mask);
+#endif
And->Update();
image->DeepCopy(And->GetOutput());
+#if VTK_MAJOR_VERSION <= 5
image->Update();
+#else
+ //image->Update();
+#endif
}
And->Delete();
dilate->Delete();
for (unsigned int numImage = 0; numImage < mManager->GetSlicer(0)->GetImage()->GetVTKImages().size(); numImage++) {
vtkImageData* image = mManager->GetSlicer(0)->GetImage()->GetVTKImages()[numImage];
+#if VTK_MAJOR_VERSION <= 5
seed->SetInput(image);
+#else
+ seed->SetInputData(image);
+#endif
seed->Update();
image->DeepCopy(seed->GetOutput());
+#if VTK_MAJOR_VERSION <= 5
image->Update();
+#else
+ //image->Update();
+#endif
}
seed->Delete();
m3DExtractor->SetValue(0,0.5);
for (unsigned int numImage = 0; numImage < mManager->GetSlicer(0)->GetImage()->GetVTKImages().size(); numImage++) {
vtkActor* actor = vtkActor::New();
+#if VTK_MAJOR_VERSION <= 5
m3DExtractor->SetInput(mManager->GetSlicer(0)->GetImage()->GetVTKImages()[numImage]);
+#else
+ m3DExtractor->SetInputData(mManager->GetSlicer(0)->GetImage()->GetVTKImages()[numImage]);
+#endif
m3DExtractor->Update();
vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();
+#if VTK_MAJOR_VERSION <= 5
mapper->SetInput(m3DExtractor->GetOutput());
+#else
+ mapper->SetInputData(m3DExtractor->GetOutput());
+#endif
m3DMappers.push_back(mapper);
actor->SetMapper(mapper);
"Mesh Files (*.vtk *.vtp)");
if (!fileName.isEmpty()) {
vtkSmartPointer<vtkPolyDataWriter> w = vtkSmartPointer<vtkPolyDataWriter>::New();
+#if VTK_MAJOR_VERSION <= 5
w->SetInput(m3DExtractor->GetOutput());
+#else
+ w->SetInputData(m3DExtractor->GetOutput());
+#endif
w->SetFileName(fileName.toStdString().c_str());
w->Write();
}