25#ifndef PXR_IMAGING_HD_VECTOR_SCHEMA_H
26#define PXR_IMAGING_HD_VECTOR_SCHEMA_H
28#include "pxr/imaging/hd/api.h"
30#include "pxr/imaging/hd/dataSource.h"
32PXR_NAMESPACE_OPEN_SCOPE
45 static HdVectorDataSourceHandle
48 const HdDataSourceBaseHandle *values);
54 bool IsDefined()
const;
58 explicit operator bool()
const {
return IsDefined(); }
68 typename T::Handle _GetTyped(
const size_t element)
const {
71 ? T::Cast(_vector->GetElement(element))
75 HdVectorDataSourceHandle _vector;
88 typename T::Handle GetElement(
const size_t element)
const {
89 return _GetTyped<T>(element);
96template<
typename Schema>
103 Schema GetElement(
const size_t element)
const {
104 using DataSource =
typename Schema::UnderlyingDataSource;
105 return Schema(_GetTyped<DataSource>(element));
109PXR_NAMESPACE_CLOSE_SCOPE
Template class wrapping a vector data source whose children are container data source conforming to a...
Template class wrapping a vector data source whose children are data source of an expected type.
A datasource representing indexed data.
Base class wrapping a vector data source.
HD_API size_t GetNumElements() const
Number of elements in the vector.
HD_API HdVectorDataSourceHandle GetVector()
Returns the vector data source that this schema is interpreting.