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);
}
/**
* SetDefaultSliceOrientation
* @param orientation 0 Sagittal , 1 Coronal, 2 Axial
*/
void ResliceImageViewer::SetDefaultSliceOrientation(int orientation) {
double position[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) {
if (!viewer) return;
switch (index){
case 0:{
case 2:{
viewerA = viewer;
break;
}
case 1:{
case 0:{
viewerC = viewer;
break;
}
case 2:{
case 1:{
viewerS = viewer;
}
}
@@ -56,15 +56,15 @@ void ResliceImageManager::RollCallback(vtkObject *sender, unsigned long eventID,
auto viewer = ResliceImageViewer::SafeDownCast(sender);
if (viewer){
if (viewer==viewerA){
viewerC->ChangeSliceNormal(viewer->GetCursorSliceDirection1());
viewerC->ChangeSliceNormal(viewer->GetCursorSliceDirection2());
viewerC->Render();
viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection2());
viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection1());
viewerS->Render();
}
if (viewer==viewerC){
viewerA->ChangeSliceNormal(viewer->GetCursorSliceDirection1());
viewerA->ChangeSliceNormal(viewer->GetCursorSliceDirection2());
viewerA->Render();
viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection2());
viewerS->ChangeSliceNormal(viewer->GetCursorSliceDirection1());
viewerS->Render();
}
if (viewer==viewerS){

View File

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