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

ray-cast cell picker for all kinds of Prop3Ds More...

#include <vtkCellPicker.h>

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

Public Types

typedef vtkPicker Superclass
 
- Public Types inherited from vtkPicker
typedef vtkAbstractPropPicker Superclass
 
- Public Types inherited from vtkAbstractPropPicker
typedef vtkAbstractPicker Superclass
 
- Public Types inherited from vtkAbstractPicker
typedef vtkObject Superclass
 

Public Member Functions

virtual vtkTypeBool IsA (const char *type)
 Return 1 if this class is the same type of (or a subclass of) the named class. More...
 
vtkCellPickerNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
int Pick (double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer) override
 Perform pick operation with selection point provided. More...
 
int Pick3DRay (double selectionPt[3], double orient[4], vtkRenderer *ren) override
 Perform pick operation with selection point provided. More...
 
void AddLocator (vtkAbstractCellLocator *locator)
 Add a locator for one of the data sets that will be included in the scene. More...
 
void RemoveLocator (vtkAbstractCellLocator *locator)
 Remove a locator that was previously added. More...
 
void RemoveAllLocators ()
 Remove all locators associated with this picker. More...
 
vtkTextureGetTexture ()
 Get the texture that was picked. More...
 
virtual void SetVolumeOpacityIsovalue (double)
 Set the opacity isovalue to use for defining volume surfaces. More...
 
virtual double GetVolumeOpacityIsovalue ()
 Set the opacity isovalue to use for defining volume surfaces. More...
 
virtual void SetUseVolumeGradientOpacity (vtkTypeBool)
 Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity. More...
 
virtual void UseVolumeGradientOpacityOn ()
 Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity. More...
 
virtual void UseVolumeGradientOpacityOff ()
 Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity. More...
 
virtual vtkTypeBool GetUseVolumeGradientOpacity ()
 Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity. More...
 
virtual void SetPickClippingPlanes (vtkTypeBool)
 The PickClippingPlanes setting controls how clipping planes are handled by the pick. More...
 
virtual void PickClippingPlanesOn ()
 The PickClippingPlanes setting controls how clipping planes are handled by the pick. More...
 
virtual void PickClippingPlanesOff ()
 The PickClippingPlanes setting controls how clipping planes are handled by the pick. More...
 
virtual vtkTypeBool GetPickClippingPlanes ()
 The PickClippingPlanes setting controls how clipping planes are handled by the pick. More...
 
virtual int GetClippingPlaneId ()
 Get the index of the clipping plane that was intersected during the pick. More...
 
virtual double * GetPickNormal ()
 Return the normal of the picked surface at the PickPosition. More...
 
virtual void GetPickNormal (double data[3])
 Return the normal of the picked surface at the PickPosition. More...
 
virtual double * GetMapperNormal ()
 Return the normal of the surface at the PickPosition in mapper coordinates. More...
 
virtual void GetMapperNormal (double &, double &, double &)
 Return the normal of the surface at the PickPosition in mapper coordinates. More...
 
virtual void GetMapperNormal (double[3])
 Return the normal of the surface at the PickPosition in mapper coordinates. More...
 
virtual int * GetPointIJK ()
 Get the structured coordinates of the point at the PickPosition. More...
 
virtual void GetPointIJK (int &, int &, int &)
 Get the structured coordinates of the point at the PickPosition. More...
 
virtual void GetPointIJK (int[3])
 Get the structured coordinates of the point at the PickPosition. More...
 
virtual int * GetCellIJK ()
 Get the structured coordinates of the cell at the PickPosition. More...
 
virtual void GetCellIJK (int &, int &, int &)
 Get the structured coordinates of the cell at the PickPosition. More...
 
virtual void GetCellIJK (int[3])
 Get the structured coordinates of the cell at the PickPosition. More...
 
virtual vtkIdType GetPointId ()
 Get the id of the picked point. More...
 
virtual vtkIdType GetCellId ()
 Get the id of the picked cell. More...
 
virtual int GetSubId ()
 Get the subId of the picked cell. More...
 
virtual double * GetPCoords ()
 Get the parametric coordinates of the picked cell. More...
 
virtual void GetPCoords (double &, double &, double &)
 Get the parametric coordinates of the picked cell. More...
 
virtual void GetPCoords (double[3])
 Get the parametric coordinates of the picked cell. More...
 
virtual void SetPickTextureData (vtkTypeBool)
 If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data. More...
 
virtual void PickTextureDataOn ()
 If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data. More...
 
virtual void PickTextureDataOff ()
 If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data. More...
 
virtual vtkTypeBool GetPickTextureData ()
 If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data. More...
 
- Public Member Functions inherited from vtkPicker
vtkPickerNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
vtkProp3DCollectionGetProp3Ds ()
 Return a collection of all the prop 3D's that were intersected by the pick ray. More...
 
vtkActorCollectionGetActors ()
 Return a collection of all the actors that were intersected. More...
 
