diff --git a/src/src/Rendering/Viewer/DICOMImageViewer.cxx b/src/src/Rendering/Viewer/DICOMImageViewer.cxx index 0a58308..1532922 100644 --- a/src/src/Rendering/Viewer/DICOMImageViewer.cxx +++ b/src/src/Rendering/Viewer/DICOMImageViewer.cxx @@ -62,7 +62,7 @@ DICOMImageViewer::DICOMImageViewer() RenderWindow(nullptr), Renderer(nullptr), ImageStack(vtkImageStack::New()), ImageActor(vtkImageSlice::New()), ImageMapper(vtkImageSliceMapper::New()), FusionActor(nullptr), FusionMapper(nullptr), Interactor(nullptr), InteractorStyle(nullptr), OpacityActor(nullptr), - cornerAnnotation(FastCornerAnnotationActor::New()), bar(nullptr), + cornerAnnotation(FastCornerAnnotationActor::New()), bar(nullptr), ViewID(0), SliceIJK(-1), SlicePlane(-1), FirstRender(1), Slice(0), loadedMeasureSlice(0), currentPresetIndex(1), Fusion(false), firstFusion(true), FusionOpacity(0.5), list(nullptr), measureStore(MeasureStore::Instance()), diff --git a/src/src/Rendering/Viewer/DICOMImageViewer.h b/src/src/Rendering/Viewer/DICOMImageViewer.h index 37412ad..93e948d 100644 --- a/src/src/Rendering/Viewer/DICOMImageViewer.h +++ b/src/src/Rendering/Viewer/DICOMImageViewer.h @@ -60,6 +60,10 @@ public: //vtkGetMacro(m_cornerAnnotation, vtkCornerAnnotation); + vtkGetMacro(ViewID,vtkTypeUInt32); + vtkSetMacro(ViewID,vtkTypeUInt32); + + void UpdateCornerInfo(int index); void UpdateCornerInfoAll(); @@ -445,6 +449,7 @@ private: vtkNew ModelToWorldMatrix; DicomCornerInfo m_cornerInfo; + uint ViewID; int SliceIJK; int SlicePlane; int FirstRender; diff --git a/src/src/UI/Widget/ImageView/ViewContainerWidget.cpp b/src/src/UI/Widget/ImageView/ViewContainerWidget.cpp index 5752bb1..7d9c325 100644 --- a/src/src/UI/Widget/ImageView/ViewContainerWidget.cpp +++ b/src/src/UI/Widget/ImageView/ViewContainerWidget.cpp @@ -30,8 +30,9 @@ DicomImageView *ViewContainerWidget::getCurrentView() { } //view layout about------------------------------------------------------------ -DicomImageView *ViewContainerWidget::addNewView() { +DicomImageView *ViewContainerWidget::addNewView(uint aID) { DicomImageView *v = new DicomImageView(this); + v->setViewID(aID); mViewManager->add(v); return v; } @@ -71,7 +72,7 @@ void ViewContainerWidget::viewLayoutChanged(int col, int row) { if (i * col + j < mViewManager->getViewCount()) { view = mViewManager->getView(i * col + j); } else { - view = addNewView(); + view = addNewView(i * col + j); } if (view->IsCine()) { diff --git a/src/src/UI/Widget/ImageView/ViewContainerWidget.h b/src/src/UI/Widget/ImageView/ViewContainerWidget.h index 5c8b1f1..3f67e92 100644 --- a/src/src/UI/Widget/ImageView/ViewContainerWidget.h +++ b/src/src/UI/Widget/ImageView/ViewContainerWidget.h @@ -48,7 +48,7 @@ public slots: private: - DicomImageView *addNewView(); + DicomImageView *addNewView(uint aID); ImageViewManager* mViewManager; }; diff --git a/src/src/UI/Widget/ImageView/dicomimageview.cpp b/src/src/UI/Widget/ImageView/dicomimageview.cpp index b1dfbad..8b19c8a 100644 --- a/src/src/UI/Widget/ImageView/dicomimageview.cpp +++ b/src/src/UI/Widget/ImageView/dicomimageview.cpp @@ -1,4 +1,4 @@ -#include "dicomimageview.h" +#include "dicomimageview.h" #include #include @@ -101,6 +101,7 @@ void DicomImageView::initScrollbar() { void DicomImageView::initImageViewer() { if (!mImageViewer) { mImageViewer = DICOMImageViewer::New(); + mImageViewer->SetViewID(this->mViewID); mImageViewer->SetRenderWindow(mGLRenWin); mImageViewer->SetupInteractor(mGLRenWin->GetInteractor()); } @@ -115,7 +116,13 @@ void DicomImageView::SyncScrollBar() { mScrollBar->SetValueSilently(mImageViewer->GetSlice()); } -void DicomImageView::resetView() { +void DicomImageView::setViewID(uint aID) +{ + mViewID = aID; +} + +void DicomImageView::resetView() +{ if (hasSeries()) { unloadFusion(); removeViewWithMeasure(); diff --git a/src/src/UI/Widget/ImageView/dicomimageview.h b/src/src/UI/Widget/ImageView/dicomimageview.h index c325d91..05bf7ee 100644 --- a/src/src/UI/Widget/ImageView/dicomimageview.h +++ b/src/src/UI/Widget/ImageView/dicomimageview.h @@ -1,4 +1,4 @@ -#ifndef OMEGAV_DICOM_IMAGE_VIEW_H +#ifndef OMEGAV_DICOM_IMAGE_VIEW_H #define OMEGAV_DICOM_IMAGE_VIEW_H #include @@ -57,6 +57,8 @@ public: return mSeries; } + void setViewID(uint aID); + //Reset void resetView(); @@ -342,6 +344,7 @@ private: bool mIsOverlay; bool mIsSlotInited; bool mIsFirstRenderAfterLoad; + uint mViewID; void initImageViewer(); };