7#ifndef PXR_USD_IMAGING_USD_IMAGING_SCENE_INDEX_PLUGIN_H
8#define PXR_USD_IMAGING_USD_IMAGING_SCENE_INDEX_PLUGIN_H
12#include "pxr/usdImaging/usdImaging/api.h"
14#include "pxr/imaging/hd/dataSource.h"
17#include "pxr/base/tf/type.h"
21PXR_NAMESPACE_OPEN_SCOPE
24using UsdImagingSceneIndexPluginUniquePtr =
25 std::unique_ptr<class UsdImagingSceneIndexPlugin>;
56 HdSceneIndexBaseRefPtr
const &inputScene) = 0;
66 virtual HdContainerDataSourceHandle
100 virtual UsdImagingSceneIndexPluginUniquePtr Create() = 0;
103 virtual ~FactoryBase();
107 class Factory :
public FactoryBase
110 UsdImagingSceneIndexPluginUniquePtr Create()
override {
111 return std::make_unique<T>();
122 TfType::Define<T, TfType::Bases<UsdImagingSceneIndexPlugin>>()
123 .
template SetFactory<Factory<T>>();
131PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface to scene data.
Base class of all factory types.
A base class for scene index plugins that can insert filtering scene indices into UsdImaging,...
static std::vector< UsdImagingSceneIndexPluginUniquePtr > GetAllSceneIndexPlugins()
Get an instance of each registered UsdImagingSceneIndexPlugin.
virtual HdSceneIndexBaseRefPtr AppendSceneIndex(HdSceneIndexBaseRefPtr const &inputScene)=0
Override by client. Similar to HdSceneIndexPlugin::AppendSceneIndex.
virtual USDIMAGING_API HdContainerDataSourceHandle FlattenedDataSourceProviders()
Clients can register additional HdFlattenedDataSourceProvider's that UsdImagingCreateSceneIndices wil...
virtual USDIMAGING_API TfTokenVector ProxyPathTranslationDataSourceNames()
Clients can register additional names of prim-level data sources that should receive path-translation...
virtual USDIMAGING_API TfTokenVector InstanceDataSourceNames()
Clients can register additional names used by the (native) instance aggregation scene index when grou...
static void Define()
Call within TF_REGISTRY_FUNCTION(UsdImagingSceneIndexPlugin) to ensure that UsdImaging can instantiat...
Standard pointer typedefs.
#define TF_DECLARE_REF_PTRS(type)
Define standard ref pointer types.
std::vector< TfToken > TfTokenVector
Convenience types.