114 #ifndef vtkImagePlaneWidget_h
115 #define vtkImagePlaneWidget_h
117 #include "vtkInteractionWidgetsModule.h"
137 #define VTK_NEAREST_RESLICE 0
138 #define VTK_LINEAR_RESLICE 1
139 #define VTK_CUBIC_RESLICE 2
142 #define VTK_IMAGE_PLANE_WIDGET_MAX_TEXTBUFF 128
163 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax)
override
178 void SetOrigin(
double x,
double y,
double z);
179 void SetOrigin(
double xyz[3]);
181 void GetOrigin(
double xyz[3]);
188 void SetPoint1(
double x,
double y,
double z);
189 void SetPoint1(
double xyz[3]);
191 void GetPoint1(
double xyz[3]);
198 void SetPoint2(
double x,
double y,
double z);
199 void SetPoint2(
double xyz[3]);
200 double* GetPoint2() VTK_SIZEHINT(3);
201 void GetPoint2(
double xyz[3]);
208 double* GetCenter() VTK_SIZEHINT(3);
209 void GetCenter(
double xyz[3]);
216 double* GetNormal() VTK_SIZEHINT(3);
217 void GetNormal(
double xyz[3]);
223 void GetVector1(
double v1[3]);
228 void GetVector2(
double v2[3]);
238 void SetSliceIndex(
int index);
243 double GetSlicePosition();
248 void SetSlicePosition(
double position);
254 void SetResliceInterpolate(
int);
255 vtkGetMacro(ResliceInterpolate,
int);
256 void SetResliceInterpolateToNearestNeighbour()
276 vtkBooleanMacro(RestrictPlaneToVolume,
vtkTypeBool);
285 vtkSetMacro(UserControlledLookupTable,
vtkTypeBool);
286 vtkGetMacro(UserControlledLookupTable,
vtkTypeBool);
287 vtkBooleanMacro(UserControlledLookupTable,
vtkTypeBool);
360 virtual void SetSelectedPlaneProperty(
vtkProperty*);
361 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
369 void SetPlaneOrientation(
int);
370 vtkGetMacro(PlaneOrientation,
int);
427 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
428 vtkGetMacro(MarginSizeX,
double);
429 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
430 vtkGetMacro(MarginSizeY,
double);
445 virtual void SetTexturePlaneProperty(
vtkProperty*);
446 vtkGetObjectMacro(TexturePlaneProperty,
vtkProperty);
456 void SetWindowLevel(
double window,
double level,
int copy = 0);
457 void GetWindowLevel(
double wl[2]);
466 int GetCursorData(
double xyzv[4]);
473 int GetCursorDataStatus();
480 vtkGetVectorMacro(CurrentCursorPosition,
double, 3);
489 vtkGetMacro(CurrentImageValue,
double);
528 VTK_CURSOR_ACTION = 0,
529 VTK_SLICE_MOTION_ACTION = 1,
530 VTK_WINDOW_LEVEL_ACTION = 2
532 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
533 vtkGetMacro(LeftButtonAction,
int);
534 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
535 vtkGetMacro(MiddleButtonAction,
int);
536 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
537 vtkGetMacro(RightButtonAction,
int);
552 VTK_SHIFT_MODIFIER = 1,
553 VTK_CONTROL_MODIFIER = 2
555 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
556 vtkGetMacro(LeftButtonAutoModifier,
int);
557 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
558 vtkGetMacro(MiddleButtonAutoModifier,
int);
559 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
560 vtkGetMacro(RightButtonAutoModifier,
int);
581 VTK_MIDDLE_BUTTON = 2,
603 vtkObject*
object,
unsigned long event,
void* clientdata,
void* calldata);
611 virtual void OnMouseMove();
612 virtual void OnLeftButtonDown();
613 virtual void OnLeftButtonUp();
614 virtual void OnMiddleButtonDown();
615 virtual void OnMiddleButtonUp();
616 virtual void OnRightButtonDown();
617 virtual void OnRightButtonUp();
620 virtual void StartCursor();
621 virtual void StopCursor();
622 virtual void StartSliceMotion();
623 virtual void StopSliceMotion();
624 virtual void StartWindowLevel();
625 virtual void StopWindowLevel();
648 void HighlightPlane(
int highlight);
649 void GeneratePlaneOutline();
652 void BuildRepresentation();
664 void WindowLevel(
int X,
int Y);
665 void Push(
double* p1,
double* p2);
666 void Spin(
double* p1,
double* p2);
667 void Rotate(
double* p1,
double* p2,
double* vpn);
668 void Scale(
double* p1,
double* p2,
int X,
int Y);
669 void Translate(
double* p1,
double* p2);
690 void CreateDefaultProperties();
694 void GenerateTexturePlane();
699 double CurrentCursorPosition[3];
701 void GenerateCursor();
702 void UpdateCursor(
int,
int);
703 void ActivateCursor(
int);
704 int UpdateContinuousCursor(
double* q);
705 int UpdateDiscreteCursor(
double* q);
712 void ManageTextDisplay();
713 void ActivateText(
int);
716 double RotateAxis[3];
717 double RadiusVector[3];
724 void GenerateMargins();
725 void UpdateMargins();
726 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
#define VTK_SIZEHINT(...)
represent text properties.
Reslices a volume along a new set of axes.
create an array of quadrilaterals located in a plane
abstract API for pickers that can pick an instance of vtkProp
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