VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes
vtkImageTracerWidget Class Reference

3D widget for tracing on planar props. More...

#include <vtkImageTracerWidget.h>

Inheritance diagram for vtkImageTracerWidget:
Inheritance graph
[legend]
Collaboration diagram for vtkImageTracerWidget:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtk3DWidget Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkImageTracerWidgetNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
void SetViewProp (vtkProp *prop)
void GetPath (vtkPolyData *pd)
vtkGlyphSource2DGetGlyphSource ()
void InitializeHandles (vtkPoints *)
int IsClosed ()
void SetProp (vtkProp *prop)
virtual void SetEnabled (int)
virtual void PlaceWidget (double bounds[6])
void PlaceWidget ()
void PlaceWidget (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
virtual void SetHandleProperty (vtkProperty *)
virtual vtkPropertyGetHandleProperty ()
virtual void SetSelectedHandleProperty (vtkProperty *)
virtual vtkPropertyGetSelectedHandleProperty ()
virtual void SetLineProperty (vtkProperty *)
virtual vtkPropertyGetLineProperty ()
virtual void SetSelectedLineProperty (vtkProperty *)
virtual vtkPropertyGetSelectedLineProperty ()
virtual void SetProjectToPlane (int)
virtual int GetProjectToPlane ()
virtual void ProjectToPlaneOn ()
virtual void ProjectToPlaneOff ()
virtual void SetProjectionNormal (int)
virtual int GetProjectionNormal ()
void SetProjectionNormalToXAxes ()
void SetProjectionNormalToYAxes ()
void SetProjectionNormalToZAxes ()
void SetProjectionPosition (double position)
virtual double GetProjectionPosition ()
void SetSnapToImage (int snap)
virtual int GetSnapToImage ()
virtual void SnapToImageOn ()
virtual void SnapToImageOff ()
virtual void SetAutoClose (int)
virtual int GetAutoClose ()
virtual void AutoCloseOn ()
virtual void AutoCloseOff ()
virtual void SetCaptureRadius (double)
virtual double GetCaptureRadius ()
virtual void SetImageSnapType (int)
virtual int GetImageSnapType ()
void SetHandlePosition (int handle, double xyz[3])
void SetHandlePosition (int handle, double x, double y, double z)
void GetHandlePosition (int handle, double xyz[3])
doubleGetHandlePosition (int handle)
virtual int GetNumberOfHandles ()
void SetInteraction (int interact)
virtual int GetInteraction ()
virtual void InteractionOn ()
virtual void InteractionOff ()
virtual void SetHandleLeftMouseButton (int)
virtual int GetHandleLeftMouseButton ()
virtual void HandleLeftMouseButtonOn ()
virtual void HandleLeftMouseButtonOff ()
virtual void SetHandleMiddleMouseButton (int)
virtual int GetHandleMiddleMouseButton ()
virtual void HandleMiddleMouseButtonOn ()
virtual void HandleMiddleMouseButtonOff ()
virtual void SetHandleRightMouseButton (int)
virtual int GetHandleRightMouseButton ()
virtual void HandleRightMouseButtonOn ()
virtual void HandleRightMouseButtonOff ()

Static Public Member Functions

static vtkImageTracerWidgetNew ()
static int IsTypeOf (const char *type)
static vtkImageTracerWidgetSafeDownCast (vtkObjectBase *o)

Protected Types

enum  WidgetState {
  Start = 0, Tracing, Snapping, Erasing,
  Inserting, Moving, Translating, Outside
}

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkImageTracerWidget ()
 ~vtkImageTracerWidget ()
void OnLeftButtonDown ()
void OnLeftButtonUp ()
void OnMiddleButtonDown ()
void OnMiddleButtonUp ()
void OnRightButtonDown ()
void OnRightButtonUp ()
void OnMouseMove ()
void AddObservers ()
void Trace (int, int)
void Snap (double *)
void MovePoint (const double *, const double *)
void Translate (const double *, const double *)
void ClosePath ()
void AppendHandles (double *)
void ResetHandles ()
void AllocateHandles (const int &)
void AdjustHandlePosition (const int &, double *)
int HighlightHandle (vtkProp *)
void EraseHandle (const int &)
virtual void SizeHandles ()
void InsertHandleOnLine (double *)
void HighlightLine (const int &)
void BuildLinesFromHandles ()
void ResetLine (double *)
void AppendLine (double *)
virtual void RegisterPickers ()
void CreateDefaultProperties ()

Static Protected Member Functions

static void ProcessEvents (vtkObject *object, unsigned long event, void *clientdata, void *calldata)

Protected Attributes

int State
int Interaction
int ProjectionNormal
double ProjectionPosition
int ProjectToPlane
int ImageSnapType
int SnapToImage
double CaptureRadius
int AutoClose
int IsSnapping
int LastX
int LastY
vtkActor ** Handle
vtkPolyData ** HandleGeometry
vtkGlyphSource2DHandleGenerator
vtkTransformPolyDataFilterTransformFilter
vtkTransformTransform
vtkFloatArrayTemporaryHandlePoints
int NumberOfHandles
vtkActorCurrentHandle
int CurrentHandleIndex
vtkPropViewProp
vtkPropPickerPropPicker
vtkPointsLinePoints
vtkCellArrayLineCells
vtkActorLineActor
vtkPolyDataLineData
vtkIdType CurrentPoints [2]
int PickCount
vtkCellPickerHandlePicker
vtkCellPickerLinePicker
vtkAbstractPropPickerCurrentPicker
vtkPropertyHandleProperty
vtkPropertySelectedHandleProperty
vtkPropertyLineProperty
vtkPropertySelectedLineProperty
int HandleLeftMouseButton
int HandleMiddleMouseButton
int HandleRightMouseButton

Detailed Description

3D widget for tracing on planar props.

vtkImageTracerWidget is different from other widgets in three distinct ways: 1) any sub-class of vtkProp can be input rather than just vtkProp3D, so that vtkImageActor can be set as the prop and then traced over, 2) the widget fires pick events at the input prop to decide where to move its handles, 3) the widget has 2D glyphs for handles instead of 3D spheres as is done in other sub-classes of vtk3DWidget. This widget is primarily designed for manually tracing over image data. The button actions and key modifiers are as follows for controlling the widget: 1) left button click over the image, hold and drag draws a free hand line. 2) left button click and release erases the widget line, if it exists, and repositions the first handle. 3) middle button click starts a snap drawn line. The line is terminated by clicking the middle button while depressing the ctrl key. 4) when tracing a continuous or snap drawn line, if the last cursor position is within a specified tolerance to the first handle, the widget line will form a closed loop. 5) right button clicking and holding on any handle that is part of a snap drawn line allows handle dragging: existing line segments are updated accordingly. If the path is open and AutoClose is set to On, the path can be closed by repositioning the first and last points over one another. 6) ctrl key + right button down on any handle will erase it: existing snap drawn line segments are updated accordingly. If the line was formed by continuous tracing, the line is deleted leaving one handle. 7) shift key + right button down on any snap drawn line segment will insert a handle at the cursor position. The line segment is split accordingly.

