- // Initial values : center of the volume (in real world, not in pixels!)
- double xSpacing, ySpacing, zSpacing;
- bbGetInputIn()->GetSpacing(xSpacing, ySpacing, zSpacing);
+ 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);
+
+ 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]));
+ }
+ }