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

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>

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

Public Member Functions

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

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 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)
 

Detailed Description

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.

Note
: A VTK backend for these might be nice too (octree accelerated and all the cell cases worked out)
: A factory mapping shape types to picking types is a strong possibility.

Definition at line 40 of file imstkPickingAlgorithm.h.


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