25 #ifndef vtkMRMLSliceIntersectionWidget_h 26 #define vtkMRMLSliceIntersectionWidget_h 28 #include "vtkMRMLDisplayableManagerExport.h" 33 #include <vtkCallbackCommand.h> 34 #include <vtkCollection.h> 35 #include <vtkSmartPointer.h> 36 #include <vtkWeakPointer.h> 38 class vtkSliceIntersectionRepresentation2D;
56 void PrintSelf(ostream& os, vtkIndent indent)
override;
62 void CreateDefaultRepresentation();
158 ActionBrowseSlice = 64,
159 ActionShowSlice = 128,
160 ActionAdjustLightbox = 256,
161 ActionSelectVolume = 512,
162 ActionSetCursorPosition = 1024,
163 ActionSetCrosshairPosition = 2048,
164 ActionTranslateSliceIntersection = 4096,
165 ActionRotateSliceIntersection = 8192,
166 ActionAll = ActionTranslate | ActionZoom | ActionRotate | ActionBlend
167 | ActionBrowseSlice | ActionShowSlice | ActionAdjustLightbox | ActionSelectVolume
168 | ActionSetCursorPosition | ActionSetCrosshairPosition
169 | ActionTranslateSliceIntersection | ActionRotateSliceIntersection
173 void SetActionsEnabled(
int actions);
176 int GetActionsEnabled();
182 void SetActionEnabled(
int actionsMask,
bool enable =
true);
185 bool GetActionEnabled(
int actionsMask);
187 void UpdateInteractionEventMapping();
205 double GetSliceRotationAngleRad(
double eventPos[2]);
230 bool Rotate(
double sliceRotationAngleRad);
238 void SetLabelOpacity(
double opacity);
239 double GetLabelOpacity();
247 static void SliceModifiedCallback(vtkObject* caller,
unsigned long eid,
void* clientData,
void* callData);
248 static void SliceLogicsModifiedCallback(vtkObject* caller,
unsigned long eid,
void* clientData,
void* callData);
256 double StartEventPosition[2];
258 int PreviousEventPosition[2];
259 double StartRotationCenter[2];
260 double StartRotationCenter_RAS[4];
262 double StartTranslationPoint[2];
263 double StartTranslationPoint_RAS[3];
264 double CurrentTranslationPoint_RAS[3];
266 double StartActionFOV[3];
267 double VolumeScalarRange[2];
285 double GetSliceSpacing();
287 void IncrementSlice();
288 void DecrementSlice();
289 void MoveSlice(
double delta);
296 void CycleVolumeLayer(
int layer,
int direction);
298 bool IsSliceIntersectionInteractive();
MRML node to store display properties of slice nodes.
MRML node for storing a slice through RAS space.
MRML node for representing segmentation display attributes.