Loading...
Searching...
No Matches
meshSchema.h
Go to the documentation of this file.
1//
2// Copyright 2023 Pixar
3//
4// Licensed under the Apache License, Version 2.0 (the "Apache License")
5// with the following modification; you may not use this file except in
6// compliance with the Apache License and the following modification to it:
7// Section 6. Trademarks. is deleted and replaced with:
8//
9// 6. Trademarks. This License does not grant permission to use the trade
10// names, trademarks, service marks, or product names of the Licensor
11// and its affiliates, except as required to comply with Section 4(c) of
12// the License and to reproduce the content of the NOTICE file.
13//
14// You may obtain a copy of the Apache License at
15//
16// http://www.apache.org/licenses/LICENSE-2.0
17//
18// Unless required by applicable law or agreed to in writing, software
19// distributed under the Apache License with the above modification is
20// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21// KIND, either express or implied. See the Apache License for the specific
22// language governing permissions and limitations under the Apache License.
23//
25
26/* ************************************************************************** */
27/* ** ** */
28/* ** This file is generated by a script. ** */
29/* ** ** */
30/* ** Do not edit it directly (unless it is within a CUSTOM CODE section)! ** */
31/* ** Edit hdSchemaDefs.py instead to make changes. ** */
32/* ** ** */
33/* ************************************************************************** */
34
35#ifndef PXR_IMAGING_HD_MESH_SCHEMA_H
36#define PXR_IMAGING_HD_MESH_SCHEMA_H
37
39
40#include "pxr/imaging/hd/api.h"
44
45#include "pxr/imaging/hd/schema.h"
46
47// --(BEGIN CUSTOM CODE: Includes)--
48// --(END CUSTOM CODE: Includes)--
49
50PXR_NAMESPACE_OPEN_SCOPE
51
52// --(BEGIN CUSTOM CODE: Declares)--
53// --(END CUSTOM CODE: Declares)--
54
55#define HD_MESH_SCHEMA_TOKENS \
56 (mesh) \
57 (topology) \
58 (subdivisionScheme) \
59 (subdivisionTags) \
60 (geomSubsets) \
61 (doubleSided) \
62
63TF_DECLARE_PUBLIC_TOKENS(HdMeshSchemaTokens, HD_API,
64 HD_MESH_SCHEMA_TOKENS);
65
66//-----------------------------------------------------------------------------
67
68
69class HdMeshSchema : public HdSchema
70{
71public:
74
75 HdMeshSchema(HdContainerDataSourceHandle container)
76 : HdSchema(container) {}
77
83 HD_API
84 static HdMeshSchema GetFromParent(
85 const HdContainerDataSourceHandle &fromParentContainer);
86
88
89// --(BEGIN CUSTOM CODE: Schema Methods)--
90// --(END CUSTOM CODE: Schema Methods)--
91
94
95 HD_API
96 HdMeshTopologySchema GetTopology() const;
97
98 HD_API
99 HdTokenDataSourceHandle GetSubdivisionScheme() const;
100
101 HD_API
102 HdSubdivisionTagsSchema GetSubdivisionTags() const;
103
104 HD_API
105 HdGeomSubsetsSchema GetGeomSubsets() const;
106
107 HD_API
108 HdBoolDataSourceHandle GetDoubleSided() const;
109
111
114
117 HD_API
118 static const TfToken &GetSchemaToken();
119
122 HD_API
123 static const HdDataSourceLocator &GetDefaultLocator();
124
126
135
137 HD_API
138 static const HdDataSourceLocator &GetTopologyLocator();
139
141 HD_API
142 static const HdDataSourceLocator &GetSubdivisionSchemeLocator();
143
145 HD_API
146 static const HdDataSourceLocator &GetSubdivisionTagsLocator();
147
149 HD_API
150 static const HdDataSourceLocator &GetGeomSubsetsLocator();
151
153 HD_API
154 static const HdDataSourceLocator &GetDoubleSidedLocator();
156
159
167 HD_API
168 static HdContainerDataSourceHandle
169 BuildRetained(
170 const HdContainerDataSourceHandle &topology,
171 const HdTokenDataSourceHandle &subdivisionScheme,
172 const HdContainerDataSourceHandle &subdivisionTags,
173 const HdContainerDataSourceHandle &geomSubsets,
174 const HdBoolDataSourceHandle &doubleSided
175 );
176
184 {
185 public:
186 HD_API
187 Builder &SetTopology(
188 const HdContainerDataSourceHandle &topology);
189 HD_API
190 Builder &SetSubdivisionScheme(
191 const HdTokenDataSourceHandle &subdivisionScheme);
192 HD_API
193 Builder &SetSubdivisionTags(
194 const HdContainerDataSourceHandle &subdivisionTags);
195 HD_API
196 Builder &SetGeomSubsets(
197 const HdContainerDataSourceHandle &geomSubsets);
198 HD_API
199 Builder &SetDoubleSided(
200 const HdBoolDataSourceHandle &doubleSided);
201
203 HD_API
204 HdContainerDataSourceHandle Build();
205
206 private:
207 HdContainerDataSourceHandle _topology;
208 HdTokenDataSourceHandle _subdivisionScheme;
209 HdContainerDataSourceHandle _subdivisionTags;
210 HdContainerDataSourceHandle _geomSubsets;
211 HdBoolDataSourceHandle _doubleSided;
212
213 };
214
216};
217
218PXR_NAMESPACE_CLOSE_SCOPE
219
220#endif
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...
Definition: meshSchema.h:184
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...
Definition: schema.h:43
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
Definition: staticTokens.h:98