Warning:
the input vtkDataSet should be vtkImageData.
See also:
vtk3DWidget vtkBoxWidget vtkLineWidget vtkPointWidget vtkSphereWidget vtkImagePlaneWidget vtkImplicitPlaneWidget vtkPlaneWidget
Events:
vtkCommand::DisableEvent vtkCommand::EndInteractionEvent vtkCommand::InteractionEvent vtkCommand::StartInteractionEvent vtkCommand::EnableEvent
Examples:
vtkImageTracerWidget (Examples)
Tests:
vtkImageTracerWidget (Tests)

Definition at line 88 of file vtkImageTracerWidget.h.


Member Typedef Documentation

Reimplemented from vtk3DWidget.

Definition at line 94 of file vtkImageTracerWidget.h.


Member Enumeration Documentation

Enumerator:
Start 
Tracing 
Snapping 
Erasing 
Inserting 
Moving 
Translating 
Outside 

Definition at line 268 of file vtkImageTracerWidget.h.


Constructor & Destructor Documentation


Member Function Documentation

Instantiate the object.

Reimplemented from vtkObject.

static int vtkImageTracerWidget::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtk3DWidget.

virtual int vtkImageTracerWidget::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtk3DWidget.

Reimplemented from vtk3DWidget.

virtual vtkObjectBase* vtkImageTracerWidget::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtk3DWidget.

