35#ifndef PXR_IMAGING_HD_SUBDIVISION_TAGS_SCHEMA_H
36#define PXR_IMAGING_HD_SUBDIVISION_TAGS_SCHEMA_H
40#include "pxr/imaging/hd/api.h"
42#include "pxr/imaging/hd/schema.h"
47PXR_NAMESPACE_OPEN_SCOPE
52#define HD_SUBDIVISION_TAGS_SCHEMA_TOKENS \
54 (faceVaryingLinearInterpolation) \
55 (interpolateBoundary) \
56 (triangleSubdivisionRule) \
64 HD_SUBDIVISION_TAGS_SCHEMA_TOKENS);
69class HdSubdivisionTagsSchema :
public HdSchema
75 HdSubdivisionTagsSchema(HdContainerDataSourceHandle container)
84 static HdSubdivisionTagsSchema GetFromParent(
85 const HdContainerDataSourceHandle &fromParentContainer);
96 HdTokenDataSourceHandle GetFaceVaryingLinearInterpolation()
const;
99 HdTokenDataSourceHandle GetInterpolateBoundary()
const;
102 HdTokenDataSourceHandle GetTriangleSubdivisionRule()
const;
105 HdIntArrayDataSourceHandle GetCornerIndices()
const;
108 HdFloatArrayDataSourceHandle GetCornerSharpnesses()
const;
111 HdIntArrayDataSourceHandle GetCreaseIndices()
const;
114 HdIntArrayDataSourceHandle GetCreaseLengths()
const;
117 HdFloatArrayDataSourceHandle GetCreaseSharpnesses()
const;
127 static const TfToken &GetSchemaToken();
147 static HdContainerDataSourceHandle
149 const HdTokenDataSourceHandle &faceVaryingLinearInterpolation,
150 const HdTokenDataSourceHandle &interpolateBoundary,
151 const HdTokenDataSourceHandle &triangleSubdivisionRule,
152 const HdIntArrayDataSourceHandle &cornerIndices,
153 const HdFloatArrayDataSourceHandle &cornerSharpnesses,
154 const HdIntArrayDataSourceHandle &creaseIndices,
155 const HdIntArrayDataSourceHandle &creaseLengths,
156 const HdFloatArrayDataSourceHandle &creaseSharpnesses
169 Builder &SetFaceVaryingLinearInterpolation(
170 const HdTokenDataSourceHandle &faceVaryingLinearInterpolation);
172 Builder &SetInterpolateBoundary(
173 const HdTokenDataSourceHandle &interpolateBoundary);
175 Builder &SetTriangleSubdivisionRule(
176 const HdTokenDataSourceHandle &triangleSubdivisionRule);
179 const HdIntArrayDataSourceHandle &cornerIndices);
182 const HdFloatArrayDataSourceHandle &cornerSharpnesses);
185 const HdIntArrayDataSourceHandle &creaseIndices);
188 const HdIntArrayDataSourceHandle &creaseLengths);
191 const HdFloatArrayDataSourceHandle &creaseSharpnesses);
195 HdContainerDataSourceHandle
Build();
198 HdTokenDataSourceHandle _faceVaryingLinearInterpolation;
199 HdTokenDataSourceHandle _interpolateBoundary;
200 HdTokenDataSourceHandle _triangleSubdivisionRule;
201 HdIntArrayDataSourceHandle _cornerIndices;
202 HdFloatArrayDataSourceHandle _cornerSharpnesses;
203 HdIntArrayDataSourceHandle _creaseIndices;
204 HdIntArrayDataSourceHandle _creaseLengths;
205 HdFloatArrayDataSourceHandle _creaseSharpnesses;
212PXR_NAMESPACE_CLOSE_SCOPE
Represents an object that can identify the location of a data source.
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.