7#ifndef PXR_IMAGING_HD_FLATTENED_DATA_SOURCE_PROVIDER_H
8#define PXR_IMAGING_HD_FLATTENED_DATA_SOURCE_PROVIDER_H
10#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hd/dataSource.h"
13#include "pxr/imaging/hd/retainedDataSource.h"
14#include "pxr/imaging/hd/sceneIndex.h"
15#include "pxr/usd/sdf/path.h"
17PXR_NAMESPACE_OPEN_SCOPE
20using HdFlattenedDataSourceProviderSharedPtr =
21 std::shared_ptr<class HdFlattenedDataSourceProvider>;
29class HdFlattenedDataSourceProvider
40 : _flatteningSceneIndex(flatteningSceneIndex)
43 , _inputPrim(inputPrim)
50 HdContainerDataSourceHandle GetInputDataSource()
const;
54 HdContainerDataSourceHandle GetFlattenedDataSourceFromParentPrim()
const;
57 const TfToken &GetInputPrimType()
const {
58 return _inputPrim.primType;
69 virtual ~HdFlattenedDataSourceProvider();
72 virtual HdContainerDataSourceHandle GetFlattenedDataSource(
73 const Context &ctx)
const = 0;
97 virtual void ComputeDirtyLocatorsForDescendants(
101namespace HdMakeDataSourceContainingFlattenedDataSourceProvider
110 return DataSource::New(std::make_shared<T>());
115PXR_NAMESPACE_CLOSE_SCOPE
Represents a set of data source locators closed under descendancy.
Similar to HdRetainedSampledDataSource but provides strongly typed semantics.
Abstract interface to scene data.
A datasource representing a concretely-typed sampled value.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
Small struct representing a 'prim' in the Hydra scene index.