iMSTK
Interactive Medical Simulation Toolkit
|
Picks points on elements of geomToPick via those that that are intersecting the provided ray. More...
#include <imstkPointPicker.h>
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 |
![]() | |
const std::vector< PickData > & | pick (std::shared_ptr< Geometry > geomToPick) |
Perform picking on provided geometry. | |
const std::vector< PickData > & | getPickData () const |
![]() | |
std::shared_ptr< Geometry > | getInput (size_t port=0) const |
Returns input geometry given port, returns nullptr if doesn't exist. | |
std::shared_ptr< Geometry > | getOutput (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 |
![]() | |
std::vector< PickData > | m_results |
![]() | |
TypeCheckContainer | m_requiredTypeChecks |
TypeCheckContainer | m_optionalTypeChecks |
Additional Inherited Members | |
![]() | |
using | GeometryCheck = std::function< bool(Geometry *)> |
using | TypeCheckContainer = std::unordered_map< size_t, GeometryCheck > |
![]() | |
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) | |
Picks points on elements of geomToPick via those that that are intersecting the provided ray.
Definition at line 22 of file imstkPointPicker.h.
|
inline |
Set the picking ray.
Start | of the ray |
Direction | of the ray |
Max | distance of accepted pick points, anything farther excluded |
Definition at line 36 of file imstkPointPicker.h.