109 #ifndef vtkImagePlaneWidget_h
110 #define vtkImagePlaneWidget_h
112 #include "vtkInteractionWidgetsModule.h"
132 #define VTK_NEAREST_RESLICE 0
133 #define VTK_LINEAR_RESLICE 1
134 #define VTK_CUBIC_RESLICE 2
137 #define VTK_IMAGE_PLANE_WIDGET_MAX_TEXTBUFF 128
158 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax)
override
173 void SetOrigin(
double x,
double y,
double z);
174 void SetOrigin(
double xyz[3]);
176 void GetOrigin(
double xyz[3]);
183 void SetPoint1(
double x,
double y,
double z);
184 void SetPoint1(
double xyz[3]);
186 void GetPoint1(
double xyz[3]);
193 void SetPoint2(
double x,
double y,
double z);
194 void SetPoint2(
double xyz[3]);
196 void GetPoint2(
double xyz[3]);
204 void GetCenter(
double xyz[3]);
212 void GetNormal(
double xyz[3]);
218 void GetVector1(
double v1[3]);
223 void GetVector2(
double v2[3]);
233 void SetSliceIndex(
int index);
238 double GetSlicePosition();
243 void SetSlicePosition(
double position);
249 void SetResliceInterpolate(
int);
250 vtkGetMacro(ResliceInterpolate,
int);
251 void SetResliceInterpolateToNearestNeighbour()
271 vtkBooleanMacro(RestrictPlaneToVolume,
vtkTypeBool);
280 vtkSetMacro(UserControlledLookupTable,
vtkTypeBool);
281 vtkGetMacro(UserControlledLookupTable,
vtkTypeBool);
282 vtkBooleanMacro(UserControlledLookupTable,
vtkTypeBool);
355 virtual void SetSelectedPlaneProperty(
vtkProperty*);
356 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
364 void SetPlaneOrientation(
int);
365 vtkGetMacro(PlaneOrientation,
int);
422 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
423 vtkGetMacro(MarginSizeX,
double);
424 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
425 vtkGetMacro(MarginSizeY,
double);
440 virtual void SetTexturePlaneProperty(
vtkProperty*);
441 vtkGetObjectMacro(TexturePlaneProperty,
vtkProperty);
451 void SetWindowLevel(
double window,
double level,
int copy = 0);
452 void GetWindowLevel(
double wl[2]);
461 int GetCursorData(
double xyzv[4]);
468 int GetCursorDataStatus();
475 vtkGetVectorMacro(CurrentCursorPosition,
double, 3);
484 vtkGetMacro(CurrentImageValue,
double);
523 VTK_CURSOR_ACTION = 0,
524 VTK_SLICE_MOTION_ACTION = 1,
525 VTK_WINDOW_LEVEL_ACTION = 2
527 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
528 vtkGetMacro(LeftButtonAction,
int);
529 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
530 vtkGetMacro(MiddleButtonAction,
int);
531 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
532 vtkGetMacro(RightButtonAction,
int);
547 VTK_SHIFT_MODIFIER = 1,
548 VTK_CONTROL_MODIFIER = 2
550 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
551 vtkGetMacro(LeftButtonAutoModifier,
int);
552 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
553 vtkGetMacro(MiddleButtonAutoModifier,
int);
554 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
555 vtkGetMacro(RightButtonAutoModifier,
int);
576 VTK_MIDDLE_BUTTON = 2,
598 vtkObject*
object,
unsigned long event,
void* clientdata,
void* calldata);
606 virtual void OnMouseMove();
607 virtual void OnLeftButtonDown();
608 virtual void OnLeftButtonUp();
609 virtual void OnMiddleButtonDown();
610 virtual void OnMiddleButtonUp();
611 virtual void OnRightButtonDown();
612 virtual void OnRightButtonUp();
615 virtual void StartCursor();
616 virtual void StopCursor();
617 virtual void StartSliceMotion();
618 virtual void StopSliceMotion();
619 virtual void StartWindowLevel();
620 virtual void StopWindowLevel();
643 void HighlightPlane(
int highlight);
644 void GeneratePlaneOutline();
647 void BuildRepresentation();
659 void WindowLevel(
int X,
int Y);
660 void Push(
double* p1,
double* p2);
661 void Spin(
double* p1,
double* p2);
662 void Rotate(
double* p1,
double* p2,
double* vpn);
663 void Scale(
double* p1,
double* p2,
int X,
int Y);
664 void Translate(
double* p1,
double* p2);
685 void CreateDefaultProperties();
689 void GenerateTexturePlane();
694 double CurrentCursorPosition[3];
696 void GenerateCursor();
697 void UpdateCursor(
int,
int);
698 void ActivateCursor(
int);
699 int UpdateContinuousCursor(
double* q);
700 int UpdateDiscreteCursor(
double* q);
707 void ManageTextDisplay();
708 void ActivateText(
int);
711 double RotateAxis[3];
712 double RadiusVector[3];
719 void GenerateMargins();
720 void UpdateMargins();
721 void ActivateMargins(
int);