6#ifndef PXR_IMAGING_HDSI_PURPOSE_FILTERING_SCENE_INDEX_H
7#define PXR_IMAGING_HDSI_PURPOSE_FILTERING_SCENE_INDEX_H
11#include "pxr/imaging/hd/filteringSceneIndex.h"
12#include "pxr/imaging/hdsi/api.h"
19PXR_NAMESPACE_OPEN_SCOPE
21#define HDSI_PURPOSE_FILTERING_SCENE_INDEX_TOKENS \
25 HDSI_PURPOSE_FILTERING_SCENE_INDEX_TOKENS);
103 static HdsiPurposeFilteringSceneIndexRefPtr
104 New(HdSceneIndexBaseRefPtr
const &inputSceneIndex,
105 HdContainerDataSourceHandle
const &inputArgs);
140 HdSceneIndexBaseRefPtr
const &inputSceneIndex,
141 HdContainerDataSourceHandle
const &inputArgs);
146 bool _IsFilteringActive()
const;
150 bool _ShouldPrune(
const HdContainerDataSourceHandle &dataSource)
const;
156 std::optional<VtArray<TfToken>> _purposes;
162PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface to scene data.
Scene index that prunes prims whose resolved (flattened) purpose is not in the configured set of acce...
HDSI_API void SetPurposes(VtArray< TfToken > const &purposes)
Switch to explicit (accept-list) mode and set the accepted purposes.
HDSI_API HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override
Returns a pair of (prim type, datasource).
static HDSI_API HdsiPurposeFilteringSceneIndexRefPtr New(HdSceneIndexBaseRefPtr const &inputSceneIndex, HdContainerDataSourceHandle const &inputArgs)
The fields in inputArgs that this scene index consumes are:
HDSI_API SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override
Returns the paths of all scene index prims located immediately below primPath.
A path value used to locate objects in layers or scenegraphs.
Represents an arbitrary dimensional rectangular container class.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
Small struct representing a 'prim' in the Hydra scene index.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...