12 #ifndef hifi_render_utils_PickItemsJob_h
13 #define hifi_render_utils_PickItemsJob_h
15 #include <render/Engine.h>
16 #include <render/Item.h>
18 class PickItemsConfig :
public render::Job::Config {
20 Q_PROPERTY(
bool pick MEMBER pick NOTIFY dirty)
34 using Config = PickItemsConfig;
35 using Input = render::ItemBounds;
36 using Output = render::ItemBounds;
37 using JobModel = render::Job::ModelIO<PickItemsJob, Input, Output, Config>;
39 PickItemsJob(render::ItemKey::Flags validKeys = render::ItemKey::Builder().withTypeMeta().withTypeShape().build()._flags, render::ItemKey::Flags excludeKeys = 0);
41 void configure(
const Config& config);
42 void run(
const render::RenderContextPointer& renderContext,
const PickItemsJob::Input& input, PickItemsJob::Output& output);
46 render::ItemKey::Flags _validKeys;
47 render::ItemKey::Flags _excludeKeys;
48 bool _isEnabled{
false };
50 render::ItemBound findNearestItem(
const render::RenderContextPointer& renderContext,
const render::ItemBounds& inputs,
float& minIsectDistance)
const;