100 #ifndef vtkImagePlaneWidget_h
101 #define vtkImagePlaneWidget_h
103 #include "vtkInteractionWidgetsModule.h"
123 #define VTK_NEAREST_RESLICE 0
124 #define VTK_LINEAR_RESLICE 1
125 #define VTK_CUBIC_RESLICE 2
128 #define VTK_IMAGE_PLANE_WIDGET_MAX_TEXTBUFF 128
149 void PlaceWidget(
double xmin,
double xmax,
double ymin,
double ymax,
150 double zmin,
double zmax)
override
163 void SetOrigin(
double x,
double y,
double z);
164 void SetOrigin(
double xyz[3]);
166 void GetOrigin(
double xyz[3]);
173 void SetPoint1(
double x,
double y,
double z);
174 void SetPoint1(
double xyz[3]);
176 void GetPoint1(
double xyz[3]);
183 void SetPoint2(
double x,
double y,
double z);
184 void SetPoint2(
double xyz[3]);
186 void GetPoint2(
double xyz[3]);
194 void GetCenter(
double xyz[3]);
202 void GetNormal(
double xyz[3]);
208 void GetVector1(
double v1[3]);
213 void GetVector2(
double v2[3]);
223 void SetSliceIndex(
int index);
228 double GetSlicePosition();
233 void SetSlicePosition(
double position);
239 void SetResliceInterpolate(
int);
240 vtkGetMacro(ResliceInterpolate,
int);
241 void SetResliceInterpolateToNearestNeighbour()
261 vtkBooleanMacro(RestrictPlaneToVolume,
vtkTypeBool);
270 vtkSetMacro(UserControlledLookupTable,
vtkTypeBool);
271 vtkGetMacro(UserControlledLookupTable,
vtkTypeBool);
272 vtkBooleanMacro(UserControlledLookupTable,
vtkTypeBool);
345 virtual void SetSelectedPlaneProperty(
vtkProperty*);
346 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
354 void SetPlaneOrientation(
int);
355 vtkGetMacro(PlaneOrientation,
int);
357 { this->SetPlaneOrientation(0); }
359 { this->SetPlaneOrientation(1); }
361 { this->SetPlaneOrientation(2); }
415 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
416 vtkGetMacro(MarginSizeX,
double);
417 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
418 vtkGetMacro(MarginSizeY,
double);
433 virtual void SetTexturePlaneProperty(
vtkProperty*);
434 vtkGetObjectMacro(TexturePlaneProperty,
vtkProperty);
444 void SetWindowLevel(
double window,
double level,
int copy = 0);
445 void GetWindowLevel(
double wl[2]);
454 int GetCursorData(
double xyzv[4]);
461 int GetCursorDataStatus();
468 vtkGetVectorMacro(CurrentCursorPosition,
double,3);
477 vtkGetMacro(CurrentImageValue,
double);
516 VTK_CURSOR_ACTION = 0,
517 VTK_SLICE_MOTION_ACTION = 1,
518 VTK_WINDOW_LEVEL_ACTION = 2
520 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
521 vtkGetMacro(LeftButtonAction,
int);
522 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
523 vtkGetMacro(MiddleButtonAction,
int);
524 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
525 vtkGetMacro(RightButtonAction,
int);
540 VTK_SHIFT_MODIFIER = 1,
541 VTK_CONTROL_MODIFIER = 2
543 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
544 vtkGetMacro(LeftButtonAutoModifier,
int);
545 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
546 vtkGetMacro(MiddleButtonAutoModifier,
int);
547 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
548 vtkGetMacro(RightButtonAutoModifier,
int);
569 VTK_MIDDLE_BUTTON = 2,
601 virtual void OnMouseMove();
602 virtual void OnLeftButtonDown();
603 virtual void OnLeftButtonUp();
604 virtual void OnMiddleButtonDown();
605 virtual void OnMiddleButtonUp();
606 virtual void OnRightButtonDown();
607 virtual void OnRightButtonUp();
610 virtual void StartCursor();
611 virtual void StopCursor();
612 virtual void StartSliceMotion();
613 virtual void StopSliceMotion();
614 virtual void StartWindowLevel();
615 virtual void StopWindowLevel();
638 void HighlightPlane(
int highlight);
639 void GeneratePlaneOutline();
642 void BuildRepresentation();
654 void WindowLevel(
int X,
int Y);
655 void Push(
double *p1,
double *p2);
656 void Spin(
double *p1,
double *p2);
657 void Rotate(
double *p1,
double *p2,
double *vpn);
658 void Scale(
double *p1,
double *p2,
int X,
int Y);
659 void Translate(
double *p1,
double *p2);
680 void CreateDefaultProperties();
684 void GenerateTexturePlane();
689 double CurrentCursorPosition[3];
691 void GenerateCursor();
692 void UpdateCursor(
int,
int);
693 void ActivateCursor(
int);
694 int UpdateContinuousCursor(
double *q);
695 int UpdateDiscreteCursor(
double *q);
702 void ManageTextDisplay();
703 void ActivateText(
int);
706 double RotateAxis[3];
707 double RadiusVector[3];
714 void GenerateMargins();
715 void UpdateMargins();
716 void ActivateMargins(
int);