VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkAbstractPropPicker Class Reference

abstract API for pickers that can pick an instance of vtkProp More...

#include <vtkAbstractPropPicker.h>

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

Public Types

typedef vtkAbstractPicker Superclass
 
- Public Types inherited from vtkAbstractPicker
typedef vtkObject Superclass
 
- Public Types inherited from vtkObject
typedef vtkObjectBase Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkAbstractPropPickerNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual vtkPropGetViewProp ()
 
virtual vtkProp3DGetProp3D ()
 
virtual vtkActorGetActor ()
 
virtual vtkActor2DGetActor2D ()
 
virtual vtkVolumeGetVolume ()
 
virtual vtkAssemblyGetAssembly ()
 
virtual vtkPropAssemblyGetPropAssembly ()
 
virtual void SetPath (vtkAssemblyPath *)
 
virtual vtkAssemblyPathGetPath ()
 
- Public Member Functions inherited from vtkAbstractPicker
vtkAbstractPickerNewInstance () const
 
void InitializePickList ()
 
void AddPickList (vtkProp *)
 
void DeletePickList (vtkProp *)
 
vtkPropCollectionGetPickList ()
 
virtual vtkRendererGetRenderer ()
 
virtual doubleGetSelectionPoint ()
 
virtual void GetSelectionPoint (double data[3])
 
virtual doubleGetPickPosition ()
 
virtual void GetPickPosition (double data[3])
 
virtual int Pick (double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer)=0
 
int Pick (double selectionPt[3], vtkRenderer *ren)
 
virtual void SetPickFromList (int)
 
virtual int GetPickFromList ()
 
virtual void PickFromListOn ()
 
virtual void PickFromListOff ()
 
- Public Member Functions inherited from vtkObject
vtkObjectNewInstance () 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)
 
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)
 
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 int IsTypeOf (const char *type)
 
static vtkAbstractPropPickerSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkAbstractPicker
static int IsTypeOf (const char *type)
 
static vtkAbstractPickerSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkObject
static int IsTypeOf (const char *type)
 
static vtkObjectSafeDownCast (vtkObjectBase *o)
 
static vtkObjectNew ()
 
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 vtkObjectBaseNew ()
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkAbstractPropPicker ()
 
 ~vtkAbstractPropPicker ()
 
void Initialize ()
 
- Protected Member Functions inherited from vtkAbstractPicker
 vtkAbstractPicker ()
 
 ~vtkAbstractPicker ()
 
- 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 &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

vtkAssemblyPathPath
 
- Protected Attributes inherited from vtkAbstractPicker
vtkRendererRenderer
 
double SelectionPoint [3]
 
double PickPosition [3]
 
int PickFromList
 
vtkPropCollectionPickList
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

abstract API for pickers that can pick an instance of vtkProp

vtkAbstractPropPicker is an abstract superclass for pickers that can pick an instance of vtkProp. Some pickers, like vtkWorldPointPicker (not a subclass of this class), cannot identify the prop that is picked. Subclasses of vtkAbstractPropPicker return a prop in the form of a vtkAssemblyPath when a pick is invoked. Note that an vtkAssemblyPath contain a list of vtkAssemblyNodes, each of which in turn contains a reference to a vtkProp and a 4x4 transformation matrix. The path fully describes the entire pick path, so you can pick assemblies or portions of assemblies, or just grab the tail end of the vtkAssemblyPath (which is the picked prop).

Warning
Because a vtkProp can be placed into different assemblies, or even in different leaf positions of the same assembly, the vtkAssemblyPath is used to fully qualify exactly which use of the vtkProp was picked, including its position (since vtkAssemblyPath includes a transformation matrix per node).
The class returns information about picked actors, props, etc. Note that what is returned by these methods is the top level of the assembly path. This can cause a lot of confusion! For example, if you pick a vtkAssembly, and the returned vtkAssemblyPath has as a leaf a vtkActor, then if you invoke GetActor(), you will get NULL, even though an actor was indeed picked. (GetAssembly() will return something.) Note that the safest thing to do is to do a GetViewProp(), which will always return something if something was picked. A better way to manage picking is to work with vtkAssemblyPath, since this completely defines the pick path from top to bottom in a assembly hierarchy, and avoids confusion when the same prop is used in different assemblies.
The returned assembly paths refer to assembly nodes that in turn refer to vtkProp and vtkMatrix. This association to vtkProp is not a reference counted association, meaning that dangling references are possible if you do a pick, get an assembly path, and then delete a vtkProp. (Reason: assembly paths create many self-referencing loops that destroy reference counting.)
See also
vtkPropPicker vtkPicker vtkWorldPointPicker vtkCellPicker vtkPointPicker vtkAssemblyPath vtkAssemblyNode vtkAssemblyPaths vtkAbstractPicker vtkRenderer

