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);
represents an object (geometry & properties) in a rendered scene
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
represent surface properties of a geometric object
static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
Handles the char widget activation event.
virtual void SetEnabled(int)
Methods for turning the interactor observer on and off, and determining its state.
map scalar values into colors via a lookup table
concrete dataset represents vertices, lines, polygons, and triangle strips
Proxy object to connect input/output ports.
virtual void RegisterPickers()
Register internal Pickers in the Picking Manager.
An actor that displays text.
map vtkDataSet and derived classes to graphics primitives
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
topologically and geometrically regular array of data
map the input image through a lookup table
handles properties associated with a texture map
represent text properties.
Reslices a volume along a new set of axes.
create an array of quadrilaterals located in a plane
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
abstract API for pickers that can pick an instance of vtkProp
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual void OnChar()
Sets up the keypress-i event.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
represent and manipulate 3D points