7#ifndef PXR_IMAGING_HDSI_LIGHT_LINKING_SCENE_INDEX_H
8#define PXR_IMAGING_HDSI_LIGHT_LINKING_SCENE_INDEX_H
11#include "pxr/imaging/hdsi/api.h"
13#include "pxr/imaging/hd/collectionExpressionEvaluator.h"
14#include "pxr/imaging/hd/collectionPredicateLibrary.h"
15#include "pxr/imaging/hd/filteringSceneIndex.h"
16#include "pxr/usd/sdf/path.h"
23PXR_NAMESPACE_OPEN_SCOPE
27#define HDSI_LIGHT_LINKING_SCENE_INDEX_TOKENS \
29 (lightFilterPrimTypes) \
33 HDSI_LIGHT_LINKING_SCENE_INDEX_TOKENS);
35namespace HdsiLightLinkingSceneIndex_Impl
38 using _CacheSharedPtr = std::shared_ptr<_Cache>;
84 static HdSceneIndexBaseRefPtr
85 New(
const HdSceneIndexBaseRefPtr &inputSceneIndex,
86 const HdContainerDataSourceHandle &inputArgs,
92 static HdSceneIndexBaseRefPtr
93 New(
const HdSceneIndexBaseRefPtr &inputSceneIndex,
94 const HdContainerDataSourceHandle &inputArgs);
110 const HdSceneIndexBaseRefPtr &inputSceneIndex,
111 const HdContainerDataSourceHandle &inputArgs,
130 void _ProcessAddedLightOrFilter(
135 bool _IsLight(
const TfToken &primType)
const;
136 bool _IsLightFilter(
const TfToken &primType)
const;
137 bool _IsGeometry(
const TfToken &primType)
const;
140 HdsiLightLinkingSceneIndex_Impl::_CacheSharedPtr
const _cache;
143 SdfPathSet _lightAndFilterPrimPaths;
155PXR_NAMESPACE_CLOSE_SCOPE
Evaluates SdfPathExpressions with prims from a given HdSceneIndex.
Abstract interface to scene data.
nested point instancers is not yet supported.
HDSI_API HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override
Returns a pair of (prim type, datasource).
HDSI_API SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override
Returns the paths of all scene index prims located immediately below primPath.
Objects of this class represent a logical expression syntax tree consisting of SdfPathPattern s,...
A path value used to locate objects in layers or scenegraphs.
Represents a library of predicate functions for use with SdfPredicateExpression.
Token for efficient comparison, assignment, and hashing of known strings.
Represents an arbitrary dimensional rectangular container class.
#define TF_DECLARE_REF_PTRS(type)
Define standard ref pointer types.
This file defines some macros that are useful for declaring and using static TfTokens.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
A notice indicating a prim of a given type was added to the scene.
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...
std::vector< TfToken > TfTokenVector
Convenience types.