Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
vtkLineWidget Class Reference
#include <vtkLineWidget.h>
Inheritance diagram for vtkLineWidget:
[legend]Collaboration diagram for vtkLineWidget:
[legend]List of all members.
Detailed Description
3D widget for manipulating a line
- Date:
-
2002/11/18 20:20:00
- Revision:
-
1.22
This 3D widget defines a line that can be interactively placed in a scene. The line has two handles (at its endpoints), plus the line can be picked to translate it in the scene. A nice feature of the object is that the vtkLineWidget, like any 3D widget, will work with the current interactor style and any other widgets present in the scene. That is, if vtkLineWidget does not handle an event, then all other registered observers (including the interactor style) have an opportunity to process the event. Otherwise, the vtkLineWidget will terminate the processing of the event that it handles.
To use this object, just invoke SetInteractor() with the argument of the method a vtkRenderWindowInteractor. You may also wish to invoke "PlaceWidget()" to initially position the widget. The interactor will act normally until the "i" key (for "interactor") is pressed, at which point the vtkLineWidget will appear. (See superclass documentation for information about changing this behavior.) By grabbing one of the two end point handles (use the left mouse button), the line can be oriented and stretched (the other end point remains fixed). By grabbing the line itself, or using the middle mouse button, the entire line can be translated. Scaling (about the center of the line) is achieved by using the right mouse button. By moving the mouse "up" the render window the line will be made bigger; by moving "down" the render window the widget will be made smaller. Turn off the widget by pressing the "i" key again (or invoke the Off() method). (Note: picking the line or either one of the two end point handles causes a vtkPointWidget to appear. This widget has the ability to constrain motion to an axis by pressing the "shift" key while moving the mouse.)
The vtkLineWidget has several methods that can be used in conjunction with other VTK objects. The Set/GetResolution() methods control the number of subdivisions of the line; the GetPolyData() method can be used to get the polygonal representation and can be used for things like seeding streamlines. Typical usage of the widget is to make use of the StartInteractionEvent, InteractionEvent, and EndInteractionEvent events. The InteractionEvent is called on mouse motion; the other two events are called on button down and button up (either left or right button).
Some additional features of this class include the ability to control the properties of the widget. You can set the properties of the selected and unselected representations of the line. For example, you can set the property for the handles and line. In addition there are methods to constrain the line so that it is aligned along the x-y-z axes.
- Warning:
-
Note that handles and line can be picked even when they are "behind" other actors. This is an intended feature and not a bug.
- See also:
-
vtk3DWidget vtkBoxWidget vtkPlaneWidget
- Events:
-
vtkCommand::EnableEvent vtkCommand::InteractionEvent vtkCommand::EndInteractionEvent vtkCommand::DisableEvent vtkCommand::StartInteractionEvent
- Created by:
-
- CVS contributions (if > 5%):
-
- Schroeder, Will (87%)
- Cedilnik, Andy (7%)
- CVS logs (CVSweb):
-
- .
h
(/Hybrid/vtkLineWidget.h)
- .
cxx
(/Hybrid/vtkLineWidget.cxx)
- Examples:
-
vtkLineWidget (Examples)
- Tests:
-
vtkLineWidget (Tests)
Definition at line 113 of file vtkLineWidget.h.
|
Public Types |
typedef vtk3DWidget | Superclass |
Public Methods |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | GetPolyData (vtkPolyData *pd) |
|
virtual void | SetEnabled (int) |
virtual void | PlaceWidget (float bounds[6]) |
void | PlaceWidget () |
void | PlaceWidget (float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) |
|
void | SetResolution (int r) |
int | GetResolution () |
|
void | SetPoint1 (float x, float y, float z) |
void | SetPoint1 (float x[3]) |
float * | GetPoint1 () |
void | GetPoint1 (float xyz[3]) |
|
void | SetPoint2 (float x, float y, float z) |
void | SetPoint2 (float x[3]) |
float * | GetPoint2 () |
void | GetPoint2 (float xyz[3]) |
|
virtual void | SetAlign (int) |
virtual int | GetAlign () |
void | SetAlignToXAxis () |
void | SetAlignToYAxis () |
void | SetAlignToZAxis () |
void | SetAlignToNone () |
|
virtual void | SetClampToBounds (int) |
virtual int | GetClampToBounds () |
virtual void | ClampToBoundsOn () |
virtual void | ClampToBoundsOff () |
|
virtual vtkProperty * | GetHandleProperty () |
virtual vtkProperty * | GetSelectedHandleProperty () |
|
virtual vtkProperty * | GetLineProperty () |
virtual vtkProperty * | GetSelectedLineProperty () |
Static Public Methods |
vtkLineWidget * | New () |
int | IsTypeOf (const char *type) |
vtkLineWidget * | SafeDownCast (vtkObject *o) |
Protected Types |
enum | WidgetState {
Start = 0,
MovingHandle,
MovingLine,
Scaling,
Outside
} |
enum | AlignmentState { XAxis,
YAxis,
ZAxis,
None
} |
Protected Methods |
| vtkLineWidget () |
| ~vtkLineWidget () |
void | OnLeftButtonDown () |
void | OnLeftButtonUp () |
void | OnMiddleButtonDown () |
void | OnMiddleButtonUp () |
void | OnRightButtonDown () |
void | OnRightButtonUp () |
virtual void | OnMouseMove () |
void | HighlightLine (int highlight) |
void | BuildRepresentation () |
virtual void | SizeHandles () |
void | HandlesOn (double length) |
void | HandlesOff () |
int | HighlightHandle (vtkProp *prop) |
void | HighlightHandles (int highlight) |
void | SetLinePosition (float x[3]) |
void | Scale (double *p1, double *p2, int X, int Y) |
void | ClampPosition (float x[3]) |
int | InBounds (float x[3]) |
void | CreateDefaultProperties () |
void | GenerateLine () |
void | EnablePointWidget () |
void | DisablePointWidget () |
int | ForwardEvent (unsigned long event) |
Static Protected Methods |
void | ProcessEvents (vtkObject *object, unsigned long event, void *clientdata, void *calldata) |
Protected Attributes |
int | State |
int | Align |
vtkActor * | LineActor |
vtkPolyDataMapper * | LineMapper |
vtkLineSource * | LineSource |
vtkActor ** | Handle |
vtkPolyDataMapper ** | HandleMapper |
vtkSphereSource ** | HandleGeometry |
vtkCellPicker * | HandlePicker |
vtkCellPicker * | LinePicker |
vtkActor * | CurrentHandle |
float | LastPosition [3] |
int | ClampToBounds |
vtkProperty * | HandleProperty |
vtkProperty * | SelectedHandleProperty |
vtkProperty * | LineProperty |
vtkProperty * | SelectedLineProperty |
vtkPointWidget * | PointWidget |
vtkPointWidget * | PointWidget1 |
vtkPointWidget * | PointWidget2 |
vtkPWCallback * | PWCallback |
vtkPW1Callback * | PW1Callback |
vtkPW2Callback * | PW2Callback |
vtkPointWidget * | CurrentPointWidget |
Friends |
class | vtkPWCallback |
Member Typedef Documentation
Member Enumeration Documentation
enum vtkLineWidget::WidgetState [protected]
|
|
|
- Enumeration values:
-
Start |
|
MovingHandle |
|
MovingLine |
|
Scaling |
|
Outside |
|
Definition at line 216 of file vtkLineWidget.h. |
enum vtkLineWidget::AlignmentState [protected]
|
|
Constructor & Destructor Documentation
vtkLineWidget::vtkLineWidget |
( |
|
) |
[protected] |
|
vtkLineWidget::~vtkLineWidget |
( |
|
) |
[protected] |
|
Member Function Documentation
vtkLineWidget* vtkLineWidget::New |
( |
|
) |
[static] |
|
|
Instantiate the object.
Reimplemented from vtkObject. |
virtual const char* vtkLineWidget::GetClassName |
( |
|
) |
[virtual] |
|
int vtkLineWidget::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 vtkLineWidget::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. |
vtkLineWidget* vtkLineWidget::SafeDownCast |
( |
vtkObject * |
o |
) |
[static] |
|
void vtkLineWidget::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 vtkLineWidget::SetEnabled |
( |
int |
|
) |
[virtual] |
|
virtual void vtkLineWidget::PlaceWidget |
( |
float |
bounds[6] |
) |
[virtual] |
|
|
Methods that satisfy the superclass' API.
Implements vtk3DWidget. |
void vtkLineWidget::PlaceWidget |
( |
|
) |
[inline] |
|
void vtkLineWidget::PlaceWidget |
( |
float |
xmin, |
|
|
float |
xmax, |
|
|
float |
ymin, |
|
|
float |
ymax, |
|
|
float |
zmin, |
|
|
float |
zmax |
|
) |
[inline] |
|
void vtkLineWidget::SetResolution |
( |
int |
r |
) |
[inline] |
|
|
Set/Get the resolution (number of subdivisions) of the line.
Definition at line 135 of file vtkLineWidget.h. |
int vtkLineWidget::GetResolution |
( |
|
) |
[inline] |
|
|
Set/Get the resolution (number of subdivisions) of the line.
Definition at line 137 of file vtkLineWidget.h. |
void vtkLineWidget::SetPoint1 |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
|
|
|
Set/Get the position of first end point. |
void vtkLineWidget::SetPoint1 |
( |
float |
x[3] |
) |
[inline] |
|
float* vtkLineWidget::GetPoint1 |
( |
|
) |
[inline] |
|
void vtkLineWidget::GetPoint1 |
( |
float |
xyz[3] |
) |
[inline] |
|
void vtkLineWidget::SetPoint2 |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
|
|
|
Set position of other end point. |
void vtkLineWidget::SetPoint2 |
( |
float |
x[3] |
) |
[inline] |
|
float* vtkLineWidget::GetPoint2 |
( |
|
) |
[inline] |
|
void vtkLineWidget::GetPoint2 |
( |
float |
xyz[3] |
) |
[inline] |
|
virtual void vtkLineWidget::SetAlign |
( |
int |
|
) |
[virtual] |
|
|
Force the line widget to be aligned with one of the x-y-z axes. Remember that when the state changes, a ModifiedEvent is invoked. This can be used to snap the line to the axes if it is orginally not aligned. |
virtual int vtkLineWidget::GetAlign |
( |
|
) |
[virtual] |
|
|
Force the line widget to be aligned with one of the x-y-z axes. Remember that when the state changes, a ModifiedEvent is invoked. This can be used to snap the line to the axes if it is orginally not aligned. |
void vtkLineWidget::SetAlignToXAxis |
( |
|
) |
[inline] |
|
|
Force the line widget to be aligned with one of the x-y-z axes. Remember that when the state changes, a ModifiedEvent is invoked. This can be used to snap the line to the axes if it is orginally not aligned.
Definition at line 170 of file vtkLineWidget.h. |
void vtkLineWidget::SetAlignToYAxis |
( |
|
) |
[inline] |
|
|
Force the line widget to be aligned with one of the x-y-z axes. Remember that when the state changes, a ModifiedEvent is invoked. This can be used to snap the line to the axes if it is orginally not aligned.
Definition at line 171 of file vtkLineWidget.h. |
void vtkLineWidget::SetAlignToZAxis |
( |
|
) |
[inline] |
|
|
Force the line widget to be aligned with one of the x-y-z axes. Remember that when the state changes, a ModifiedEvent is invoked. This can be used to snap the line to the axes if it is orginally not aligned.
Definition at line 172 of file vtkLineWidget.h. |
void vtkLineWidget::SetAlignToNone |
( |
|
) |
[inline] |
|
|
Force the line widget to be aligned with one of the x-y-z axes. Remember that when the state changes, a ModifiedEvent is invoked. This can be used to snap the line to the axes if it is orginally not aligned.
Definition at line 173 of file vtkLineWidget.h. |
virtual void vtkLineWidget::SetClampToBounds |
( |
int |
|
) |
[virtual] |
|
|
Enable/disable clamping of the point end points to the bounding box of the data. The bounding box is defined from the last PlaceWidget() invocation, and includes the effect of the PlaceFactor which is used to gram/shrink the bounding box. |
virtual int vtkLineWidget::GetClampToBounds |
( |
|
) |
[virtual] |
|
|
Enable/disable clamping of the point end points to the bounding box of the data. The bounding box is defined from the last PlaceWidget() invocation, and includes the effect of the PlaceFactor which is used to gram/shrink the bounding box. |
virtual void vtkLineWidget::ClampToBoundsOn |
( |
|
) |
[virtual] |
|
|
Enable/disable clamping of the point end points to the bounding box of the data. The bounding box is defined from the last PlaceWidget() invocation, and includes the effect of the PlaceFactor which is used to gram/shrink the bounding box. |
virtual void vtkLineWidget::ClampToBoundsOff |
( |
|
) |
[virtual] |
|
|
Enable/disable clamping of the point end points to the bounding box of the data. The bounding box is defined from the last PlaceWidget() invocation, and includes the effect of the PlaceFactor which is used to gram/shrink the bounding box. |
|
Grab the polydata (including points) that defines the line. The polydata consists of n+1 points, where n is the resolution of the line. 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 polyline are added to it. |
virtual vtkProperty* vtkLineWidget::GetHandleProperty |
( |
|
) |
[virtual] |
|
|
Get the handle properties (the little balls are the handles). The properties of the handles when selected and normal can be manipulated. |
virtual vtkProperty* vtkLineWidget::GetSelectedHandleProperty |
( |
|
) |
[virtual] |
|
|
Get the handle properties (the little balls are the handles). The properties of the handles when selected and normal can be manipulated. |
virtual vtkProperty* vtkLineWidget::GetLineProperty |
( |
|
) |
[virtual] |
|
|
Get the line properties. The properties of the line when selected and unselected can be manipulated. |
virtual vtkProperty* vtkLineWidget::GetSelectedLineProperty |
( |
|
) |
[virtual] |
|
|
Get the line properties. The properties of the line when selected and unselected can be manipulated. |
void vtkLineWidget::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 vtkLineWidget::OnLeftButtonDown |
( |
|
) |
[protected] |
|
void vtkLineWidget::OnLeftButtonUp |
( |
|
) |
[protected] |
|
void vtkLineWidget::OnMiddleButtonDown |
( |
|
) |
[protected] |
|
void vtkLineWidget::OnMiddleButtonUp |
( |
|
) |
[protected] |
|
void vtkLineWidget::OnRightButtonDown |
( |
|
) |
[protected] |
|
void vtkLineWidget::OnRightButtonUp |
( |
|
) |
[protected] |
|
virtual void vtkLineWidget::OnMouseMove |
( |
|
) |
[protected, virtual] |
|
void vtkLineWidget::HighlightLine |
( |
int |
highlight |
) |
[protected] |
|
void vtkLineWidget::BuildRepresentation |
( |
|
) |
[protected] |
|
virtual void vtkLineWidget::SizeHandles |
( |
|
) |
[protected, virtual] |
|
void vtkLineWidget::HandlesOn |
( |
double |
length |
) |
[protected] |
|
void vtkLineWidget::HandlesOff |
( |
|
) |
[protected] |
|
int vtkLineWidget::HighlightHandle |
( |
vtkProp * |
prop |
) |
[protected] |
|
void vtkLineWidget::HighlightHandles |
( |
int |
highlight |
) |
[protected] |
|
void vtkLineWidget::SetLinePosition |
( |
float |
x[3] |
) |
[protected] |
|
void vtkLineWidget::Scale |
( |
double * |
p1, |
|
|
double * |
p2, |
|
|
int |
X, |
|
|
int |
Y |
|
) |
[protected] |
|
void vtkLineWidget::ClampPosition |
( |
float |
x[3] |
) |
[protected] |
|
int vtkLineWidget::InBounds |
( |
float |
x[3] |
) |
[protected] |
|
void vtkLineWidget::CreateDefaultProperties |
( |
|
) |
[protected] |
|
void vtkLineWidget::GenerateLine |
( |
|
) |
[protected] |
|
void vtkLineWidget::EnablePointWidget |
( |
|
) |
[protected] |
|
void vtkLineWidget::DisablePointWidget |
( |
|
) |
[protected] |
|
int vtkLineWidget::ForwardEvent |
( |
unsigned long |
event |
) |
[protected] |
|
Friends And Related Function Documentation
friend class vtkPWCallback [friend]
|
|
Member Data Documentation
int vtkLineWidget::State [protected]
|
|
int vtkLineWidget::Align [protected]
|
|
vtkActor* vtkLineWidget::LineActor [protected]
|
|
vtkActor** vtkLineWidget::Handle [protected]
|
|
vtkActor* vtkLineWidget::CurrentHandle [protected]
|
|
float vtkLineWidget::LastPosition[3] [protected]
|
|
int vtkLineWidget::ClampToBounds [protected]
|
|
vtkProperty* vtkLineWidget::SelectedHandleProperty [protected]
|
|
vtkProperty* vtkLineWidget::SelectedLineProperty [protected]
|
|
vtkPWCallback* vtkLineWidget::PWCallback [protected]
|
|
vtkPW1Callback* vtkLineWidget::PW1Callback [protected]
|
|
vtkPW2Callback* vtkLineWidget::PW2Callback [protected]
|
|
The documentation for this class was generated from the following file: