feat: add ViewID to ImageViewer and ImageView which in ViewContainerWidget

This commit is contained in:
kradchen
2025-04-29 10:31:31 +08:00
parent d7b4037f59
commit 558cf3cde1
6 changed files with 23 additions and 7 deletions

View File

@@ -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()),

View File

@@ -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<vtkMatrix4x4> ModelToWorldMatrix;
DicomCornerInfo m_cornerInfo;
uint ViewID;
int SliceIJK;
int SlicePlane;
int FirstRender;

View File

@@ -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()) {

View File

@@ -48,7 +48,7 @@ public slots:
private:
DicomImageView *addNewView();
DicomImageView *addNewView(uint aID);
ImageViewManager* mViewManager;
};

View File

@@ -1,4 +1,4 @@
#include "dicomimageview.h"
#include "dicomimageview.h"
#include <QMessageBox>
#include <QDebug>
@@ -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();

View File

@@ -1,4 +1,4 @@
#ifndef OMEGAV_DICOM_IMAGE_VIEW_H
#ifndef OMEGAV_DICOM_IMAGE_VIEW_H
#define OMEGAV_DICOM_IMAGE_VIEW_H
#include <QFrame>
@@ -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();
};