vtkImageTracerWidget Class Reference
#include <vtkImageTracerWidget.h>
Inheritance diagram for vtkImageTracerWidget:
[legend]Collaboration diagram for vtkImageTracerWidget:
[legend]List of all members.
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 picks 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 continous 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
- Created by:
-
- CVS contributions (if > 5%):
-
- CVS logs (CVSweb):
.cxx (/Hybrid/vtkImageTracerWidget
.cxx)
.h (/Hybrid/vtkImageTracerWidget
.h)
- Examples:
- vtkImageTracerWidget (Examples)
- Tests:
- vtkImageTracerWidget (Tests)
Definition at line 98 of file vtkImageTracerWidget.h.
|
Public Types |
typedef vtk3DWidget | Superclass |
Public Member Functions |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | SetProp (vtkProp *prop) |
void | GetPath (vtkPolyData *pd) |
vtkGlyphSource2D * | GetGlyphSource () |
void | InitializeHandles (vtkPoints *) |
|
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 vtkProperty * | GetHandleProperty () |
virtual void | SetSelectedHandleProperty (vtkProperty *) |
virtual vtkProperty * | GetSelectedHandleProperty () |
|
virtual void | SetLineProperty (vtkProperty *) |
virtual vtkProperty * | GetLineProperty () |
virtual void | SetSelectedLineProperty (vtkProperty *) |
virtual vtkProperty * | GetSelectedLineProperty () |
|
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]) |
double * | GetHandlePosition (int handle) |
|
virtual int | GetNumberOfHandles () |
|
void | SetInteraction (int interact) |
virtual int | GetInteraction () |
virtual void | InteractionOn () |
virtual void | InteractionOff () |
|
virtual int | GetIsClosed () |
Static Public Member Functions |
vtkImageTracerWidget * | New () |
int | IsTypeOf (const char *type) |
vtkImageTracerWidget * | SafeDownCast (vtkObject *o) |
Protected Types |
enum | WidgetState {
Start = 0,
Tracing,
Snapping,
Erasing,
Inserting,
Moving,
Outside
} |
Protected Member Functions |
| vtkImageTracerWidget () |
| ~vtkImageTracerWidget () |
void | OnLeftButtonDown () |
void | OnLeftButtonUp () |
void | OnMiddleButtonDown () |
void | OnMiddleButtonUp () |
void | OnRightButtonDown () |
void | OnRightButtonUp () |
void | OnMouseMove () |
void | AddObservers () |
void | Trace (int X, int Y) |
void | Snap (double *) |
void | MovePoint (double *p1, double *p2) |
void | ClosePath () |
void | AppendHandles (double *) |
void | ResetHandles () |
void | AllocateHandles (int nhandles) |
void | AdjustHandlePosition (int, double *) |
int | HighlightHandle (vtkProp *prop) |
void | EraseHandle (int) |
virtual void | SizeHandles () |
void | InsertHandleOnLine (double *) |
void | HighlightLine (int) |
void | BuildLinesFromHandles () |
void | ResetLine (double *) |
void | AppendLine (double *) |
void | CreateDefaultProperties () |
Static Protected Member Functions |
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 | MouseMoved |
int | IsClosed |
vtkActor ** | Handle |
vtkPolyDataMapper ** | HandleMapper |
vtkPolyData ** | HandleGeometry |
vtkGlyphSource2D * | HandleGenerator |
vtkTransformPolyDataFilter * | TransformFilter |
vtkTransform * | Transform |
vtkFloatArray * | TemporaryHandlePoints |
int | NumberOfHandles |
vtkActor * | CurrentHandle |
int | CurrentHandleIndex |
vtkProp * | Prop |
vtkPropPicker * | PropPicker |
vtkPoints * | LinePoints |
vtkCellArray * | LineCells |
vtkActor * | LineActor |
vtkPolyDataMapper * | LineMapper |
vtkPolyData * | LineData |
vtkIdType | CurrentPoints [2] |
int | PickCount |
vtkCellPicker * | HandlePicker |
vtkCellPicker * | LinePicker |
vtkAbstractPropPicker * | CurrentPicker |
vtkProperty * | HandleProperty |
vtkProperty * | SelectedHandleProperty |
vtkProperty * | LineProperty |
vtkProperty * | SelectedLineProperty |
Member Typedef Documentation
Member Enumeration Documentation
|
- Enumeration values:
-
Start |
|
Tracing |
|
Snapping |
|
Erasing |
|
Inserting |
|
Moving |
|
Outside |
|
Definition at line 249 of file vtkImageTracerWidget.h. |
Constructor & Destructor Documentation
vtkImageTracerWidget::vtkImageTracerWidget |
( |
|
) |
[protected] |
|
Member Function Documentation
|
Instantiate the object.
Reimplemented from vtkObject. |
virtual const char* vtkImageTracerWidget::GetClassName |
( |
|
) |
[virtual] |
|
int vtkImageTracerWidget::IsTypeOf |
( |
const char * |
type |
) |
[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 vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtk3DWidget. |
virtual int vtkImageTracerWidget::IsA |
( |
const char * |
type |
) |
[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 vtkTypeRevisionMacro found in vtkSetGet.h.
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] |
|
virtual void vtkImageTracerWidget::PlaceWidget |
( |
double |
bounds[6] |
) |
[virtual] |
|
|
Methods that satisfy the superclass' API.
Implements vtk3DWidget. |
void vtkImageTracerWidget::PlaceWidget |
( |
|
) |
[inline, virtual] |
|
void vtkImageTracerWidget::PlaceWidget |
( |
double |
xmin, |
|
|
double |
xmax, |
|
|
double |
ymin, |
|
|
double |
ymax, |
|
|
double |
zmin, |
|
|
double |
zmax |
|
) |
[inline, virtual] |
|
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. |
virtual vtkProperty* vtkImageTracerWidget::GetHandleProperty |
( |
|
) |
[virtual] |
|
|
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::SetSelectedHandleProperty |
( |
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. |
virtual vtkProperty* vtkImageTracerWidget::GetSelectedHandleProperty |
( |
|
) |
[virtual] |
|
|
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. |
virtual vtkProperty* vtkImageTracerWidget::GetLineProperty |
( |
|
) |
[virtual] |
|
|
Set/Get the line properties. The properties of the line when selected and unselected can be manipulated. |
virtual void vtkImageTracerWidget::SetSelectedLineProperty |
( |
vtkProperty * |
|
) |
[virtual] |
|
|
Set/Get the line properties. The properties of the line when selected and unselected can be manipulated. |
virtual vtkProperty* vtkImageTracerWidget::GetSelectedLineProperty |
( |
|
) |
[virtual] |
|
|
Set/Get the line properties. The properties of the line when selected and unselected can be manipulated. |
void vtkImageTracerWidget::SetProp |
( |
vtkProp * |
prop |
) |
|
|
virtual void vtkImageTracerWidget::SetProjectToPlane |
( |
int |
|
) |
[virtual] |
|
|
Force handles to be on a specific ortho plane. |
virtual int vtkImageTracerWidget::GetProjectToPlane |
( |
|
) |
[virtual] |
|
|
Force handles to be on a specific ortho plane. |
virtual void vtkImageTracerWidget::ProjectToPlaneOn |
( |
|
) |
[virtual] |
|
|
Force handles to be on a specific ortho plane. |
virtual void vtkImageTracerWidget::ProjectToPlaneOff |
( |
|
) |
[virtual] |
|
|
Force handles to be on a specific ortho plane. |
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. |
virtual int vtkImageTracerWidget::GetProjectionNormal |
( |
|
) |
[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. |
void vtkImageTracerWidget::SetProjectionNormalToXAxes |
( |
|
) |
[inline] |
|
|
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 154 of file vtkImageTracerWidget.h. |
void vtkImageTracerWidget::SetProjectionNormalToYAxes |
( |
|
) |
[inline] |
|
|
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 156 of file vtkImageTracerWidget.h. |
void vtkImageTracerWidget::SetProjectionNormalToZAxes |
( |
|
) |
[inline] |
|
|
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 158 of file vtkImageTracerWidget.h. |
void vtkImageTracerWidget::SetProjectionPosition |
( |
double |
position |
) |
|
|
|
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. |
virtual double vtkImageTracerWidget::GetProjectionPosition |
( |
|
) |
[virtual] |
|
|
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. |
void vtkImageTracerWidget::SetSnapToImage |
( |
int |
snap |
) |
|
|
|
Force snapping to image data while tracing. |
virtual int vtkImageTracerWidget::GetSnapToImage |
( |
|
) |
[virtual] |
|
|
Force snapping to image data while tracing. |
virtual void vtkImageTracerWidget::SnapToImageOn |
( |
|
) |
[virtual] |
|
|
Force snapping to image data while tracing. |
virtual void vtkImageTracerWidget::SnapToImageOff |
( |
|
) |
[virtual] |
|
|
Force snapping to image data while tracing. |
virtual void vtkImageTracerWidget::SetAutoClose |
( |
int |
|
) |
[virtual] |
|
|
In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. |
virtual int vtkImageTracerWidget::GetAutoClose |
( |
|
) |
[virtual] |
|
|
In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. |
virtual void vtkImageTracerWidget::AutoCloseOn |
( |
|
) |
[virtual] |
|
|
In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. |
virtual void vtkImageTracerWidget::AutoCloseOff |
( |
|
) |
[virtual] |
|
|
In concert with a CaptureRadius value, automatically form a closed path by connecting first to last path points. |
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. |
virtual double vtkImageTracerWidget::GetCaptureRadius |
( |
|
) |
[virtual] |
|
|
Set/Get the capture radius for automatic path closing. For image data, capture radius should be half the distance between voxel/pixel centers. |
void vtkImageTracerWidget::GetPath |
( |
vtkPolyData * |
pd |
) |
|
|
|
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. |
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. |
virtual int vtkImageTracerWidget::GetImageSnapType |
( |
|
) |
[virtual] |
|
|
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. |
double* vtkImageTracerWidget::GetHandlePosition |
( |
int |
handle |
) |
|
|
|
Set/Get the handle position in terms of a zero-based array of handles. |
virtual int vtkImageTracerWidget::GetNumberOfHandles |
( |
|
) |
[virtual] |
|
|
Get the number of handles. |
void vtkImageTracerWidget::SetInteraction |
( |
int |
interact |
) |
|
|
|
Enable/disable mouse interaction when the widget is visible. |
virtual int vtkImageTracerWidget::GetInteraction |
( |
|
) |
[virtual] |
|
|
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. |
void vtkImageTracerWidget::InitializeHandles |
( |
vtkPoints * |
|
) |
|
|
|
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. |
virtual int vtkImageTracerWidget::GetIsClosed |
( |
|
) |
[virtual] |
|
|
Is the path closed or open? |
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::OnLeftButtonDown |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::OnLeftButtonUp |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::OnMiddleButtonDown |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::OnMiddleButtonUp |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::OnRightButtonDown |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::OnRightButtonUp |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::OnMouseMove |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::AddObservers |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::Trace |
( |
int |
X, |
|
|
int |
Y |
|
) |
[protected] |
|
void vtkImageTracerWidget::Snap |
( |
double * |
|
) |
[protected] |
|
void vtkImageTracerWidget::MovePoint |
( |
double * |
p1, |
|
|
double * |
p2 |
|
) |
[protected] |
|
void vtkImageTracerWidget::ClosePath |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::AppendHandles |
( |
double * |
|
) |
[protected] |
|
void vtkImageTracerWidget::ResetHandles |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::AllocateHandles |
( |
int |
nhandles |
) |
[protected] |
|
void vtkImageTracerWidget::AdjustHandlePosition |
( |
int |
, |
|
|
double * |
|
|
) |
[protected] |
|
int vtkImageTracerWidget::HighlightHandle |
( |
vtkProp * |
prop |
) |
[protected] |
|
void vtkImageTracerWidget::EraseHandle |
( |
int |
|
) |
[protected] |
|
virtual void vtkImageTracerWidget::SizeHandles |
( |
|
) |
[protected, virtual] |
|
void vtkImageTracerWidget::InsertHandleOnLine |
( |
double * |
|
) |
[protected] |
|
void vtkImageTracerWidget::HighlightLine |
( |
int |
|
) |
[protected] |
|
void vtkImageTracerWidget::BuildLinesFromHandles |
( |
|
) |
[protected] |
|
void vtkImageTracerWidget::ResetLine |
( |
double * |
|
) |
[protected] |
|
void vtkImageTracerWidget::AppendLine |
( |
double * |
|
) |
[protected] |
|
void vtkImageTracerWidget::CreateDefaultProperties |
( |
|
) |
[protected] |
|
Member Data Documentation
The documentation for this class was generated from the following file: