38 #include "vtkImageData.h"
43 #include "vtkRenderWindowInteractor.h"
44 #include "vtkRenderWindow.h"
45 #include "vtkRendererCollection.h"
46 #include "vtkRenderer.h"
48 #include "vtkTextProperty.h"
49 #include "vtkProperty.h"
50 #include "vtkImageClip.h"
51 #include "vtkImagePermute.h"
52 #include "vtkImageResample.h"
53 #include "vtkWindowToImageFilter.h"
54 #include "vtkBMPWriter.h"
55 #include "vtkPostScriptWriter.h"
56 #include "vtkJPEGWriter.h"
57 #include "vtkPNGWriter.h"
58 #include "vtkTIFFWriter.h"
59 #include "vtkCamera.h"
61 #include "vtkEventQtSlotConnect.h"
63 #include "QVTKWidget.h"
65 #include <QResizeEvent>
71 #include "vtkImageActorPointPlacer.h"
73 #include "vtkCellArray.h"
75 #include "vtkPolyData.h"
77 #include "vtkImplicitPlaneWidget.h"
80 #include "vtkLookupTable.h"
82 #include "vtkPiecewiseFunction.h"
112 this->
HbSplitter, SLOT( moveSplitter(
int,
int) ) );
114 this->
HtSplitter, SLOT( moveSplitter(
int,
int) ) );
134 vtkRenderWindow *renwin4 = this->
QvtkWidget_XYZ->GetRenderWindow();
136 this->
m_View3D->SetRenderWindow(renwin4);
191 iParent->
resize(800, 800);
272 this->
m_Image->GetExtent(extent);
279 View1->GetImageActor(),
280 View1->GetSlicePlane() );
290 View2->GetImageActor(),
291 View2->GetSlicePlane() );
301 View3->GetImageActor(),
302 View3->GetSlicePlane() );
357 for (
int i = 0; i < 3; i++ )
359 this->
m_Pool->
GetItem(i)->GetTextProperty()->SetFontFamilyToArial();
360 this->
m_Pool->
GetItem(i)->GetTextProperty()->SetFontSize(14);
385 vtkCamera *camera = this->
m_View3D->GetRenderer()->GetActiveCamera();
387 camera->Azimuth(-45);
389 this->
m_View3D->GetRenderer()->SetActiveCamera(camera);
416 reinterpret_cast< vtkObject * >( View1->GetInteractorStyle() ),
421 reinterpret_cast< vtkObject * >( View1->GetInteractorStyle() ),
429 reinterpret_cast< vtkObject * >( View2->GetInteractorStyle() ),
434 reinterpret_cast< vtkObject * >( View2->GetInteractorStyle() ),
441 reinterpret_cast< vtkObject * >( View3->GetInteractorStyle() ),
449 reinterpret_cast< vtkObject * >( View3->GetInteractorStyle() ),
454 reinterpret_cast< vtkObject * >( View3->GetInteractorStyle() ),
461 reinterpret_cast< vtkObject * >( View2->GetInteractorStyle() ),
468 reinterpret_cast< vtkObject * >( View1->GetInteractorStyle() ),
477 reinterpret_cast< vtkObject * >( View1->GetInteractorStyle() ),
482 reinterpret_cast< vtkObject * >( View2->GetInteractorStyle() ),
487 reinterpret_cast< vtkObject * >( View3->GetInteractorStyle() ),
503 reinterpret_cast< vtkObject * >( View1->GetInteractorStyle() ),
504 vtkCommand::WindowLevelEvent,
508 reinterpret_cast< vtkObject * >( View2->GetInteractorStyle() ),
509 vtkCommand::WindowLevelEvent,
513 reinterpret_cast< vtkObject * >( View3->GetInteractorStyle() ),
514 vtkCommand::WindowLevelEvent,
522 reinterpret_cast< vtkObject * >( View3D ),
529 reinterpret_cast< vtkObject * >( View3D ),
544 vtkSmartPointer<vtkImageData> test = vtkSmartPointer<vtkImageData>::New();
545 this->
m_Image->ShallowCopy(test);
550 input->GetDimensions(dim);
552 assert ( dim[0] + dim[1] + dim[2] > 0 );
555 this->
m_Image->ShallowCopy(input);
565 if ( ( iId < 0 ) || ( iId > 3 ) )
955 std::vector< vtkActor * >
958 std::vector< vtkActor * > oList =
962 iProperty,
false,
false );
964 oList.push_back(temp);
978 m_View3D->GetRenderer()->RemoveActor(iActor);
996 m_View3D->GetRenderer()->AddActor(iActor);
1021 if ( this->
m_Image->GetNumberOfScalarComponents() == 1 )
1063 vtkCamera *camera = vtkCamera::New();
1065 this->
m_View3D->GetRenderer()->SetActiveCamera(camera);
1074 camera->Elevation(90);
1080 camera->Azimuth(-90);
1170 this->
m_BoxWidget->InvokeEvent(vtkViewImage2DCommand::InteractionEvent);
1187 this->
m_PlaneWidget->InvokeEvent(vtkViewImage2DCommand::InteractionEvent);
1228 vtkImageData *imageData = this->
m_Image;
1231 imageData->GetExtent(extent);
1232 imageData->GetSpacing(spacing);
1237 m_BoxWidget->PlaceWidget(extent[0] * spacing[0], extent[1] * spacing[0],
1238 extent[2] * spacing[1], extent[3] * spacing[1],
1239 extent[4] * spacing[2], extent[5] * spacing[2]);
1246 vtkViewImage2DCommand::InteractionEvent,
m_View3D->GetCommand() );
1249 vtkCommand::EndInteractionEvent,
m_Pool->GetCommand() );
1261 vtkImageData *imageData = this->
m_Image;
1264 imageData->GetExtent(extent);
1265 imageData->GetSpacing(spacing);
1271 extent[0] * spacing[0], extent[1] * spacing[0],
1272 extent[2] * spacing[1], extent[3] * spacing[1],
1273 extent[4] * spacing[2], extent[5] * spacing[2]);
1275 ( extent[0] + extent[1] ) * spacing[0] / 2,
1276 ( extent[2] + extent[3] ) * spacing[1] / 2,
1277 ( extent[4] + extent[5] ) * spacing[2] / 2);
1287 vtkCommand::InteractionEvent,
m_View3D->GetCommand() );
1290 vtkCommand::EndInteractionEvent,
m_Pool->GetCommand() );
1301 const std::vector<vtkPiecewiseFunction*>& iOpacities)
1372 int n =
m_Pool->GetNumberOfItems();
1374 for (
int i = 0; i < n; i++ )