From: jean-pierre roux Date: Thu, 27 Nov 2008 14:57:38 +0000 (+0000) Subject: Now middle slice position is properly computed when spacing is not isotrop X-Git-Tag: v0.9.1~65 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=bc082230cdbe47e401e75589dbe2a68581996660;p=bbtk.git Now middle slice position is properly computed when spacing is not isotrop --- diff --git a/packages/vtk/src/bbvtkImagePlanes.cxx b/packages/vtk/src/bbvtkImagePlanes.cxx index 64ae9ee..487292e 100644 --- a/packages/vtk/src/bbvtkImagePlanes.cxx +++ b/packages/vtk/src/bbvtkImagePlanes.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImagePlanes.cxx,v $ Language: C++ - Date: $Date: 2008/11/26 16:19:44 $ - Version: $Revision: 1.11 $ + Date: $Date: 2008/11/27 14:57:38 $ + Version: $Revision: 1.12 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -63,13 +63,13 @@ namespace bbvtk namespace bbvtk { - BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,ImagePlanes) BBTK_BLACK_BOX_IMPLEMENTATION(ImagePlanes,bbtk::AtomicBlackBox); void ImagePlanes::bbUserConstructor() { planeWidgetX = planeWidgetY = planeWidgetZ = 0; + imageX = imageY = imageZ = 0; bbSetInputIn(0); std::vector vect; vect.push_back(512); @@ -80,10 +80,12 @@ namespace bbvtk void ImagePlanes::bbUserCopyConstructor(bbtk::BlackBox::Pointer) { planeWidgetX = planeWidgetY = planeWidgetZ = 0; + imageX = imageY = imageZ = 0; } void ImagePlanes::Init() - { + { + if (planeWidgetX != 0) return; // The shared picker enables us to use 3 planes at one time // and gets the picking order right @@ -147,16 +149,19 @@ namespace bbvtk planeWidgetX->SetInput(bbGetInputIn()); planeWidgetX->SetPlaneOrientationToXAxes(); - planeWidgetX->SetSlicePosition((xMax+xMin)/2.*xSpacing); + planeWidgetX->SetSlicePosition((xMax+xMin)/2.*xSpacing); + bbSetOutput("ImageX", planeWidgetX->GetResliceOutput()); planeWidgetY->SetInput(bbGetInputIn()); planeWidgetY->SetPlaneOrientationToYAxes(); planeWidgetY->SetSlicePosition((yMax+yMin)/2.*ySpacing); - + bbSetOutput("ImageY", planeWidgetY->GetResliceOutput()); + planeWidgetZ->SetInput(bbGetInputIn()); planeWidgetZ->SetPlaneOrientationToZAxes(); planeWidgetZ->SetSlicePosition((zMax+zMin)/2.*zSpacing); - + bbSetOutput("ImageZ", planeWidgetZ->GetResliceOutput()); + // planeWidgetZ->SetWindowLevel(512,256); planeWidgetZ->SetWindowLevel(bbGetInputWindowLevel()[0],bbGetInputWindowLevel()[1]); diff --git a/packages/vtk/src/bbvtkImagePlanes.h b/packages/vtk/src/bbvtkImagePlanes.h index 3121529..fec60e9 100644 --- a/packages/vtk/src/bbvtkImagePlanes.h +++ b/packages/vtk/src/bbvtkImagePlanes.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImagePlanes.h,v $ Language: C++ - Date: $Date: 2008/11/25 11:17:23 $ - Version: $Revision: 1.7 $ + Date: $Date: 2008/11/27 14:57:38 $ + Version: $Revision: 1.8 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -77,9 +77,13 @@ namespace bbvtk // BBTK_DECLARE_INPUT(Contour,int); BBTK_DECLARE_INPUT(In,vtkImageData *); BBTK_DECLARE_INPUT(WindowLevel,winLevel); + BBTK_DECLARE_OUTPUT(PlaneX,vtkImagePlaneWidget*); BBTK_DECLARE_OUTPUT(PlaneY,vtkImagePlaneWidget*); BBTK_DECLARE_OUTPUT(PlaneZ,vtkImagePlaneWidget*); + BBTK_DECLARE_OUTPUT(ImageX,vtkImageData*); + BBTK_DECLARE_OUTPUT(ImageY,vtkImageData*); + BBTK_DECLARE_OUTPUT(ImageZ,vtkImageData*); BBTK_PROCESS(Process); void Process(); @@ -92,6 +96,10 @@ namespace bbvtk vtkImagePlaneWidget* planeWidgetX; vtkImagePlaneWidget* planeWidgetY; vtkImagePlaneWidget* planeWidgetZ; + vtkImageData* imageX; + vtkImageData* imageY; + vtkImageData* imageZ; + }; //================================================================= @@ -102,10 +110,14 @@ namespace bbvtk BBTK_DESCRIPTION("Creates three 3D planes with the input image mapped onto with which the user can interact. The output vtkImagePlaneWidget objects are to be inserted into a 3D scene (e.g. a Viewer3D)"); BBTK_CATEGORY("3D object creator"); BBTK_INPUT(ImagePlanes,In,"Input Image",vtkImageData *,""); - BBTK_INPUT(ImagePlanes,WindowLevel,"Widdow Level",winLevel,""); + BBTK_INPUT(ImagePlanes,WindowLevel,"Widdow Level",winLevel,""); + BBTK_OUTPUT(ImagePlanes,PlaneX,"The image plane in X direction",vtkImagePlaneWidget*,""); BBTK_OUTPUT(ImagePlanes,PlaneY,"The image plane in Y direction",vtkImagePlaneWidget*,""); BBTK_OUTPUT(ImagePlanes,PlaneZ,"The image plane in Z direction",vtkImagePlaneWidget*,""); + BBTK_OUTPUT(ImagePlanes,ImageX,"The image in X direction",vtkImageData*,""); + BBTK_OUTPUT(ImagePlanes,ImageY,"The image in Y direction",vtkImageData*,""); + BBTK_OUTPUT(ImagePlanes,ImageZ,"The image in Z direction",vtkImageData*,""); BBTK_END_DESCRIBE_BLACK_BOX(ImagePlanes); //=================================================================