Reimplemented from vtk3DWidget.

void vtkImageTracerWidget::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtk3DWidget.

virtual void vtkImageTracerWidget::SetEnabled ( int  ) [virtual]

Methods that satisfy the superclass' API.

Reimplemented from vtkInteractorObserver.

virtual void vtkImageTracerWidget::PlaceWidget ( double  bounds[6]) [virtual]

Methods that satisfy the superclass' API.

Implements vtk3DWidget.

void vtkImageTracerWidget::PlaceWidget ( ) [inline, virtual]

Methods that satisfy the superclass' API.

Reimplemented from vtk3DWidget.

Definition at line 101 of file vtkImageTracerWidget.h.

void vtkImageTracerWidget::PlaceWidget ( double  xmin,
double  xmax,
double  ymin,
double  ymax,
double  zmin,
double  zmax 
) [inline, virtual]

Methods that satisfy the superclass' API.

Reimplemented from vtk3DWidget.

Definition at line 103 of file vtkImageTracerWidget.h.

virtual void vtkImageTracerWidget::SetHandleProperty ( vtkProperty ) [virtual]

Set/Get the handle properties (the 2D glyphs are the handles). The properties of the handles when selected and normal can be manipulated.

Set/Get the handle properties (the 2D glyphs are the handles). The properties of the handles when selected and normal can be manipulated.

Set/Get the handle properties (the 2D glyphs are the handles). The properties of the handles when selected and normal can be manipulated.

Set/Get the handle properties (the 2D glyphs are the handles). The properties of the handles when selected and normal can be manipulated.

virtual void vtkImageTracerWidget::SetLineProperty ( vtkProperty ) [virtual]

Set/Get the line properties. The properties of the line when selected and unselected can be manipulated.

Set/Get the line properties. The properties of the line when selected and unselected can be manipulated.

Set/Get the line properties. The properties of the line when selected and unselected can be manipulated.

Set/Get the line properties. The properties of the line when selected and unselected can be manipulated.

Set the prop, usually a vtkImageActor, to trace over.

virtual void vtkImageTracerWidget::SetProjectToPlane ( int  ) [virtual]

Force handles to be on a specific ortho plane. Default is Off.

Force handles to be on a specific ortho plane. Default is Off.

virtual void vtkImageTracerWidget::ProjectToPlaneOn ( ) [virtual]

Force handles to be on a specific ortho plane. Default is Off.

virtual void vtkImageTracerWidget::ProjectToPlaneOff ( ) [virtual]

Force handles to be on a specific ortho plane. Default is Off.

virtual void vtkImageTracerWidget::SetProjectionNormal ( int  ) [virtual]

Set the projection normal. The normal in SetProjectionNormal is 0,1,2 for YZ,XZ,XY planes respectively. Since the handles are 2D glyphs, it is necessary to specify a plane on which to generate them, even though ProjectToPlane may be turned off.

Set the projection normal. The normal in SetProjectionNormal is 0,1,2 for YZ,XZ,XY planes respectively. Since the handles are 2D glyphs, it is necessary to specify a plane on which to generate them, even though ProjectToPlane may be turned off.

Set the projection normal. The normal in SetProjectionNormal is 0,1,2 for YZ,XZ,XY planes respectively. Since the handles are 2D glyphs, it is necessary to specify a plane on which to generate them, even though ProjectToPlane may be turned off.

Definition at line 144 of file vtkImageTracerWidget.h.

Set the projection normal. The normal in SetProjectionNormal is 0,1,2 for YZ,XZ,XY planes respectively. Since the handles are 2D glyphs, it is necessary to specify a plane on which to generate them, even though ProjectToPlane may be turned off.

