+
/*=========================================================================
Program: vv http://www.creatis.insa-lyon.fr/rio/vv
#ifndef VVSLICERMANAGER_H
#define VVSLICERMANAGER_H
+// std
#include <iostream>
#include <vector>
#include <string>
return mLastError;
}
- bool SetImage(std::string filename,LoadedImageType type, int n=0);
+ bool SetImage(std::string filename,LoadedImageType type, int n=0, unsigned int slice=0);
void SetImage(vvImage::Pointer image);
- void SetExtractedImage(std::string filename, vvImage::Pointer image, int slice);
bool SetImages(std::vector<std::string> filenames, LoadedImageType type, int n=0);
bool SetOverlay(std::string filename, int dim, std::string component);
void SetSlicerWindow(int i, vtkRenderWindow* RW);
void SetInteractorStyleNavigator(int i,vtkInteractorStyle* style);
- int NumberOfSlicers() { return mSlicers.size(); }
+ int GetNumberOfSlicers() { return mSlicers.size(); }
vvImage::Pointer GetImage() { return mImage; }
vvImage::Pointer GetVF() { return mVF; }
int GetType() { return mType; }
else return -1;
}
- void SetFilename(std::string f);
+ void SetFilename(std::string f, int number=0);
void SetTSlice(int slice);
void SetNextTSlice(int originating_slicer);
void SetColorMap(int colormap);
void SetPreset(int preset);
void SetOverlayColor(int color) {
- mOverlayColor = color;
+ mOverlayColor = (color/60)*60; //SR: new vvBlendImageActor needs 0 or 255 per component
}
void SetFusionOpacity(int opacity) {
mFusionOpacity = opacity;
void SetFusionColorMap(int colorMap) {
mFusionColorMap = colorMap;
}
- void SetFusionWindow(int window) {
+ void SetFusionWindow(double window) {
mFusionWindow = window;
}
- void SetFusionLevel(int level) {
+ void SetFusionLevel(double level) {
mFusionLevel = level;
}
return mFusionLevel;
}
- void SetCursorVisibility(int s);
+ void SetCursorAndCornerAnnotationVisibility(int s);
void UpdateViews(int current, int slicer);
void UpdateLinked(int slicer);
+ void UpdateLinkedNavigation(vvSlicer *slicer, bool bPropagate=false);
void Render();
void AddLink(std::string newId) {
mLinkedId.push_back(newId);
}
void RemoveLink(std::string oldId) {
- mLinkedId.remove(oldId);
+ mLinkedId.remove(oldId);
}
///Remove the actor defined by its type and index (example: 3rd contour)
void ReloadVF();
void Activated();
+ void Picked();
void UpdateInfoOnCursorPosition(int slicer);
void UpdateWindowLevel();
void UpdateSlice(int slicer);
vvLandmarks *GetLandmarks();
void AddLandmark(float x,float y,float z,float t);
+
+ void NextImage(int slicer);
+ void PrevImage(int slicer);
+ void LeftButtonReleaseEvent(int slicer);
+ void VerticalSliderHasChanged(int slicer, int slice);
+ double GetScalarComponentAsDouble(vtkImageData *image, double X, double Y, double Z, int component=0);
signals :
void currentImageChanged(std::string id);
+ void currentPickedImageChanged(std::string id);
void UpdatePosition(int visibility,double x, double y, double z, double X, double Y, double Z, double value);
void UpdateVector(int display, double x, double y, double z, double value);
void UpdateOverlay(int display, double valueOver, double valueRef);
void UpdateSliceRange(int slice, int min, int max, int tmin, int tmax);
void WindowLevelChanged(double window, double level, int preset, int colormap);
void UpdateLinkManager(std::string, int slicer, double x, double y, double z, int temps);
+ void UpdateLinkedNavigation(std::string, vvSlicerManager*);
void LandmarkAdded();
+ void ChangeImageWithIndexOffset(vvSlicerManager *sm, int slicer, int offset);
+ void LeftButtonReleaseSignal(int slicer);
+ void AVerticalSliderHasChanged(int slicer, int slice);
protected:
std::vector<vvSlicer*> mSlicers;
std::list<std::string> mLinkedId;
vvLandmarks* mLandmarks;
+
+ std::vector<int> mPreviousSlice;
+ std::vector<int> mPreviousTSlice;
};
#endif