VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkInteractorStyleUnicam Class Reference

provides Unicam navigation style More...

#include <vtkInteractorStyleUnicam.h>

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

List of all members.

Public Types

typedef vtkInteractorStyle Superclass
- Public Types inherited from vtkInteractorStyle
- Public Types inherited from vtkInteractorObserver
- Public Types inherited from vtkObject

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void SetWorldUpVector (double a[3])
void SetWorldUpVector (double x, double y, double z)
virtual double * GetWorldUpVector ()
virtual void GetWorldUpVector (double data[3])
virtual void OnTimer ()
virtual void OnMouseMove ()
virtual void OnLeftButtonDown ()
virtual void OnLeftButtonUp ()
virtual void OnLeftButtonMove ()
- Public Member Functions inherited from vtkInteractorStyle
virtual void SetInteractor (vtkRenderWindowInteractor *interactor)
virtual void SetEnabled (int)
void FindPokedRenderer (int, int)
virtual void OnChar ()
virtual void OnKeyDown ()
virtual void OnKeyUp ()
virtual void OnKeyPress ()
virtual void OnKeyRelease ()
virtual void SetAutoAdjustCameraClippingRange (int)
virtual int GetAutoAdjustCameraClippingRange ()
virtual void AutoAdjustCameraClippingRangeOn ()
virtual void AutoAdjustCameraClippingRangeOff ()
virtual int GetState ()
virtual int GetUseTimers ()
virtual void SetUseTimers (int)
virtual void UseTimersOn ()
virtual void UseTimersOff ()
virtual void SetTimerDuration (unsigned long)
virtual unsigned long GetTimerDuration ()
virtual void SetHandleObservers (int)
virtual int GetHandleObservers ()
virtual void HandleObserversOn ()
virtual void HandleObserversOff ()
virtual void OnMiddleButtonDown ()
virtual void OnMiddleButtonUp ()
virtual void OnRightButtonDown ()
virtual void OnRightButtonUp ()
virtual void OnMouseWheelForward ()
virtual void OnMouseWheelBackward ()
virtual void OnExpose ()
virtual void OnConfigure ()
virtual void OnEnter ()
virtual void OnLeave ()
virtual void Rotate ()
virtual void Spin ()
virtual void Pan ()
virtual void Dolly ()
virtual void Zoom ()
virtual void UniformScale ()
virtual void StartState (int newstate)
virtual void StopState ()
virtual void StartAnimate ()
virtual void StopAnimate ()
virtual void StartRotate ()
virtual void EndRotate ()
virtual void StartZoom ()
virtual void EndZoom ()
virtual void StartPan ()
virtual void EndPan ()
virtual void StartSpin ()
virtual void EndSpin ()
virtual void StartDolly ()
virtual void EndDolly ()
virtual void StartUniformScale ()
virtual void EndUniformScale ()
virtual void StartTimer ()
virtual void EndTimer ()
virtual void HighlightProp (vtkProp *prop)
virtual void HighlightActor2D (vtkActor2D *actor2D)
virtual void HighlightProp3D (vtkProp3D *prop3D)
virtual void SetPickColor (double, double, double)
virtual void SetPickColor (double[3])
virtual double * GetPickColor ()
virtual void GetPickColor (double data[3])
virtual void SetMouseWheelMotionFactor (double)
virtual double GetMouseWheelMotionFactor ()
virtual vtkTDxInteractorStyleGetTDxStyle ()
virtual void SetTDxStyle (vtkTDxInteractorStyle *tdxStyle)
void DelegateTDxEvent (unsigned long event, void *calldata)
- Public Member Functions inherited from vtkInteractorObserver
int GetEnabled ()
void EnabledOn ()
void EnabledOff ()
void On ()
void Off ()
virtual vtkRenderWindowInteractorGetInteractor ()
virtual void SetPriority (float)
virtual float GetPriority ()
virtual void SetKeyPressActivation (int)
virtual int GetKeyPressActivation ()
virtual void KeyPressActivationOn ()
virtual void KeyPressActivationOff ()
virtual void SetKeyPressActivationValue (char)
virtual char GetKeyPressActivationValue ()
virtual vtkRendererGetDefaultRenderer ()
virtual void SetDefaultRenderer (vtkRenderer *)
virtual vtkRendererGetCurrentRenderer ()
virtual void SetCurrentRenderer (vtkRenderer *)
void GrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
void ReleaseFocus ()
- Public Member Functions inherited from vtkObject
virtual void DebugOn ()
virtual void DebugOff ()
unsigned char GetDebug ()
void SetDebug (unsigned char 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)
vtkCommandGetCommand (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)
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 &os)
virtual void PrintHeader (ostream &os, vtkIndent indent)
virtual void PrintTrailer (ostream &os, vtkIndent indent)
int GetReferenceCount ()

