iMSTK
Interactive Medical Simulation Toolkit
|
Abstract functor for picking/selecting of geometry. Differs from collision in that the picking criteria can follow different logic (ray, nearest, various exclusion criteria, etc). Some pickers utilize CollisionDetectionAlgorithms for intersection tests. More...
#include <imstkPickingAlgorithm.h>
Public Member Functions | |
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 | |
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 void | requestUpdate ()=0 |
Users can implement this for the logic to be run. | |
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) | |
Abstract functor for picking/selecting of geometry. Differs from collision in that the picking criteria can follow different logic (ray, nearest, various exclusion criteria, etc). Some pickers utilize CollisionDetectionAlgorithms for intersection tests.
Definition at line 40 of file imstkPickingAlgorithm.h.