vtkPointsGetPickedPositions ()
 Return a list of the points the actors returned by GetProp3Ds were intersected at. More...
 
int Pick (double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer) override
 Perform pick operation with selection point provided. More...
 
int Pick (double selectionPt[3], vtkRenderer *ren)
 Perform pick operation with selection point provided. More...
 
int Pick3DPoint (double selectionPt[3], vtkRenderer *ren) override
 Perform pick operation with selection point provided. More...
 
virtual int Pick3DPoint (double p1World[3], double p2World[3], vtkRenderer *ren)
 
int Pick3DRay (double selectionPt[3], double orient[4], vtkRenderer *ren) override
 Perform pick operation with selection point and orientation provided. More...
 
virtual void SetTolerance (double)
 Specify tolerance for performing pick operation. More...
 
virtual double GetTolerance ()
 Specify tolerance for performing pick operation. More...
 
virtual double * GetMapperPosition ()
 Return position in mapper (i.e., non-transformed) coordinates of pick point. More...
 
virtual void GetMapperPosition (double data[3])
 Return position in mapper (i.e., non-transformed) coordinates of pick point. More...
 
virtual vtkAbstractMapper3DGetMapper ()
 Return mapper that was picked (if any). More...
 
virtual vtkDataSetGetDataSet ()
 Get a pointer to the dataset that was picked (if any). More...
 
virtual vtkCompositeDataSetGetCompositeDataSet ()
 Get a pointer to the composite dataset that was picked (if any). More...
 
virtual vtkIdType GetFlatBlockIndex ()
 Get the flat block index of the vtkDataSet in the composite dataset that was picked (if any). More...
 
- Public Member Functions inherited from vtkAbstractPropPicker
vtkAbstractPropPickerNewInstance () const
 
virtual vtkPropGetViewProp ()
 Return the vtkProp that has been picked. More...
 
virtual vtkProp3DGetProp3D ()
 Return the vtkProp that has been picked. More...
 
virtual vtkActorGetActor ()
 Return the vtkActor that has been picked. More...
 
virtual vtkActor2DGetActor2D ()
 Return the vtkActor2D that has been picked. More...
 
virtual vtkVolumeGetVolume ()
 Return the vtkVolume that has been picked. More...
 
virtual vtkAssemblyGetAssembly ()
 Return the vtkAssembly that has been picked. More...
 
virtual vtkPropAssemblyGetPropAssembly ()
 Return the vtkPropAssembly that has been picked. More...
 
virtual void SetPath (vtkAssemblyPath *)
 Return the vtkAssemblyPath that has been picked. More...
 
virtual vtkAssemblyPathGetPath ()
 Return the vtkAssemblyPath that has been picked. More...
 
- Public Member Functions inherited from vtkAbstractPicker
vtkAbstractPickerNewInstance () const
 
int Pick (double selectionPt[3], vtkRenderer *ren)
 provided. More...
 
void InitializePickList ()
 Initialize list of actors in pick list. More...
 
void AddPickList (vtkProp *)
 Add an actor to the pick list. More...
 
void DeletePickList (vtkProp *)
 Delete an actor from the pick list. More...
 
vtkPropCollectionGetPickList ()
 Return the list of actors in the PickList. More...
 
virtual vtkRendererGetRenderer ()
 Get the renderer in which pick event occurred. More...
 
virtual double * GetSelectionPoint ()
 Get the selection point in screen (pixel) coordinates. More...
 
virtual void GetSelectionPoint (double data[3])
 Get the selection point in screen (pixel) coordinates. More...
 
virtual double * GetPickPosition ()
 Return position in global coordinates of pick point. More...
 
virtual void GetPickPosition (double data[3])
 Return position in global coordinates of pick point. More...
 
