- static vvSlicer *New();
- vtkTypeRevisionMacro(vvSlicer,vtkImageViewer2);
- void PrintSelf(ostream& os, vtkIndent indent);
-
- void SetImage(vvImage::Pointer inputImages);
- vvImage::Pointer GetImage() {
- return mImage;
- }
-
- void SetOverlay(vvImage::Pointer inputOverlay);
- vvImage::Pointer GetOverlay() {
- return mOverlay;
- }
-
- vtkImageMapToWindowLevelColors* GetOverlayMapper();
- vtkImageActor* GetOverlayActor() ;
- vtkImageMapToWindowLevelColors* GetFusionMapper() ;
- vtkImageActor* GetFusionActor() ;
- vtkActor* GetVFActor() ;
- vtkCornerAnnotation* GetAnnotation() ;
-
- void SetFusion(vvImage::Pointer inputFusion);
- vvImage::Pointer GetFusion() {
- return mFusion;
- }
-
- /**Set an actor's visibility ("overlay, fusion, vf, contour...")
- Overlay index is the index of the overlay by type, eg. if there are
- 5 contours and we want to activate the 3rd one, pass 2 **/
- void SetActorVisibility(const std::string& actor_type, int overlay_index,bool vis);
- void RemoveActor(const std::string& actor_type, int overlay_index);
-
- void SetVF(vvImage::Pointer vf);
- vvImage *GetVF() {
- return mVF;
- }
-
- void SetLandmarks(vvLandmarks* landmarks);
- void SetTSlice(int t);
- void SetSliceOrientation(int orientation);
- int GetTSlice();
- ///Reimplemented from vtkImageViewer2 to add polydata support
- void SetSlice(int s);
- int GetTMax() {
- return mImage->GetVTKImages().size() - 1;
- }
-
- void SetOpacity(double s);
- void SetRenderWindow(int orientation, vtkRenderWindow * rw);
- void SetDisplayMode(bool i);
- void FlipHorizontalView();
- void FlipVerticalView();
- void Render();
- ///Sets the camera to fit the image in the window
- void ResetCamera();
-
- void SetVFSubSampling(int sub);
- int GetVFSubSampling() {
- return mSubSampling;
- }
- void SetVFScale(int scale);
- int GetVFScale() {
- return mScale;
- }
- void SetVFLog(int log);
- int GetVFLog() {
- return mVFLog;
- }
-
- void SetFileName(std::string filename) {
- mFileName = filename;
- }
- std::string GetFileName() {
- return mFileName;
- }
-
- double* GetCursorPosition() {
- return mCursor;
- }
-
- void SetCurrentPosition(double x, double y, double z, int t);
- double* GetCurrentPosition() {
- return mCurrent;
- }
-
- void UpdateCursorPosition();
- void SetCursorVisibility(bool s);
- bool GetCursorVisibility();
- void SetCursorColor(int r,int g, int b);
-
- void UpdateLandmarks();
- void ForceUpdateDisplayExtent();
-
- int* GetDisplayExtent();
- /**Add a polydata to be displayed as a contour over the image
- ** the contour can be propagated to a time sequence using a motion field */
- void AddContour(vvMesh::Pointer contours,bool propagate);
- ///Toggle temporal superposition of contours
- void ToggleContourSuperposition();
-
- virtual void SetColorWindow(double s);
- virtual void SetColorLevel(double s);
-
+ static vvSlicer *New();
+ vtkTypeMacro(vvSlicer,vtkImageViewer2);
+ void PrintSelf(ostream& os, vtkIndent indent);
+
+ void SetImage(vvImage::Pointer inputImages);
+ vvImage::Pointer GetImage() {
+ return mImage;
+ }
+
+ void SetOverlay(vvImage::Pointer inputOverlay);
+ vvImage::Pointer GetOverlay() {
+ return mOverlay;
+ }
+ vtkImageMapToWindowLevelColors* GetOverlayMapper();
+ vvBlendImageActor* GetOverlayActor() ;
+ vtkImageMapToColors* GetFusionMapper() ;
+ vtkImageActor* GetFusionActor() ;
+ vtkActor* GetVFActor() ;
+ vtkCornerAnnotation* GetAnnotation();
+
+ void SetFusion(vvImage::Pointer inputFusion, int fusionSequenceCode = -1);
+ vvImage::Pointer GetFusion() {
+ return mFusion;
+ }
+ void ShowFusionLegend(bool show) { showFusionLegend = show; }
+
+ /**Get/Set an actor's visibility ("overlay, fusion, vf, contour...")
+ Overlay index is the index of the overlay by type, eg. if there are
+ 5 contours and we want to activate the 3rd one, pass 2 **/
+ bool GetActorVisibility(const std::string& actor_type, int overlay_index);
+ void SetActorVisibility(const std::string& actor_type, int overlay_index,bool vis);
+ void RemoveActor(const std::string& actor_type, int overlay_index);
+
+ void SetVF(vvImage::Pointer vf);
+ vvImage *GetVF() {
+ return mVF;
+ }
+
+ void SetLandmarks(vvLandmarks* landmarks);
+ void SetTSlice(int t, bool updateLinkedImages = true);
+
+ void SetFusionSequenceTSlice(int t);
+
+ void SetSliceOrientation(int orientation);
+ void AdjustResliceToSliceOrientation(vtkImageReslice *reslice);
+ int GetTSlice();
+ int GetFusionTSlice();
+ int GetOverlayTSlice();
+ int GetMaxCurrentTSlice();
+ ///Reimplemented from vtkImageViewer2 to add polydata support
+ void SetSlice(int s);
+ int GetTMax();
+
+ void SetOpacity(double s);
+ void SetRenderWindow(int orientation, vtkRenderWindow * rw);
+ void SetDisplayMode(bool i);
+ void FlipHorizontalView();
+ void FlipVerticalView();
+ double GetScalarComponentAsDouble(vtkImageData *image, double X, double Y, double Z, int &ix, int &iy, int &iz, int component=0);
+ void Render();
+ ///Sets the camera to fit the image in the window
+ void ResetCamera();
+
+ void SetVFSubSampling(int sub);
+ int GetVFSubSampling() {
+ return mSubSampling;
+ }
+ void SetVFScale(int scale);
+ void SetVFWidth(int width);
+ int GetVFScale() {
+ return mScale;
+ }
+ void SetVFLog(int log);
+ int GetVFLog() {
+ return mVFLog;
+ }
+
+ void SetFileName(std::string filename) {
+ mFileName = filename;
+ }
+ std::string GetFileName() {
+ return mFileName;
+ }
+
+ double* GetCursorPosition() {
+ return mCursor;
+ }
+ vtkTransform * GetSlicingTransform() { return mSlicingTransform; }
+ vtkTransform * GetConcatenatedTransform() { return mConcatenatedTransform; }
+ vtkTransform * GetConcatenatedFusionTransform() { return mConcatenatedFusionTransform; }
+ vtkTransform * GetConcatenatedOverlayTransform() { return mConcatenatedOverlayTransform; }
+
+ void SetCurrentPosition(double x, double y, double z, int t);
+ double* GetCurrentPosition();
+
+ void UpdateCursorPosition();
+ void SetCursorVisibility(bool s);
+
+ bool GetCursorVisibility();
+ void SetCursorColor(int r,int g, int b);
+
+ void SetCornerAnnotationVisibility(bool s);
+ bool GetCornerAnnotationVisibility();
+
+ void GetExtremasAroundMousePointer(double & min, double & max, vtkImageData *image, vtkTransform *transform);
+
+ void RemoveLandmarks();
+ void DisplayLandmarks();
+ void ForceUpdateDisplayExtent();
+
+ int* GetDisplayExtent();
+ /**Add a polydata to be displayed as a contour over the image
+ ** the contour can be propagated to a time sequence using a motion field */
+ void AddContour(vvMesh::Pointer contours,bool propagate);
+ ///Toggle temporal superposition of contours
+ void ToggleContourSuperposition();
+ void SetInterpolationImageReslice(int interpolation);
+
+ virtual void SetColorWindow(double s);
+ virtual void SetColorLevel(double s);
+
+ double GetOverlayColorWindow();
+ double GetOverlayColorLevel();
+ bool GetLinkOverlayWindowLevel() { return mLinkOverlayWindowLevel; }
+
+ void SetOverlayColorWindow(double s);
+ void SetOverlayColorLevel(double s);
+ void SetLinkOverlayWindowLevel(bool b) { mLinkOverlayWindowLevel = b; }
+
+ /**
+ * When it is enabled, beware of a call to GetExtent.
+ * we must have setted mReducedExtent otherwhise random values
+ * are returned by GetExtent
+ * */
+ void EnableReducedExtent(bool b);
+ void SetReducedExtent(int * ext);
+
+ bool ClipDisplayedExtent(int extent[6], int refExtent[6]);
+ int GetOrientation();
+ int * GetExtent();
+
+ double* GetVFColor() {
+ return mVFColor;
+ }
+ void SetVFColor(double r, double g, double b);
+
+ //necessary to flag the secondary sequence
+ void SetFusionSequenceCode(int code) {mFusionSequenceCode=code;}
+ void SetRegisterExtent(int [6]);
+ void GetRegisterExtent(int [6]);
+
+ void SetSlicerNumber(const int nbSlicer) {mSlicerNumber = nbSlicer;}
+ int GetSlicerNumber() const {return mSlicerNumber;}
+
+signals:
+ void UpdateDisplayExtentBegin(int);
+ void UpdateDisplayExtentEnd(int);
+