Static Public Member Functions

static vtkInteractorStyleUnicamNew ()
static int IsTypeOf (const char *type)
static vtkInteractorStyleUnicamSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkInteractorStyleUnicam ()
virtual ~vtkInteractorStyleUnicam ()
void ChooseXY (int X, int Y)
void RotateXY (int X, int Y)
void DollyXY (int X, int Y)
void PanXY (int X, int Y)
void MyTranslateCamera (double v[3])
void MyRotateCamera (double cx, double cy, double cz, double ax, double ay, double az, double angle)
void GetRightVandUpV (double *p, vtkCamera *cam, double *rightV, double *upV)
void NormalizeMouseXY (int X, int Y, double *NX, double *NY)
double WindowAspect ()
- Protected Member Functions inherited from vtkInteractorStyle
 vtkInteractorStyle ()
 ~vtkInteractorStyle ()
- Protected Member Functions inherited from vtkInteractorObserver
 vtkInteractorObserver ()
 ~vtkInteractorObserver ()
int RequestCursorShape (int requestedShape)
virtual void StartInteraction ()
virtual void EndInteraction ()
void ComputeDisplayToWorld (double x, double y, double z, double worldPt[4])
void ComputeWorldToDisplay (double x, double y, double z, double displayPt[3])
- Protected Member Functions inherited from vtkObject
 vtkObject ()
virtual ~vtkObject ()
virtual void RegisterInternal (vtkObjectBase *, int check)
virtual void UnRegisterInternal (vtkObjectBase *, int check)
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
void InternalReleaseFocus ()
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
virtual ~vtkObjectBase ()
virtual void CollectRevisions (ostream &os)
virtual void ReportReferences (vtkGarbageCollector *)
 vtkObjectBase (const vtkObjectBase &)
void operator= (const vtkObjectBase &)

Protected Attributes

vtkWorldPointPickerInteractionPicker
int ButtonDown
double DTime
double Dist
double StartPix [2]
double LastPos [2]
double LastPix [2]
double DownPt [3]
double Center [3]
double WorldUpVector [3]
vtkActorFocusSphere
int IsDot
vtkRendererFocusSphereRenderer
int state
- Protected Attributes inherited from vtkInteractorStyle
int State
int AnimState
int HandleObservers
int UseTimers
int TimerId
int AutoAdjustCameraClippingRange
vtkOutlineSourceOutline
vtkPolyDataMapperOutlineMapper
vtkActorOutlineActor
vtkRendererPickedRenderer
vtkPropCurrentProp
vtkActor2DPickedActor2D
int PropPicked
double PickColor [3]
double MouseWheelMotionFactor
unsigned long TimerDuration
vtkEventForwarderCommandEventForwarder
vtkTDxInteractorStyleTDxStyle
- Protected Attributes inherited from vtkInteractorObserver
int Enabled
vtkCallbackCommandEventCallbackCommand
vtkCallbackCommandKeyPressCallbackCommand
float Priority
int KeyPressActivation
char KeyPressActivationValue
vtkRenderWindowInteractorInteractor
vtkRendererCurrentRenderer
vtkRendererDefaultRenderer
unsigned long CharObserverTag
unsigned long DeleteObserverTag
vtkObserverMediatorObserverMediator
- Protected Attributes inherited from vtkObject
unsigned char Debug
vtkTimeStamp MTime
vtkSubjectHelper * SubjectHelper
- Protected Attributes inherited from vtkObjectBase
int ReferenceCount
vtkWeakPointerBase ** WeakPointers

