- // Initial values : center of the volume (in real world, not in pixels!)
- double xSpacing, ySpacing, zSpacing;
- bbGetInputIn()->GetSpacing(xSpacing, ySpacing, zSpacing);
-
- planeWidgetX->SetInput(bbGetInputIn());
- planeWidgetX->SetPlaneOrientationToXAxes();
- planeWidgetX->SetSlicePosition((xMax+xMin)/2.*xSpacing);
- planeWidgetX->GetResliceOutput()->Update();
- bbSetOutput("ImageX", planeWidgetX->GetResliceOutput());
-
-
- vtkMetaImageWriter *writer = vtkMetaImageWriter::New();
-
- std::string newFilenameX("newFilenameX.mhd");
- writer->SetInput(planeWidgetX->GetResliceOutput());
- writer->SetFileName(newFilenameX.c_str());
- writer->Update();
-
- //planeWidgetX->GetResliceOutput()->Print(std::cout);
-
- planeWidgetY->SetInput(bbGetInputIn());
- planeWidgetY->SetPlaneOrientationToYAxes();
- planeWidgetY->SetSlicePosition((yMax+yMin)/2.*ySpacing);
- planeWidgetY->GetResliceOutput()->Update();
- bbSetOutput("ImageY", planeWidgetY->GetResliceOutput());
- //planeWidgetY->GetResliceOutput()->Print(std::cout);
+ int xMin, xMax, yMin, yMax, zMin, zMax;
+ bbGetInputIn()->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax);
+
+ // Initial values : center of the volume (in real world, not in pixels!)
+ double xSpacing, ySpacing, zSpacing;
+ bbGetInputIn()->GetSpacing(xSpacing, ySpacing, zSpacing);
+
+ bbGetOutputPlaneX()->SetInput(bbGetInputIn());
+ bbGetOutputPlaneX()->SetPlaneOrientationToXAxes();
+ bbGetOutputPlaneX()->SetSlicePosition((xMax+xMin)/2.*xSpacing);
+
+
+// bbGetOutputPlaneX()->SetOrigin( 58*xSpacing , 80*ySpacing , 82*zSpacing );
+// bbGetOutputPlaneX()->SetPoint1( 0*xSpacing, 146*ySpacing, 186*zSpacing);
+// bbGetOutputPlaneX()->SetPoint2( 126*xSpacing, 146*ySpacing, 0*zSpacing);
+
+
+ bbGetOutputPlaneY()->SetInput(bbGetInputIn());
+ bbGetOutputPlaneY()->SetPlaneOrientationToYAxes();
+ bbGetOutputPlaneY()->SetSlicePosition((yMax+yMin)/2.*ySpacing);
+
+ bbGetOutputPlaneZ()->SetInput(bbGetInputIn());
+ bbGetOutputPlaneZ()->SetPlaneOrientationToZAxes();
+ bbGetOutputPlaneZ()->SetSlicePosition((zMax+zMin)/2.*zSpacing);
+
+ if (bbGetInputWindowLevel()[0]!=0)
+ {
+ bbGetOutputPlaneZ()->SetWindowLevel(bbGetInputWindowLevel()[0],
+ bbGetInputWindowLevel()[1]);
+ }
+ else
+ {
+ double *range = image->GetScalarRange();
+ bbGetOutputPlaneZ()->SetWindowLevel(range[1] - range[0],
+ 0.5*(range[1]+range[0]));
+ }
+ }