#include <vtkAbstractPropPicker.h>
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).
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.)
Definition at line 77 of file vtkAbstractPropPicker.h.
Public Types | |
typedef vtkAbstractPicker | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual vtkProp * | GetViewProp () |
virtual vtkProp3D * | GetProp3D () |
virtual vtkActor * | GetActor () |
virtual vtkActor2D * | GetActor2D () |
virtual vtkVolume * | GetVolume () |
virtual vtkAssembly * | GetAssembly () |
virtual vtkPropAssembly * | GetPropAssembly () |
virtual vtkProp * | GetProp () |
virtual void | SetPath (vtkAssemblyPath *) |
virtual vtkAssemblyPath * | GetPath () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkAbstractPropPicker * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
vtkAbstractPropPicker () | |
~vtkAbstractPropPicker () | |
void | Initialize () |
Protected Attributes | |
vtkAssemblyPath * | Path |
Reimplemented from vtkAbstractPicker.
Reimplemented in vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, vtkPropPicker, vtkRenderedAreaPicker, and vtkVolumePicker.
Definition at line 80 of file vtkAbstractPropPicker.h.
vtkAbstractPropPicker::vtkAbstractPropPicker | ( | ) | [protected] |
vtkAbstractPropPicker::~vtkAbstractPropPicker | ( | ) | [protected] |
virtual const char* vtkAbstractPropPicker::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkAbstractPicker.
Reimplemented in vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, vtkPropPicker, vtkRenderedAreaPicker, and vtkVolumePicker.
static int vtkAbstractPropPicker::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 vtkAbstractPicker.
Reimplemented in vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, vtkPropPicker, vtkRenderedAreaPicker, and vtkVolumePicker.
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 vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, vtkPropPicker, vtkRenderedAreaPicker, and vtkVolumePicker.
static vtkAbstractPropPicker* vtkAbstractPropPicker::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkAbstractPicker.
Reimplemented in vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, vtkPropPicker, vtkRenderedAreaPicker, and vtkVolumePicker.
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 vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, vtkPropPicker, vtkRenderedAreaPicker, and vtkVolumePicker.
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] |
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.)
virtual vtkProp* vtkAbstractPropPicker::GetProp | ( | ) | [virtual] |
void vtkAbstractPropPicker::Initialize | ( | ) | [protected, virtual] |
Reimplemented from vtkAbstractPicker.
Reimplemented in vtkAreaPicker, vtkCellPicker, vtkPicker, vtkPointPicker, and vtkPropPicker.
vtkAssemblyPath* vtkAbstractPropPicker::Path [protected] |
Definition at line 175 of file vtkAbstractPropPicker.h.