Additional Inherited Members

- Static Protected Member Functions inherited from vtkInteractorStyle
static void ProcessEvents (vtkObject *object, unsigned long event, void *clientdata, void *calldata)

Detailed Description

provides Unicam navigation style

UniCam is a camera interactor. Here, just the primary features of the UniCam technique are implemented. UniCam requires just one mouse button and supports context sensitive dollying, panning, and rotation. (In this implementation, it uses the right mouse button, leaving the middle and left available for other functions.) For more information, see the paper at:

ftp://ftp.cs.brown.edu/pub/papers/graphics/research/unicam.pdf

The following is a brief description of the UniCam Camera Controls. You can perform 3 operations on the camera: rotate, pan, and dolly the camera. All operations are reached through the right mouse button & mouse movements.

IMPORTANT: UniCam assumes there is an axis that makes sense as a "up" vector for the world. By default, this axis is defined to be the vector <0,0,1>. You can set it explicitly for the data you are viewing with the 'SetWorldUpVector(..)' method in C++, or similarly in Tcl/Tk (or other interpreted languages).

  1. ROTATE:

Position the cursor over the point you wish to rotate around and press and release the left mouse button. A 'focus dot' appears indicating the point that will be the center of rotation. To rotate, press and hold the left mouse button and drag the mouse.. release the button to complete the rotation.

Rotations can be done without placing a focus dot first by moving the mouse cursor to within 10% of the window border & pressing and holding the left button followed by dragging the mouse. The last focus dot position will be re-used.

  1. PAN:

Click and hold the left mouse button, and initially move the mouse left or right. The point under the initial pick will pick correlate w/ the mouse tip– (i.e., direct manipulation).

  1. DOLLY (+ PAN):

Click and hold the left mouse button, and initially move the mouse up or down. Moving the mouse down will dolly towards the picked point, and moving the mouse up will dolly away from it. Dollying occurs relative to the picked point which simplifies the task of dollying towards a region of interest. Left and right mouse movements will pan the camera left and right.

Warning:
(NOTE: This implementation of Unicam assumes a perspective camera. It could be modified relatively easily to also support an orthographic projection.)

Definition at line 107 of file vtkInteractorStyleUnicam.h.


Member Typedef Documentation

Reimplemented from vtkInteractorStyle.

Definition at line 111 of file vtkInteractorStyleUnicam.h.


Constructor & Destructor Documentation

vtkInteractorStyleUnicam::vtkInteractorStyleUnicam ( )
protected
virtual vtkInteractorStyleUnicam::~vtkInteractorStyleUnicam ( )
protectedvirtual

Member Function Documentation

static vtkInteractorStyleUnicam* vtkInteractorStyleUnicam::New ( )
static

This class must be supplied with a vtkRenderWindowInteractor wrapper or parent. This class should not normally be instantiated by application programmers.

Reimplemented from vtkInteractorStyle.

virtual const char* vtkInteractorStyleUnicam::GetClassName ( )
virtual

Reimplemented from vtkInteractorStyle.

static int vtkInteractorStyleUnicam::IsTypeOf ( const char *  name)
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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkInteractorStyle.

virtual int vtkInteractorStyleUnicam::IsA ( const char *  name)
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 vtkInteractorStyle.

static vtkInteractorStyleUnicam* vtkInteractorStyleUnicam::SafeDownCast ( vtkObject o)
static