Definition at line 146 of file vtkImageTracerWidget.h.

Set the projection normal. The normal in SetProjectionNormal is 0,1,2 for YZ,XZ,XY planes respectively. Since the handles are 2D glyphs, it is necessary to specify a plane on which to generate them, even though ProjectToPlane may be turned off.

Definition at line 148 of file vtkImageTracerWidget.h.

Set the position of the widgets' handles in terms of a plane's position. e.g., if ProjectionNormal is 0, all of the x-coordinate values of the handles are set to ProjectionPosition. No attempt is made to ensure that the position is within the bounds of either the underlying image data or the prop on which tracing is performed.

Set the position of the widgets' handles in terms of a plane's position. e.g., if ProjectionNormal is 0, all of the x-coordinate values of the handles are set to ProjectionPosition. No attempt is made to ensure that the position is within the bounds of either the underlying image data or the prop on which tracing is performed.

Force snapping to image data while tracing. Default is Off.

Force snapping to image data while tracing. Default is Off.

virtual void vtkImageTracerWidget::SnapToImageOn ( ) [virtual]

Force snapping to image data while tracing. Default is Off.

virtual void vtkImageTracerWidget::SnapToImageOff ( ) [virtual]

Force snapping to image data while tracing. Default is Off.

virtual void vtkImageTracerWidget::SetAutoClose ( int  ) [virtual]

In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. Default is Off.

virtual int vtkImageTracerWidget::GetAutoClose ( ) [virtual]

In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. Default is Off.

virtual void vtkImageTracerWidget::AutoCloseOn ( ) [virtual]

In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. Default is Off.

virtual void vtkImageTracerWidget::AutoCloseOff ( ) [virtual]

In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. Default is Off.

virtual void vtkImageTracerWidget::SetCaptureRadius ( double  ) [virtual]

Set/Get the capture radius for automatic path closing. For image data, capture radius should be half the distance between voxel/pixel centers. Default is 1.0

Set/Get the capture radius for automatic path closing. For image data, capture radius should be half the distance between voxel/pixel centers. Default is 1.0

Grab the points and lines that define the traced path. These point values are guaranteed to be up-to-date when either the InteractionEvent or EndInteraction events are invoked. The user provides the vtkPolyData and the points and cells representing the line are added to it.

Get the handles' geometric representation via vtkGlyphSource2D.

Definition at line 193 of file vtkImageTracerWidget.h.

virtual void vtkImageTracerWidget::SetImageSnapType ( int  ) [virtual]

Set/Get the type of snapping to image data: center of a pixel/voxel or nearest point defining a pixel/voxel.

Set/Get the type of snapping to image data: center of a pixel/voxel or nearest point defining a pixel/voxel.

void vtkImageTracerWidget::SetHandlePosition ( int  handle,
double  xyz[3] 
)

Set/Get the handle position in terms of a zero-based array of handles.

void vtkImageTracerWidget::SetHandlePosition ( int  handle,
double  x,
double  y,
double  z 
)

Set/Get the handle position in terms of a zero-based array of handles.

void vtkImageTracerWidget::GetHandlePosition ( int  handle,
double  xyz[3] 
)

Set/Get the handle position in terms of a zero-based array of handles.

Set/Get the handle position in terms of a zero-based array of handles.

Get the number of handles.

Enable/disable mouse interaction when the widget is visible.

Enable/disable mouse interaction when the widget is visible.

virtual void vtkImageTracerWidget::InteractionOn ( ) [virtual]

Enable/disable mouse interaction when the widget is visible.

virtual void vtkImageTracerWidget::InteractionOff ( ) [virtual]

Enable/disable mouse interaction when the widget is visible.

Initialize the widget with a set of points and generate lines between them. If AutoClose is on it will handle the case wherein the first and last points are congruent.

Is the path closed or open?

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

Enable/Disable mouse button events

static void vtkImageTracerWidget::ProcessEvents ( vtkObject object,
unsigned long  event,
void *  clientdata,
void *  calldata 
) [static, protected]

Handles the char widget activation event. Also handles the delete event.

