+ 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);
+