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
35 HD_API
36 static
37 HdContainerDataSourceHandle
39 const HdContainerDataSourceHandle &src1,
40 const HdContainerDataSourceHandle &src2);
41
42 HD_API
44 HD_API
45 HdDataSourceBaseHandle Get(const TfToken &name) override;
46
47private:
48 HD_API
50 const std::initializer_list<HdContainerDataSourceHandle> &sources);
51
52 HD_API
54 size_t count,
55 HdContainerDataSourceHandle *sources);
56
58 HD_API
60 _ContainerVector &&sources);
61
62 HD_API
64 const HdContainerDataSourceHandle &src1,
65 const HdContainerDataSourceHandle &src2);
66
67 HD_API
69 const HdContainerDataSourceHandle &src1,
70 const HdContainerDataSourceHandle &src2,
71 const HdContainerDataSourceHandle &src3);
72
73 _ContainerVector _sources;
74};
75
76HD_DECLARE_DATASOURCE_HANDLES(HdOverlayContainerDataSource);
77
82HD_API
83HdContainerDataSourceHandle
84HdCreateOverlayContainerDataSource(
85 size_t count,
86 HdContainerDataSourceHandle *containers);
87
92HD_API
93HdContainerDataSourceHandle
94HdCreateOverlayContainerDataSource(
95 const std::initializer_list<HdContainerDataSourceHandle> &sources);
96
98HD_API
99HdContainerDataSourceHandle
100HdCreateOverlayContainerDataSource(
101 const HdContainerDataSourceHandle &src1,
102 const HdContainerDataSourceHandle &src2);
103
104PXR_NAMESPACE_CLOSE_SCOPE
105
106#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:81
std::vector< TfToken > TfTokenVector
Convenience types.
Definition token.h:489