dataSourceMesh.h
1 //
2 // Copyright 2022 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 //
24 #ifndef PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_MESH_H
25 #define PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_MESH_H
26 
27 #include "pxr/usdImaging/usdImaging/dataSourceGprim.h"
28 #include "pxr/usdImaging/usdImaging/dataSourceStageGlobals.h"
29 
30 #include "pxr/usd/usdGeom/mesh.h"
31 
32 #include "pxr/imaging/hd/dataSource.h"
33 
34 PXR_NAMESPACE_OPEN_SCOPE
35 
41 {
42 public:
43  HD_DECLARE_DATASOURCE(UsdImagingDataSourceSubdivisionTags);
44 
45  TfTokenVector GetNames() override;
46  HdDataSourceBaseHandle Get(const TfToken &name) override;
47 
48 private:
50  UsdGeomMesh usdMesh,
51  const UsdImagingDataSourceStageGlobals &stageGlobals);
52 
53 private:
54  UsdGeomMesh _usdMesh;
55  const UsdImagingDataSourceStageGlobals & _stageGlobals;
56 };
57 
58 HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceSubdivisionTags);
59 
60 // ----------------------------------------------------------------------------
61 
67 {
68 public:
69  HD_DECLARE_DATASOURCE(UsdImagingDataSourceMeshTopology);
70 
71  TfTokenVector GetNames() override;
72  HdDataSourceBaseHandle Get(const TfToken &name) override;
73 
74 private:
76  const SdfPath &sceneIndexPath,
77  UsdGeomMesh usdMesh,
78  const UsdImagingDataSourceStageGlobals &stageGlobals);
79 
80 private:
81  const SdfPath _sceneIndexPath;
82  UsdGeomMesh _usdMesh;
83  const UsdImagingDataSourceStageGlobals & _stageGlobals;
84 };
85 
86 HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceMeshTopology);
87 
88 // ----------------------------------------------------------------------------
89 
90 
96 {
97 public:
98  HD_DECLARE_DATASOURCE(UsdImagingDataSourceMesh);
99 
100  TfTokenVector GetNames() override;
101  HdDataSourceBaseHandle Get(const TfToken &name) override;
102 
103 private:
105  const SdfPath &sceneIndexPath,
106  UsdGeomMesh usdMesh,
107  const UsdImagingDataSourceStageGlobals &stageGlobals);
108 
109 private:
110  const SdfPath _sceneIndexPath;
111  UsdGeomMesh _usdMesh;
112  const UsdImagingDataSourceStageGlobals & _stageGlobals;
113 };
114 
115 HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceMesh);
116 
117 // ----------------------------------------------------------------------------
118 
124 {
125 public:
126  HD_DECLARE_DATASOURCE(UsdImagingDataSourceMeshPrim);
127 
128  TfTokenVector GetNames() override;
129  HdDataSourceBaseHandle Get(const TfToken &name) override;
130 
131 private:
133  const SdfPath &sceneIndexPath,
134  UsdPrim usdPrim,
135  const UsdImagingDataSourceStageGlobals &stageGlobals);
136 };
137 
138 HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceMeshPrim);
139 
140 PXR_NAMESPACE_CLOSE_SCOPE
141 
142 #endif // PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_MESH_H
A container data source representing data unique to meshes.
Data source representing a USD gprim.
TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
Definition: dataSource.h:102
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:87
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the data source representing name, if valid.
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
TfTokenVector GetNames() override
Returns the names for which this data source can return meaningful results.
TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
A container data source representing mesh topology.
This class is used as a context object with global stage information, that gets passed down to dataso...
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
A prim data source representing UsdGeomMesh.
Encodes a mesh with optional subdivision properties and features.
Definition: mesh.h:133
A container data source representing subdivision tags.