7 #ifndef PXR_IMAGING_HD_RETAINEDDATASOURCE_H
8 #define PXR_IMAGING_HD_RETAINEDDATASOURCE_H
42 const HdDataSourceBaseHandle *
values);
47 const HdDataSourceBaseHandle &value1);
52 const HdDataSourceBaseHandle &value1,
54 const HdDataSourceBaseHandle &value2);
59 const HdDataSourceBaseHandle &value1,
61 const HdDataSourceBaseHandle &value2,
63 const HdDataSourceBaseHandle &value3);
68 const HdDataSourceBaseHandle &value1,
70 const HdDataSourceBaseHandle &value2,
72 const HdDataSourceBaseHandle &value3,
74 const HdDataSourceBaseHandle &value4);
79 const HdDataSourceBaseHandle &value1,
81 const HdDataSourceBaseHandle &value2,
83 const HdDataSourceBaseHandle &value3,
85 const HdDataSourceBaseHandle &value4,
87 const HdDataSourceBaseHandle &value5);
92 const HdDataSourceBaseHandle &value1,
94 const HdDataSourceBaseHandle &value2,
96 const HdDataSourceBaseHandle &value3,
98 const HdDataSourceBaseHandle &value4,
100 const HdDataSourceBaseHandle &value5,
102 const HdDataSourceBaseHandle &value6);
125 std::vector<HdSampledDataSource::Time> *outSampleTimes)
override
148 template <
typename T>
161 std::vector<HdSampledDataSource::Time> *outSampleTimes)
override
184 template <
typename T>
203 template <
typename T>
217 std::vector<HdSampledDataSource::Time> *outSampleTimes)
override;
227 typedef std::pair<HdSampledDataSource::Time, T> _SamplePair;
231 template <
typename T>
237 _sampledValues.reserve(count);
241 for (
size_t i = 0; i <
count; ++i) {
242 _sampledValues.emplace_back(sampleTimes[i], sampleValues[i]);
246 template <
typename T>
251 std::vector<HdSampledDataSource::Time> *outSampleTimes)
253 if (_sampledValues.size() < 2) {
257 if (outSampleTimes) {
258 outSampleTimes->clear();
261 outSampleTimes->reserve(_sampledValues.size());
263 for (
const auto & iter : _sampledValues) {
264 outSampleTimes->push_back(iter.first);
271 template <
typename T>
276 if (_sampledValues.empty()) {
282 for (
size_t i = 0, e = _sampledValues.size(); i < e; ++i) {
286 if (sampleTime > shutterOffset) {
290 return _sampledValues[i].second;
295 sampleTime - shutterOffset;
298 if (delta < epsilon) {
299 return _sampledValues[i].second;
306 shutterOffset - _sampledValues[i - 1].first;
308 if (previousDelta <= delta) {
309 return _sampledValues[i - 1].second;
311 return _sampledValues[i].second;
315 if (fabs(sampleTime - shutterOffset) < epsilon) {
316 return _sampledValues[i].second;
322 return _sampledValues.back().second;
342 const HdDataSourceBaseHandle *
values);
348 HdDataSourceBaseHandle
GetElement(
size_t element)
override;
361 HdSampledDataSourceHandle
367 HdDataSourceBaseHandle
373 HdContainerDataSourceHandle
378 #endif // PXR_IMAGING_HD_RETAINEDDATASOURCE_H
T GetTypedValue(HdSampledDataSource::Time shutterOffset) override
VtValue GetValue(HdSampledDataSource::Time shutterOffset) override
HD_API HdRetainedSmallVectorDataSource(size_t count, const HdDataSourceBaseHandle *values)
HD_DECLARE_DATASOURCE(HdRetainedTypedMultisampledDataSource< T >)
GLsizei const GLfloat * value
static HD_API Handle New()
HD_DECLARE_DATASOURCE_ABSTRACT(HdRetainedContainerDataSource)
HD_API HdDataSourceBaseHandle GetElement(size_t element) override
HD_DECLARE_DATASOURCE_ABSTRACT(HdRetainedTypedSampledDataSource< T >)
HD_DECLARE_DATASOURCE(HdRetainedSampledDataSource)
VtValue GetValue(HdSampledDataSource::Time shutterOffset) override
HD_DECLARE_DATASOURCE(HdRetainedSmallVectorDataSource)
bool GetContributingSampleTimesForInterval(HdSampledDataSource::Time startTime, HdSampledDataSource::Time endTime, std::vector< HdSampledDataSource::Time > *outSampleTimes) override
HD_API HdDataSourceBaseHandle HdMakeStaticCopy(HdDataSourceBaseHandle const &ds)
static HdRetainedTypedSampledDataSource< T >::Handle New(const T &value)
HD_DECLARE_DATASOURCE_HANDLES(HdRetainedContainerDataSource)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
HD_API HdSampledDataSourceHandle HdCreateTypedRetainedDataSource(VtValue const &v)
GLenum GLsizei GLsizei GLint * values
HD_API size_t GetNumElements() override
HdRetainedTypedMultisampledDataSource(size_t count, HdSampledDataSource::Time *sampleTimes, T *sampleValues)
#define PXR_NAMESPACE_CLOSE_SCOPE
bool GetContributingSampleTimesForInterval(HdSampledDataSource::Time startTime, HdSampledDataSource::Time endTime, std::vector< HdSampledDataSource::Time > *outSampleTimes) override
VtValue GetValue(HdSampledDataSource::Time shutterOffset) override
bool GetContributingSampleTimesForInterval(HdSampledDataSource::Time startTime, HdSampledDataSource::Time endTime, std::vector< HdSampledDataSource::Time > *outSampleTimes) override
HdRetainedSampledDataSource(VtValue value)
HdRetainedTypedSampledDataSource(const T &value)
T GetTypedValue(HdSampledDataSource::Time shutterOffset) override