HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdxPickTask Class Reference

#include <pickTask.h>

+ Inheritance diagram for HdxPickTask:

Public Member Functions

HDX_API HdxPickTask (HdSceneDelegate *delegate, SdfPath const &id)
 
virtual HDX_API ~HdxPickTask ()
 
virtual HDX_API void Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
 Sync the render pass resources. More...
 
virtual HDX_API void Prepare (HdTaskContext *ctx, HdRenderIndex *renderIndex) override
 Prepare the pick task. More...
 
virtual HDX_API void Execute (HdTaskContext *ctx) override
 Execute the pick task. More...
 
virtual HDX_API const
TfTokenVector
GetRenderTags () const override
 
- Public Member Functions inherited from HdTask
HD_API HdTask (SdfPath const &id)
 
virtual HD_API ~HdTask ()
 
SdfPath constGetId () const
 
virtual HD_API HdDirtyBits GetInitialDirtyBitsMask () const
 

Static Public Member Functions

static int DecodeIDRenderColor (unsigned char const idColor[4])
 Utility: Given a UNorm8Vec4 pixel, unpack it into an int32 ID. More...
 

Additional Inherited Members

- Protected Member Functions inherited from HdTask
template<class T >
bool _GetTaskParams (HdSceneDelegate *delegate, T *outValue)
 
HD_API TfTokenVector _GetTaskRenderTags (HdSceneDelegate *delegate)
 
- Static Protected Member Functions inherited from HdTask
static HD_API bool _HasTaskContextData (HdTaskContext const *ctx, TfToken const &id)
 Check if the shared context contains a value for the given id. More...
 
template<class T >
static bool _GetTaskContextData (HdTaskContext const *ctx, TfToken const &id, T *outValue)
 
template<class T >
static T _GetDriver (HdTaskContext const *ctx, TfToken const &driverName)
 

Detailed Description

A task for running picking queries against the current scene. This task generates an id buffer for a "pick frustum" (normally the camera frustum with the near plane narrowed to an (x,y) location and a pick radius); then it resolves that id buffer into a series of prim paths. The "Hit" output also contains subprim picking results (e.g. picked face, edge, point, instance) and the intersection point in scene worldspace.

HdxPickTask takes an HdxPickTaskParams through the scene delegate, and HdxPickTaskContextParams through the task context as "pickParams". It produces a hit vector, in the task context as "pickHits".

Definition at line 162 of file pickTask.h.

Constructor & Destructor Documentation

HDX_API HdxPickTask::HdxPickTask ( HdSceneDelegate delegate,
SdfPath const id 
)
virtual HDX_API HdxPickTask::~HdxPickTask ( )
virtual

Member Function Documentation

static int HdxPickTask::DecodeIDRenderColor ( unsigned char const  idColor[4])
inlinestatic

Utility: Given a UNorm8Vec4 pixel, unpack it into an int32 ID.

Definition at line 190 of file pickTask.h.

virtual HDX_API void HdxPickTask::Execute ( HdTaskContext ctx)
overridevirtual

Execute the pick task.

Implements HdTask.

virtual HDX_API const TfTokenVector& HdxPickTask::GetRenderTags ( ) const
overridevirtual

Render Tag Gather.

Is called during the Sync phase after the task has been sync'ed.

The task should return the render tags it wants to be appended to the active set.

Hydra prims are marked up with a render tag and only prims marked with the render tags in the current active set are Sync'ed.

Hydra's core will combine the sets from each task and deduplicated the result. So tasks don't need to co-ordinate with each other to Optimize the set.

For those tasks that use HdRenderPass, is the typically the set passed to HdRenderPass's Execute method.

The default implementation returns an empty set

Reimplemented from HdTask.

virtual HDX_API void HdxPickTask::Prepare ( HdTaskContext ctx,
HdRenderIndex renderIndex 
)
overridevirtual

Prepare the pick task.

Implements HdTask.

virtual HDX_API void HdxPickTask::Sync ( HdSceneDelegate delegate,
HdTaskContext ctx,
HdDirtyBits dirtyBits 
)
overridevirtual

Sync the render pass resources.

Implements HdTask.


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