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);
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