64#ifndef vtkCellPicker_h
65#define vtkCellPicker_h
68#include "vtkRenderingCoreModule.h"
70VTK_ABI_NAMESPACE_BEGIN
103 int Pick(
double selectionX,
double selectionY,
double selectionZ,
vtkRenderer* renderer)
override;
142 vtkSetMacro(VolumeOpacityIsovalue,
double);
143 vtkGetMacro(VolumeOpacityIsovalue,
double);
185 vtkGetMacro(ClippingPlaneId,
int);
194 vtkGetVectorMacro(PickNormal,
double, 3);
202 vtkGetVector3Macro(MapperNormal,
double);
210 vtkGetVector3Macro(PointIJK,
int);
219 vtkGetVector3Macro(CellIJK,
int);
242 vtkGetMacro(SubId,
int);
251 vtkGetVector3Macro(PCoords,
double);
292 int& subId,
double& tMin,
double& pDistMin,
double xyz[3],
double minPCoords[3]);
313 const double p1[3],
const double p2[3],
double& t1,
double&
t2,
int& planeId);
316 double& t1,
double&
t2,
int& planeId);
354 double PickNormal[3];
355 double MapperNormal[3];
361 double WordlPoint[3];
364 void ResetCellPickerInfo();
an abstract base class for locators which find cells
Abstract class for a HyperTreeGrid mapper.
abstract class specifies interface to map 3D data
Abstract class for a volume mapper.
a list of nodes that form an assembly path
dynamic, self-adjusting array of bits
ray-cast cell picker for all kinds of Prop3Ds
static vtkCellPicker * New()
static int ComputeSurfaceNormal(vtkDataSet *data, vtkCell *cell, const double *weights, double normal[3])
virtual double IntersectHyperTreeGridWithLine(const double[3], const double[3], double, double, vtkAbstractHyperTreeGridMapper *)
Intersect a vtkAbstractHyperTreeGridMapper with a line by ray casting.
virtual double IntersectActorWithLine(const double p1[3], const double p2[3], double t1, double t2, double tol, vtkProp3D *prop, vtkMapper *mapper)
double IntersectWithLine(const double p1[3], const double p2[3], double tol, vtkAssemblyPath *path, vtkProp3D *p, vtkAbstractMapper3D *m) override
void Initialize() override
int Pick(double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer) override
Perform pick operation with selection point provided.
virtual void ResetPickInfo()
void RemoveAllLocators()
Remove all locators associated with this picker.
static int ComputeSurfaceTCoord(vtkDataSet *data, vtkCell *cell, const double *weights, double tcoord[3])
vtkTypeBool PickClippingPlanes
static void SubCellFromCell(vtkGenericCell *cell, int subId)
vtkTypeBool UseVolumeGradientOpacity
vtkTexture * GetTexture()
Get the texture that was picked.
void SetImageDataPickInfo(const double x[3], const int extent[6])
static int ClipLineWithPlanes(vtkAbstractMapper3D *mapper, vtkMatrix4x4 *propMatrix, const double p1[3], const double p2[3], double &t1, double &t2, int &planeId)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual bool RecursivelyProcessTree(vtkHyperTreeGridNonOrientedGeometryCursor *, int)
Intersect a vtkAbstractHyperTreeGridMapper with a line by ray casting.
static int ClipLineWithExtent(const int extent[6], const double x1[3], const double x2[3], double &t1, double &t2, int &planeId)
virtual double IntersectVolumeWithLine(const double p1[3], const double p2[3], double t1, double t2, vtkProp3D *prop, vtkAbstractVolumeMapper *mapper)
double VolumeOpacityIsovalue
void AddLocator(vtkAbstractCellLocator *locator)
Add a locator for one of the data sets that will be included in the scene.
virtual double IntersectImageWithLine(const double p1[3], const double p2[3], double t1, double t2, vtkProp3D *prop, vtkImageMapper3D *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])
int Pick3DRay(double selectionPt[3], double orient[4], vtkRenderer *ren) override
Perform pick operation with selection point provided.
void RemoveLocator(vtkAbstractCellLocator *locator)
Remove a locator that was previously added.
~vtkCellPicker() override
double ComputeVolumeOpacity(const int xi[3], const double pcoords[3], vtkImageData *data, vtkDataArray *scalars, vtkPiecewiseFunction *scalarOpacity, vtkPiecewiseFunction *gradientOpacity)
static void GetSubCell(vtkDataSet *data, vtkIdList *pointIds, int subId, int cellType, vtkGenericCell *cell)
virtual double IntersectProp3DWithLine(const double p1[3], const double p2[3], double t1, double t2, double tol, vtkProp3D *prop, vtkAbstractMapper3D *mapper)
vtkTypeBool PickTextureData
static int GetNumberOfSubCells(vtkIdList *pointIds, int cellType)
static vtkTypeBool HasSubCells(int cellType)
abstract class to specify cell behavior
create and manipulate ordered lists of objects
abstract superclass for arrays of numeric data
abstract class to specify dataset behavior
dynamic, self-adjusting array of double
provides thread-safe access to cells
Objects for traversal a HyperTreeGrid.
list of point or cell ids
topologically and geometrically regular array of data
abstract class for mapping images to the screen
a simple class to control print indentation
abstract class specifies interface to map data to graphics primitives
represent and manipulate 4x4 transformation matrices
superclass for 3D geometric pickers (uses ray cast)
Defines a 1D piecewise function.
maintain a list of planes
represents an 3D object for placement in a rendered scene
abstract specification for renderers
handles properties associated with a texture map