|
| virtual int | IsA (const char *type) |
| |
| vtkImagePlaneWidget * | NewInstance () const |
| |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| |
| 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 | SetInputConnection (vtkAlgorithmOutput *aout) |
| |
| void | SetOrigin (double x, double y, double z) |
| |
| void | SetOrigin (double xyz[3]) |
| |
| double * | GetOrigin () |
| |
| void | GetOrigin (double xyz[3]) |
| |
| void | SetPoint1 (double x, double y, double z) |
| |
| void | SetPoint1 (double xyz[3]) |
| |
| double * | GetPoint1 () |
| |
| void | GetPoint1 (double xyz[3]) |
| |
| void | SetPoint2 (double x, double y, double z) |
| |
| void | SetPoint2 (double xyz[3]) |
| |
| double * | GetPoint2 () |
| |
| void | GetPoint2 (double xyz[3]) |
| |
| double * | GetCenter () |
| |
| void | GetCenter (double xyz[3]) |
| |
| double * | GetNormal () |
| |
| void | GetNormal (double xyz[3]) |
| |
| void | GetVector1 (double v1[3]) |
| |
| void | GetVector2 (double v2[3]) |
| |
| int | GetSliceIndex () |
| |
| void | SetSliceIndex (int index) |
| |
| double | GetSlicePosition () |
| |
| void | SetSlicePosition (double position) |
| |
| void | SetResliceInterpolate (int) |
| |
| virtual int | GetResliceInterpolate () |
| |
| void | SetResliceInterpolateToNearestNeighbour () |
| |
| void | SetResliceInterpolateToLinear () |
| |
| void | SetResliceInterpolateToCubic () |
| |
| vtkImageData * | GetResliceOutput () |
| |
| virtual void | SetRestrictPlaneToVolume (int) |
| |
| virtual int | GetRestrictPlaneToVolume () |
| |
| virtual void | RestrictPlaneToVolumeOn () |
| |
| virtual void | RestrictPlaneToVolumeOff () |
| |
| virtual void | SetUserControlledLookupTable (int) |
| |
| virtual int | GetUserControlledLookupTable () |
| |
| virtual void | UserControlledLookupTableOn () |
| |
| virtual void | UserControlledLookupTableOff () |
| |
| virtual void | SetTextureInterpolate (int) |
| |
| virtual int | GetTextureInterpolate () |
| |
| virtual void | TextureInterpolateOn () |
| |
| virtual void | TextureInterpolateOff () |
| |
| virtual void | SetTextureVisibility (int) |
| |
| virtual int | GetTextureVisibility () |
| |
| virtual void | TextureVisibilityOn () |
| |
| virtual void | TextureVisibilityOff () |
| |
| void | GetPolyData (vtkPolyData *pd) |
| |
| vtkPolyDataAlgorithm * | GetPolyDataAlgorithm () |
| |
| void | UpdatePlacement (void) |
| |
| vtkTexture * | GetTexture () |
| |
| virtual vtkImageMapToColors * | GetColorMap () |
| |
| virtual void | SetColorMap (vtkImageMapToColors *) |
| |
| virtual void | SetPlaneProperty (vtkProperty *) |
| |
| virtual vtkProperty * | GetPlaneProperty () |
| |
| virtual void | SetSelectedPlaneProperty (vtkProperty *) |
| |
| virtual vtkProperty * | GetSelectedPlaneProperty () |
| |
| void | SetPlaneOrientation (int) |
| |
| virtual int | GetPlaneOrientation () |
| |
| void | SetPlaneOrientationToXAxes () |
| |
| void | SetPlaneOrientationToYAxes () |
| |
| void | SetPlaneOrientationToZAxes () |
| |
| void | SetPicker (vtkAbstractPropPicker *) |
| |
| virtual void | SetLookupTable (vtkLookupTable *) |
| |
| virtual vtkLookupTable * | GetLookupTable () |
| |
| virtual void | SetDisplayText (int) |
| |
| virtual int | GetDisplayText () |
| |
| virtual void | DisplayTextOn () |
| |
| virtual void | DisplayTextOff () |
| |
| virtual void | SetCursorProperty (vtkProperty *) |
| |
| virtual vtkProperty * | GetCursorProperty () |
| |
| virtual void | SetMarginProperty (vtkProperty *) |
| |
| virtual vtkProperty * | GetMarginProperty () |
| |
| virtual void | SetMarginSizeX (double) |
| |
| virtual double | GetMarginSizeX () |
| |
| virtual void | SetMarginSizeY (double) |
| |
| virtual double | GetMarginSizeY () |
| |
| void | SetTextProperty (vtkTextProperty *tprop) |
| |
| vtkTextProperty * | GetTextProperty () |
| |
| virtual void | SetTexturePlaneProperty (vtkProperty *) |
| |
| virtual vtkProperty * | GetTexturePlaneProperty () |
| |
| void | SetWindowLevel (double window, double level, int copy=0) |
| |
| void | GetWindowLevel (double wl[2]) |
| |
| double | GetWindow () |
| |
| double | GetLevel () |
| |
| int | GetCursorData (double xyzv[4]) |
| |
| int | GetCursorDataStatus () |
| |
| virtual double * | GetCurrentCursorPosition () |
| |
| virtual void | GetCurrentCursorPosition (double data[3]) |
| |
| virtual double | GetCurrentImageValue () |
| |
| virtual vtkMatrix4x4 * | GetResliceAxes () |
| |
| virtual vtkImageReslice * | GetReslice () |
| |
| virtual void | SetUseContinuousCursor (int) |
| |
| virtual int | GetUseContinuousCursor () |
| |
| virtual void | UseContinuousCursorOn () |
| |
| virtual void | UseContinuousCursorOff () |
| |
| void | SetInteraction (int interact) |
| |
| virtual int | GetInteraction () |
| |
| virtual void | InteractionOn () |
| |
| virtual void | InteractionOff () |
| |
| virtual void | SetLeftButtonAction (int) |
| |
| virtual int | GetLeftButtonAction () |
| |
| virtual void | SetMiddleButtonAction (int) |
| |
| virtual int | GetMiddleButtonAction () |
| |
| virtual void | SetRightButtonAction (int) |
| |
| virtual int | GetRightButtonAction () |
| |
| virtual void | SetLeftButtonAutoModifier (int) |
| |
| virtual int | GetLeftButtonAutoModifier () |
| |
| virtual void | SetMiddleButtonAutoModifier (int) |
| |
| virtual int | GetMiddleButtonAutoModifier () |
| |
| virtual void | SetRightButtonAutoModifier (int) |
| |
| virtual int | GetRightButtonAutoModifier () |
| |
| vtkPolyDataSourceWidget * | NewInstance () const |
| |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| |
| void | PlaceWidget (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) |
| |
| vtk3DWidget * | NewInstance () const |
| |
| virtual void | SetProp3D (vtkProp3D *) |
| |
| virtual vtkProp3D * | GetProp3D () |
| |
| virtual void | SetInputData (vtkDataSet *) |
| |
| virtual vtkDataSet * | GetInput () |
| |
| virtual void | SetPlaceFactor (double) |
| |
| virtual double | GetPlaceFactor () |
| |
| virtual void | SetHandleSize (double) |
| |
| virtual double | GetHandleSize () |
| |
| vtkInteractorObserver * | NewInstance () const |
| |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| |
| 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 () |
| |
| 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) |
| |
| const char * | GetClassName () const |
| |
| virtual void | Delete () |
| |
| virtual void | FastDelete () |
| |
| void | Print (ostream &os) |
| |
| virtual void | PrintHeader (ostream &os, vtkIndent indent) |
| |
| virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
| |
| virtual void | Register (vtkObjectBase *o) |
| |
| virtual void | UnRegister (vtkObjectBase *o) |
| |
| int | GetReferenceCount () |
| |
| void | SetReferenceCount (int) |
| |
| void | PrintRevisions (ostream &) |
| |
|
| virtual vtkObjectBase * | NewInstanceInternal () const |
| |
| | vtkImagePlaneWidget () |
| |
| | ~vtkImagePlaneWidget () |
| |
| void | AddObservers () |
| |
| virtual void | OnMouseMove () |
| |
| virtual void | OnLeftButtonDown () |
| |
| virtual void | OnLeftButtonUp () |
| |
| virtual void | OnMiddleButtonDown () |
| |
| virtual void | OnMiddleButtonUp () |
| |
| virtual void | OnRightButtonDown () |
| |
| virtual void | OnRightButtonUp () |
| |
| virtual void | OnChar () |
| |
| virtual void | StartCursor () |
| |
| virtual void | StopCursor () |
| |
| virtual void | StartSliceMotion () |
| |
| virtual void | StopSliceMotion () |
| |
| virtual void | StartWindowLevel () |
| |
| virtual void | StopWindowLevel () |
| |
| void | HighlightPlane (int highlight) |
| |
| void | GeneratePlaneOutline () |
| |
| void | BuildRepresentation () |
| |
| virtual void | RegisterPickers () |
| |
| void | InvertTable () |
| |
| void | WindowLevel (int X, int Y) |
| |
| void | Push (double *p1, double *p2) |
| |
| void | Spin (double *p1, double *p2) |
| |
| void | Rotate (double *p1, double *p2, double *vpn) |
| |
| void | Scale (double *p1, double *p2, int X, int Y) |
| |
| void | Translate (double *p1, double *p2) |
| |
| vtkLookupTable * | CreateDefaultLookupTable () |
| |
| void | CreateDefaultProperties () |
| |
| void | UpdatePlane () |
| |
| void | GenerateTexturePlane () |
| |
| void | GenerateCursor () |
| |
| void | UpdateCursor (int, int) |
| |
| void | ActivateCursor (int) |
| |
| int | UpdateContinuousCursor (double *q) |
| |
| int | UpdateDiscreteCursor (double *q) |
| |
| void | GenerateText () |
| |
| void | ManageTextDisplay () |
| |
| void | ActivateText (int) |
| |
| void | AdjustState () |
| |
| void | GenerateMargins () |
| |
| void | UpdateMargins () |
| |
| void | ActivateMargins (int) |
| |
| | vtkPolyDataSourceWidget () |
| |
| | vtk3DWidget () |
| |
| | ~vtk3DWidget () |
| |
| void | AdjustBounds (double bounds[6], double newBounds[6], double center[3]) |
| |
| double | SizeHandles (double factor) |
| |
| virtual void | SizeHandles () |
| |
| void | UpdateInput () |
| |
| | vtkInteractorObserver () |
| |
| | ~vtkInteractorObserver () |
| |
| 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]) |
| |
| void | UnRegisterPickers () |
| |
| virtual void | PickersModified () |
| |
| vtkPickingManager * | GetPickingManager () |
| |
| vtkAssemblyPath * | GetAssemblyPath (double X, double Y, double Z, vtkAbstractPropPicker *picker) |
| |
| int | RequestCursorShape (int requestedShape) |
| |
| | vtkObject () |
| |
| virtual | ~vtkObject () |
| |
| virtual void | RegisterInternal (vtkObjectBase *, int check) |
| |
| virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
| |
| void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
| |
| void | InternalReleaseFocus () |
| |
| | vtkObjectBase () |
| |
| virtual | ~vtkObjectBase () |
| |
| virtual void | CollectRevisions (ostream &) |
| |
| virtual void | ReportReferences (vtkGarbageCollector *) |
| |
| | vtkObjectBase (const vtkObjectBase &) |
| |
| void | operator= (const vtkObjectBase &) |
| |
3D widget for reslicing image data
This 3D widget defines a plane that can be interactively placed in an image volume. A nice feature of the object is that the vtkImagePlaneWidget, like any 3D widget, will work with the current interactor style. That is, if vtkImagePlaneWidget does not handle an event, then all other registered observers (including the interactor style) have an opportunity to process the event. Otherwise, the vtkImagePlaneWidget will terminate the processing of the event that it handles.
The core functionality of the widget is provided by a vtkImageReslice object which passes its output onto a texture mapping pipeline for fast slicing through volumetric data. See the key methods: GenerateTexturePlane() and UpdatePlane() for implementation details.
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 vtkImagePlaneWidget will appear. (See superclass documentation for information about changing this behavior.)
Selecting the widget with the middle mouse button with and without holding the shift or control keys enables complex reslicing capablilites. To facilitate use, a set of 'margins' (left, right, top, bottom) are shown as a set of plane-axes aligned lines, the properties of which can be changed as a group. Without keyboard modifiers: selecting in the middle of the margins enables translation of the plane along its normal. Selecting one of the corners within the margins enables spinning around the plane's normal at its center. Selecting within a margin allows rotating about the center of the plane around an axis aligned with the margin (i.e., selecting left margin enables rotating around the plane's local y-prime axis). With control key modifier: margin selection enables edge translation (i.e., a constrained form of scaling). Selecting within the margins enables translation of the entire plane. With shift key modifier: uniform plane scaling is enabled. Moving the mouse up enlarges the plane while downward movement shrinks it.
Window-level is achieved by using the right mouse button. Window-level values can be reset by shift + 'r' or control + 'r' while regular reset camera is maintained with 'r' or 'R'. The left mouse button can be used to query the underlying image data with a snap-to cross-hair cursor. Currently, the nearest point in the input image data to the mouse cursor generates the cross-hairs. With oblique slicing, this behaviour may appear unsatisfactory. Text display of window-level and image coordinates/data values are provided by a text actor/mapper pair.
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). To support interactive manipulation of objects, this class invokes the events StartInteractionEvent, InteractionEvent, and EndInteractionEvent as well as StartWindowLevelEvent, WindowLevelEvent, EndWindowLevelEvent and ResetWindowLevelEvent.
The vtkImagePlaneWidget has several methods that can be used in conjunction with other VTK objects. The GetPolyData() method can be used to get the polygonal representation of the plane and can be used as input for other VTK objects. 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's outline; the text actor via its vtkTextProperty; the cross-hair cursor. In addition there are methods to constrain the plane so that it is aligned along the x-y-z axes. Finally, one can specify the degree of interpolation (vtkImageReslice): nearest neighbour, linear, and cubic.
- Thanks:
- Thanks to Dean Inglis for developing and contributing this class. Based on the Python SlicePlaneFactory from Atamai, Inc.
- See also
- vtk3DWidget vtkBoxWidget vtkLineWidget vtkPlaneWidget vtkPointWidget vtkPolyDataSourceWidget vtkSphereWidget vtkImplicitPlaneWidget
- Events:
- vtkCommand::EndInteractionEvent vtkCommand::InteractionEvent vtkCommand::WindowLevelEvent vtkCommand::EnableEvent vtkCommand::DisableEvent vtkCommand::StartWindowLevelEvent vtkCommand::ResetWindowLevelEvent vtkCommand::StartInteractionEvent vtkCommand::EndWindowLevelEvent
- Examples:
- vtkImagePlaneWidget (Examples)
- Tests:
- vtkImagePlaneWidget (Tests)
Definition at line 135 of file vtkImagePlaneWidget.h.