106 #ifndef vtkImagePlaneWidget_h
107 #define vtkImagePlaneWidget_h
109 #include "vtkInteractionWidgetsModule.h"
129 #define VTK_NEAREST_RESLICE 0
130 #define VTK_LINEAR_RESLICE 1
131 #define VTK_CUBIC_RESLICE 2
152 void PlaceWidget(
double xmin,
double xmax,
double ymin,
double ymax,
153 double zmin,
double zmax)
166 void SetOrigin(
double x,
double y,
double z);
167 void SetOrigin(
double xyz[3]);
169 void GetOrigin(
double xyz[3]);
176 void SetPoint1(
double x,
double y,
double z);
177 void SetPoint1(
double xyz[3]);
179 void GetPoint1(
double xyz[3]);
186 void SetPoint2(
double x,
double y,
double z);
187 void SetPoint2(
double xyz[3]);
189 void GetPoint2(
double xyz[3]);
197 void GetCenter(
double xyz[3]);
205 void GetNormal(
double xyz[3]);
211 void GetVector1(
double v1[3]);
216 void GetVector2(
double v2[3]);
226 void SetSliceIndex(
int index);
231 double GetSlicePosition();
236 void SetSlicePosition(
double position);
242 void SetResliceInterpolate(
int);
243 vtkGetMacro(ResliceInterpolate,
int);
263 vtkGetMacro(RestrictPlaneToVolume,
int);
274 vtkGetMacro(UserControlledLookupTable,
int);
286 vtkGetMacro(TextureInterpolate,
int);
295 virtual void SetTextureVisibility(
int);
296 vtkGetMacro(TextureVisibility,
int);
348 virtual void SetSelectedPlaneProperty(
vtkProperty*);
349 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
357 void SetPlaneOrientation(
int);
358 vtkGetMacro(PlaneOrientation,
int);
360 { this->SetPlaneOrientation(0); }
362 { this->SetPlaneOrientation(1); }
364 { this->SetPlaneOrientation(2); }
393 vtkGetMacro(DisplayText,
int);
418 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
419 vtkGetMacro(MarginSizeX,
double);
420 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
421 vtkGetMacro(MarginSizeY,
double);
436 virtual void SetTexturePlaneProperty(
vtkProperty*);
437 vtkGetObjectMacro(TexturePlaneProperty,
vtkProperty);
447 void SetWindowLevel(
double window,
double level,
int copy = 0);
448 void GetWindowLevel(
double wl[2]);
457 int GetCursorData(
double xyzv[4]);
464 int GetCursorDataStatus();
471 vtkGetVectorMacro(CurrentCursorPosition,
double,3);
480 vtkGetMacro(CurrentImageValue,
double);
500 vtkGetMacro(UseContinuousCursor,
int);
508 void SetInteraction(
int interact);
509 vtkGetMacro(Interaction,
int);
519 VTK_CURSOR_ACTION = 0,
520 VTK_SLICE_MOTION_ACTION = 1,
521 VTK_WINDOW_LEVEL_ACTION = 2
523 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
524 vtkGetMacro(LeftButtonAction,
int);
525 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
526 vtkGetMacro(MiddleButtonAction,
int);
527 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
528 vtkGetMacro(RightButtonAction,
int);
543 VTK_SHIFT_MODIFIER = 1,
544 VTK_CONTROL_MODIFIER = 2
546 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
547 vtkGetMacro(LeftButtonAutoModifier,
int);
548 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
549 vtkGetMacro(MiddleButtonAutoModifier,
int);
550 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
551 vtkGetMacro(RightButtonAutoModifier,
int);
572 VTK_MIDDLE_BUTTON = 2,
604 virtual void OnMouseMove();
605 virtual void OnLeftButtonDown();
606 virtual void OnLeftButtonUp();
607 virtual void OnMiddleButtonDown();
608 virtual void OnMiddleButtonUp();
609 virtual void OnRightButtonDown();
610 virtual void OnRightButtonUp();
613 virtual void StartCursor();
614 virtual void StopCursor();
615 virtual void StartSliceMotion();
616 virtual void StopSliceMotion();
617 virtual void StartWindowLevel();
618 virtual void StopWindowLevel();
641 void HighlightPlane(
int highlight);
642 void GeneratePlaneOutline();
645 void BuildRepresentation();
657 void WindowLevel(
int X,
int Y);
658 void Push(
double *p1,
double *p2);
659 void Spin(
double *p1,
double *p2);
660 void Rotate(
double *p1,
double *p2,
double *vpn);
661 void Scale(
double *p1,
double *p2,
int X,
int Y);
662 void Translate(
double *p1,
double *p2);
683 void CreateDefaultProperties();
687 void GenerateTexturePlane();
692 double CurrentCursorPosition[3];
694 void GenerateCursor();
695 void UpdateCursor(
int,
int);
696 void ActivateCursor(
int);
697 int UpdateContinuousCursor(
double *q);
698 int UpdateDiscreteCursor(
double *q);
705 void ManageTextDisplay();
706 void ActivateText(
int);
709 double RotateAxis[3];
710 double RadiusVector[3];
717 void GenerateMargins();
718 void UpdateMargins();
719 void ActivateMargins(
int);