70#ifndef vtkCellPicker_h
71#define vtkCellPicker_h
74#include "vtkRenderingCoreModule.h"
108 int Pick(
double selectionX,
double selectionY,
double selectionZ,
vtkRenderer* renderer)
override;
149 vtkSetMacro(VolumeOpacityIsovalue,
double);
150 vtkGetMacro(VolumeOpacityIsovalue,
double);
192 vtkGetMacro(ClippingPlaneId,
int);
201 vtkGetVectorMacro(PickNormal,
double, 3);
209 vtkGetVector3Macro(MapperNormal,
double);
217 vtkGetVector3Macro(PointIJK,
int);
226 vtkGetVector3Macro(CellIJK,
int);
249 vtkGetMacro(SubId,
int);
258 vtkGetVector3Macro(PCoords,
double);
299 int& subId,
double& tMin,
double& pDistMin,
double xyz[3],
double minPCoords[3]);
320 const double p1[3],
const double p2[3],
double& t1,
double& t2,
int& planeId);
323 double& t1,
double& t2,
int& planeId);
361 double PickNormal[3];
362 double MapperNormal[3];
368 double WordlPoint[3];
371 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
static int HasSubCells(int cellType)
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)
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