VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
vtkLineWidget Class Reference

3D widget for manipulating a line More...

#include <vtkLineWidget.h>

Inheritance diagram for vtkLineWidget:
[legend]
Collaboration diagram for vtkLineWidget:
[legend]

Public Types

typedef vtk3DWidget Superclass
 
- Public Types inherited from vtk3DWidget
typedef vtkInteractorObserver Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkLineWidgetNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
void GetPolyData (vtkPolyData *pd)
 
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)
 
void SetResolution (int r)
 
int GetResolution ()
 
void SetPoint1 (double x, double y, double z)
 
void SetPoint1 (double x[3])
 
double * GetPoint1 ()
 
void GetPoint1 (double xyz[3])
 
void SetPoint2 (double x, double y, double z)
 
void SetPoint2 (double x[3])
 
double * GetPoint2 ()
 
void GetPoint2 (double 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 ()
 
- Public Member Functions inherited from vtk3DWidget
vtk3DWidgetNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual void SetProp3D (vtkProp3D *)
 
virtual vtkProp3D * GetProp3D ()
 
virtual void SetInputData (vtkDataSet *)
 
virtual void SetInputConnection (vtkAlgorithmOutput *)
 
virtual vtkDataSet * GetInput ()
 
virtual void SetPlaceFactor (double)
 
virtual double GetPlaceFactor ()
 
virtual void SetHandleSize (double)
 
virtual double GetHandleSize ()
 

Static Public Member Functions

static vtkLineWidgetNew ()
 
static int IsTypeOf (const char *type)
 
static vtkLineWidgetSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtk3DWidget
static int IsTypeOf (const char *type)
 
static vtk3DWidgetSafeDownCast (vtkObjectBase *o)
 

Protected Types

enum  WidgetState {
  Start =0, MovingHandle, MovingLine, Scaling,
  Outside
}
 
enum  AlignmentState { XAxis, YAxis, ZAxis, None }
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 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 (double x[3])
 
virtual void RegisterPickers ()
 
void Scale (double *p1, double *p2, int X, int Y)
 
void ClampPosition (double x[3])
 
int InBounds (double x[3])
 
void CreateDefaultProperties ()
 
void GenerateLine ()
 
void EnablePointWidget ()
 
void DisablePointWidget ()
 
int ForwardEvent (unsigned long event)
 
- Protected Member Functions inherited from vtk3DWidget
 vtk3DWidget ()
 
 ~vtk3DWidget ()
 
void AdjustBounds (double bounds[6], double newBounds[6], double center[3])
 
double SizeHandles (double factor)
 
void UpdateInput ()
 

Static Protected Member Functions

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

Protected Attributes

int State
 
int Align
 
vtkActor * LineActor
 
vtkPolyDataMapper * LineMapper
 
vtkLineSourceLineSource
 
vtkActor ** Handle
 
vtkPolyDataMapper ** HandleMapper
 
vtkSphereSource ** HandleGeometry
 
vtkCellPicker * HandlePicker
 
vtkCellPicker * LinePicker
 
vtkActor * CurrentHandle
 
double LastPosition [3]
 
int ClampToBounds
 
vtkProperty * HandleProperty
 
vtkProperty * SelectedHandleProperty
 
vtkProperty * LineProperty
 
vtkProperty * SelectedLineProperty
 
vtkPointWidgetPointWidget
 
vtkPointWidgetPointWidget1
 
vtkPointWidgetPointWidget2
 
vtkPWCallbackPWCallback
 
vtkPW1Callback * PW1Callback
 
vtkPW2Callback * PW2Callback
 
vtkPointWidgetCurrentPointWidget
 
- Protected Attributes inherited from vtk3DWidget
vtkProp3D * Prop3D
 
vtk3DWidgetConnection * ConnectionHolder
 
double PlaceFactor
 
int Placed
 
double InitialBounds [6]
 
double InitialLength
 
double HandleSize
 
int ValidPick
 
double LastPickPosition [3]
 

Friends

class vtkPWCallback
 

Detailed Description

3D widget for manipulating a line

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.

See Also
vtk3DWidget vtkBoxWidget vtkPlaneWidget
Events:
vtkCommand::EndInteractionEvent vtkCommand::EnableEvent vtkCommand::InteractionEvent vtkCommand::StartInteractionEvent vtkCommand::DisableEvent
Examples:
vtkLineWidget (Examples)
Tests:
vtkLineWidget (Tests)

Definition at line 95 of file vtkLineWidget.h.

Member Typedef Documentation

Definition at line 101 of file vtkLineWidget.h.

Member Enumeration Documentation

Enumerator
Start 
MovingHandle 
MovingLine 
Scaling 
Outside 

Definition at line 198 of file vtkLineWidget.h.

Enumerator
XAxis 
YAxis 
ZAxis 
None 

Definition at line 227 of file vtkLineWidget.h.

Constructor & Destructor Documentation

vtkLineWidget::vtkLineWidget ( )
protected
vtkLineWidget::~vtkLineWidget ( )
protected

Member Function Documentation

static vtkLineWidget* vtkLineWidget::New ( )
static

Instantiate the object.

static int vtkLineWidget::IsTypeOf ( const char *  type)
static
virtual int vtkLineWidget::IsA ( const char *  type)
virtual

Reimplemented from vtk3DWidget.

static vtkLineWidget* vtkLineWidget::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkLineWidget::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtk3DWidget.

vtkLineWidget* vtkLineWidget::NewInstance ( ) const
void vtkLineWidget::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual void vtkLineWidget::SetEnabled ( int  )
virtual

Methods that satisfy the superclass' API.

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

Methods that satisfy the superclass' API.

Implements vtk3DWidget.

void vtkLineWidget::PlaceWidget ( )
inlinevirtual

Methods that satisfy the superclass' API.

Reimplemented from vtk3DWidget.

Definition at line 108 of file vtkLineWidget.h.

void vtkLineWidget::PlaceWidget ( double  xmin,
double  xmax,
double  ymin,
double  ymax,
double  zmin,
double  zmax 
)
inlinevirtual

Methods that satisfy the superclass' API.

Reimplemented from vtk3DWidget.

Definition at line 110 of file vtkLineWidget.h.

void vtkLineWidget::SetResolution ( int  r)
inline

Set/Get the resolution (number of subdivisions) of the line.

Definition at line 117 of file vtkLineWidget.h.

int vtkLineWidget::GetResolution ( )
inline

Set/Get the resolution (number of subdivisions) of the line.

Definition at line 119 of file vtkLineWidget.h.

void vtkLineWidget::SetPoint1 ( double  x,
double  y,
double  z 
)

Set/Get the position of first end point.

void vtkLineWidget::SetPoint1 ( double  x[3])
inline

Set/Get the position of first end point.

Definition at line 126 of file vtkLineWidget.h.

double* vtkLineWidget::GetPoint1 ( )
inline

Set/Get the position of first end point.

Definition at line 128 of file vtkLineWidget.h.

void vtkLineWidget::GetPoint1 ( double  xyz[3])
inline

Set/Get the position of first end point.

Definition at line 130 of file vtkLineWidget.h.

void vtkLineWidget::SetPoint2 ( double  x,
double  y,
double  z 
)

Set position of other end point.

void vtkLineWidget::SetPoint2 ( double  x[3])
inline

Set position of other end point.

Definition at line 137 of file vtkLineWidget.h.

double* vtkLineWidget::GetPoint2 ( )
inline

Set position of other end point.

Definition at line 139 of file vtkLineWidget.h.

void vtkLineWidget::GetPoint2 ( double  xyz[3])
inline

Set position of other end point.

Definition at line 141 of file vtkLineWidget.h.

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 originally 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 originally 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 originally not aligned.

Definition at line 152 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 originally not aligned.

Definition at line 153 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 originally not aligned.

Definition at line 154 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 originally not aligned.

Definition at line 155 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.

void vtkLineWidget::GetPolyData ( vtkPolyData pd)

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.

static void vtkLineWidget::ProcessEvents ( vtkObject *  object,
unsigned long  event,
void *  clientdata,
void *  calldata 
)
staticprotected
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 ( )
protectedvirtual
void vtkLineWidget::HighlightLine ( int  highlight)
protected
void vtkLineWidget::BuildRepresentation ( )
protected
virtual void vtkLineWidget::SizeHandles ( )
protectedvirtual

Reimplemented from vtk3DWidget.

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 ( double  x[3])
protected
virtual void vtkLineWidget::RegisterPickers ( )
protectedvirtual
void vtkLineWidget::Scale ( double *  p1,
double *  p2,
int  X,
int  Y 
)
protected
void vtkLineWidget::ClampPosition ( double  x[3])
protected
int vtkLineWidget::InBounds ( double  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

Definition at line 195 of file vtkLineWidget.h.

Member Data Documentation

int vtkLineWidget::State
protected

Definition at line 197 of file vtkLineWidget.h.

int vtkLineWidget::Align
protected

Definition at line 224 of file vtkLineWidget.h.

vtkActor* vtkLineWidget::LineActor
protected

Definition at line 236 of file vtkLineWidget.h.

vtkPolyDataMapper* vtkLineWidget::LineMapper
protected

Definition at line 237 of file vtkLineWidget.h.

vtkLineSource* vtkLineWidget::LineSource
protected

Definition at line 238 of file vtkLineWidget.h.

vtkActor** vtkLineWidget::Handle
protected

Definition at line 242 of file vtkLineWidget.h.

vtkPolyDataMapper** vtkLineWidget::HandleMapper
protected

Definition at line 243 of file vtkLineWidget.h.

vtkSphereSource** vtkLineWidget::HandleGeometry
protected

Definition at line 244 of file vtkLineWidget.h.

vtkCellPicker* vtkLineWidget::HandlePicker
protected

Definition at line 254 of file vtkLineWidget.h.

vtkCellPicker* vtkLineWidget::LinePicker
protected

Definition at line 255 of file vtkLineWidget.h.

vtkActor* vtkLineWidget::CurrentHandle
protected

Definition at line 256 of file vtkLineWidget.h.

double vtkLineWidget::LastPosition[3]
protected

Definition at line 257 of file vtkLineWidget.h.

int vtkLineWidget::ClampToBounds
protected

Definition at line 267 of file vtkLineWidget.h.

vtkProperty* vtkLineWidget::HandleProperty
protected

Definition at line 273 of file vtkLineWidget.h.

vtkProperty* vtkLineWidget::SelectedHandleProperty
protected

Definition at line 274 of file vtkLineWidget.h.

vtkProperty* vtkLineWidget::LineProperty
protected

Definition at line 275 of file vtkLineWidget.h.

vtkProperty* vtkLineWidget::SelectedLineProperty
protected

Definition at line 276 of file vtkLineWidget.h.

vtkPointWidget* vtkLineWidget::PointWidget
protected

Definition at line 282 of file vtkLineWidget.h.

vtkPointWidget* vtkLineWidget::PointWidget1
protected

Definition at line 283 of file vtkLineWidget.h.

vtkPointWidget* vtkLineWidget::PointWidget2
protected

Definition at line 284 of file vtkLineWidget.h.

vtkPWCallback* vtkLineWidget::PWCallback
protected

Definition at line 285 of file vtkLineWidget.h.

vtkPW1Callback* vtkLineWidget::PW1Callback
protected

Definition at line 286 of file vtkLineWidget.h.

vtkPW2Callback* vtkLineWidget::PW2Callback
protected

Definition at line 287 of file vtkLineWidget.h.

vtkPointWidget* vtkLineWidget::CurrentPointWidget
protected

Definition at line 288 of file vtkLineWidget.h.


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