X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvMainWindow.h;h=fa61855e1fc99b331b9a39444c51421fd562419a;hb=8ba069c89cddf44e9bd529b781bb5ddfd8d21adf;hp=52da158a330657369604c1b5f1bad1d6c42ea483;hpb=095b3f14beafe4ce1c62146f2e5726a4b3f3c874;p=clitk.git diff --git a/vv/vvMainWindow.h b/vv/vvMainWindow.h index 52da158..fa61855 100644 --- a/vv/vvMainWindow.h +++ b/vv/vvMainWindow.h @@ -26,6 +26,10 @@ #include "vvToolManager.h" #include "vvConstants.h" #include "vvMesh.h" +#include "clitkMemoryUsage.h" + +#include "vtkSmartPointer.h" + class vvSlicerManager; class vvHelpDialog; @@ -33,6 +37,7 @@ class vvDocumentation; class vtkRenderWindowInteractor; class vtkImageData; class vtkRenderer; +class vtkMatrix4x4; class vvDicomSeriesSelector; //------------------------------------------------------------------------------ @@ -48,6 +53,7 @@ class vvMainWindow: public vvMainWindowBase, vvSlicerManager * AddImage(vvImage::Pointer image,std::string filename); void AddField(QString file,int index); void AddOverlayImage(int index, QString filename); + void AddFusionImage(int index, QString filename); void AddROI(int index, QString filename); ///Adds a mesh to a SlicerManager, with optional warping by vector field void AddContour(int image_index, vvMesh::Pointer contour, bool propagation); @@ -62,8 +68,6 @@ class vvMainWindow: public vvMainWindowBase, public slots: ///Allows the user to open and select various surfaces contained in a dicom-struct file void OpenDCStructContour(); - ///Computes the MIP of the currently selected image and displays it - void ComputeMIP(); ///Computes the midposition image of a 4D sequence with a VF and displays it void ComputeMidPosition(); void OpenImages(); @@ -71,12 +75,14 @@ public slots: void OpenRecentImage(); void OpenImageWithTime(); void MergeImages(); + void SliceImages(); void MergeImagesWithTime(); void OpenDicom(); ///Open a vtkPolyData surface mesh and display it over the current image void OpenVTKContour(); void SaveAs(); void CurrentImageChanged(std::string id); + void CurrentPickedImageChanged(std::string id); void ImageInfoChanged(); void ShowHelpDialog(); void ShowDocumentation(); @@ -102,6 +108,7 @@ public slots: void UpdateColorMap(); void UpdateWindowLevel(); void SwitchWindowLevel(); + void ApplyWindowLevelToAllImages(); void UpdateLinkManager(std::string id, int slicer, double x, double y, double z, int temps); void UpdateLinkedNavigation(std::string id, vvSlicerManager *sm); void AddLink(QString image1,QString image2); @@ -126,15 +133,13 @@ public slots: void SaveSOScreenshot(); void ShowContextMenu(QPoint point); - // void CropImage(); - void SplitImage(); void CloseImage(); void ReloadImage(); void OpenField(); void SelectOverlayImage(); - void AddFusionImage(); + void SelectFusionImage(); - void SetVFProperty(int subsampling,int scale,int lut, int width); + void SetVFProperty(int subsampling,int scale,int lut, int width, double r, double g, double b); void SetOverlayProperty(int color); void SetFusionProperty(int opacity,int colormap,double window,double level); @@ -145,6 +150,7 @@ public slots: mFrameRate = rate; } void UpdateRenderWindows(); + void UpdateMemoryUsage(); private: @@ -170,9 +176,11 @@ private: QString GetSizeInBytes(unsigned long size); QString GetVectorDoubleAsString(std::vector vectorDouble); QString GetVectorIntAsString(std::vector vectorInt); + QString Get4x4MatrixDoubleAsString(vtkSmartPointer matrix); int GetSlicerIndexFromItem(QTreeWidgetItem* item); QTreeWidgetItem* GetItemFromSlicerManager(vvSlicerManager* sm); void SaveScreenshot(vtkImageData* image); + int GetImageDuplicateFilenameNumber(std::string filename); QMenu contextMenu; //QMenu *AddSubImageMenu; @@ -182,6 +190,8 @@ private: int mFrameRate; std::string mCurrentSelectedImageId; + std::string mCurrentPickedImageId; + unsigned int mCurrentPickedImageIndex; // vvMainWindowToolInfo * mCurrentToolInfo; // std::vector mListOfRunningTool; @@ -189,7 +199,7 @@ private: static vvMainWindow * mSingleton; int mCurrentTime; - + }; #include "vvMainWindow.txx"