VTK
|
3D widget for manipulating a finite plane More...
#include <vtkPlaneWidget.h>
Public Types | |
typedef vtkPolyDataSourceWidget | Superclass |
Public Types inherited from vtkPolyDataSourceWidget | |
typedef vtk3DWidget | Superclass |
Public Types inherited from vtk3DWidget | |
typedef vtkInteractorObserver | Superclass |
Public Types inherited from vtkInteractorObserver | |
typedef vtkObject | Superclass |
Public Types inherited from vtkObject | |
typedef vtkObjectBase | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkPlaneWidget * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | GetPolyData (vtkPolyData *pd) |
void | GetPlane (vtkPlane *plane) |
vtkPolyDataAlgorithm * | GetPolyDataAlgorithm () |
void | UpdatePlacement (void) |
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 | SetOrigin (double x, double y, double z) |
void | SetOrigin (double x[3]) |
double * | GetOrigin () |
void | GetOrigin (double xyz[3]) |
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]) |
void | SetCenter (double x, double y, double z) |
void | SetCenter (double x[3]) |
double * | GetCenter () |
void | GetCenter (double xyz[3]) |
void | SetNormal (double x, double y, double z) |
void | SetNormal (double x[3]) |
double * | GetNormal () |
void | GetNormal (double xyz[3]) |
virtual void | SetRepresentation (int) |
virtual int | GetRepresentation () |
void | SetRepresentationToOff () |
void | SetRepresentationToOutline () |
void | SetRepresentationToWireframe () |
void | SetRepresentationToSurface () |
virtual void | SetNormalToXAxis (int) |
virtual int | GetNormalToXAxis () |
virtual void | NormalToXAxisOn () |
virtual void | NormalToXAxisOff () |
virtual void | SetNormalToYAxis (int) |
virtual int | GetNormalToYAxis () |
virtual void | NormalToYAxisOn () |
virtual void | NormalToYAxisOff () |
virtual void | SetNormalToZAxis (int) |
virtual int | GetNormalToZAxis () |
virtual void | NormalToZAxisOn () |
virtual void | NormalToZAxisOff () |
virtual vtkProperty * | GetHandleProperty () |
virtual vtkProperty * | GetSelectedHandleProperty () |
virtual void | SetPlaneProperty (vtkProperty *) |
virtual vtkProperty * | GetPlaneProperty () |
virtual vtkProperty * | GetSelectedPlaneProperty () |
Public Member Functions inherited from vtkPolyDataSourceWidget | |
vtkPolyDataSourceWidget * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | PlaceWidget (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) |
Public Member Functions inherited from vtk3DWidget | |
vtk3DWidget * | NewInstance () const |
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 () |
Public Member Functions inherited from vtkInteractorObserver | |
vtkInteractorObserver * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | OnChar () |
int | GetEnabled () |
void | EnabledOn () |
void | EnabledOff () |
void | On () |
void | Off () |
virtual void | SetInteractor (vtkRenderWindowInteractor *iren) |
virtual vtkRenderWindowInteractor * | GetInteractor () |
virtual void | SetPriority (float) |
virtual float | GetPriority () |
virtual void | PickingManagedOn () |
virtual void | PickingManagedOff () |
virtual void | SetPickingManaged (bool) |
virtual bool | GetPickingManaged () |
virtual void | SetKeyPressActivation (int) |
virtual int | GetKeyPressActivation () |
virtual void | KeyPressActivationOn () |
virtual void | KeyPressActivationOff () |
virtual void | SetKeyPressActivationValue (char) |
virtual char | GetKeyPressActivationValue () |
virtual vtkRenderer * | GetDefaultRenderer () |
virtual void | SetDefaultRenderer (vtkRenderer *) |
virtual vtkRenderer * | GetCurrentRenderer () |
virtual void | SetCurrentRenderer (vtkRenderer *) |
void | GrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
void | ReleaseFocus () |
Public Member Functions inherited from vtkObject | |
vtkObject * | NewInstance () const |
virtual void | DebugOn () |
virtual void | DebugOff () |
bool | GetDebug () |
void | SetDebug (bool debugFlag) |
virtual void | Modified () |
virtual unsigned long | GetMTime () |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
int | HasObserver (unsigned long event, vtkCommand *) |
int | HasObserver (const char *event, vtkCommand *) |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
int | HasObserver (unsigned long event) |
int | HasObserver (const char *event) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
int | InvokeEvent (unsigned long event, void *callData) |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
virtual void | Delete () |
virtual void | FastDelete () |
void | Print (ostream &os) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
void | SetReferenceCount (int) |
void | PrintRevisions (ostream &) |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
int | GetReferenceCount () |
Static Public Member Functions | |
static vtkPlaneWidget * | New () |
static int | IsTypeOf (const char *type) |
static vtkPlaneWidget * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkPolyDataSourceWidget | |
static int | IsTypeOf (const char *type) |
static vtkPolyDataSourceWidget * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtk3DWidget | |
static int | IsTypeOf (const char *type) |
static vtk3DWidget * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkInteractorObserver | |
static int | IsTypeOf (const char *type) |
static vtkInteractorObserver * | SafeDownCast (vtkObjectBase *o) |
static void | ComputeDisplayToWorld (vtkRenderer *ren, double x, double y, double z, double worldPt[4]) |
static void | ComputeWorldToDisplay (vtkRenderer *ren, double x, double y, double z, double displayPt[3]) |
Static Public Member Functions inherited from vtkObject | |
static int | IsTypeOf (const char *type) |
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
static vtkObject * | New () |
static void | BreakOnError () |
static void | SetGlobalWarningDisplay (int val) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
Static Public Member Functions inherited from vtkObjectBase | |
static int | IsTypeOf (const char *name) |
static vtkObjectBase * | New () |
Protected Types | |
enum | WidgetState { Start =0, Moving, Scaling, Pushing, Rotating, Spinning, Outside } |
Static Protected Member Functions | |
static void | ProcessEvents (vtkObject *object, unsigned long event, void *clientdata, void *calldata) |
Static Protected Member Functions inherited from vtkInteractorObserver | |
static void | ProcessEvents (vtkObject *object, unsigned long event, void *clientdata, void *calldata) |
3D widget for manipulating a finite plane
This 3D widget defines a finite (bounded) plane that can be interactively placed in a scene. The plane has four handles (at its corner vertices), a normal vector, and the plane itself. The handles are used to resize the plane; the normal vector to rotate it, and the plane can be picked and translated. Selecting the plane while pressing CTRL makes it spin around the normal. A nice feature of the object is that the vtkPlaneWidget, like any 3D widget, will work with the current interactor style. That is, if vtkPlaneWidget does not handle an event, then all other registered observers (including the interactor style) have an opportunity to process the event. Otherwise, the vtkPlaneWidget 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. If the "i" key (for "interactor") is pressed, the vtkPlaneWidget will appear. (See superclass documentation for information about changing this behavior.) By grabbing the one of the four handles (use the left mouse button), the plane can be resized. By grabbing the plane itself, the entire plane can be arbitrarily translated. Pressing CTRL while grabbing the plane will spin the plane around the normal. If you select the normal vector, the plane can be arbitrarily rotated. Selecting any part of the widget with the middle mouse button enables translation of the plane along its normal. (Once selected using middle mouse, moving the mouse in the direction of the normal translates the plane in the direction of the normal; moving in the direction opposite the normal translates the plane in the direction opposite the normal.) Scaling (about the center of the plane) is achieved by using the right mouse button. By moving the mouse "up" the render window the plane will be made bigger; by moving "down" the render window the widget will be made smaller. Events that occur outside of the widget (i.e., no part of the widget is picked) are propagated to any other registered obsevers (such as the interaction style). Turn off the widget by pressing the "i" key again (or invoke the Off() method).
The vtkPlaneWidget has several methods that can be used in conjunction with other VTK objects. The Set/GetResolution() methods control the number of subdivisions of the plane; the GetPolyData() method can be used to get the polygonal representation and can be used for things like seeding stream lines. GetPlane() can be used to update a vtkPlane implicit function. 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 plane. For example, you can set the property for the handles and plane. In addition there are methods to constrain the plane so that it is perpendicular to the x-y-z axes.
Definition at line 108 of file vtkPlaneWidget.h.
Definition at line 114 of file vtkPlaneWidget.h.
|
protected |
Enumerator | |
---|---|
Start | |
Moving | |
Scaling | |
Pushing | |
Rotating | |
Spinning | |
Outside |
Definition at line 259 of file vtkPlaneWidget.h.
|
protected |
|
protected |
|
static |
Instantiate the object.
|
static |
|
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 vtkPolyDataSourceWidget.
|
static |
|
protectedvirtual |
Reimplemented from vtkPolyDataSourceWidget.
vtkPlaneWidget* vtkPlaneWidget::NewInstance | ( | ) | const |
|
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 |
Methods that satisfy the superclass' API.
Reimplemented from vtkInteractorObserver.
|
virtual |
Methods that satisfy the superclass' API.
Implements vtkPolyDataSourceWidget.
|
inlinevirtual |
Methods that satisfy the superclass' API.
Reimplemented from vtkPolyDataSourceWidget.
Definition at line 121 of file vtkPlaneWidget.h.
|
inlinevirtual |
Methods that satisfy the superclass' API.
Reimplemented from vtk3DWidget.
Definition at line 123 of file vtkPlaneWidget.h.
void vtkPlaneWidget::SetResolution | ( | int | r | ) |
Set/Get the resolution (number of subdivisions) of the plane.
int vtkPlaneWidget::GetResolution | ( | ) |
Set/Get the resolution (number of subdivisions) of the plane.
void vtkPlaneWidget::SetOrigin | ( | double | x[3] | ) |
Set/Get the origin of the plane.
double* vtkPlaneWidget::GetOrigin | ( | ) |
Set/Get the origin of the plane.
void vtkPlaneWidget::GetOrigin | ( | double | xyz[3] | ) |
Set/Get the origin of the plane.
Set/Get the position of the point defining the first axis of the plane.
void vtkPlaneWidget::SetPoint1 | ( | double | x[3] | ) |
Set/Get the position of the point defining the first axis of the plane.
double* vtkPlaneWidget::GetPoint1 | ( | ) |
Set/Get the position of the point defining the first axis of the plane.
void vtkPlaneWidget::GetPoint1 | ( | double | xyz[3] | ) |
Set/Get the position of the point defining the first axis of the plane.
Set/Get the position of the point defining the second axis of the plane.
void vtkPlaneWidget::SetPoint2 | ( | double | x[3] | ) |
Set/Get the position of the point defining the second axis of the plane.
double* vtkPlaneWidget::GetPoint2 | ( | ) |
Set/Get the position of the point defining the second axis of the plane.
void vtkPlaneWidget::GetPoint2 | ( | double | xyz[3] | ) |
Set/Get the position of the point defining the second axis of the plane.
void vtkPlaneWidget::SetCenter | ( | double | x[3] | ) |
Get the center of the plane.
double* vtkPlaneWidget::GetCenter | ( | ) |
Get the center of the plane.
void vtkPlaneWidget::GetCenter | ( | double | xyz[3] | ) |
Get the center of the plane.
void vtkPlaneWidget::SetNormal | ( | double | x[3] | ) |
Get the normal to the plane.
double* vtkPlaneWidget::GetNormal | ( | ) |
Get the normal to the plane.
void vtkPlaneWidget::GetNormal | ( | double | xyz[3] | ) |
Get the normal to the plane.
|
virtual |
Control how the plane appears when GetPolyData() is invoked. If the mode is "outline", then just the outline of the plane is shown. If the mode is "wireframe" then the plane is drawn with the outline plus the interior mesh (corresponding to the resolution specified). If the mode is "surface" then the plane is drawn as a surface.
|
virtual |
Control how the plane appears when GetPolyData() is invoked. If the mode is "outline", then just the outline of the plane is shown. If the mode is "wireframe" then the plane is drawn with the outline plus the interior mesh (corresponding to the resolution specified). If the mode is "surface" then the plane is drawn as a surface.
|
inline |
Control how the plane appears when GetPolyData() is invoked. If the mode is "outline", then just the outline of the plane is shown. If the mode is "wireframe" then the plane is drawn with the outline plus the interior mesh (corresponding to the resolution specified). If the mode is "surface" then the plane is drawn as a surface.
Definition at line 184 of file vtkPlaneWidget.h.
|
inline |
Control how the plane appears when GetPolyData() is invoked. If the mode is "outline", then just the outline of the plane is shown. If the mode is "wireframe" then the plane is drawn with the outline plus the interior mesh (corresponding to the resolution specified). If the mode is "surface" then the plane is drawn as a surface.
Definition at line 186 of file vtkPlaneWidget.h.
|
inline |
Control how the plane appears when GetPolyData() is invoked. If the mode is "outline", then just the outline of the plane is shown. If the mode is "wireframe" then the plane is drawn with the outline plus the interior mesh (corresponding to the resolution specified). If the mode is "surface" then the plane is drawn as a surface.
Definition at line 188 of file vtkPlaneWidget.h.
|
inline |
Control how the plane appears when GetPolyData() is invoked. If the mode is "outline", then just the outline of the plane is shown. If the mode is "wireframe" then the plane is drawn with the outline plus the interior mesh (corresponding to the resolution specified). If the mode is "surface" then the plane is drawn as a surface.
Definition at line 190 of file vtkPlaneWidget.h.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
|
virtual |
Force the plane 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 plane to the axes if it is originally not aligned.
void vtkPlaneWidget::GetPolyData | ( | vtkPolyData * | pd | ) |
Grab the polydata (including points) that defines the plane. The polydata consists of (res+1)*(res+1) points, and res*res quadrilateral polygons, where res is the resolution of the plane. 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 polyplane are added to it.
void vtkPlaneWidget::GetPlane | ( | vtkPlane * | plane | ) |
Get the planes describing the implicit function defined by the plane widget. The user must provide the instance of the class vtkPlane. Note that vtkPlane is a subclass of vtkImplicitFunction, meaning that it can be used by a variety of filters to perform clipping, cutting, and selection of data.
|
virtual |
Satisfies superclass API. This returns a pointer to the underlying PolyData. Make changes to this before calling the initial PlaceWidget() to have the initial placement follow suit. Or, make changes after the widget has been initialised and call UpdatePlacement() to realise.
Implements vtkPolyDataSourceWidget.
|
virtual |
Satisfies superclass API. This will change the state of the widget to match changes that have been made to the underlying PolyDataSource
Implements vtkPolyDataSourceWidget.
|
virtual |
Get the handle properties (the little balls are the handles). The properties of the handles when selected and normal can be manipulated.
|
virtual |
Get the handle properties (the little balls are the handles). The properties of the handles when selected and normal can be manipulated.
|
virtual |
Get the plane properties. The properties of the plane when selected and unselected can be manipulated.
|
virtual |
Get the plane properties. The properties of the plane when selected and unselected can be manipulated.
|
virtual |
Get the plane properties. The properties of the plane when selected and unselected can be manipulated.
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedvirtual |
Reimplemented from vtk3DWidget.
|
protected |
|
protectedvirtual |
Register internal Pickers in the Picking Manager. Must be reimplemented by concrete widgets to register their pickers.
Reimplemented from vtkInteractorObserver.
|
protected |
|
protected |
|
protected |
Definition at line 258 of file vtkPlaneWidget.h.
|
protected |
Definition at line 286 of file vtkPlaneWidget.h.
|
protected |
Definition at line 287 of file vtkPlaneWidget.h.
|
protected |
Definition at line 288 of file vtkPlaneWidget.h.
|
protected |
Definition at line 289 of file vtkPlaneWidget.h.
|
protected |
Definition at line 293 of file vtkPlaneWidget.h.
|
protected |
Definition at line 294 of file vtkPlaneWidget.h.
|
protected |
Definition at line 295 of file vtkPlaneWidget.h.
|
protected |
Definition at line 296 of file vtkPlaneWidget.h.
|
protected |
Definition at line 300 of file vtkPlaneWidget.h.
|
protected |
Definition at line 301 of file vtkPlaneWidget.h.
|
protected |
Definition at line 302 of file vtkPlaneWidget.h.
|
protected |
Definition at line 310 of file vtkPlaneWidget.h.
|
protected |
Definition at line 311 of file vtkPlaneWidget.h.
|
protected |
Definition at line 312 of file vtkPlaneWidget.h.
|
protected |
Definition at line 316 of file vtkPlaneWidget.h.
|
protected |
Definition at line 317 of file vtkPlaneWidget.h.
|
protected |
Definition at line 318 of file vtkPlaneWidget.h.
|
protected |
Definition at line 321 of file vtkPlaneWidget.h.
|
protected |
Definition at line 322 of file vtkPlaneWidget.h.
|
protected |
Definition at line 323 of file vtkPlaneWidget.h.
|
protected |
Definition at line 326 of file vtkPlaneWidget.h.
|
protected |
Definition at line 327 of file vtkPlaneWidget.h.
|
protected |
Definition at line 328 of file vtkPlaneWidget.h.
|
protected |
Definition at line 331 of file vtkPlaneWidget.h.
|
protected |
Definition at line 332 of file vtkPlaneWidget.h.
|
protected |
Definition at line 333 of file vtkPlaneWidget.h.
|
protected |
Definition at line 350 of file vtkPlaneWidget.h.
|
protected |
Definition at line 353 of file vtkPlaneWidget.h.
|
protected |
Definition at line 357 of file vtkPlaneWidget.h.
|
protected |
Definition at line 358 of file vtkPlaneWidget.h.
|
protected |
Definition at line 359 of file vtkPlaneWidget.h.
|
protected |
Definition at line 360 of file vtkPlaneWidget.h.
|
protected |
Definition at line 365 of file vtkPlaneWidget.h.
|
protected |
Definition at line 366 of file vtkPlaneWidget.h.