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
17class HdContainerDataSourceEditor
21 HdContainerDataSourceEditor() {}
22 HdContainerDataSourceEditor(
23 HdContainerDataSourceHandle initialContainer)
24 : _initialContainer(initialContainer) {}
29 HdContainerDataSourceEditor &Set(
31 const HdDataSourceBaseHandle &dataSource);
37 HdContainerDataSourceEditor &Overlay(
39 const HdContainerDataSourceHandle &containerDataSource);
43 HdContainerDataSourceHandle Finish();
46 HdContainerDataSourceHandle _FinishWithNoInitialContainer();
49 using _NodeSharedPtr = std::shared_ptr<_Node>;
53 HdDataSourceBaseHandle dataSource;
54 _NodeSharedPtr childNode;
65 HdContainerDataSourceHandle _initialContainer;
78 HD_DECLARE_DATASOURCE(_NodeContainerDataSource);
79 _NodeContainerDataSource(_NodeSharedPtr node);
82 HdDataSourceBaseHandle
Get(
const TfToken &name)
override;
89PXR_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.