SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
vtkConeWidget Class Reference

3D widget for manipulating an infinite cylinder More...

#include <vtkConeWidget.h>

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

Public Types

typedef vtkAbstractWidget Superclass
 Standard vtkObject methods.
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkConeWidgetNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
 vtkConeWidget (const vtkConeWidget &)=delete
 
vtkConeWidgetoperator= (const vtkConeWidget &)=delete
 
void SetRepresentation (vtkConeRepresentation *rep)
 Specify an instance of vtkWidgetRepresentation used to represent this widget in the scene. More...
 
void SetEnabled (int enabling) override
 Control widget interactivity, allowing users to interact with the camera or other widgets. More...
 
vtkConeRepresentationGetConeRepresentation ()
 Return the representation as a vtkConeRepresentation.
 
void CreateDefaultRepresentation () override
 Create the default widget representation if one is not set.
 

Static Public Member Functions

static vtkConeWidgetNew ()
 Instantiate the object.
 
static int IsTypeOf (const char *type)
 
static vtkConeWidgetSafeDownCast (vtkObjectBase *o)
 

Protected Types

enum  _WidgetState { Start = 0, Active }
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
int UpdateCursorShape (int interactionState)
 Update the cursor shape based on the interaction state. More...
 

Static Protected Member Functions

static void SelectAction (vtkAbstractWidget *)
 
static void TranslateAction (vtkAbstractWidget *)
 
static void ScaleAction (vtkAbstractWidget *)
 
static void EndSelectAction (vtkAbstractWidget *)
 
static void MoveAction (vtkAbstractWidget *)
 
static void MoveConeAction (vtkAbstractWidget *)
 

Protected Attributes

int WidgetState
 

Detailed Description

3D widget for manipulating an infinite cylinder

This 3D widget defines an infinite cylinder that can be interactively placed in a scene. The widget is assumed to consist of four parts: 1) a cylinder contained in a 2) bounding box, with a 3) cylinder axis, which is rooted at a 4) center point in the bounding box. (The representation paired with this widget determines the actual geometry of the widget.)

To use this widget, you generally pair it with a vtkConeRepresentation (or a subclass). Various options are available for controlling how the representation appears, and how the widget functions.

Event Bindings:
By default, the widget responds to the following VTK events (i.e., it watches the vtkRenderWindowInteractor for these events):
If the cylinder axis is selected:
  LeftButtonPressEvent - select normal
  LeftButtonReleaseEvent - release (end select) normal
  MouseMoveEvent - orient the normal vector
If the center point (handle) is selected:
  LeftButtonPressEvent - select handle (if on slider)
  LeftButtonReleaseEvent - release handle (if selected)
  MouseMoveEvent - move the center point (constrained to plane or on the
                   axis if CTRL key is pressed)
If the cylinder is selected:
  LeftButtonPressEvent - select cylinder
  LeftButtonReleaseEvent - release cylinder
  MouseMoveEvent - increase/decrease cylinder radius
If the outline is selected:
  LeftButtonPressEvent - select outline
  LeftButtonReleaseEvent - release outline
  MouseMoveEvent - move the outline
If the keypress characters are used
  'Down/Left' Move cylinder away from viewer
  'Up/Right' Move cylinder towards viewer
In all the cases, independent of what is picked, the widget responds to the
following VTK events:
  MiddleButtonPressEvent - move the cylinder
  MiddleButtonReleaseEvent - release the cylinder
  RightButtonPressEvent - scale the widget's representation
  RightButtonReleaseEvent - stop scaling the widget
  MouseMoveEvent - scale (if right button) or move (if middle button) the widget
Event Bindings:
Note that the event bindings described above can be changed using this class's vtkWidgetEventTranslator. This class translates VTK events into the vtkConeWidget's widget events:
  vtkWidgetEvent::Select -- some part of the widget has been selected
  vtkWidgetEvent::EndSelect -- the selection process has completed
  vtkWidgetEvent::Move -- a request for widget motion has been invoked
  vtkWidgetEvent::Up and vtkWidgetEvent::Down -- MoveConeAction
Event Bindings:
In turn, when these widget events are processed, the vtkConeWidget invokes the following VTK events on itself (which observers can listen for):
  vtkCommand::StartInteractionEvent (on vtkWidgetEvent::Select)
  vtkCommand::EndInteractionEvent (on vtkWidgetEvent::EndSelect)
  vtkCommand::InteractionEvent (on vtkWidgetEvent::Move)
See also
vtk3DWidget vtkImplicitPlaneWidget

Member Function Documentation

◆ SetEnabled()

void vtkConeWidget::SetEnabled ( int  enabling)
override

Control widget interactivity, allowing users to interact with the camera or other widgets.

The camera is unobserved when the widget is disabled.

◆ SetRepresentation()

void vtkConeWidget::SetRepresentation ( vtkConeRepresentation rep)

Specify an instance of vtkWidgetRepresentation used to represent this widget in the scene.

Note that the representation is a subclass of vtkProp so it can be added to the renderer independent of the widget.

◆ UpdateCursorShape()

int vtkConeWidget::UpdateCursorShape ( int  interactionState)
protected

Update the cursor shape based on the interaction state.

Returns 1 if the cursor shape requested is different from the existing one.


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