Definition at line 78 of file vtkAbstractPropPicker.h.

Member Typedef Documentation

Definition at line 81 of file vtkAbstractPropPicker.h.

Constructor & Destructor Documentation

vtkAbstractPropPicker::vtkAbstractPropPicker ( )
protected
vtkAbstractPropPicker::~vtkAbstractPropPicker ( )
protected

Member Function Documentation

static int vtkAbstractPropPicker::IsTypeOf ( const char *  type)
static
virtual int vtkAbstractPropPicker::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 vtkAbstractPicker.

Reimplemented in vtkCellPicker, vtkAreaPicker, vtkPicker, vtkResliceCursorPicker, vtkPropPicker, vtkRenderedAreaPicker, vtkVolumePicker, and vtkPointPicker.

static vtkAbstractPropPicker* vtkAbstractPropPicker::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkAbstractPropPicker::NewInstanceInternal ( ) const
protectedvirtual
vtkAbstractPropPicker* vtkAbstractPropPicker::NewInstance ( ) const
void vtkAbstractPropPicker::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 vtkAbstractPicker.

Reimplemented in vtkCellPicker, vtkAreaPicker, vtkPicker, vtkPropPicker, vtkRenderedAreaPicker, vtkVolumePicker, and vtkPointPicker.

virtual void vtkAbstractPropPicker::SetPath ( vtkAssemblyPath )
virtual

Return the vtkAssemblyPath that has been picked. The assembly path lists all the vtkProps that form an assembly. If no assembly is present, then the assembly path will have one node (which is the picked prop). The set method is used internally to set the path. (Note: the structure of an assembly path is a collection of vtkAssemblyNode, each node pointing to a vtkProp and (possibly) a transformation matrix.)

virtual vtkAssemblyPath* vtkAbstractPropPicker::GetPath ( )
virtual

Return the vtkAssemblyPath that has been picked. The assembly path lists all the vtkProps that form an assembly. If no assembly is present, then the assembly path will have one node (which is the picked prop). The set method is used internally to set the path. (Note: the structure of an assembly path is a collection of vtkAssemblyNode, each node pointing to a vtkProp and (possibly) a transformation matrix.)

virtual vtkProp* vtkAbstractPropPicker::GetViewProp ( )
virtual

Return the vtkProp that has been picked. If NULL, nothing was picked. If anything at all was picked, this method will return something.

virtual vtkProp3D* vtkAbstractPropPicker::GetProp3D ( )
virtual

Return the vtkProp that has been picked. If NULL, no vtkProp3D was picked.

virtual vtkActor* vtkAbstractPropPicker::GetActor ( )
virtual

Return the vtkActor that has been picked. If NULL, no actor was picked.

virtual vtkActor2D* vtkAbstractPropPicker::GetActor2D ( )
virtual

Return the vtkActor2D that has been picked. If NULL, no actor2D was picked.

virtual vtkVolume* vtkAbstractPropPicker::GetVolume ( )
virtual

Return the vtkVolume that has been picked. If NULL, no volume was picked.

virtual vtkAssembly* vtkAbstractPropPicker::GetAssembly ( )
virtual

Return the vtkAssembly that has been picked. If NULL, no assembly was picked. (Note: the returned assembly is the first node in the assembly path. If the path is one node long, then the assembly and the prop are the same, assuming that the first node is a vtkAssembly.)

virtual vtkPropAssembly* vtkAbstractPropPicker::GetPropAssembly ( )
virtual

Return the vtkPropAssembly that has been picked. If NULL, no prop assembly was picked. (Note: the returned prop assembly is the first node in the assembly path. If the path is one node long, then the prop assembly and the prop are the same, assuming that the first node is a vtkPropAssembly.)

void vtkAbstractPropPicker::Initialize ( )
protectedvirtual

Reimplemented from vtkAbstractPicker.

Reimplemented in vtkCellPicker, vtkPicker, vtkAreaPicker, vtkPropPicker, and vtkPointPicker.

Member Data Documentation

vtkAssemblyPath* vtkAbstractPropPicker::Path
protected

Definition at line 141 of file vtkAbstractPropPicker.h.


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