62 #ifndef __vtkImageTracerWidget_h
63 #define __vtkImageTracerWidget_h
65 #include "vtkInteractionWidgetsModule.h"
68 class vtkAbstractPropPicker;
82 #define VTK_ITW_PROJECTION_YZ 0
83 #define VTK_ITW_PROJECTION_XZ 1
84 #define VTK_ITW_PROJECTION_XY 2
85 #define VTK_ITW_SNAP_CELLS 0
86 #define VTK_ITW_SNAP_POINTS 1
95 void PrintSelf(ostream& os, vtkIndent indent);
99 virtual void SetEnabled(
int);
102 {this->Superclass::PlaceWidget();}
103 void PlaceWidget(
double xmin,
double xmax,
double ymin,
double ymax,
104 double zmin,
double zmax)
105 {this->Superclass::PlaceWidget(xmin,xmax,ymin,ymax,zmin,zmax);}
112 virtual void SetHandleProperty(vtkProperty*);
113 vtkGetObjectMacro(HandleProperty, vtkProperty);
114 virtual void SetSelectedHandleProperty(vtkProperty*);
115 vtkGetObjectMacro(SelectedHandleProperty, vtkProperty);
121 virtual void SetLineProperty(vtkProperty*);
122 vtkGetObjectMacro(LineProperty, vtkProperty);
123 virtual void SetSelectedLineProperty(vtkProperty*);
124 vtkGetObjectMacro(SelectedLineProperty, vtkProperty);
128 void SetViewProp(vtkProp* prop);
132 vtkSetMacro(ProjectToPlane,
int);
133 vtkGetMacro(ProjectToPlane,
int);
134 vtkBooleanMacro(ProjectToPlane,
int);
143 vtkGetMacro(ProjectionNormal,
int);
145 { this->SetProjectionNormal(0); }
147 { this->SetProjectionNormal(1); }
149 { this->SetProjectionNormal(2); }
158 void SetProjectionPosition(
double position);
159 vtkGetMacro(ProjectionPosition,
double);
164 void SetSnapToImage(
int snap);
165 vtkGetMacro(SnapToImage,
int);
166 vtkBooleanMacro(SnapToImage,
int);
172 vtkSetMacro(AutoClose,
int);
173 vtkGetMacro(AutoClose,
int);
174 vtkBooleanMacro(AutoClose,
int);
181 vtkSetMacro(CaptureRadius,
double);
182 vtkGetMacro(CaptureRadius,
double);
199 vtkGetMacro(ImageSnapType,
int);
205 void SetHandlePosition(
int handle,
double xyz[3]);
206 void SetHandlePosition(
int handle,
double x,
double y,
double z);
207 void GetHandlePosition(
int handle,
double xyz[3]);
208 double* GetHandlePosition(
int handle);
213 vtkGetMacro(NumberOfHandles,
int);
218 void SetInteraction(
int interact);
219 vtkGetMacro(Interaction,
int);
220 vtkBooleanMacro(Interaction,
int);
226 void InitializeHandles(vtkPoints*);
233 vtkSetMacro(HandleLeftMouseButton,
int);
234 vtkGetMacro(HandleLeftMouseButton,
int);
235 vtkBooleanMacro(HandleLeftMouseButton,
int);
236 vtkSetMacro(HandleMiddleMouseButton,
int);
237 vtkGetMacro(HandleMiddleMouseButton,
int);
238 vtkBooleanMacro(HandleMiddleMouseButton,
int);
239 vtkSetMacro(HandleRightMouseButton,
int);
240 vtkGetMacro(HandleRightMouseButton,
int);
241 vtkBooleanMacro(HandleRightMouseButton,
int);
244 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
245 # define SetPropA SetProp
246 # define SetPropW SetProp
251 VTK_LEGACY(
void SetProp(vtkProp* prop));
253 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
257 VTK_LEGACY(
void SetPropA(vtkProp*));
258 VTK_LEGACY(
void SetPropW(vtkProp*));
282 static void ProcessEvents(vtkObject*
object,
288 void OnLeftButtonDown();
289 void OnLeftButtonUp();
290 void OnMiddleButtonDown();
291 void OnMiddleButtonUp();
292 void OnRightButtonDown();
293 void OnRightButtonUp();
311 void Trace(
int ,
int );
313 void MovePoint(
const double* ,
const double* );
314 void Translate(
const double* ,
const double* );
327 void AppendHandles(
double*);
329 void AllocateHandles(
const int& );
330 void AdjustHandlePosition(
const int& ,
double*);
331 int HighlightHandle(vtkProp* );
332 void EraseHandle(
const int& );
334 void InsertHandleOnLine(
double* );
348 vtkIdType CurrentPoints[2];
350 void HighlightLine(
const int& );
351 void BuildLinesFromHandles();
352 void ResetLine(
double* );
353 void AppendLine(
double* );
362 virtual void RegisterPickers();
370 void CreateDefaultProperties();
concrete dataset represents vertices, lines, polygons, and triangle strips
object to represent cell connectivity
create 2D glyphs represented by vtkPolyData