|
Cogs.Core
|
Interface for modules implementing custom picking. More...
#include <RayPick.h>
Public Types | |
| enum struct | Order : int32_t { Default = 0 , Last = std::numeric_limits<int32_t>::max() } |
| Specifies run-order of picking extensions when that is needed. More... | |
Public Member Functions | |
| IRayPickable (Order order=Order::Default) | |
| virtual COGSCORE_DLL_API bool | pickCamera (Context *context, const CameraComponent &camera, const glm::vec2 &queryClip, float rayLength, float rayRadius, PickingFlags pickingFlags, PicksReturned returnFlag, const RayPicking::RayPickFilter &filter, std::vector< RayPicking::RayPickHit > &hits)=0 |
| Do a ray pick from a normalized screen space position in the camera direction and return all hits. | |
| virtual COGSCORE_DLL_API bool | pickRay (Context *, const glm::vec3 &, const glm::quat &, float, float, PickingFlags, PicksReturned, const RayPicking::RayPickFilter &, std::vector< RayPicking::RayPickHit > &) |
| Do a ray pick from a position and orientation in world space and return all hits. | |
Public Attributes | |
| Order | order = Order::Default |
|
strong |
|
inline |
|
pure virtual |
Do a ray pick from a normalized screen space position in the camera direction and return all hits.
| queryClip | Picking query position in clip coords [-1,1]x[-1,1]. |
| rayLength | Max length of picking ray, measured in world units. |
| rayRadius | Radius of picking picking ray, measured in pixels. |
Implemented in Cogs::Core::HighlightRegionPicker, Cogs::Core::PotreePicker, Cogs::Core::MeshRayPickableBase, Cogs::Core::Image360::RayPickExtension, Cogs::Core::OceanPicker, Cogs::Core::TerrainPicker, Cogs::Core::VectorField::VectorFieldPick, Cogs::Core::SpritePicker, and Cogs::Core::MarkerPointSetPicker.
|
inlinevirtual |
Do a ray pick from a position and orientation in world space and return all hits.
Reimplemented in Cogs::Core::HighlightRegionPicker, Cogs::Core::PotreePicker, Cogs::Core::MeshRayPickableBase, and Cogs::Core::MarkerPointSetPicker.