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 146 void PlaceWidget(
double xmin,
double xmax,
double ymin,
double ymax,
147 double zmin,
double zmax) VTK_OVERRIDE
160 void SetOrigin(
double x,
double y,
double z);
161 void SetOrigin(
double xyz[3]);
163 void GetOrigin(
double xyz[3]);
170 void SetPoint1(
double x,
double y,
double z);
171 void SetPoint1(
double xyz[3]);
173 void GetPoint1(
double xyz[3]);
180 void SetPoint2(
double x,
double y,
double z);
181 void SetPoint2(
double xyz[3]);
183 void GetPoint2(
double xyz[3]);
191 void GetCenter(
double xyz[3]);
199 void GetNormal(
double xyz[3]);
205 void GetVector1(
double v1[3]);
210 void GetVector2(
double v2[3]);
220 void SetSliceIndex(
int index);
225 double GetSlicePosition();
230 void SetSlicePosition(
double position);
236 void SetResliceInterpolate(
int);
237 vtkGetMacro(ResliceInterpolate,
int);
257 vtkGetMacro(RestrictPlaneToVolume,
int);
268 vtkGetMacro(UserControlledLookupTable,
int);
280 vtkGetMacro(TextureInterpolate,
int);
289 virtual void SetTextureVisibility(
int);
290 vtkGetMacro(TextureVisibility,
int);
316 void UpdatePlacement(
void) VTK_OVERRIDE;
342 virtual
void SetSelectedPlaneProperty(
vtkProperty*);
343 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
351 void SetPlaneOrientation(
int);
352 vtkGetMacro(PlaneOrientation,
int);
353 void SetPlaneOrientationToXAxes()
354 { this->SetPlaneOrientation(0); }
356 { this->SetPlaneOrientation(1); }
358 { this->SetPlaneOrientation(2); }
387 vtkGetMacro(DisplayText,
int);
412 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
413 vtkGetMacro(MarginSizeX,
double);
414 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
415 vtkGetMacro(MarginSizeY,
double);
430 virtual void SetTexturePlaneProperty(
vtkProperty*);
431 vtkGetObjectMacro(TexturePlaneProperty,
vtkProperty);
441 void SetWindowLevel(
double window,
double level,
int copy = 0);
442 void GetWindowLevel(
double wl[2]);
451 int GetCursorData(
double xyzv[4]);
458 int GetCursorDataStatus();
465 vtkGetVectorMacro(CurrentCursorPosition,
double,3);
474 vtkGetMacro(CurrentImageValue,
double);
494 vtkGetMacro(UseContinuousCursor,
int);
502 void SetInteraction(
int interact);
503 vtkGetMacro(Interaction,
int);
513 VTK_CURSOR_ACTION = 0,
514 VTK_SLICE_MOTION_ACTION = 1,
515 VTK_WINDOW_LEVEL_ACTION = 2
517 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
518 vtkGetMacro(LeftButtonAction,
int);
519 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
520 vtkGetMacro(MiddleButtonAction,
int);
521 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
522 vtkGetMacro(RightButtonAction,
int);
537 VTK_SHIFT_MODIFIER = 1,
538 VTK_CONTROL_MODIFIER = 2
540 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
541 vtkGetMacro(LeftButtonAutoModifier,
int);
542 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
543 vtkGetMacro(MiddleButtonAutoModifier,
int);
544 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
545 vtkGetMacro(RightButtonAutoModifier,
int);
552 int TextureVisibility;
554 int LeftButtonAction;
555 int MiddleButtonAction;
556 int RightButtonAction;
558 int LeftButtonAutoModifier;
559 int MiddleButtonAutoModifier;
560 int RightButtonAutoModifier;
566 VTK_MIDDLE_BUTTON = 2,
598 virtual void OnMouseMove();
599 virtual void OnLeftButtonDown();
600 virtual void OnLeftButtonUp();
601 virtual void OnMiddleButtonDown();
602 virtual void OnMiddleButtonUp();
603 virtual void OnRightButtonDown();
604 virtual void OnRightButtonUp();
605 void OnChar() VTK_OVERRIDE;
607 virtual
void StartCursor();
608 virtual
void StopCursor();
609 virtual
void StartSliceMotion();
610 virtual
void StopSliceMotion();
611 virtual
void StartWindowLevel();
612 virtual
void StopWindowLevel();
616 int PlaneOrientation;
617 int RestrictPlaneToVolume;
618 double OriginalWindow;
619 double OriginalLevel;
620 double CurrentWindow;
622 double InitialWindow;
624 int StartWindowLevelPositionX;
625 int StartWindowLevelPositionY;
626 int ResliceInterpolate;
627 int TextureInterpolate;
628 int UserControlledLookupTable;
635 void HighlightPlane(
int highlight);
636 void GeneratePlaneOutline();
639 void BuildRepresentation();
645 void RegisterPickers() VTK_OVERRIDE;
651 void WindowLevel(
int X,
int Y);
652 void Push(
double *p1,
double *p2);
653 void Spin(
double *p1,
double *p2);
654 void Rotate(
double *p1,
double *p2,
double *vpn);
655 void Scale(
double *p1,
double *p2,
int X,
int Y);
656 void Translate(
double *p1,
double *p2);
677 void CreateDefaultProperties();
681 void GenerateTexturePlane();
686 double CurrentCursorPosition[3];
687 double CurrentImageValue;
688 void GenerateCursor();
689 void UpdateCursor(
int,
int);
690 void ActivateCursor(
int);
691 int UpdateContinuousCursor(
double *q);
692 int UpdateDiscreteCursor(
double *q);
693 int UseContinuousCursor;
699 void ManageTextDisplay();
700 void ActivateText(
int);
703 double RotateAxis[3];
704 double RadiusVector[3];
710 int MarginSelectMode;
711 void GenerateMargins();
712 void UpdateMargins();
713 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.
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