102 #ifndef vtkImagePlaneWidget_h
103 #define vtkImagePlaneWidget_h
105 #include "vtkInteractionWidgetsModule.h"
108 VTK_ABI_NAMESPACE_BEGIN
126 #define VTK_NEAREST_RESLICE 0
127 #define VTK_LINEAR_RESLICE 1
128 #define VTK_CUBIC_RESLICE 2
131 #define VTK_IMAGE_PLANE_WIDGET_MAX_TEXTBUFF 128
152 double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax)
override
167 void SetOrigin(
double x,
double y,
double z);
168 void SetOrigin(
double xyz[3]);
170 void GetOrigin(
double xyz[3]);
177 void SetPoint1(
double x,
double y,
double z);
178 void SetPoint1(
double xyz[3]);
180 void GetPoint1(
double xyz[3]);
187 void SetPoint2(
double x,
double y,
double z);
188 void SetPoint2(
double xyz[3]);
189 double* GetPoint2() VTK_SIZEHINT(3);
190 void GetPoint2(
double xyz[3]);
197 double* GetCenter() VTK_SIZEHINT(3);
198 void GetCenter(
double xyz[3]);
205 double* GetNormal() VTK_SIZEHINT(3);
206 void GetNormal(
double xyz[3]);
212 void GetVector1(
double v1[3]);
217 void GetVector2(
double v2[3]);
227 void SetSliceIndex(
int index);
232 double GetSlicePosition();
237 void SetSlicePosition(
double position);
243 void SetResliceInterpolate(
int);
244 vtkGetMacro(ResliceInterpolate,
int);
245 void SetResliceInterpolateToNearestNeighbour()
265 vtkBooleanMacro(RestrictPlaneToVolume,
vtkTypeBool);
274 vtkSetMacro(UserControlledLookupTable,
vtkTypeBool);
275 vtkGetMacro(UserControlledLookupTable,
vtkTypeBool);
276 vtkBooleanMacro(UserControlledLookupTable,
vtkTypeBool);
349 virtual void SetSelectedPlaneProperty(
vtkProperty*);
350 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
358 void SetPlaneOrientation(
int);
359 vtkGetMacro(PlaneOrientation,
int);
416 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
417 vtkGetMacro(MarginSizeX,
double);
418 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
419 vtkGetMacro(MarginSizeY,
double);
434 virtual void SetTexturePlaneProperty(
vtkProperty*);
435 vtkGetObjectMacro(TexturePlaneProperty,
vtkProperty);
445 void SetWindowLevel(
double window,
double level,
int copy = 0);
446 void GetWindowLevel(
double wl[2]);
455 int GetCursorData(
double xyzv[4]);
462 int GetCursorDataStatus();
469 vtkGetVectorMacro(CurrentCursorPosition,
double, 3);
478 vtkGetMacro(CurrentImageValue,
double);
517 VTK_CURSOR_ACTION = 0,
518 VTK_SLICE_MOTION_ACTION = 1,
519 VTK_WINDOW_LEVEL_ACTION = 2
521 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
522 vtkGetMacro(LeftButtonAction,
int);
523 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
524 vtkGetMacro(MiddleButtonAction,
int);
525 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
526 vtkGetMacro(RightButtonAction,
int);
541 VTK_SHIFT_MODIFIER = 1,
542 VTK_CONTROL_MODIFIER = 2
544 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
545 vtkGetMacro(LeftButtonAutoModifier,
int);
546 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
547 vtkGetMacro(MiddleButtonAutoModifier,
int);
548 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
549 vtkGetMacro(RightButtonAutoModifier,
int);
570 VTK_MIDDLE_BUTTON = 2,
592 vtkObject*
object,
unsigned long event,
void* clientdata,
void* calldata);
600 virtual void OnMouseMove();
601 virtual void OnLeftButtonDown();
602 virtual void OnLeftButtonUp();
603 virtual void OnMiddleButtonDown();
604 virtual void OnMiddleButtonUp();
605 virtual void OnRightButtonDown();
606 virtual void OnRightButtonUp();
609 virtual void StartCursor();
610 virtual void StopCursor();
611 virtual void StartSliceMotion();
612 virtual void StopSliceMotion();
613 virtual void StartWindowLevel();
614 virtual void StopWindowLevel();
637 void HighlightPlane(
int highlight);
638 void GeneratePlaneOutline();
641 void BuildRepresentation();
653 void WindowLevel(
int X,
int Y);
654 void Push(
double* p1,
double* p2);
655 void Spin(
double* p1,
double* p2);
656 void Rotate(
double* p1,
double* p2,
double* vpn);
657 void Scale(
double* p1,
double* p2,
int X,
int Y);
658 void Translate(
double* p1,
double* p2);
679 void CreateDefaultProperties();
683 void GenerateTexturePlane();
688 double CurrentCursorPosition[3];
690 void GenerateCursor();
691 void UpdateCursor(
int,
int);
692 void ActivateCursor(
int);
693 int UpdateContinuousCursor(
double* q);
694 int UpdateDiscreteCursor(
double* q);
701 void ManageTextDisplay();
702 void ActivateText(
int);
705 double RotateAxis[3];
706 double RadiusVector[3];
713 void GenerateMargins();
714 void UpdateMargins();
715 void ActivateMargins(
int);
724 VTK_ABI_NAMESPACE_END
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