Go to the documentation of this file.
47 #ifndef vtkCellPicker_h
48 #define vtkCellPicker_h
50 #include "vtkRenderingCoreModule.h"
82 int Pick(
double selectionX,
double selectionY,
double selectionZ,
124 vtkSetMacro(VolumeOpacityIsovalue,
double);
125 vtkGetMacro(VolumeOpacityIsovalue,
double);
167 vtkGetMacro(ClippingPlaneId,
int);
176 vtkGetVectorMacro(PickNormal,
double, 3);
184 vtkGetVector3Macro(MapperNormal,
double);
192 vtkGetVector3Macro(PointIJK,
int);
201 vtkGetVector3Macro(CellIJK,
int);
224 vtkGetMacro(SubId,
int);
233 vtkGetVector3Macro(PCoords,
double);
271 double t1,
double t2,
double tol,
275 const double p1[3],
const double p2[3],
276 double t1,
double t2,
double tol,
279 double &tMin,
double &pDistMin,
280 double xyz[3],
double minPCoords[3] );
284 double t1,
double t2,
290 double t1,
double t2,
296 double t1,
double t2,
double tol,
302 const double p1[3],
const double p2[3],
303 double &t1,
double &t2,
int& planeId);
306 const double x1[3],
const double x2[3],
307 double &t1,
double &t2,
int &planeId);
310 const double *weights,
double normal[3]);
313 const double *weights,
double tcoord[3]);
346 double PickNormal[3];
347 double MapperNormal[3];
353 void ResetCellPickerInfo();
static int ClipLineWithPlanes(vtkAbstractMapper3D *mapper, vtkMatrix4x4 *propMatrix, const double p1[3], const double p2[3], double &t1, double &t2, int &planeId)
represents an 3D object for placement in a rendered scene
static int HasSubCells(int cellType)
static int ComputeSurfaceNormal(vtkDataSet *data, vtkCell *cell, const double *weights, double normal[3])
vtkTexture * GetTexture()
Get the texture that was picked.
static int ClipLineWithExtent(const int extent[6], const double x1[3], const double x2[3], double &t1, double &t2, int &planeId)
abstract superclass for arrays of numeric data
superclass for 3D geometric pickers (uses ray cast)
double IntersectWithLine(const double p1[3], const double p2[3], double tol, vtkAssemblyPath *path, vtkProp3D *p, vtkAbstractMapper3D *m) override
static vtkCellPicker * New()
a list of nodes that form an assembly path
virtual double IntersectVolumeWithLine(const double p1[3], const double p2[3], double t1, double t2, vtkProp3D *prop, vtkAbstractVolumeMapper *mapper)
static int ComputeSurfaceTCoord(vtkDataSet *data, vtkCell *cell, const double *weights, double tcoord[3])
double VolumeOpacityIsovalue
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void AddLocator(vtkAbstractCellLocator *locator)
Add a locator for one of the data sets that will be included in the scene.
handles properties associated with a texture map
create and manipulate ordered lists of objects
virtual void ResetPickInfo()
vtkTypeBool PickClippingPlanes
virtual double IntersectImageWithLine(const double p1[3], const double p2[3], double t1, double t2, vtkProp3D *prop, vtkImageMapper3D *mapper)
abstract class specifies interface to map data to graphics primitives
abstract class to specify cell behavior
virtual double IntersectProp3DWithLine(const double p1[3], const double p2[3], double t1, double t2, double tol, vtkProp3D *prop, vtkAbstractMapper3D *mapper)
int Pick(double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer) override
Perform pick operation with selection point provided.
topologically and geometrically regular array of data
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
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])
~vtkCellPicker() override
list of point or cell ids
void RemoveAllLocators()
Remove all locators associated with this picker.
vtkTypeBool UseVolumeGradientOpacity
an abstract base class for locators which find cells
Defines a 1D piecewise function.
abstract class to specify dataset behavior
vtkTypeBool PickTextureData
abstract class for mapping images to the screen
abstract class specifies interface to map 3D data
virtual double IntersectActorWithLine(const double p1[3], const double p2[3], double t1, double t2, double tol, vtkProp3D *prop, vtkMapper *mapper)
void Initialize() override
void RemoveLocator(vtkAbstractCellLocator *locator)
Remove a locator that was previously added.
Abstract class for a volume mapper.
abstract specification for renderers
static void GetSubCell(vtkDataSet *data, vtkIdList *pointIds, int subId, int cellType, vtkGenericCell *cell)
provides thread-safe access to cells
double ComputeVolumeOpacity(const int xi[3], const double pcoords[3], vtkImageData *data, vtkDataArray *scalars, vtkPiecewiseFunction *scalarOpacity, vtkPiecewiseFunction *gradientOpacity)
dynamic, self-adjusting array of double
maintain a list of planes
void SetImageDataPickInfo(const double x[3], const int extent[6])
ray-cast cell picker for all kinds of Prop3Ds
int Pick3DRay(double selectionPt[3], double orient[4], vtkRenderer *ren) override
Perform pick operation with selection point provided.
static int GetNumberOfSubCells(vtkIdList *pointIds, int cellType)
static void SubCellFromCell(vtkGenericCell *cell, int subId)