Reimplemented from vtkInteractorStyle.

void vtkInteractorStyleUnicam::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 vtkInteractorStyle.

void vtkInteractorStyleUnicam::SetWorldUpVector ( double  a[3])
inline

Definition at line 114 of file vtkInteractorStyleUnicam.h.

void vtkInteractorStyleUnicam::SetWorldUpVector ( double  x,
double  y,
double  z 
)
virtual double* vtkInteractorStyleUnicam::GetWorldUpVector ( )
virtual
virtual void vtkInteractorStyleUnicam::GetWorldUpVector ( double  data[3])
virtual
virtual void vtkInteractorStyleUnicam::OnMouseMove ( )
virtual

Concrete implementation of event bindings

Reimplemented from vtkInteractorStyle.

virtual void vtkInteractorStyleUnicam::OnLeftButtonDown ( )
virtual

Concrete implementation of event bindings

Reimplemented from vtkInteractorStyle.

virtual void vtkInteractorStyleUnicam::OnLeftButtonUp ( )
virtual

Concrete implementation of event bindings

Reimplemented from vtkInteractorStyle.

virtual void vtkInteractorStyleUnicam::OnLeftButtonMove ( )
virtual

Concrete implementation of event bindings

virtual void vtkInteractorStyleUnicam::OnTimer ( )
virtual

OnTimer calls RotateCamera, RotateActor etc which should be overridden by style subclasses.

Reimplemented from vtkInteractorStyle.

void vtkInteractorStyleUnicam::ChooseXY ( int  X,
int  Y 
)
protected
void vtkInteractorStyleUnicam::RotateXY ( int  X,
int  Y 
)
protected
void vtkInteractorStyleUnicam::DollyXY ( int  X,
int  Y 
)
protected
void vtkInteractorStyleUnicam::PanXY ( int  X,
int  Y 
)
protected
void vtkInteractorStyleUnicam::MyTranslateCamera ( double  v[3])
protected
void vtkInteractorStyleUnicam::MyRotateCamera ( double  cx,
double  cy,
double  cz,
double  ax,
double  ay,
double  az,
double  angle 
)
protected
void vtkInteractorStyleUnicam::GetRightVandUpV ( double *  p,
vtkCamera cam,
double *  rightV,
double *  upV 
)
protected
void vtkInteractorStyleUnicam::NormalizeMouseXY ( int  X,
int  Y,
double *  NX,
double *  NY 
)
protected
double vtkInteractorStyleUnicam::WindowAspect ( )
protected

Member Data Documentation

vtkWorldPointPicker* vtkInteractorStyleUnicam::InteractionPicker
protected

Definition at line 134 of file vtkInteractorStyleUnicam.h.

int vtkInteractorStyleUnicam::ButtonDown
protected

Definition at line 136 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::DTime
protected

Definition at line 137 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::Dist
protected

Definition at line 138 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::StartPix[2]
protected

Definition at line 139 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::LastPos[2]
protected

Definition at line 140 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::LastPix[2]
protected

Definition at line 141 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::DownPt[3]
protected

Definition at line 142 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::Center[3]
protected

Definition at line 143 of file vtkInteractorStyleUnicam.h.

double vtkInteractorStyleUnicam::WorldUpVector[3]
protected

Definition at line 145 of file vtkInteractorStyleUnicam.h.

vtkActor* vtkInteractorStyleUnicam::FocusSphere
protected

Definition at line 147 of file vtkInteractorStyleUnicam.h.

int vtkInteractorStyleUnicam::IsDot
protected

Definition at line 148 of file vtkInteractorStyleUnicam.h.

vtkRenderer* vtkInteractorStyleUnicam::FocusSphereRenderer
protected

Definition at line 149 of file vtkInteractorStyleUnicam.h.

int vtkInteractorStyleUnicam::state
protected

Definition at line 151 of file vtkInteractorStyleUnicam.h.


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