41 #ifndef vtkCellPicker_h
42 #define vtkCellPicker_h
44 #include "vtkRenderingCoreModule.h"
76 int Pick(
double selectionX,
double selectionY,
double selectionZ,
100 void RemoveAllLocators();
112 vtkGetMacro(VolumeOpacityIsovalue,
double);
124 vtkGetMacro(UseVolumeGradientOpacity,
int);
142 vtkGetMacro(PickClippingPlanes,
int);
154 vtkGetMacro(ClippingPlaneId,
int);
163 vtkGetVectorMacro(PickNormal,
double, 3);
171 vtkGetVector3Macro(MapperNormal,
double);
179 vtkGetVector3Macro(PointIJK,
int);
188 vtkGetVector3Macro(CellIJK,
int);
211 vtkGetMacro(SubId,
int);
220 vtkGetVector3Macro(PCoords,
double);
242 vtkGetMacro(PickTextureData,
int);
249 void Initialize() VTK_OVERRIDE;
251 virtual
void ResetPickInfo();
253 double IntersectWithLine(
double p1[3],
double p2[3],
double tol,
257 virtual
double IntersectActorWithLine(const
double p1[3], const
double p2[3],
258 double t1,
double t2,
double tol,
261 virtual
bool IntersectDataSetWithLine(
vtkDataSet* dataSet,
262 const
double p1[3], const
double p2[3],
263 double t1,
double t2,
double tol,
266 double &tMin,
double &pDistMin,
267 double xyz[3],
double minPCoords[3] );
269 virtual
double IntersectVolumeWithLine(const
double p1[3],
271 double t1,
double t2,
275 virtual
double IntersectImageWithLine(const
double p1[3],
277 double t1,
double t2,
281 virtual
double IntersectProp3DWithLine(const
double p1[3],
283 double t1,
double t2,
double tol,
289 const
double p1[3], const
double p2[3],
290 double &t1,
double &t2,
int& planeId);
292 static
int ClipLineWithExtent(const
int extent[6],
293 const
double x1[3], const
double x2[3],
294 double &t1,
double &t2,
int &planeId);
297 const
double *weights,
double normal[3]);
300 const
double *weights,
double tcoord[3]);
302 static
int HasSubCells(
int cellType);
304 static
int GetNumberOfSubCells(
vtkIdList *pointIds,
int cellType);
311 void SetImageDataPickInfo(const
double x[3], const
int extent[6]);
313 double ComputeVolumeOpacity(const
int xi[3], const
double pcoords[3],
320 double VolumeOpacityIsovalue;
321 int UseVolumeGradientOpacity;
322 int PickClippingPlanes;
333 double PickNormal[3];
334 double MapperNormal[3];
340 void ResetCellPickerInfo();
represent and manipulate 4x4 transformation matrices
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Defines a 1D piecewise function.
abstract class to specify dataset behavior
maintain a list of planes
an abstract base class for locators which find cells
Abstract class for a volume mapper.
abstract specification for renderers
represents an 3D object for placement in a rendered scene
provides thread-safe access to cells
superclass for 3D geometric pickers (uses ray cast)
vtkTexture * GetTexture()
Get the texture that was picked.
dynamic, self-adjusting array of double
abstract class to specify cell behavior
a list of nodes that form an assembly path
a simple class to control print indentation
abstract class for mapping images to the screen
topologically and geometrically regular array of data
list of point or cell ids
abstract superclass for arrays of numeric data
handles properties associated with a texture map
abstract class specifies interface to map 3D data
abstract class specifies interface to map data to graphics primitives
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
create and manipulate ordered lists of objects
ray-cast cell picker for all kinds of Prop3Ds
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
int Pick(double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer) override
Perform pick operation with selection point provided.