- 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 vvImageReader;
class vvLandmarks;
+//------------------------------------------------------------------------------
class vvSlicerManager : public QObject {
- Q_OBJECT
-
-public:
- vvSlicerManager(int numberOfSlicers);
- ~vvSlicerManager();
-
- std::string GetLastError() {
- return mLastError;
- }
-
- bool SetImage(std::string filename,LoadedImageType type);
- void SetImage(vvImage::Pointer image);
- void SetExtractedImage(std::string filename, vvImage::Pointer image, int slice);
- bool SetImages(std::vector<std::string> filenames,LoadedImageType type);
-
- bool SetOverlay(std::string filename, int dim, std::string component);
- bool SetFusion(std::string filename, int dim, std::string component);
- ///Set a VF by loading it from the disk
- bool SetVF(std::string filename);
- ///Set a VF from memory
- bool SetVF(vvImage::Pointer vf,std::string filename);
- ///Add a mesh to the slicers, with optional propagation using a vector field
- void AddContour(vvMesh::Pointer ,bool propagate=false);
- ///Toggle temporal superposition of contours
- void ToggleContourSuperposition();
-
- std::string GetFileName() {
- return mFileName;
- }
- std::string GetVFName() {
- return mVFName;
- }
- std::string GetOverlayName() {
- return mOverlayName;
- }
- std::string GetFusionName() {
- return mFusionName;
- }
-
- ///Switch between nearest neighbor and linear interpolation
- void ToggleInterpolation();
- vvSlicer* GetSlicer(int i);
- void UpdateSlicer(int num, bool state);
- void SetSlicerWindow(int i, vtkRenderWindow* RW);
- void SetInteractorStyleNavigator(int i,vtkInteractorStyle* style);
- int NumberOfSlicers() {
- return mSlicers.size();
- }
- vvImage::Pointer GetImage() {
- return mImage;
- }
- vvImage::Pointer GetVF() {
- return mVF;
- }
- int GetDimension() {
- if (mImage) return mImage->GetNumberOfDimensions();
- else return -1;
- }
-
- int GetType() {
- return mType;
- }
-
- void SetId(std::string id) {
- mId = id;
- }
- std::string GetId() {
- return mId;
- }
-
- void SetFilename(std::string f);
-
- void SetTSlice(int slice);
- void SetNextTSlice(int originating_slicer);
- void SetPreviousTSlice(int originating_slicer);
- void SetTSliceInSlicer(int tslice, int slicer);
-
- void GenerateDefaultLookupTable();
- void SetColorWindow(double s);
- void SetColorLevel(double s);
- void SetLocalColorWindowing(const int slicer);
- void SetOpacity(int i, double factor);
- void SetColorMap();
- void SetColorMap(int colormap);
- void SetPreset(int preset);
- void SetOverlayColor(int color) {
- mOverlayColor = color;
- }
- void SetFusionOpacity(int opacity) {
- mFusionOpacity = opacity;
- }
- void SetFusionColorMap(int colorMap) {
- mFusionColorMap = colorMap;
- }
- void SetFusionWindow(int window) {
- mFusionWindow = window;
- }
- void SetFusionLevel(int level) {
- mFusionLevel = level;
- }
-
- double GetColorWindow();
- double GetColorLevel();
- int GetColorMap() {
- return mColorMap;
- }
- int GetPreset() {
- return mPreset;
- }
- int GetOverlayColor() {
- return mOverlayColor;
- }
-
- int GetFusionOpacity() {
- return mFusionOpacity;
- }
- int GetFusionColorMap() {
- return mFusionColorMap;
- }
- double GetFusionWindow() {
- return mFusionWindow;
- }
- double GetFusionLevel() {
- return mFusionLevel;
- }
-
- void SetCursorVisibility(int s);
- void UpdateViews(int current, int slicer);
- void UpdateLinked(int slicer);
- void Render();
-
- void AddLink(std::string newId) {
- mLinkedId.push_back(newId);
- }
- void RemoveLink(std::string oldId) {
- mLinkedId.remove(oldId);
- }
-
- ///Remove the actor defined by its type and index (example: 3rd contour)
- void RemoveActor(const std::string& actor_type, int overlay_index);
- void RemoveActors();
- void Reload();
- void ReloadOverlay();
- void ReloadFusion();
- void ReloadVF();
-
- void Activated();
- void UpdateInfoOnCursorPosition(int slicer);
- void UpdateWindowLevel();
- void UpdateSlice(int slicer);
- void UpdateTSlice(int slicer);
- void UpdateSliceRange(int slicer);
-
- vvLandmarks *GetLandmarks();
- void AddLandmark(float x,float y,float z,float t);
+ Q_OBJECT
+
+ public:
+ vvSlicerManager(int numberOfSlicers);
+ ~vvSlicerManager();
+
+ std::string GetLastError() {
+ return mLastError;
+ }
+
+ bool SetImage(std::string filename,LoadedImageType type, int n=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);
+ bool SetFusion(std::string filename, int dim, std::string component);
+ ///Set a VF by loading it from the disk
+ bool SetVF(std::string filename);
+ ///Set a VF from memory
+ bool SetVF(vvImage::Pointer vf,std::string filename);
+ ///Add a mesh to the slicers, with optional propagation using a vector field
+ void AddContour(vvMesh::Pointer ,bool propagate=false);
+ ///Toggle temporal superposition of contours
+ void ToggleContourSuperposition();
+
+ std::string GetFileName() { return mFileName; }
+ std::string GetBaseFileName() { return mBaseFileName; }
+ int GetBaseFileNameNumber() { return mBaseFileNameNumber; }
+ std::string GetVFName() { return mVFName; }
+ std::string GetOverlayName() { return mOverlayName; }
+ std::string GetFusionName() { return mFusionName; }
+
+ ///Switch between nearest neighbor and linear interpolation
+ void ToggleInterpolation();
+ vvSlicer* GetSlicer(int i);
+ void UpdateSlicer(int num, bool state);
+ void SetSlicerWindow(int i, vtkRenderWindow* RW);
+ void SetInteractorStyleNavigator(int i,vtkInteractorStyle* style);
+
+ int NumberOfSlicers() { return mSlicers.size(); }
+ vvImage::Pointer GetImage() { return mImage; }
+ vvImage::Pointer GetVF() { return mVF; }
+ int GetType() { return mType; }
+ void SetId(std::string id) { mId = id; }
+ std::string GetId() { return mId; }
+ int GetDimension() {
+ if (mImage) return mImage->GetNumberOfDimensions();
+ else return -1;
+ }
+
+ void SetFilename(std::string f);
+
+ void SetTSlice(int slice);
+ void SetNextTSlice(int originating_slicer);
+ void SetPreviousTSlice(int originating_slicer);
+ void SetTSliceInSlicer(int tslice, int slicer);
+
+ void GenerateDefaultLookupTable();
+ void SetColorWindow(double s);
+ void SetColorLevel(double s);
+ void SetLocalColorWindowing(const int slicer);
+ void SetOpacity(int i, double factor);
+ void SetColorMap();
+ void SetColorMap(int colormap);
+ void SetPreset(int preset);
+ void SetOverlayColor(int color) {
+ mOverlayColor = color;
+ }
+ void SetFusionOpacity(int opacity) {
+ mFusionOpacity = opacity;
+ }
+ void SetFusionColorMap(int colorMap) {
+ mFusionColorMap = colorMap;
+ }
+ void SetFusionWindow(int window) {
+ mFusionWindow = window;
+ }
+ void SetFusionLevel(int level) {
+ mFusionLevel = level;
+ }
+
+ double GetColorWindow();
+ double GetColorLevel();
+ int GetColorMap() {
+ return mColorMap;
+ }
+ int GetPreset() {
+ return mPreset;
+ }
+ int GetOverlayColor() {
+ return mOverlayColor;
+ }
+
+ int GetFusionOpacity() {
+ return mFusionOpacity;
+ }
+ int GetFusionColorMap() {
+ return mFusionColorMap;
+ }
+ double GetFusionWindow() {
+ return mFusionWindow;
+ }
+ double GetFusionLevel() {
+ return mFusionLevel;
+ }
+
+ void SetCursorVisibility(int s);
+ void UpdateViews(int current, int slicer);
+ void UpdateLinked(int slicer);
+ void Render();
+
+ void AddLink(std::string newId) {
+ mLinkedId.push_back(newId);
+ }
+ void RemoveLink(std::string oldId) {
+ mLinkedId.remove(oldId);
+ }
+
+ ///Remove the actor defined by its type and index (example: 3rd contour)
+ void RemoveActor(const std::string& actor_type, int overlay_index);
+ void RemoveActors();
+ void Reload();
+ void ReloadOverlay();
+ void ReloadFusion();
+ void ReloadVF();
+
+ void Activated();
+ void UpdateInfoOnCursorPosition(int slicer);
+ void UpdateWindowLevel();
+ void UpdateSlice(int slicer);
+ void UpdateTSlice(int slicer);
+ void UpdateSliceRange(int slicer);
+
+ vvLandmarks *GetLandmarks();
+ void AddLandmark(float x,float y,float z,float t);
signals :
- void currentImageChanged(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 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 UpdateLinkManager(std::string, int slicer, double x, double y, double z, int temps);
- void LandmarkAdded();
+ void currentImageChanged(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 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 UpdateLinkManager(std::string, int slicer, double x, double y, double z, int temps);
+ void LandmarkAdded();
protected:
- std::vector<vvSlicer*> mSlicers;
- vvImageReader* mReader;
- vvImageReader* mOverlayReader;
- vvImageReader* mFusionReader;
- vvImage::Pointer mImage;
- vvImage::Pointer mVF;
- vvImageReader* mVectorReader;
- int mColorMap;
- int mOverlayColor;
-
- int mFusionOpacity;
- int mFusionColorMap;
- double mFusionWindow;
- double mFusionLevel;
-
- int mPreset;
- LoadedImageType mType;
- std::string mVFComponent;
- std::string mOverlayComponent;
- std::string mFusionComponent;
- std::string mFileName;
- std::string mId;
- std::string mVFName;
- std::string mOverlayName;
- std::string mFusionName;
- std::string mVFId;
- std::string mLastError;
- std::list<std::string> mLinkedId;
-
- vvLandmarks* mLandmarks;
+ std::vector<vvSlicer*> mSlicers;
+ vvImageReader* mReader;
+ vvImageReader* mOverlayReader;
+ vvImageReader* mFusionReader;
+ vvImage::Pointer mImage;
+ vvImage::Pointer mVF;
+ vvImageReader* mVectorReader;
+ int mColorMap;
+ int mOverlayColor;
+
+ int mFusionOpacity;
+ int mFusionColorMap;
+ double mFusionWindow;
+ double mFusionLevel;
+
+ int mPreset;
+ LoadedImageType mType;
+ std::string mVFComponent;
+ std::string mOverlayComponent;
+ std::string mFusionComponent;
+ std::string mFileName;
+ std::string mBaseFileName;
+ int mBaseFileNameNumber;
+ std::string mId;
+ std::string mVFName;
+ std::string mOverlayName;
+ std::string mFusionName;
+ std::string mVFId;
+ std::string mLastError;
+ std::list<std::string> mLinkedId;
+
+ vvLandmarks* mLandmarks;
};
#endif
- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
======================================================================-====*/
+
#include "vvToolWidgetBase.h"
#include "vvMainWindowBase.h"
#include "vvSlicerManager.h"
// parent is set at construction
mIsInitialized = false;
mFilter = 0;
- mMainWindowBase = parent;
+ mMainWindow = parent;
setModal(false);
setAttribute(Qt::WA_DeleteOnClose);
mCurrentSlicerManager = 0;
setupUi(this);
// Connect signals & slots
- connect(mMainWindowBase, SIGNAL(AnImageIsBeingClosed(vvSlicerManager*)),
+ connect(mMainWindow, SIGNAL(AnImageIsBeingClosed(vvSlicerManager*)),
this, SLOT(AnImageIsBeingClosed(vvSlicerManager*)));
connect(mToolInputSelectionWidget, SIGNAL(accepted()), this, SLOT(InputIsSelected()));
connect(mToolInputSelectionWidget, SIGNAL(rejected()), this, SLOT(close()));
mFilter = f;
mSlicerManagersCompatible.clear();
mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str()));
- for(unsigned int i=0; i<mMainWindowBase->GetSlicerManagers().size(); i++) {
+ for(unsigned int i=0; i<mMainWindow->GetSlicerManagers().size(); i++) {
// DD(i);
- vvImage * s = mMainWindowBase->GetSlicerManagers()[i]->GetImage();
+ vvImage * s = mMainWindow->GetSlicerManagers()[i]->GetImage();
// DD(s->GetScalarTypeAsString());
if (mFilter->CheckImageType(s->GetNumberOfDimensions(),
s->GetNumberOfScalarComponents(),
s->GetScalarTypeAsString())) {
- mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]);
- if ((int)i == mMainWindowBase->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j;
+ mSlicerManagersCompatible.push_back(mMainWindow->GetSlicerManagers()[i]);
+ if ((int)i == mMainWindow->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j;
j++;
}
}
//------------------------------------------------------------------------------
void vvToolWidgetBase::AddInputSelector(QString s, bool allowSkip) {
// DD("AddInput without filter");
- // DD(mMainWindowBase->GetSlicerManagers().size());
+ // DD(mMainWindow->GetSlicerManagers().size());
mSlicerManagersCompatible.clear();
- for(unsigned int i=0; i<mMainWindowBase->GetSlicerManagers().size(); i++) {
- mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]);
+ for(unsigned int i=0; i<mMainWindow->GetSlicerManagers().size(); i++) {
+ mSlicerManagersCompatible.push_back(mMainWindow->GetSlicerManagers()[i]);
}
- if (mMainWindowBase->GetSlicerManagers().size() == 0) {
+ if (mMainWindow->GetSlicerManagers().size() == 0) {
QMessageBox::information(this, "No image","Sorry, could not perform operation. No opened image type.");
close();
return;
}
- mToolInputSelectionWidget->AddInputSelector(s, mMainWindowBase->GetSlicerManagers(),
- mMainWindowBase->GetSlicerManagerCurrentIndex(), allowSkip);
+ mToolInputSelectionWidget->AddInputSelector(s, mMainWindow->GetSlicerManagers(),
+ mMainWindow->GetSlicerManagerCurrentIndex(), allowSkip);
}
//------------------------------------------------------------------------------
if (mFilter) {
int j=0;
mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str()));
- for(unsigned int i=0; i<mMainWindowBase->GetSlicerManagers().size(); i++) {
- vvImage * s = mMainWindowBase->GetSlicerManagers()[i]->GetImage();
+ for(unsigned int i=0; i<mMainWindow->GetSlicerManagers().size(); i++) {
+ vvImage * s = mMainWindow->GetSlicerManagers()[i]->GetImage();
if (mFilter->CheckImageType(s->GetNumberOfDimensions(),
s->GetNumberOfScalarComponents(),
s->GetScalarTypeAsString())) {
- mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]);
- if ((int)i == mMainWindowBase->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j;
+ mSlicerManagersCompatible.push_back(mMainWindow->GetSlicerManagers()[i]);
+ if ((int)i == mMainWindow->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j;
j++;
}
}
}
else {
- mSlicerManagersCompatible = mMainWindowBase->GetSlicerManagers();
- mCurrentCompatibleIndex = mMainWindowBase->GetSlicerManagerCurrentIndex();
+ mSlicerManagersCompatible = mMainWindow->GetSlicerManagers();
+ mCurrentCompatibleIndex = mMainWindow->GetSlicerManagerCurrentIndex();
}
mToolInputSelectionWidget->Initialize(mSlicerManagersCompatible,
mCurrentCompatibleIndex);