7#ifndef PXR_IMAGING_HD_CONTAINER_DATA_SOURCE_EDITOR_H
8#define PXR_IMAGING_HD_CONTAINER_DATA_SOURCE_EDITOR_H
10#include "pxr/imaging/hd/dataSource.h"
14PXR_NAMESPACE_OPEN_SCOPE
79class HdContainerDataSourceEditor
83 HdContainerDataSourceEditor() {}
84 HdContainerDataSourceEditor(
85 HdContainerDataSourceHandle initialContainer)
86 : _initialContainer(initialContainer) {}
91 HdContainerDataSourceEditor &Set(
93 const HdDataSourceBaseHandle &dataSource);
99 HdContainerDataSourceEditor &Overlay(
101 const HdContainerDataSourceHandle &containerDataSource);
105 HdContainerDataSourceHandle Finish();
115 HdContainerDataSourceHandle _FinishWithNoInitialContainer();
118 using _NodeSharedPtr = std::shared_ptr<_Node>;
122 HdDataSourceBaseHandle dataSource;
123 _NodeSharedPtr childNode;
133 _NodeSharedPtr _root;
134 HdContainerDataSourceHandle _initialContainer;
147 HD_DECLARE_DATASOURCE(_NodeContainerDataSource);
148 _NodeContainerDataSource(_NodeSharedPtr node);
151 HdDataSourceBaseHandle Get(
const TfToken &name)
override;
154 _NodeSharedPtr _node;
158PXR_NAMESPACE_CLOSE_SCOPE
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
Represents an object that can identify the location of a data source.
Represents a set of data source locators closed under descendancy.
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.