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/usd/sdf/path.h"
16PXR_NAMESPACE_OPEN_SCOPE
19using HdFlattenedDataSourceProviderSharedPtr =
20 std::shared_ptr<class HdFlattenedDataSourceProvider>;
28class HdFlattenedDataSourceProvider
38 const HdContainerDataSourceHandle &inputPrimDataSource)
39 : _flatteningSceneIndex(flatteningSceneIndex)
42 , _inputPrimDataSource(inputPrimDataSource)
49 HdContainerDataSourceHandle GetInputDataSource()
const;
53 HdContainerDataSourceHandle GetFlattenedDataSourceFromParentPrim()
const;
59 const HdContainerDataSourceHandle &_inputPrimDataSource;
63 virtual ~HdFlattenedDataSourceProvider();
66 virtual HdContainerDataSourceHandle GetFlattenedDataSource(
67 const Context &ctx)
const = 0;
91 virtual void ComputeDirtyLocatorsForDescendants(
95namespace HdMakeDataSourceContainingFlattenedDataSourceProvider
104 return DataSource::New(std::make_shared<T>());
109PXR_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.