MPR Reslice Window fix.

This commit is contained in:
Krad
2023-01-10 13:54:04 +08:00
parent 6ccc7ac6bd
commit 9fb90f70ad
3 changed files with 20 additions and 16 deletions

View File

@@ -254,6 +254,10 @@ void ResliceImageViewer::InitOrthogonalCursor() const {
cursor2->SetSliceDirectionVector(sliceDirection2); cursor2->SetSliceDirectionVector(sliceDirection2);
} }
/**
* SetDefaultSliceOrientation
* @param orientation 0 Sagittal , 1 Coronal, 2 Axial
*/
void ResliceImageViewer::SetDefaultSliceOrientation(int orientation) { void ResliceImageViewer::SetDefaultSliceOrientation(int orientation) {
double position[4] = {.0, .0, .0, 1.}; double position[4] = {.0, .0, .0, 1.};
double ViewUp[4] = {.0, .0, .0, 1.}; double ViewUp[4] = {.0, .0, .0, 1.};

View File

@@ -17,15 +17,15 @@ ResliceImageManager::ResliceImageManager(QObject *parent) : QObject(parent) {
void ResliceImageManager::SetViewer(int index, ResliceImageViewer *viewer) { void ResliceImageManager::SetViewer(int index, ResliceImageViewer *viewer) {
if (!viewer) return; if (!viewer) return;
switch (index){ switch (index){
case 0:{ case 2:{
viewerA = viewer; viewerA = viewer;
break; break;
} }
case 1:{ case 0:{
viewerC = viewer; viewerC = viewer;
break; break;
} }
case 2:{ case 1:{
viewerS = viewer; viewerS = viewer;
} }
} }
@@ -56,15 +56,15 @@ void ResliceImageManager::RollCallback(vtkObject *sender, unsigned long eventID,
auto viewer = ResliceImageViewer::SafeDownCast(sender); auto viewer = ResliceImageViewer::SafeDownCast(sender);
if (viewer){ if (viewer){
if (viewer==viewerA){ if (viewer==viewerA){
viewerC->ChangeSliceNormal(viewer->GetCursorSliceDirection1()); viewerC->ChangeSliceNormal(viewer->GetCursorSliceDirection2());
viewerC->Render(); viewerC->Render();
viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection2()); viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection1());
viewerS->Render(); viewerS->Render();
} }
if (viewer==viewerC){ if (viewer==viewerC){
viewerA->ChangeSliceNormal(viewer->GetCursorSliceDirection1()); viewerA->ChangeSliceNormal(viewer->GetCursorSliceDirection2());
viewerA->Render(); viewerA->Render();
viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection2()); viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection1());
viewerS->Render(); viewerS->Render();
} }
if (viewer==viewerS){ if (viewer==viewerS){

View File

@@ -64,9 +64,9 @@ MPRResliceWindow::MPRResliceWindow(QWidget *parent, Qt::WindowFlags f) : QDialog
mWidgetSagittal->setRenderWindow(window3); mWidgetSagittal->setRenderWindow(window3);
manager = new ResliceImageManager(this); manager = new ResliceImageManager(this);
manager->SetViewer(0,mViewerA); manager->SetViewer(2,mViewerA);
manager->SetViewer(1,mViewerC); manager->SetViewer(0,mViewerC);
manager->SetViewer(2,mViewerS); manager->SetViewer(1,mViewerS);
manager->InitEvents(); manager->InitEvents();
connect(toolBar, &ResliceMPRToolBar::modeButtonClicked,manager,&ResliceImageManager::SetMode); connect(toolBar, &ResliceMPRToolBar::modeButtonClicked,manager,&ResliceImageManager::SetMode);
@@ -213,19 +213,19 @@ void MPRResliceWindow::loadData(SeriesImageSet *series) {
mViewerC->SetRenderWindow(mWidgetCoronal->renderWindow()); mViewerC->SetRenderWindow(mWidgetCoronal->renderWindow());
mViewerC->SetInputData(series->GetData()); mViewerC->SetInputData(series->GetData());
mViewerC->SetCoordsTransformMatrix(series->GetProperty()->GetOrientationMatrix()); mViewerC->SetCoordsTransformMatrix(series->GetProperty()->GetOrientationMatrix());
mViewerC->SetDefaultSliceOrientation(2); mViewerC->SetDefaultSliceOrientation(1);
mViewerC->SetWindowLevel(mWindowLevel); mViewerC->SetWindowLevel(mWindowLevel);
mViewerC->Render(); mViewerC->Render();
mViewerS->SetRenderWindow(mWidgetSagittal->renderWindow()); mViewerS->SetRenderWindow(mWidgetSagittal->renderWindow());
mViewerS->SetInputData(series->GetData()); mViewerS->SetInputData(series->GetData());
mViewerS->SetCoordsTransformMatrix(series->GetProperty()->GetOrientationMatrix()); mViewerS->SetCoordsTransformMatrix(series->GetProperty()->GetOrientationMatrix());
mViewerS->SetDefaultSliceOrientation(1); mViewerS->SetDefaultSliceOrientation(0);
mViewerS->SetWindowLevel(mWindowLevel); mViewerS->SetWindowLevel(mWindowLevel);
mViewerS->Render(); mViewerS->Render();
mViewerA->SetRenderWindow(mWidgetAxial->renderWindow()); mViewerA->SetRenderWindow(mWidgetAxial->renderWindow());
mViewerA->SetInputData(series->GetData()); mViewerA->SetInputData(series->GetData());
mViewerA->SetCoordsTransformMatrix(series->GetProperty()->GetOrientationMatrix()); mViewerA->SetCoordsTransformMatrix(series->GetProperty()->GetOrientationMatrix());
mViewerA->SetDefaultSliceOrientation(0); mViewerA->SetDefaultSliceOrientation(2);
mViewerA->SetWindowLevel(mWindowLevel); mViewerA->SetWindowLevel(mWindowLevel);
mViewerA->Render(); mViewerA->Render();
} }
@@ -238,13 +238,13 @@ void MPRResliceWindow::SetDefaultWindowLevel(double* windowLevel) {
} }
void MPRResliceWindow::Reset() { void MPRResliceWindow::Reset() {
mViewerC->SetDefaultSliceOrientation(2); mViewerC->SetDefaultSliceOrientation(1);
mViewerC->InitOrthogonalCursor(); mViewerC->InitOrthogonalCursor();
mViewerC->SetWindowLevel(mWindowLevel); mViewerC->SetWindowLevel(mWindowLevel);
mViewerS->SetDefaultSliceOrientation(1); mViewerS->SetDefaultSliceOrientation(0);
mViewerS->InitOrthogonalCursor(); mViewerS->InitOrthogonalCursor();
mViewerS->SetWindowLevel(mWindowLevel); mViewerS->SetWindowLevel(mWindowLevel);
mViewerA->SetDefaultSliceOrientation(0); mViewerA->SetDefaultSliceOrientation(2);
mViewerA->InitOrthogonalCursor(); mViewerA->InitOrthogonalCursor();
mViewerA->SetWindowLevel(mWindowLevel); mViewerA->SetWindowLevel(mWindowLevel);
} }