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/filteringSceneIndex.h"
14#include "pxr/usd/sdf/path.h"
21PXR_NAMESPACE_OPEN_SCOPE
25#define HDSI_LIGHT_LINKING_SCENE_INDEX_TOKENS \
27 (lightFilterPrimTypes) \
31 HDSI_LIGHT_LINKING_SCENE_INDEX_TOKENS);
33namespace HdsiLightLinkingSceneIndex_Impl
36 using _CacheSharedPtr = std::shared_ptr<_Cache>;
81 static HdSceneIndexBaseRefPtr
82 New(
const HdSceneIndexBaseRefPtr &inputSceneIndex,
83 const HdContainerDataSourceHandle &inputArgs);
95 const HdSceneIndexBaseRefPtr &inputSceneIndex,
96 const HdContainerDataSourceHandle &inputArgs);
114 void _ProcessAddedLightOrFilter(
119 bool _IsLight(
const TfToken &primType)
const;
120 bool _IsLightFilter(
const TfToken &primType)
const;
121 bool _IsGeometry(
const TfToken &primType)
const;
124 HdsiLightLinkingSceneIndex_Impl::_CacheSharedPtr
const _cache;
127 SdfPathSet _lightAndFilterPrimPaths;
137PXR_NAMESPACE_CLOSE_SCOPE
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.
A path value used to locate objects in layers or scenegraphs.
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.