15 #ifndef niftkMultiWindowWidget_h
16 #define niftkMultiWindowWidget_h
20 #include <mitkBaseGeometry.h>
21 #include <mitkDataNode.h>
22 #include <mitkDataStorage.h>
23 #include <mitkTextOverlay2D.h>
24 #include <mitkVector.h>
25 #include <QmitkStdMultiWidget.h>
31 class DisplayGeometryModificationCommand;
38 class SliceNavigationController;
90 Qt::WindowFlags
f = 0,
91 mitk::RenderingManager* renderingManager = 0,
92 mitk::BaseRenderer::RenderingMode::Type renderingMode = mitk::BaseRenderer::RenderingMode::Standard,
93 const QString&
name =
"DnD-Viewer");
215 void MoveSlice(
int windowIndex,
int delta,
bool restart =
false);
327 void SetVisibility(std::vector<mitk::DataNode*> nodes,
bool visibility);
398 void UpdateBorders();
405 void UpdateCursorPosition(
int windowIndex);
409 void MoveToCursorPosition(
int windowIndex);
413 void ZoomAroundCursorPosition(
int windowIndex);
416 void OnAxialSliceChanged(
const itk::EventObject& geometrySliceEvent);
419 void OnSagittalSliceChanged(
const itk::EventObject& geometrySliceEvent);
422 void OnCoronalSliceChanged(
const itk::EventObject& geometrySliceEvent);
425 void OnTimeStepChanged(
const itk::EventObject& geometryTimeEvent);
429 void OnSelectedPositionChanged(
int orientation);
434 void SynchroniseCursorPositions(
int windowIndex);
437 void Update3DWindowVisibility();
440 void SetVisibility(QmitkRenderWindow* renderWindow, mitk::DataNode* node,
bool visibility);
443 void AddDisplayGeometryModificationObserver(
int windowIndex);
446 void RemoveDisplayGeometryModificationObserver(
int windowIndex);
449 void OnDisplayGeometryModified(
int windowIndex);
452 void OnOriginChanged(
int windowIndex,
bool beingPanned);
455 void OnScaleFactorChanged(
int windowIndex,
double scaleFactor);
459 int GetDominantAxis(
int orientation)
const;
462 void OnFocusChanged();
465 void InitialiseIntensityAnnotations();
468 void UpdateIntensityAnnotation(
int windowIndex)
const;
470 std::vector<QmitkRenderWindow*> m_RenderWindows;
476 QColor m_BackgroundColour;
477 QGridLayout* m_GridLayout;
478 unsigned long m_AxialSliceObserverTag;
479 unsigned long m_SagittalSliceObserverTag;
480 unsigned long m_CoronalSliceObserverTag;
481 unsigned long m_TimeStepObserverTag;
483 bool m_LinkedNavigationEnabled;
485 int m_SelectedWindowIndex;
486 int m_FocusLosingWindowIndex;
487 bool m_CursorVisibility;
488 bool m_Show3DWindowIn2x2WindowLayout;
491 mitk::Point3D m_SelectedPosition;
495 std::vector<mitk::Vector2D> m_CursorPositions;
497 std::vector<const mitk::PlaneGeometry*> m_WorldGeometries;
498 std::vector<mitk::Vector2D> m_RenderWindowSizes;
499 std::vector<mitk::Vector2D> m_Origins;
502 std::vector<double> m_ScaleFactors;
504 typedef enum { ImageGeometry, AxialGeometry, SagittalGeometry, CoronalGeometry } GeometryType;
505 GeometryType m_GeometryType;
507 int m_OrientationAxes[3];
513 int m_UpDirections[3];
517 const mitk::TimeGeometry* m_TimeGeometry;
522 mitk::BaseGeometry* m_Geometry;
530 vtkRenderer* m_DirectionAnnotationRenderers[3];
535 bool m_CursorPositionBinding;
540 bool m_CursorAxialPositionsAreBound;
545 bool m_CursorSagittalPositionsAreBound;
551 bool m_CursorCoronalPositionsAreBound;
554 bool m_ScaleFactorBinding;
557 unsigned long m_DisplayGeometryModificationObservers[3];
562 bool m_BlockDisplayEvents;
568 bool m_BlockSncEvents;
570 bool m_BlockFocusEvents;
573 unsigned long m_FocusManagerObserverTag;
578 bool m_FocusHasChanged;
579 bool m_GeometryHasChanged;
580 bool m_WindowLayoutHasChanged;
581 std::vector<bool> m_SelectedSliceHasChanged;
582 bool m_TimeStepHasChanged;
583 std::vector<bool> m_CursorPositionHasChanged;
584 std::vector<bool> m_ScaleFactorHasChanged;
585 bool m_CursorPositionBindingHasChanged;
586 bool m_ScaleFactorBindingHasChanged;
588 mitk::TextOverlay2D::Pointer m_IntensityAnnotations[3];
589 bool m_IntensityAnnotationIsVisible;
WindowOrientation
Describes the different types of orientation, axial, sagittal, coronal, that can be achieved in the D...
Definition: niftkDnDDisplayEnums.h:29
GLenum GLsizei const GLuint GLboolean enabled
Definition: glew.h:2537
Definition: niftkMultiWindowWidget.cxx:49
Definition: ReceptorMemberCommandTest.cxx:25
WindowLayout
Describes the different render window layouts. So one WindowLayout could have multiple windows of dif...
Definition: niftkDnDDisplayEnums.h:49
Subclass of vtkCornerAnnotation to display annotations on the four sides of a render window...
Definition: vtkSideAnnotation_p.h:28
GLuint color
Definition: glew.h:6687
GLuint const GLchar * name
Definition: glew.h:1798
Definition: niftkExceptionObject.h:21
GLsizei const GLcharARB ** string
Definition: glew.h:5194
GLclampf f
Definition: glew.h:3136