Loading...
Searching...
No Matches
overlayContainerDataSource.h
1//
2// Copyright 2021 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_IMAGING_HD_OVERLAY_CONTAINER_DATA_SOURCE_H
8#define PXR_IMAGING_HD_OVERLAY_CONTAINER_DATA_SOURCE_H
9
10#include "pxr/imaging/hd/dataSource.h"
11
12PXR_NAMESPACE_OPEN_SCOPE
13
21{
22public:
23 HD_DECLARE_DATASOURCE(HdOverlayContainerDataSource);
24
25 HD_DECLARE_DATASOURCE_INITIALIZER_LIST_NEW(
27 HdContainerDataSourceHandle);
28
32 HD_API
33 static
34 HdContainerDataSourceHandle
36 const HdContainerDataSourceHandle &src1,
37 const HdContainerDataSourceHandle &src2);
38
39 HD_API
41 HD_API
42 HdDataSourceBaseHandle Get(const TfToken &name) override;
43
44private:
45 HD_API
47 std::initializer_list<HdContainerDataSourceHandle> sources);
48
49 HD_API
51 size_t count,
52 HdContainerDataSourceHandle *containers);
53
54 HD_API
56 const HdContainerDataSourceHandle &src1,
57 const HdContainerDataSourceHandle &src2);
58
59 HD_API
61 const HdContainerDataSourceHandle &src1,
62 const HdContainerDataSourceHandle &src2,
63 const HdContainerDataSourceHandle &src3);
64
66 _ContainerVector _containers;
67};
68
69HD_DECLARE_DATASOURCE_HANDLES(HdOverlayContainerDataSource);
70
71PXR_NAMESPACE_CLOSE_SCOPE
72
73#endif
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
Definition dataSource.h:148
Lazily composes two or more container source hierarchies Earlier entries on the containers array have...
static HD_API HdContainerDataSourceHandle OverlayedContainerDataSources(const HdContainerDataSourceHandle &src1, const HdContainerDataSourceHandle &src2)
Creates HdOverlayContainerDataSource from sources, but only if needed.
HD_API TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
HD_API HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
Token for efficient comparison, assignment, and hashing of known strings.
Definition token.h:71
std::vector< TfToken > TfTokenVector
Convenience types.
Definition token.h:440