35#ifndef PXR_IMAGING_HD_NURBS_PATCH_SCHEMA_H
36#define PXR_IMAGING_HD_NURBS_PATCH_SCHEMA_H
40#include "pxr/imaging/hd/api.h"
43#include "pxr/imaging/hd/schema.h"
48PXR_NAMESPACE_OPEN_SCOPE
53#define HD_NURBS_PATCH_SCHEMA_TOKENS \
75 HD_NURBS_PATCH_SCHEMA_TOKENS);
80class HdNurbsPatchSchema :
public HdSchema
86 HdNurbsPatchSchema(HdContainerDataSourceHandle container)
95 static HdNurbsPatchSchema GetFromParent(
96 const HdContainerDataSourceHandle &fromParentContainer);
107 HdIntDataSourceHandle GetUVertexCount()
const;
110 HdIntDataSourceHandle GetVVertexCount()
const;
113 HdIntDataSourceHandle GetUOrder()
const;
116 HdIntDataSourceHandle GetVOrder()
const;
119 HdDoubleArrayDataSourceHandle GetUKnots()
const;
122 HdDoubleArrayDataSourceHandle GetVKnots()
const;
125 HdTokenDataSourceHandle GetUForm()
const;
128 HdTokenDataSourceHandle GetVForm()
const;
131 HdVec2dDataSourceHandle GetURange()
const;
134 HdVec2dDataSourceHandle GetVRange()
const;
137 HdNurbsPatchTrimCurveSchema GetTrimCurve()
const;
140 HdTokenDataSourceHandle GetOrientation()
const;
143 HdBoolDataSourceHandle GetDoubleSided()
const;
153 static const TfToken &GetSchemaToken();
173 static HdContainerDataSourceHandle
175 const HdIntDataSourceHandle &uVertexCount,
176 const HdIntDataSourceHandle &vVertexCount,
177 const HdIntDataSourceHandle &uOrder,
178 const HdIntDataSourceHandle &vOrder,
179 const HdDoubleArrayDataSourceHandle &uKnots,
180 const HdDoubleArrayDataSourceHandle &vKnots,
181 const HdTokenDataSourceHandle &uForm,
182 const HdTokenDataSourceHandle &vForm,
183 const HdVec2dDataSourceHandle &uRange,
184 const HdVec2dDataSourceHandle &vRange,
185 const HdContainerDataSourceHandle &trimCurve,
186 const HdTokenDataSourceHandle &orientation,
187 const HdBoolDataSourceHandle &doubleSided
201 const HdIntDataSourceHandle &uVertexCount);
204 const HdIntDataSourceHandle &vVertexCount);
207 const HdIntDataSourceHandle &uOrder);
210 const HdIntDataSourceHandle &vOrder);
213 const HdDoubleArrayDataSourceHandle &uKnots);
216 const HdDoubleArrayDataSourceHandle &vKnots);
219 const HdTokenDataSourceHandle &uForm);
222 const HdTokenDataSourceHandle &vForm);
225 const HdVec2dDataSourceHandle &uRange);
228 const HdVec2dDataSourceHandle &vRange);
231 const HdContainerDataSourceHandle &trimCurve);
234 const HdTokenDataSourceHandle &orientation);
237 const HdBoolDataSourceHandle &doubleSided);
241 HdContainerDataSourceHandle
Build();
244 HdIntDataSourceHandle _uVertexCount;
245 HdIntDataSourceHandle _vVertexCount;
246 HdIntDataSourceHandle _uOrder;
247 HdIntDataSourceHandle _vOrder;
248 HdDoubleArrayDataSourceHandle _uKnots;
249 HdDoubleArrayDataSourceHandle _vKnots;
250 HdTokenDataSourceHandle _uForm;
251 HdTokenDataSourceHandle _vForm;
252 HdVec2dDataSourceHandle _uRange;
253 HdVec2dDataSourceHandle _vRange;
254 HdContainerDataSourceHandle _trimCurve;
255 HdTokenDataSourceHandle _orientation;
256 HdBoolDataSourceHandle _doubleSided;
268 static HdTokenDataSourceHandle BuildFormDataSource(
278 static HdTokenDataSourceHandle BuildOrientationDataSource(
284PXR_NAMESPACE_CLOSE_SCOPE
Represents an object that can identify the location of a data source.
Utility class for setting sparse sets of child data source fields to be filled as arguments into Buil...
HD_API HdContainerDataSourceHandle Build()
Returns a container data source containing the members set thus far.
Schema classes represent a structured view of the inherently unstructured container data source passe...
Token for efficient comparison, assignment, and hashing of known strings.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.