virtual void SetPickFromList (vtkTypeBool)
 Use these methods to control whether to limit the picking to this list (rather than renderer's actors). More...
 
virtual vtkTypeBool GetPickFromList ()
 Use these methods to control whether to limit the picking to this list (rather than renderer's actors). More...
 
virtual void PickFromListOn ()
 Use these methods to control whether to limit the picking to this list (rather than renderer's actors). More...
 
virtual void PickFromListOff ()
 Use these methods to control whether to limit the picking to this list (rather than renderer's actors). More...
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on. More...
 
virtual void DebugOff ()
 Turn debugging output off. More...
 
bool GetDebug ()
 Get the value of the debug flag. More...
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag. More...
 
virtual void Modified ()
 Update the modification time for this object. More...
 
virtual vtkMTimeType GetMTime ()
 Return this object's modified time. More...
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
vtkTypeBool HasObserver (unsigned long event)
 
vtkTypeBool HasObserver (const char *event)
 
vtkTypeBool InvokeEvent (unsigned long event)
 
vtkTypeBool InvokeEvent (const char *event)
 
std::string GetObjectDescription () const override
 The object description printed in messages and PrintSelf output. More...
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkTypeBool HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkTypeBool HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Allow user to set the AbortFlagOn() with the return value of the callback method. More...
 
vtkTypeBool InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
vtkTypeBool InvokeEvent (const char *event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
virtual void SetObjectName (const std::string &objectName)
 Set/get the name of this object for reporting purposes. More...
 
virtual std::string GetObjectName () const
 Set/get the name of this object for reporting purposes. More...
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string. More...
 
virtual vtkIdType GetNumberOfGenerationsFromBase (const char *name)
 Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More...
 
virtual void Delete ()
 Delete a VTK object. More...
 
virtual void FastDelete ()
 Delete a reference to this object. More...
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream. More...
 
void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object). More...
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object). More...
 
int GetReferenceCount ()
 Return the current reference count of this object. More...
 
void SetReferenceCount (int)
 Sets the reference count. More...
 
bool GetIsInMemkind () const
 A local state flag that remembers whether this object lives in the normal or extended memory space. More...
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 
virtual bool UsesGarbageCollector () const
 Indicate whether the class uses vtkGarbageCollector or not. More...
 

Static Public Member Functions

static vtkCellPickerNew ()
 
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkCellPickerSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkPicker
static vtkPickerNew ()
 
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkPickerSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkAbstractPropPicker
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkAbstractPropPickerSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkAbstractPicker
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkAbstractPickerSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes. More...
 
static void SetGlobalWarningDisplay (vtkTypeBool val)
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static vtkTypeBool GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
- Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool IsTypeOf (const char *name)
 Return 1 if this class type is the same type of (or a subclass of) the named class. More...
 
static vtkIdType GetNumberOfGenerationsFromBaseType (const char *name)
 Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More...
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 
static void SetMemkindDirectory (const char *directoryname)
 The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. More...
 
static bool GetUsingMemkind ()
 A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. More...
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkCellPicker ()
 
 ~vtkCellPicker () override
 
void Initialize () override
 
virtual void ResetPickInfo ()
 
double IntersectWithLine (const double p1[3], const double p2[3], double tol, vtkAssemblyPath *path, vtkProp3D *p, vtkAbstractMapper3D *m) override
 
virtual double IntersectActorWithLine (const double p1[3], const double p2[3], double t1, double t2, double tol, vtkProp3D *prop, vtkMapper *mapper)
 
virtual bool IntersectDataSetWithLine (vtkDataSet *dataSet, const double p1[3], const double p2[3], double t1, double t2, double tol, vtkAbstractCellLocator *&locator, vtkIdType &cellId, int &subId, double &tMin, double &pDistMin, double xyz[3], double minPCoords[3])
 
virtual double IntersectVolumeWithLine (const double p1[3], const double p2[3], double t1, double t2, vtkProp3D *prop, vtkAbstractVolumeMapper *mapper)
 
virtual double IntersectImageWithLine (const double p1[3], const double p2[3], double t1, double t2, vtkProp3D *prop, vtkImageMapper3D *mapper)
 
virtual double IntersectProp3DWithLine (const double p1[3], const double p2[3], double t1, double t2, double tol, vtkProp3D *prop, vtkAbstractMapper3D *mapper)
 
void SetImageDataPickInfo (const double x[3], const int extent[6])
 
double ComputeVolumeOpacity (const int xi[3], const double pcoords[3], vtkImageData *data, vtkDataArray *scalars, vtkPiecewiseFunction *scalarOpacity, vtkPiecewiseFunction *gradientOpacity)
 
virtual double IntersectHyperTreeGridWithLine (const double[3], const double[3], double, double, vtkAbstractHyperTreeGridMapper *)
 Intersect a vtkAbstractHyperTreeGridMapper with a line by ray casting. More...
 
virtual bool RecursivelyProcessTree (vtkHyperTreeGridNonOrientedGeometryCursor *, int)
 Intersect a vtkAbstractHyperTreeGridMapper with a line by ray casting. More...
 
- Protected Member Functions inherited from vtkPicker
 vtkPicker ()
 
 ~vtkPicker () override
 
virtual int Pick3DInternal (vtkRenderer *ren, double p1World[4], double p2World[4])
 
void MarkPicked (vtkAssemblyPath *path, vtkProp3D *p, vtkAbstractMapper3D *m, double tMin, double mapperPos[3])
 
void MarkPickedData (vtkAssemblyPath *path, double tMin, double mapperPos[3], vtkAbstractMapper3D *mapper, vtkDataSet *input, vtkIdType flatBlockIndex=-1)
 
void Initialize () override
 
- Protected Member Functions inherited from vtkAbstractPropPicker
 vtkAbstractPropPicker ()
 
 ~vtkAbstractPropPicker () override
 
- Protected Member Functions inherited from vtkAbstractPicker
 vtkAbstractPicker ()
 
 ~vtkAbstractPicker () override
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
 ~vtkObject () override
 
void RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
 These methods allow a command to exclusively grab all events. More...
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events. More...
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Static Protected Member Functions

static int ClipLineWithPlanes (vtkAbstractMapper3D *mapper, vtkMatrix4x4 *propMatrix, const double p1[3], const double p2[3], double &t1, double &t2, int &planeId)
 
static int ClipLineWithExtent (const int extent[6], const double x1[3], const double x2[3], double &t1, double &t2, int &planeId)
 
static int ComputeSurfaceNormal (vtkDataSet *data, vtkCell *cell, const double *weights, double normal[3])
 
static int ComputeSurfaceTCoord (vtkDataSet *data, vtkCell *cell, const double *weights, double tcoord[3])
 
static vtkTypeBool HasSubCells (int cellType)
 
static int GetNumberOfSubCells (vtkIdList *pointIds, int cellType)
 
static void GetSubCell (vtkDataSet *data, vtkIdList *pointIds, int subId, int cellType, vtkGenericCell *cell)
 
static void SubCellFromCell (vtkGenericCell *cell, int subId)
 
- Static Protected Member Functions inherited from vtkPicker
static bool CalculateRay (const double p1[3], const double p2[3], double ray[3], double &rayFactor)
 
- Static Protected Member Functions inherited from vtkObjectBase
static vtkMallocingFunction GetCurrentMallocFunction ()
 
static vtkReallocingFunction GetCurrentReallocFunction ()
 
static vtkFreeingFunction GetCurrentFreeFunction ()
 
static vtkFreeingFunction GetAlternateFreeFunction ()
 

Protected Attributes

vtkCollectionLocators
 
double VolumeOpacityIsovalue
 
vtkTypeBool UseVolumeGradientOpacity
 
vtkTypeBool PickClippingPlanes
 
int ClippingPlaneId
 
vtkIdType PointId
 
vtkIdType CellId
 
int SubId
 
double PCoords [3]
 
int PointIJK [3]
 
int CellIJK [3]
 
double PickNormal [3]
 
double MapperNormal [3]
 
vtkTextureTexture
 
vtkTypeBool PickTextureData
 
vtkBitArrayInMask
 
double WordlPoint [3]
 
- Protected Attributes inherited from vtkPicker
double Tolerance
 
double MapperPosition [3]
 
vtkAbstractMapper3DMapper
 
vtkDataSetDataSet
 
vtkCompositeDataSetCompositeDataSet
 
vtkIdType FlatBlockIndex
 
double GlobalTMin
 
vtkTransformTransform
 
vtkActorCollectionActors
 
vtkProp3DCollectionProp3Ds
 
vtkPointsPickedPositions
 
- Protected Attributes inherited from vtkAbstractPropPicker
vtkAssemblyPathPath
 
- Protected Attributes inherited from vtkAbstractPicker
vtkRendererRenderer
 
double SelectionPoint [3]
 
double PickPosition [3]
 
vtkTypeBool PickFromList
 
vtkPropCollectionPickList
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
std::string ObjectName
 
- Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

ray-cast cell picker for all kinds of Prop3Ds

vtkCellPicker will shoot a ray into a 3D scene and return information about the first object that the ray hits. It works for all Prop3Ds. For vtkVolume objects, it shoots a ray into the volume and returns the point where the ray intersects an isosurface of a chosen opacity. For vtkImage objects, it intersects the ray with the displayed slice. For vtkActor objects, it intersects the actor's polygons. If the object's mapper has ClippingPlanes, then it takes the clipping into account, and will return the Id of the clipping plane that was intersected. For all prop types, it returns point and cell information, plus the normal of the surface that was intersected at the pick position. For volumes and images, it also returns (i,j,k) coordinates for the point and the cell that were picked.

See also
vtkPicker vtkPointPicker vtkVolumePicker
Thanks:
This class was contributed to VTK by David Gobbi on behalf of Atamai Inc., as an enhancement to the original vtkCellPicker.
Examples:
vtkCellPicker (Examples)
Online Examples:

Tests:
vtkCellPicker (Tests)

Definition at line 90 of file vtkCellPicker.h.

Member Typedef Documentation

◆ Superclass

Definition at line 94 of file vtkCellPicker.h.

Constructor & Destructor Documentation

◆ vtkCellPicker()

vtkCellPicker::vtkCellPicker ( )
protected

◆ ~vtkCellPicker()

vtkCellPicker::~vtkCellPicker ( )
overrideprotected

Member Function Documentation

◆ New()

static vtkCellPicker* vtkCellPicker::New ( )
static

◆ IsTypeOf()

static vtkTypeBool vtkCellPicker::IsTypeOf ( const char *  type)
static

◆ IsA()

virtual vtkTypeBool vtkCellPicker::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 vtkPicker.

Reimplemented in vtkVolumePicker.

◆ SafeDownCast()

static vtkCellPicker* vtkCellPicker::SafeDownCast ( vtkObjectBase o)
static

◆ NewInstanceInternal()

virtual vtkObjectBase* vtkCellPicker::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtkPicker.

Reimplemented in vtkVolumePicker.

◆ NewInstance()

vtkCellPicker* vtkCellPicker::NewInstance ( ) const

◆ PrintSelf()

void vtkCellPicker::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

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 vtkAbstractPropPicker.

Reimplemented in vtkVolumePicker.

◆ Pick()

int vtkCellPicker::Pick ( double  selectionX,
double  selectionY,
double  selectionZ,
vtkRenderer renderer 
)
overridevirtual

Perform pick operation with selection point provided.

Normally the first two values are the (x,y) pixel coordinates for the pick, and the third value is z=0. The return value will be non-zero if something was successfully picked.

Implements vtkAbstractPicker.

◆ Pick3DRay()

int vtkCellPicker::Pick3DRay ( double  selectionPt[3],
double  orient[4],
vtkRenderer ren 
)
overridevirtual

Perform pick operation with selection point provided.

The selectionPt is in world coordinates. Return non-zero if something was successfully picked.

Reimplemented from vtkAbstractPicker.

◆ AddLocator()

void vtkCellPicker::AddLocator ( vtkAbstractCellLocator locator)

Add a locator for one of the data sets that will be included in the scene.

You must set up the locator with exactly the same data set that was input to the mapper of one or more of the actors in the scene. Note that if you try to add the same locator to the picker twice, the second addition will be ignored.

◆ RemoveLocator()

void vtkCellPicker::RemoveLocator ( vtkAbstractCellLocator locator)

Remove a locator that was previously added.

If you try to remove a nonexistent locator, then nothing will happen and no errors will be raised.

◆ RemoveAllLocators()

void vtkCellPicker::RemoveAllLocators ( )

Remove all locators associated with this picker.

◆ SetVolumeOpacityIsovalue()

virtual void vtkCellPicker::SetVolumeOpacityIsovalue ( double  )
virtual

Set the opacity isovalue to use for defining volume surfaces.

The pick will occur at the location along the pick ray where the opacity of the volume is equal to this isovalue. If you want to do the pick based on an actual data isovalue rather than the opacity, then pass the data value through the scalar opacity function before using this method.

◆ GetVolumeOpacityIsovalue()

virtual double vtkCellPicker::GetVolumeOpacityIsovalue ( )
virtual

Set the opacity isovalue to use for defining volume surfaces.

The pick will occur at the location along the pick ray where the opacity of the volume is equal to this isovalue. If you want to do the pick based on an actual data isovalue rather than the opacity, then pass the data value through the scalar opacity function before using this method.

◆ SetUseVolumeGradientOpacity()

virtual void vtkCellPicker::SetUseVolumeGradientOpacity ( vtkTypeBool  )
virtual

Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity.

This parameter is only relevant to volume picking and is off by default.

◆ UseVolumeGradientOpacityOn()

virtual void vtkCellPicker::UseVolumeGradientOpacityOn ( )
virtual

Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity.

This parameter is only relevant to volume picking and is off by default.

◆ UseVolumeGradientOpacityOff()

virtual void vtkCellPicker::UseVolumeGradientOpacityOff ( )
virtual

Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity.

This parameter is only relevant to volume picking and is off by default.

◆ GetUseVolumeGradientOpacity()

virtual vtkTypeBool vtkCellPicker::GetUseVolumeGradientOpacity ( )
virtual

Use the product of the scalar and gradient opacity functions when computing the opacity isovalue, instead of just using the scalar opacity.

This parameter is only relevant to volume picking and is off by default.

◆ SetPickClippingPlanes()

virtual void vtkCellPicker::SetPickClippingPlanes ( vtkTypeBool  )
virtual

The PickClippingPlanes setting controls how clipping planes are handled by the pick.

If it is On, then the clipping planes become pickable objects, even though they are usually invisible. This means that if the pick ray intersects a clipping plane before it hits anything else, the pick will stop at that clipping plane. The GetProp3D() and GetMapper() methods will return the Prop3D and Mapper that the clipping plane belongs to. The GetClippingPlaneId() method will return the index of the clipping plane so that you can retrieve it from the mapper, or -1 if no clipping plane was picked.

◆ PickClippingPlanesOn()

virtual void vtkCellPicker::PickClippingPlanesOn ( )
virtual

The PickClippingPlanes setting controls how clipping planes are handled by the pick.

If it is On, then the clipping planes become pickable objects, even though they are usually invisible. This means that if the pick ray intersects a clipping plane before it hits anything else, the pick will stop at that clipping plane. The GetProp3D() and GetMapper() methods will return the Prop3D and Mapper that the clipping plane belongs to. The GetClippingPlaneId() method will return the index of the clipping plane so that you can retrieve it from the mapper, or -1 if no clipping plane was picked.

◆ PickClippingPlanesOff()

virtual void vtkCellPicker::PickClippingPlanesOff ( )
virtual

The PickClippingPlanes setting controls how clipping planes are handled by the pick.

If it is On, then the clipping planes become pickable objects, even though they are usually invisible. This means that if the pick ray intersects a clipping plane before it hits anything else, the pick will stop at that clipping plane. The GetProp3D() and GetMapper() methods will return the Prop3D and Mapper that the clipping plane belongs to. The GetClippingPlaneId() method will return the index of the clipping plane so that you can retrieve it from the mapper, or -1 if no clipping plane was picked.

◆ GetPickClippingPlanes()

virtual vtkTypeBool vtkCellPicker::GetPickClippingPlanes ( )
virtual

The PickClippingPlanes setting controls how clipping planes are handled by the pick.

If it is On, then the clipping planes become pickable objects, even though they are usually invisible. This means that if the pick ray intersects a clipping plane before it hits anything else, the pick will stop at that clipping plane. The GetProp3D() and GetMapper() methods will return the Prop3D and Mapper that the clipping plane belongs to. The GetClippingPlaneId() method will return the index of the clipping plane so that you can retrieve it from the mapper, or -1 if no clipping plane was picked.

◆ GetClippingPlaneId()

virtual int vtkCellPicker::GetClippingPlaneId ( )
virtual

Get the index of the clipping plane that was intersected during the pick.

This will be set regardless of whether PickClippingPlanes is On, all that is required is that the pick intersected a clipping plane of the Prop3D that was picked. The result will be -1 if the Prop3D that was picked has no clipping planes, or if the ray didn't intersect the planes.

◆ GetPickNormal() [1/2]

virtual double* vtkCellPicker::GetPickNormal ( )
virtual

Return the normal of the picked surface at the PickPosition.

If no surface was picked, then a vector pointing back at the camera is returned.

◆ GetPickNormal() [2/2]

virtual void vtkCellPicker::GetPickNormal ( double  data[3])
virtual

Return the normal of the picked surface at the PickPosition.

If no surface was picked, then a vector pointing back at the camera is returned.

◆ GetMapperNormal() [1/3]

virtual double* vtkCellPicker::GetMapperNormal ( )
virtual

Return the normal of the surface at the PickPosition in mapper coordinates.

The result is undefined if no prop was picked.

◆ GetMapperNormal() [2/3]

virtual void vtkCellPicker::GetMapperNormal ( double &  ,
double &  ,
double &   
)
virtual

Return the normal of the surface at the PickPosition in mapper coordinates.

The result is undefined if no prop was picked.

◆ GetMapperNormal() [3/3]

virtual void vtkCellPicker::GetMapperNormal ( double  [3])
virtual

Return the normal of the surface at the PickPosition in mapper coordinates.

The result is undefined if no prop was picked.

◆ GetPointIJK() [1/3]

virtual int* vtkCellPicker::GetPointIJK ( )
virtual

Get the structured coordinates of the point at the PickPosition.

Only valid for image actors and volumes with vtkImageData.

◆ GetPointIJK() [2/3]

virtual void vtkCellPicker::GetPointIJK ( int &  ,
int &  ,
int &   
)
virtual

Get the structured coordinates of the point at the PickPosition.

Only valid for image actors and volumes with vtkImageData.

◆ GetPointIJK() [3/3]

virtual void vtkCellPicker::GetPointIJK ( int  [3])
virtual

Get the structured coordinates of the point at the PickPosition.

Only valid for image actors and volumes with vtkImageData.

◆ GetCellIJK() [1/3]

virtual int* vtkCellPicker::GetCellIJK ( )
virtual

Get the structured coordinates of the cell at the PickPosition.

Only valid for image actors and volumes with vtkImageData. Combine this with the PCoords to get the position within the cell.

◆ GetCellIJK() [2/3]

virtual void vtkCellPicker::GetCellIJK ( int &  ,
int &  ,
int &   
)
virtual

Get the structured coordinates of the cell at the PickPosition.

Only valid for image actors and volumes with vtkImageData. Combine this with the PCoords to get the position within the cell.

◆ GetCellIJK() [3/3]

virtual void vtkCellPicker::GetCellIJK ( int  [3])
virtual

Get the structured coordinates of the cell at the PickPosition.

Only valid for image actors and volumes with vtkImageData. Combine this with the PCoords to get the position within the cell.

◆ GetPointId()

virtual vtkIdType vtkCellPicker::GetPointId ( )
virtual

Get the id of the picked point.

If PointId = -1, nothing was picked. This point will be a member of any cell that is picked.

◆ GetCellId()

virtual vtkIdType vtkCellPicker::GetCellId ( )
virtual

Get the id of the picked cell.

If CellId = -1, nothing was picked.

◆ GetSubId()

virtual int vtkCellPicker::GetSubId ( )
virtual

Get the subId of the picked cell.

This is useful, for example, if the data is made of triangle strips. If SubId = -1, nothing was picked.

◆ GetPCoords() [1/3]

virtual double* vtkCellPicker::GetPCoords ( )
virtual

Get the parametric coordinates of the picked cell.

Only valid if a prop was picked. The PCoords can be used to compute the weights that are needed to interpolate data values within the cell.

◆ GetPCoords() [2/3]

virtual void vtkCellPicker::GetPCoords ( double &  ,
double &  ,
double &   
)
virtual

Get the parametric coordinates of the picked cell.

Only valid if a prop was picked. The PCoords can be used to compute the weights that are needed to interpolate data values within the cell.

◆ GetPCoords() [3/3]

virtual void vtkCellPicker::GetPCoords ( double  [3])
virtual

Get the parametric coordinates of the picked cell.

Only valid if a prop was picked. The PCoords can be used to compute the weights that are needed to interpolate data values within the cell.

◆ GetTexture()

vtkTexture* vtkCellPicker::GetTexture ( )
inline

Get the texture that was picked.

This will always be set if the picked prop has a texture, and will always be null otherwise.

Definition at line 258 of file vtkCellPicker.h.

◆ SetPickTextureData()

virtual void vtkCellPicker::SetPickTextureData ( vtkTypeBool  )
virtual

If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data.

The GetPointId(), GetCellId(), GetPCoords() etc. will all return information for use with the texture's data. If the picked prop does not have any texture, then GetDataSet() will return the mapper's data instead and GetPointId() etc. will return information related to the mapper's data. The default value of PickTextureData is "Off".

◆ PickTextureDataOn()

virtual void vtkCellPicker::PickTextureDataOn ( )
virtual

If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data.

The GetPointId(), GetCellId(), GetPCoords() etc. will all return information for use with the texture's data. If the picked prop does not have any texture, then GetDataSet() will return the mapper's data instead and GetPointId() etc. will return information related to the mapper's data. The default value of PickTextureData is "Off".

◆ PickTextureDataOff()

virtual void vtkCellPicker::PickTextureDataOff ( )
virtual

If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data.

The GetPointId(), GetCellId(), GetPCoords() etc. will all return information for use with the texture's data. If the picked prop does not have any texture, then GetDataSet() will return the mapper's data instead and GetPointId() etc. will return information related to the mapper's data. The default value of PickTextureData is "Off".

◆ GetPickTextureData()

virtual vtkTypeBool vtkCellPicker::GetPickTextureData ( )
virtual

If this is "On" and if the picked prop has a texture, then the data returned by GetDataSet() will be the texture's data instead of the mapper's data.

The GetPointId(), GetCellId(), GetPCoords() etc. will all return information for use with the texture's data. If the picked prop does not have any texture, then GetDataSet() will return the mapper's data instead and GetPointId() etc. will return information related to the mapper's data. The default value of PickTextureData is "Off".

◆ Initialize()

void vtkCellPicker::Initialize ( )
overrideprotectedvirtual

Reimplemented from vtkAbstractPropPicker.

◆ ResetPickInfo()

virtual void vtkCellPicker::ResetPickInfo ( )
protectedvirtual

Reimplemented in vtkVolumePicker.

◆ IntersectWithLine()

double vtkCellPicker::IntersectWithLine ( const double  p1[3],
const double  p2[3],
double  tol,
vtkAssemblyPath path,
vtkProp3D p,
vtkAbstractMapper3D m 
)
overrideprotectedvirtual

Reimplemented from vtkPicker.

◆ IntersectActorWithLine()

virtual double vtkCellPicker::IntersectActorWithLine ( const double  p1[3],
const double  p2[3],
double  t1,
double  t2,
double  tol,
vtkProp3D prop,
vtkMapper mapper 
)
protectedvirtual

◆ IntersectDataSetWithLine()

virtual bool vtkCellPicker::IntersectDataSetWithLine ( vtkDataSet dataSet,
const double  p1[3],
const double  p2[3],
double  t1,
double  t2,
double  tol,
vtkAbstractCellLocator *&  locator,
vtkIdType cellId,
int &  subId,
double &  tMin,
double &  pDistMin,
double  xyz[3],
double  minPCoords[3] 
)
protectedvirtual

◆ IntersectHyperTreeGridWithLine()

virtual double vtkCellPicker::IntersectHyperTreeGridWithLine ( const double  [3],
const double  [3],
double  ,
double  ,
vtkAbstractHyperTreeGridMapper  
)
protectedvirtual

Intersect a vtkAbstractHyperTreeGridMapper with a line by ray casting.

◆ RecursivelyProcessTree()

virtual bool vtkCellPicker::RecursivelyProcessTree ( vtkHyperTreeGridNonOrientedGeometryCursor ,
int   
)
protectedvirtual

Intersect a vtkAbstractHyperTreeGridMapper with a line by ray casting.

◆ IntersectVolumeWithLine()

virtual double vtkCellPicker::IntersectVolumeWithLine ( const double  p1[3],
const double  p2[3],
double  t1,
double  t2,
vtkProp3D prop,
vtkAbstractVolumeMapper mapper 
)
protectedvirtual

Reimplemented in vtkVolumePicker.

◆ IntersectImageWithLine()

virtual double vtkCellPicker::IntersectImageWithLine ( const double  p1[3],
const double  p2[3],
double  t1,
double  t2,
vtkProp3D prop,
vtkImageMapper3D mapper 
)
protectedvirtual

◆ IntersectProp3DWithLine()

virtual double vtkCellPicker::IntersectProp3DWithLine ( const double  p1[3],
const double  p2[3],
double  t1,
double  t2,
double  tol,
vtkProp3D prop,
vtkAbstractMapper3D mapper 
)
protectedvirtual

◆ ClipLineWithPlanes()

static int vtkCellPicker::ClipLineWithPlanes ( vtkAbstractMapper3D mapper,
vtkMatrix4x4 propMatrix,
const double  p1[3],
const double  p2[3],
double &  t1,
double &  t2,
int &  planeId 
)
staticprotected

◆ ClipLineWithExtent()

static int vtkCellPicker::ClipLineWithExtent ( const int  extent[6],
const double  x1[3],
const double  x2[3],
double &  t1,
double &  t2,
int &  planeId 
)
staticprotected

◆ ComputeSurfaceNormal()

static int vtkCellPicker::ComputeSurfaceNormal ( vtkDataSet data,
vtkCell cell,
const double *  weights,
double  normal[3] 
)
staticprotected

◆ ComputeSurfaceTCoord()

static int vtkCellPicker::ComputeSurfaceTCoord ( vtkDataSet data,
vtkCell cell,
const double *  weights,
double  tcoord[3] 
)
staticprotected

◆ HasSubCells()

static vtkTypeBool vtkCellPicker::HasSubCells ( int  cellType)
staticprotected

◆ GetNumberOfSubCells()

static int vtkCellPicker::GetNumberOfSubCells ( vtkIdList pointIds,
int  cellType 
)
staticprotected

◆ GetSubCell()

static void vtkCellPicker::GetSubCell ( vtkDataSet data,
vtkIdList pointIds,
int  subId,
int  cellType,
vtkGenericCell cell 
)
staticprotected

◆ SubCellFromCell()

static void vtkCellPicker::SubCellFromCell ( vtkGenericCell cell,
int  subId 
)
staticprotected

◆ SetImageDataPickInfo()

void vtkCellPicker::SetImageDataPickInfo ( const double  x[3],
const int  extent[6] 
)
protected

◆ ComputeVolumeOpacity()

double vtkCellPicker::ComputeVolumeOpacity ( const int  xi[3],
const double  pcoords[3],
vtkImageData data,
vtkDataArray scalars,
vtkPiecewiseFunction scalarOpacity,
vtkPiecewiseFunction gradientOpacity 
)
protected

Member Data Documentation

◆ Locators

vtkCollection* vtkCellPicker::Locators
protected

Definition at line 339 of file vtkCellPicker.h.

◆ VolumeOpacityIsovalue

double vtkCellPicker::VolumeOpacityIsovalue
protected

Definition at line 341 of file vtkCellPicker.h.

◆ UseVolumeGradientOpacity

vtkTypeBool vtkCellPicker::UseVolumeGradientOpacity
protected

Definition at line 342 of file vtkCellPicker.h.

◆ PickClippingPlanes

vtkTypeBool vtkCellPicker::PickClippingPlanes
protected

Definition at line 343 of file vtkCellPicker.h.

◆ ClippingPlaneId

int vtkCellPicker::ClippingPlaneId
protected

Definition at line 344 of file vtkCellPicker.h.

◆ PointId

vtkIdType vtkCellPicker::PointId
protected

Definition at line 346 of file vtkCellPicker.h.

◆ CellId

vtkIdType vtkCellPicker::CellId
protected

Definition at line 347 of file vtkCellPicker.h.

◆ SubId

int vtkCellPicker::SubId
protected

Definition at line 348 of file vtkCellPicker.h.

◆ PCoords

double vtkCellPicker::PCoords[3]
protected

Definition at line 349 of file vtkCellPicker.h.

◆ PointIJK

int vtkCellPicker::PointIJK[3]
protected

Definition at line 351 of file vtkCellPicker.h.

◆ CellIJK

int vtkCellPicker::CellIJK[3]
protected

Definition at line 352 of file vtkCellPicker.h.

◆ PickNormal

double vtkCellPicker::PickNormal[3]
protected

Definition at line 354 of file vtkCellPicker.h.

◆ MapperNormal

double vtkCellPicker::MapperNormal[3]
protected

Definition at line 355 of file vtkCellPicker.h.

◆ Texture

vtkTexture* vtkCellPicker::Texture
protected

Definition at line 357 of file vtkCellPicker.h.

◆ PickTextureData

vtkTypeBool vtkCellPicker::PickTextureData
protected

Definition at line 358 of file vtkCellPicker.h.

◆ InMask

vtkBitArray* vtkCellPicker::InMask
protected

Definition at line 360 of file vtkCellPicker.h.

◆ WordlPoint

double vtkCellPicker::WordlPoint[3]
protected

Definition at line 361 of file vtkCellPicker.h.


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