Loading...
Searching...
No Matches
concatenatedVectorDataSource.h
1//
2// Copyright 2026 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_CONCATENATED_VECTOR_DATA_SOURCE_H
8#define PXR_IMAGING_HD_CONCATENATED_VECTOR_DATA_SOURCE_H
9
10#include "pxr/imaging/hd/dataSource.h"
11
12PXR_NAMESPACE_OPEN_SCOPE
13
19{
20public:
21 HD_DECLARE_DATASOURCE(HdConcatenatedVectorDataSource);
22
23 HD_DECLARE_DATASOURCE_INITIALIZER_LIST_NEW(
25 HdVectorDataSourceHandle);
26
30 HD_API
31 static
32 HdVectorDataSourceHandle
34 const HdVectorDataSourceHandle &src1,
35 const HdVectorDataSourceHandle &src2);
36
37 HD_API
38 size_t GetNumElements() override;
39
40 HD_API
41 HdDataSourceBaseHandle GetElement(size_t i) override;
42
43private:
44 HD_API
46 const std::initializer_list<HdVectorDataSourceHandle> &sources);
47
48 HD_API
50 size_t count,
51 HdVectorDataSourceHandle *vectors);
52
53 HD_API
55 const HdVectorDataSourceHandle &src1,
56 const HdVectorDataSourceHandle &src2);
57
58 HD_API
60 const HdVectorDataSourceHandle &src1,
61 const HdVectorDataSourceHandle &src2,
62 const HdVectorDataSourceHandle &src3);
63
65 _Sources _sources;
66};
67
68HD_DECLARE_DATASOURCE_HANDLES(HdConcatenatedVectorDataSource);
69
70PXR_NAMESPACE_CLOSE_SCOPE
71
72#endif
Lazily composes two or more vector data source by concatenating all the elements (in the order in whi...
static HD_API HdVectorDataSourceHandle ConcatenatedVectorDataSources(const HdVectorDataSourceHandle &src1, const HdVectorDataSourceHandle &src2)
Creates HdConcatenatedVectorDataSource from sources, but only if needed.
HD_API HdDataSourceBaseHandle GetElement(size_t i) override
Return the element at position element in this datasource.
HD_API size_t GetNumElements() override
Return the number of elements in this datasource.
A datasource representing indexed data.
Definition dataSource.h:180