implicitSurfaceMeshUtils.h
1 //
2 // Copyright 2019 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_IMPLICIT_SURFACE_MESH_UTILS_H
25 #define PXR_USD_IMAGING_USD_IMAGING_IMPLICIT_SURFACE_MESH_UTILS_H
26 
27 #include "pxr/pxr.h"
28 #include "pxr/usdImaging/usdImaging/api.h"
29 #include "pxr/base/vt/types.h"
30 
31 PXR_NAMESPACE_OPEN_SCOPE
32 
33 class PxOsdMeshTopology;
34 class TfToken;
35 
36 // Sphere
37 
41 USDIMAGING_API
42 const PxOsdMeshTopology&
43 UsdImagingGetUnitSphereMeshTopology();
44 
53 USDIMAGING_API
54 const VtVec3fArray&
55 UsdImagingGetUnitSphereMeshPoints();
56 
57 // Cube
58 
62 USDIMAGING_API
63 const PxOsdMeshTopology&
64 UsdImagingGetUnitCubeMeshTopology();
65 
73 USDIMAGING_API
74 const VtVec3fArray&
75 UsdImagingGetUnitCubeMeshPoints();
76 
77 // Cone
78 
82 USDIMAGING_API
83 const PxOsdMeshTopology&
84 UsdImagingGetUnitConeMeshTopology();
85 
97 USDIMAGING_API
98 const VtVec3fArray&
99 UsdImagingGetUnitConeMeshPoints();
100 
101 // Cylinder
102 
106 USDIMAGING_API
107 const PxOsdMeshTopology&
108 UsdImagingGetUnitCylinderMeshTopology();
109 
121 USDIMAGING_API
122 const VtVec3fArray&
123 UsdImagingGetUnitCylinderMeshPoints();
124 
125 // Capsule
126 
130 USDIMAGING_API
131 const PxOsdMeshTopology&
132 UsdImagingGetCapsuleMeshTopology();
133 
146 USDIMAGING_API
147 VtVec3fArray
148 UsdImagingGenerateCapsuleMeshPoints(
149  const double height,
150  const double radius,
151  const TfToken& axis);
152 
153 // Plane
154 
158 USDIMAGING_API
159 const PxOsdMeshTopology&
160 UsdImagingGetPlaneTopology();
161 
172 USDIMAGING_API
173 VtVec3fArray
174 UsdImagingGeneratePlaneMeshPoints(
175  const double width,
176  const double length,
177  const TfToken& axis);
178 
179 
180 // Transforms
181 
186 USDIMAGING_API
188 UsdImagingGenerateSphereOrCubeTransform(
189  const double size);
190 
197 USDIMAGING_API
199 UsdImagingGenerateConeOrCylinderTransform(
200  const double height,
201  const double radius,
202  const TfToken& axis);
203 
204 PXR_NAMESPACE_CLOSE_SCOPE
205 
206 #endif // PXR_USD_IMAGING_USD_IMAGING_IMPLICIT_SURFACE_MESH_UTILS_H
Topology data for meshes.
Definition: meshTopology.h:69
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:87
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:88
Defines all the types "TYPED" for which Vt creates a VtTYPEDArray typedef.
size_t size() const
Return the size of the string that this token represents.
Definition: token.h:186