iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Attributes | List of all members
imstk::PointPicker Class Reference

Picks points on elements of geomToPick via those that that are intersecting the provided ray. More...

#include <imstkPointPicker.h>

Inheritance diagram for imstk::PointPicker:
Inheritance graph
[legend]
Collaboration diagram for imstk::PointPicker:
Collaboration graph
[legend]

Public Member Functions

void requestUpdate () override
 Users can implement this for the logic to be run.
 
void setPickingRay (const Vec3d &rayStart, const Vec3d &rayDir, const double maxDist=-1.0)
 Set the picking ray. More...
 
const Vec3d & getPickRayStart () const
 
const Vec3d & getPickRayDir () const
 
void setUseFirstHit (const bool useFirstHit)
 Get/Set whether only the first hit is used otherwise all intersections are returned.
 
bool getUseFirstHit () const
 
- Public Member Functions inherited from imstk::PickingAlgorithm
const std::vector< PickData > & pick (std::shared_ptr< Geometry > geomToPick)
 Perform picking on provided geometry.
 
const std::vector< PickData > & getPickData () const
 
- Public Member Functions inherited from imstk::GeometryAlgorithm
std::shared_ptr< GeometrygetInput (size_t port=0) const
 Returns input geometry given port, returns nullptr if doesn't exist.
 
std::shared_ptr< GeometrygetOutput (size_t port=0) const
 Returns output geometry given port, returns nullptr if doesn't exist.
 
void setInput (std::shared_ptr< Geometry > inputGeometry, size_t port=0)
 Set the input at the port.
 
void update ()
 Do the actual algorithm.
 

Protected Attributes

Vec3d m_rayStart = Vec3d::Zero()
 
Vec3d m_rayDir = Vec3d::Zero()
 
double m_maxDist = -1.0
 
bool m_useFirstHit = true
 
- Protected Attributes inherited from imstk::PickingAlgorithm
std::vector< PickDatam_results
 
- Protected Attributes inherited from imstk::GeometryAlgorithm
TypeCheckContainer m_requiredTypeChecks
 
TypeCheckContainer m_optionalTypeChecks
 

Additional Inherited Members

- Protected Types inherited from imstk::GeometryAlgorithm
using GeometryCheck = std::function< bool(Geometry *)>
 
using TypeCheckContainer = std::unordered_map< size_t, GeometryCheck >
 
- Protected Member Functions inherited from imstk::GeometryAlgorithm
void setOutput (std::shared_ptr< Geometry > inputGeometry, const size_t port=0)
 Set the output at the port.
 
template<typename T >
void setRequiredInputType (const size_t port)
 Declares the type for the port with the given number, also defines that the give port is required for the filter to run correctly.
 
template<typename T >
void setOptionalInputType (const size_t port)
 Declares the type for the port with the given number, the data for this port is optional and may be omitted.
 
virtual bool areInputsValid ()
 Check inputs are correct. More...
 
void setNumInputPorts (const size_t numPorts)
 Get/Set the amount of input ports.
 
 imstkGetMacro (NumInputPorts, size_t)
 
void setNumOutputPorts (const size_t numPorts)
 Get/Set the amount of output ports.
 
 imstkGetMacro (NumOutputPorts, size_t)
 

Detailed Description

Picks points on elements of geomToPick via those that that are intersecting the provided ray.

Todo:
: Make extensible

Definition at line 22 of file imstkPointPicker.h.

Member Function Documentation

◆ setPickingRay()

void imstk::PointPicker::setPickingRay ( const Vec3d &  rayStart,
const Vec3d &  rayDir,
const double  maxDist = -1.0 
)
inline

Set the picking ray.

Parameters
Startof the ray
Directionof the ray
Maxdistance of accepted pick points, anything farther excluded

Definition at line 36 of file imstkPointPicker.h.


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