24#ifndef PXR_IMAGING_HD_FLATTENED_DATA_SOURCE_PROVIDER_H
25#define PXR_IMAGING_HD_FLATTENED_DATA_SOURCE_PROVIDER_H
27#include "pxr/imaging/hd/api.h"
29#include "pxr/imaging/hd/dataSource.h"
30#include "pxr/imaging/hd/retainedDataSource.h"
31#include "pxr/usd/sdf/path.h"
33PXR_NAMESPACE_OPEN_SCOPE
36using HdFlattenedDataSourceProviderSharedPtr =
37 std::shared_ptr<class HdFlattenedDataSourceProvider>;
45class HdFlattenedDataSourceProvider
55 const HdContainerDataSourceHandle &inputPrimDataSource)
56 : _flatteningSceneIndex(flatteningSceneIndex)
59 , _inputPrimDataSource(inputPrimDataSource)
66 HdContainerDataSourceHandle GetInputDataSource()
const;
70 HdContainerDataSourceHandle GetFlattenedDataSourceFromParentPrim()
const;
76 const HdContainerDataSourceHandle &_inputPrimDataSource;
80 virtual HdContainerDataSourceHandle GetFlattenedDataSource(
81 const Context &ctx)
const = 0;
105 virtual void ComputeDirtyLocatorsForDescendants(
109namespace HdMakeDataSourceContainingFlattenedDataSourceProvider
118 return DataSource::New(std::make_shared<T>());
123PXR_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.