Reimplemented from vtkInteractorObserver.

void vtkImageTracerWidget::OnMouseMove ( ) [protected]
void vtkImageTracerWidget::AddObservers ( ) [protected]
void vtkImageTracerWidget::Trace ( int  ,
int   
) [protected]
void vtkImageTracerWidget::Snap ( double ) [protected]
void vtkImageTracerWidget::MovePoint ( const double ,
const double  
) [protected]
void vtkImageTracerWidget::Translate ( const double ,
const double  
) [protected]
void vtkImageTracerWidget::ClosePath ( ) [protected]
void vtkImageTracerWidget::AppendHandles ( double ) [protected]
void vtkImageTracerWidget::ResetHandles ( ) [protected]
void vtkImageTracerWidget::AllocateHandles ( const int ) [protected]
void vtkImageTracerWidget::AdjustHandlePosition ( const int ,
double  
) [protected]
void vtkImageTracerWidget::EraseHandle ( const int ) [protected]
virtual void vtkImageTracerWidget::SizeHandles ( ) [protected, virtual]

Reimplemented from vtk3DWidget.

void vtkImageTracerWidget::HighlightLine ( const int ) [protected]
void vtkImageTracerWidget::ResetLine ( double ) [protected]
void vtkImageTracerWidget::AppendLine ( double ) [protected]
virtual void vtkImageTracerWidget::RegisterPickers ( ) [protected, virtual]

Register internal Pickers in the Picking Manager. Must be reimplemented by concrete widgets to register their pickers.

Reimplemented from vtkInteractorObserver.


Member Data Documentation

Definition at line 267 of file vtkImageTracerWidget.h.

Definition at line 299 of file vtkImageTracerWidget.h.

Definition at line 300 of file vtkImageTracerWidget.h.

Definition at line 301 of file vtkImageTracerWidget.h.

Definition at line 302 of file vtkImageTracerWidget.h.

Definition at line 303 of file vtkImageTracerWidget.h.

Definition at line 304 of file vtkImageTracerWidget.h.

Definition at line 305 of file vtkImageTracerWidget.h.

Definition at line 306 of file vtkImageTracerWidget.h.

Definition at line 307 of file vtkImageTracerWidget.h.

Definition at line 308 of file vtkImageTracerWidget.h.

Definition at line 309 of file vtkImageTracerWidget.h.

Definition at line 318 of file vtkImageTracerWidget.h.

Definition at line 319 of file vtkImageTracerWidget.h.

Definition at line 320 of file vtkImageTracerWidget.h.

Definition at line 323 of file vtkImageTracerWidget.h.

Definition at line 324 of file vtkImageTracerWidget.h.

Definition at line 325 of file vtkImageTracerWidget.h.

Definition at line 336 of file vtkImageTracerWidget.h.

Definition at line 337 of file vtkImageTracerWidget.h.

Definition at line 338 of file vtkImageTracerWidget.h.

Definition at line 340 of file vtkImageTracerWidget.h.

Definition at line 341 of file vtkImageTracerWidget.h.

Definition at line 344 of file vtkImageTracerWidget.h.

Definition at line 345 of file vtkImageTracerWidget.h.

Definition at line 346 of file vtkImageTracerWidget.h.

Definition at line 347 of file vtkImageTracerWidget.h.

Definition at line 348 of file vtkImageTracerWidget.h.

Definition at line 354 of file vtkImageTracerWidget.h.

Definition at line 357 of file vtkImageTracerWidget.h.

Definition at line 358 of file vtkImageTracerWidget.h.

Definition at line 359 of file vtkImageTracerWidget.h.

Definition at line 366 of file vtkImageTracerWidget.h.

Definition at line 367 of file vtkImageTracerWidget.h.

Definition at line 368 of file vtkImageTracerWidget.h.

Definition at line 369 of file vtkImageTracerWidget.h.

Definition at line 373 of file vtkImageTracerWidget.h.

Definition at line 374 of file vtkImageTracerWidget.h.

Definition at line 375 of file vtkImageTracerWidget.h.


The documentation for this class was generated from the following file: