24#ifndef PXR_IMAGING_HD_CONTAINER_DATA_SOURCE_EDITOR_H
25#define PXR_IMAGING_HD_CONTAINER_DATA_SOURCE_EDITOR_H
27#include "pxr/imaging/hd/dataSource.h"
31PXR_NAMESPACE_OPEN_SCOPE
34class HdContainerDataSourceEditor
38 HdContainerDataSourceEditor() {}
39 HdContainerDataSourceEditor(
40 HdContainerDataSourceHandle initialContainer)
41 : _initialContainer(initialContainer) {}
46 HdContainerDataSourceEditor &Set(
48 const HdDataSourceBaseHandle &dataSource);
54 HdContainerDataSourceEditor &Overlay(
56 const HdContainerDataSourceHandle &containerDataSource);
60 HdContainerDataSourceHandle Finish();
63 HdContainerDataSourceHandle _FinishWithNoInitialContainer();
66 using _NodeSharedPtr = std::shared_ptr<_Node>;
70 HdDataSourceBaseHandle dataSource;
71 _NodeSharedPtr childNode;
82 HdContainerDataSourceHandle _initialContainer;
95 HD_DECLARE_DATASOURCE(_NodeContainerDataSource);
96 _NodeContainerDataSource(_NodeSharedPtr node);
99 HdDataSourceBaseHandle
Get(
const TfToken &name)
override;
102 _NodeSharedPtr _node;
106PXR_NAMESPACE_CLOSE_SCOPE
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
static HD_API HdDataSourceBaseHandle Get(const Handle &container, const HdDataSourceLocator &locator)
A convenience function: given container, return the descendant identified by locator,...
Represents an object that can identify the location of a data source.
This is a space efficient container that mimics the TfHashMap API that uses a vector for storage when...
This is a small-vector class with local storage optimization, the local storage can be specified via ...
Token for efficient comparison, assignment, and hashing of known strings.
Functor to use for hash maps from tokens to other things.
std::vector< TfToken > TfTokenVector
Convenience types.