108 #ifndef __vtkImagePlaneWidget_h
109 #define __vtkImagePlaneWidget_h
111 #include "vtkInteractionWidgetsModule.h"
115 class vtkAbstractPropPicker;
116 class vtkDataSetMapper;
120 class vtkLookupTable;
127 class vtkTextProperty;
131 #define VTK_NEAREST_RESLICE 0
132 #define VTK_LINEAR_RESLICE 1
133 #define VTK_CUBIC_RESLICE 2
142 void PrintSelf(ostream& os, vtkIndent indent);
146 virtual void SetEnabled(
int);
150 void PlaceWidget(
double xmin,
double xmax,
double ymin,
double ymax,
151 double zmin,
double zmax)
160 void SetOrigin(
double x,
double y,
double z);
161 void SetOrigin(
double xyz[3]);
163 void GetOrigin(
double xyz[3]);
169 void SetPoint1(
double x,
double y,
double z);
170 void SetPoint1(
double xyz[3]);
172 void GetPoint1(
double xyz[3]);
178 void SetPoint2(
double x,
double y,
double z);
179 void SetPoint2(
double xyz[3]);
181 void GetPoint2(
double xyz[3]);
187 void GetCenter(
double xyz[3]);
193 void GetNormal(
double xyz[3]);
197 void GetVector1(
double v1[3]);
200 void GetVector2(
double v2[3]);
206 void SetSliceIndex(
int index);
209 double GetSlicePosition();
212 void SetSlicePosition(
double position);
216 void SetResliceInterpolate(
int);
217 vtkGetMacro(ResliceInterpolate,
int);
227 vtkImageData* GetResliceOutput();
231 vtkSetMacro(RestrictPlaneToVolume,
int);
232 vtkGetMacro(RestrictPlaneToVolume,
int);
233 vtkBooleanMacro(RestrictPlaneToVolume,
int);
239 vtkSetMacro(UserControlledLookupTable,
int);
240 vtkGetMacro(UserControlledLookupTable,
int);
241 vtkBooleanMacro(UserControlledLookupTable,
int);
249 vtkSetMacro(TextureInterpolate,
int);
250 vtkGetMacro(TextureInterpolate,
int);
251 vtkBooleanMacro(TextureInterpolate,
int);
257 virtual void SetTextureVisibility(
int);
258 vtkGetMacro(TextureVisibility,
int);
259 vtkBooleanMacro(TextureVisibility,
int);
284 vtkTexture *GetTexture();
298 virtual void SetPlaneProperty(vtkProperty*);
299 vtkGetObjectMacro(PlaneProperty,vtkProperty);
300 virtual void SetSelectedPlaneProperty(vtkProperty*);
301 vtkGetObjectMacro(SelectedPlaneProperty,vtkProperty);
307 void SetPlaneOrientation(
int);
308 vtkGetMacro(PlaneOrientation,
int);
310 { this->SetPlaneOrientation(0); }
312 { this->SetPlaneOrientation(1); }
314 { this->SetPlaneOrientation(2); }
321 void SetPicker(vtkAbstractPropPicker*);
329 virtual void SetLookupTable(vtkLookupTable*);
330 vtkGetObjectMacro(LookupTable,vtkLookupTable);
336 vtkSetMacro(DisplayText,
int);
337 vtkGetMacro(DisplayText,
int);
338 vtkBooleanMacro(DisplayText,
int);
343 virtual void SetCursorProperty(vtkProperty*);
344 vtkGetObjectMacro(CursorProperty,vtkProperty);
349 virtual void SetMarginProperty(vtkProperty*);
350 vtkGetObjectMacro(MarginProperty,vtkProperty);
356 vtkSetClampMacro(MarginSizeX,
double, 0.0, 0.5);
357 vtkGetMacro(MarginSizeX,
double);
358 vtkSetClampMacro(MarginSizeY,
double, 0.0, 0.5);
359 vtkGetMacro(MarginSizeY,
double);
365 void SetTextProperty(vtkTextProperty* tprop);
366 vtkTextProperty* GetTextProperty();
371 virtual void SetTexturePlaneProperty(vtkProperty*);
372 vtkGetObjectMacro(TexturePlaneProperty,vtkProperty);
380 void SetWindowLevel(
double window,
double level,
int copy = 0);
381 void GetWindowLevel(
double wl[2]);
388 int GetCursorData(
double xyzv[4]);
393 int GetCursorDataStatus();
398 vtkGetVectorMacro(CurrentCursorPosition,
double,3);
405 vtkGetMacro(CurrentImageValue,
double);
421 vtkSetMacro(UseContinuousCursor,
int);
422 vtkGetMacro(UseContinuousCursor,
int);
423 vtkBooleanMacro(UseContinuousCursor,
int);
428 void SetInteraction(
int interact);
429 vtkGetMacro(Interaction,
int);
430 vtkBooleanMacro(Interaction,
int);
438 VTK_CURSOR_ACTION = 0,
439 VTK_SLICE_MOTION_ACTION = 1,
440 VTK_WINDOW_LEVEL_ACTION = 2
443 vtkSetClampMacro(LeftButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
444 vtkGetMacro(LeftButtonAction,
int);
445 vtkSetClampMacro(MiddleButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
446 vtkGetMacro(MiddleButtonAction,
int);
447 vtkSetClampMacro(RightButtonAction,
int, VTK_CURSOR_ACTION, VTK_WINDOW_LEVEL_ACTION);
448 vtkGetMacro(RightButtonAction,
int);
462 VTK_SHIFT_MODIFIER = 1,
463 VTK_CONTROL_MODIFIER = 2
466 vtkSetClampMacro(LeftButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
467 vtkGetMacro(LeftButtonAutoModifier,
int);
468 vtkSetClampMacro(MiddleButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
469 vtkGetMacro(MiddleButtonAutoModifier,
int);
470 vtkSetClampMacro(RightButtonAutoModifier,
int, VTK_NO_MODIFIER, VTK_CONTROL_MODIFIER);
471 vtkGetMacro(RightButtonAutoModifier,
int);
493 VTK_MIDDLE_BUTTON = 2,
516 static void ProcessEvents(vtkObject*
object,
527 virtual void OnMouseMove();
528 virtual void OnLeftButtonDown();
529 virtual void OnLeftButtonUp();
530 virtual void OnMiddleButtonDown();
531 virtual void OnMiddleButtonUp();
532 virtual void OnRightButtonDown();
533 virtual void OnRightButtonUp();
534 virtual void OnChar();
536 virtual void StartCursor();
537 virtual void StopCursor();
538 virtual void StartSliceMotion();
539 virtual void StopSliceMotion();
540 virtual void StartWindowLevel();
541 virtual void StopWindowLevel();
564 void HighlightPlane(
int highlight);
565 void GeneratePlaneOutline();
568 void BuildRepresentation();
574 virtual void RegisterPickers();
580 void WindowLevel(
int X,
int Y);
581 void Push(
double *p1,
double *p2);
582 void Spin(
double *p1,
double *p2);
583 void Rotate(
double *p1,
double *p2,
double *vpn);
584 void Scale(
double *p1,
double *p2,
int X,
int Y);
585 void Translate(
double *p1,
double *p2);
595 vtkLookupTable *CreateDefaultLookupTable();
606 void CreateDefaultProperties();
610 void GenerateTexturePlane();
615 double CurrentCursorPosition[3];
617 void GenerateCursor();
618 void UpdateCursor(
int,
int);
619 void ActivateCursor(
int);
620 int UpdateContinuousCursor(
double *
q);
621 int UpdateDiscreteCursor(
double *
q);
628 void ManageTextDisplay();
629 void ActivateText(
int);
632 double RotateAxis[3];
633 double RadiusVector[3];
640 void GenerateMargins();
641 void UpdateMargins();
642 void ActivateMargins(
int);
represent and manipulate 4x4 transformation matrices
concrete dataset represents vertices, lines, polygons, and triangle strips
Proxy object to connect input/output ports.
Superclass for algorithms that produce only polydata as output.
map the input image through a lookup table
Reslices a volume along a new set of axes.
create an array of quadrilaterals located in a plane
VTKWRAPPINGJAVA_EXPORT jlong q(JNIEnv *env, jobject obj)