Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
+ - Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
This software is distributed WITHOUT ANY WARRANTY; without even
- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
- ======================================================================-====*/
+ ===========================================================================**/
#ifndef VVSLICERMANAGER_H
#define VVSLICERMANAGER_H
class vtkPolyData;
// VV
-#include "vvConstants.h"
#include "clitkCommon.h"
#include "vvImage.h"
#include "vvMesh.h"
+#include "vvImageReader.h"
+
class vvSlicer;
class vvInteractorStyleNavigator;
class vvImageReader;
return mLastError;
}
- bool SetImage(std::string filename,LoadedImageType type, int n=0);
+ bool SetImage(std::string filename, vvImageReader::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 SetImages(std::vector<std::string> filenames, vvImageReader::LoadedImageType type, int n=0);
bool SetOverlay(std::string filename, int dim, std::string component);
bool SetFusion(std::string filename, int dim, std::string component);
std::string GetVFName() { return mVFName; }
std::string GetOverlayName() { return mOverlayName; }
std::string GetFusionName() { return mFusionName; }
+ std::string GetListOfAbsoluteFilePathInOneString(const std::string &actorType);
///Switch between nearest neighbor and linear interpolation
void ToggleInterpolation();
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 SetSliceOrientation(int slicer, int orientation);
void SetTSlice(int slice);
void SetNextTSlice(int originating_slicer);
void SetPreviousTSlice(int originating_slicer);
void GenerateDefaultLookupTable();
void SetColorWindow(double s);
void SetColorLevel(double s);
- void SetLocalColorWindowing(const int slicer);
+ void SetOverlayColorWindow(double s);
+ void SetOverlayColorLevel(double s);
+ void SetLinkOverlayWindowLevel(bool b);
+ void SetLocalColorWindowing(const int slicer, const bool bCtrlKey);
void SetOpacity(int i, double factor);
- void SetColorMap();
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 SetFusionThresholdOpacity(int thresOpacity) {
+ mFusionThresOpacity = thresOpacity;
+ }
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;
}
+ void SetFusionShowLegend(int show) {
+ mFusionShowLegend = show;
+ }
double GetColorWindow();
double GetColorLevel();
+ double GetOverlayColorWindow() const;
+ double GetOverlayColorLevel() const;
+ bool GetLinkOverlayWindowLevel() const;
int GetColorMap() {
return mColorMap;
}
int GetPreset() {
return mPreset;
}
- int GetOverlayColor() {
+ int GetOverlayColor() const {
return mOverlayColor;
}
-
- int GetFusionOpacity() {
+ int GetFusionOpacity() const {
return mFusionOpacity;
}
- int GetFusionColorMap() {
+ int GetFusionThresholdOpacity() const {
+ return mFusionThresOpacity;
+ }
+ int GetFusionColorMap() const {
return mFusionColorMap;
}
- double GetFusionWindow() {
+ double GetFusionWindow() const {
return mFusionWindow;
}
- double GetFusionLevel() {
+ double GetFusionLevel() const {
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 ResetTransformationToIdentity(const std::string actorType);
void Render();
void AddLink(std::string newId) {
void RemoveLink(std::string oldId) {
mLinkedId.remove(oldId);
}
+
+ bool IsLinked() {
+ return mLinkedId.size() > 0;
+ }
///Remove the actor defined by its type and index (example: 3rd contour)
void RemoveActor(const std::string& actor_type, int overlay_index);
void ReloadVF();
void Activated();
+ void Picked();
void UpdateInfoOnCursorPosition(int slicer);
+ void EmitMousePositionUpdated(int slicer);
+ void EmitKeyPressed(std::string keyPress);
void UpdateWindowLevel();
void UpdateSlice(int slicer);
void UpdateTSlice(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 UpdateFusion(int display, double valueFus);
- void UpdateWindows(int slicer, int view, int slice);
+ void MousePositionUpdatedSignal(int slicer);
+ void KeyPressedSignal(std::string KeyPressed);
+ void UpdateOrientation(int slicer, int orientation);
void UpdateSlice(int slicer, int slice);
void UpdateTSlice(int slicer, int slice);
void UpdateSliceRange(int slice, int min, int max, int tmin, int tmax);
- void WindowLevelChanged(double window, double level, int preset, int colormap);
+ void WindowLevelChanged();
void UpdateLinkManager(std::string, int slicer, double x, double y, double z, int temps);
+ void UpdateLinkedNavigation(std::string, vvSlicerManager*, vvSlicer*);
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;
- vvImageReader* mReader;
- vvImageReader* mOverlayReader;
- vvImageReader* mFusionReader;
+ std::vector< vtkSmartPointer<vvSlicer> > mSlicers;
+ vvImageReader::Pointer mReader;
+ vvImageReader::Pointer mOverlayReader;
+ vvImageReader::Pointer mFusionReader;
+ vvImageReader::Pointer mVectorReader;
vvImage::Pointer mImage;
vvImage::Pointer mVF;
- vvImageReader* mVectorReader;
int mColorMap;
int mOverlayColor;
int mFusionOpacity;
+ int mFusionThresOpacity;
int mFusionColorMap;
double mFusionWindow;
double mFusionLevel;
+ bool mFusionShowLegend;
int mPreset;
- LoadedImageType mType;
+ vvImageReader::LoadedImageType mType;
std::string mVFComponent;
std::string mOverlayComponent;
std::string mFusionComponent;