X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicer.h;h=d4ac4dcae2428aafc905a0a5da444106c744e82b;hb=fdc97293cc66a4894a2c1c4f04f53d6473ab8ab2;hp=feb5f2dbfe55f1d65f7c06d579f6d52f510f41e0;hpb=0083c3fb2c66812489631c7551709d121de51625;p=clitk.git diff --git a/vv/vvSlicer.h b/vv/vvSlicer.h index feb5f2d..d4ac4dc 100644 --- a/vv/vvSlicer.h +++ b/vv/vvSlicer.h @@ -1,3 +1,20 @@ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +======================================================================-====*/ #ifndef __vvSlicer_h #define __vvSlicer_h #include @@ -17,6 +34,7 @@ class vtkPolyDataMapper2D; class vtkProperty2D; class vtkClipPolyData; class vtkImageActor; +class vvBlendImageActor; class vtkBox; class vtkCornerAnnotation; class vtkExtractVOI; @@ -29,7 +47,8 @@ class vtkCursor3D; class vtkCutter; class vtkAssignAttribute; class vtkScalarBarActor; - +class vtkTransform; +class vtkImageReslice; class vvSlicer: public vtkImageViewer2 { @@ -49,12 +68,12 @@ public: } vtkImageMapToWindowLevelColors* GetOverlayMapper(); - vtkImageActor* GetOverlayActor() ; + vvBlendImageActor* GetOverlayActor() ; vtkImageMapToWindowLevelColors* GetFusionMapper() ; vtkImageActor* GetFusionActor() ; vtkActor* GetVFActor() ; - vtkCornerAnnotation* GetAnnotation() ; - + vtkCornerAnnotation* GetAnnotation(); + void SetFusion(vvImage::Pointer inputFusion); vvImage::Pointer GetFusion() { return mFusion; @@ -78,7 +97,7 @@ public: ///Reimplemented from vtkImageViewer2 to add polydata support void SetSlice(int s); int GetTMax() { - return mImage->GetVTKImages().size() - 1; + return (unsigned int)mImage->GetVTKImages().size() - 1; } void SetOpacity(double s); @@ -95,6 +114,7 @@ public: return mSubSampling; } void SetVFScale(int scale); + void SetVFWidth(int width); int GetVFScale() { return mScale; } @@ -143,6 +163,10 @@ public: void EnableReducedExtent(bool b); void SetReducedExtent(int * ext); + void ClipDisplayedExtent(int extent[6], int refExtent[6]); + int GetOrientation(); + int * GetExtent(); + protected: vvSlicer(); ~vvSlicer(); @@ -156,7 +180,7 @@ protected: vvLandmarks* mLandmarks; vtkSmartPointer mOverlayMapper; - vtkSmartPointer mOverlayActor; + vtkSmartPointer mOverlayActor; vtkSmartPointer mFusionMapper; vtkSmartPointer mFusionActor; vtkSmartPointer ca; @@ -176,7 +200,6 @@ protected: vtkSmartPointer mLandActor; vtkSmartPointer mClipBox; vtkSmartPointer legend; - std::vector mSurfaceCutActors; int mCurrentTSlice; @@ -185,6 +208,7 @@ protected: int mSubSampling; int mScale; int mVFLog; + int mVFWidth; bool mUseReducedExtent; int * mReducedExtent; int * mInitialExtent; @@ -195,7 +219,6 @@ private: void ComputeVFDisplayedExtent(int x1,int x2,int y1,int y2,int z1,int z2,int extent[6]); void ComputeOverlayDisplayedExtent(int x1,int x2,int y1,int y2,int z1,int z2,int overExtent[6]); void ComputeFusionDisplayedExtent(int x1,int x2,int y1,int y2,int z1,int z2,int overExtent[6]); - void ClipDisplayedExtent(int extent[6], int refExtent[6]); ///Sets the surfaces to be cut on the image slice: update the vtkCutter void SetContourSlice();