X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvMainWindow.h;h=b3cd6cd6834228ab2a47d1d5d0931d8a4910ca5c;hb=686056dfe2391eed76302af43b08d30791901965;hp=adfed23c88fc31759a4e6effc955f3e8a9f1c7ee;hpb=1df2c8867c511818511bbd2b0be560325a4944c5;p=clitk.git diff --git a/vv/vvMainWindow.h b/vv/vvMainWindow.h index adfed23..b3cd6cd 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; //------------------------------------------------------------------------------ @@ -45,16 +50,18 @@ class vvMainWindow: public vvMainWindowBase, vvMainWindow(); ~vvMainWindow(); void LoadImages(std::vector filenames, LoadedImageType type); - void AddImage(vvImage::Pointer image,std::string filename); - void AddImage(vvSlicerManager * m); + 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); ///This is used to show an image when opened or computed void ShowLastImage(); virtual void UpdateCurrentSlicer(); + virtual QTabWidget * GetTab(); //vvMainWindowToolInfo * GetInfoForTool(); // void AddRunningTool(vvToolCreatorBase * tool); @@ -70,6 +77,7 @@ 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 @@ -89,7 +97,6 @@ public slots: void VectorChanged(int visibility, double x, double y, double z, double value); void OverlayChanged(int visibility, double valueOver, double valueRef); void FusionChanged(int visibility, double value); - void ResampleCurrentImage(); void SegmentationOnCurrentImage(); void SurfaceViewerLaunch(); @@ -102,9 +109,12 @@ 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); void RemoveLink(QString image1,QString image2); + void ChangeImageWithIndexOffset(vvSlicerManager *sm, int slicer, int offset); ///Generic method called when any one of the horizontal sliders is moved void HorizontalSliderMoved(int value,int column, int slicer_index); @@ -124,15 +134,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); + void SetVFProperty(int subsampling,int scale,int lut, int width); void SetOverlayProperty(int color); void SetFusionProperty(int opacity,int colormap,double window,double level); @@ -143,9 +151,7 @@ public slots: mFrameRate = rate; } void UpdateRenderWindows(); - -// signals: -// void SlicerManagersHasChanged(); + void UpdateMemoryUsage(); private: @@ -171,8 +177,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; @@ -180,11 +189,16 @@ private: std::vector horizontalSliders; std::vector verticalSliders; int mFrameRate; + + std::string mCurrentSelectedImageId; // vvMainWindowToolInfo * mCurrentToolInfo; // std::vector mListOfRunningTool; static vvMainWindow * mSingleton; + + int mCurrentTime; + }; #include "vvMainWindow.txx"