7 #ifndef PXR_IMAGING_GEOM_UTIL_CAPSULE_MESH_GENERATOR_H
8 #define PXR_IMAGING_GEOM_UTIL_CAPSULE_MESH_GENERATOR_H
77 const size_t numRadial,
78 const size_t numCapAxial,
79 const bool closedSweep =
true);
82 const size_t numRadial,
83 const size_t numCapAxial,
84 const bool closedSweep =
true)
93 return GeomUtilInterpolationTokens->vertex;
98 const size_t numRadial,
99 const size_t numCapAxial,
100 const bool closedSweep =
true);
102 template<
typename PointIterType,
108 const size_t numRadial,
109 const size_t numCapAxial,
110 const ScalarType radius,
120 template<
typename PointIterType,
126 const size_t numRadial,
127 const size_t numCapAxial,
128 const ScalarType bottomRadius,
129 const ScalarType topRadius,
133 constexpr ScalarType sweep = 360;
136 bottomRadius, topRadius,
137 height, sweep, framePtr);
140 template<
typename PointIterType,
146 const size_t numRadial,
147 const size_t numCapAxial,
148 const ScalarType bottomRadius,
149 const ScalarType topRadius,
151 const ScalarType sweepDegrees,
157 _GeneratePointsImpl(numRadial, numCapAxial, bottomRadius, topRadius,
158 height, sweepDegrees,
166 template<
typename PointIterType,
172 const size_t numRadial,
173 const size_t numCapAxial,
174 const ScalarType radius,
184 template<
typename PointIterType,
190 const size_t numRadial,
191 const size_t numCapAxial,
192 const ScalarType bottomRadius,
193 const ScalarType topRadius,
197 constexpr ScalarType sweep = 360;
200 bottomRadius, topRadius,
201 height, sweep, framePtr);
204 template<
typename PointIterType,
210 const size_t numRadial,
211 const size_t numCapAxial,
212 const ScalarType bottomRadius,
213 const ScalarType topRadius,
215 const ScalarType sweepDegrees,
221 _GenerateNormalsImpl(numRadial, numCapAxial, bottomRadius, topRadius,
222 height, sweepDegrees,
231 template<
typename ScalarType>
232 static size_t _ComputeNumBottomCapAxial(
233 const size_t numCapAxial,
234 const ScalarType latitudeRange);
236 static size_t _ComputeNumTopCapAxial(
237 const size_t numCapAxial,
238 const size_t numBottomCapAxial);
240 template<
typename Po
intType>
241 static void _GeneratePointsImpl(
242 const size_t numRadial,
243 const size_t numCapAxial,
244 const typename PointType::ScalarType bottomRadius,
245 const typename PointType::ScalarType topRadius,
246 const typename PointType::ScalarType
height,
247 const typename PointType::ScalarType sweep,
248 const _PointWriter<PointType>& ptWriter);
250 template<
typename Po
intType>
251 static void _GenerateNormalsImpl(
252 const size_t numRadial,
253 const size_t numCapAxial,
254 const typename PointType::ScalarType bottomRadius,
255 const typename PointType::ScalarType topRadius,
256 const typename PointType::ScalarType
height,
257 const typename PointType::ScalarType sweep,
258 const _PointWriter<PointType>& ptWriter);
263 #endif // PXR_IMAGING_GEOM_UTIL_CAPSULE_MESH_GENERATOR_H
static GEOMUTIL_API size_t ComputeNumPoints(const size_t numRadial, const size_t numCapAxial, const bool closedSweep=true)
static void GeneratePoints(PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType radius, const ScalarType height, const GfMatrix4d *framePtr=nullptr)
static void GenerateNormals(PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType bottomRadius, const ScalarType topRadius, const ScalarType height, const ScalarType sweepDegrees, const GfMatrix4d *framePtr=nullptr)
static void GeneratePoints(PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType bottomRadius, const ScalarType topRadius, const ScalarType height, const ScalarType sweepDegrees, const GfMatrix4d *framePtr=nullptr)
static void GenerateNormals(PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType bottomRadius, const ScalarType topRadius, const ScalarType height, const GfMatrix4d *framePtr=nullptr)
static GEOMUTIL_API PxOsdMeshTopology GenerateTopology(const size_t numRadial, const size_t numCapAxial, const bool closedSweep=true)
static void GeneratePoints(PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType bottomRadius, const ScalarType topRadius, const ScalarType height, const GfMatrix4d *framePtr=nullptr)
static void GenerateNormals(PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType radius, const ScalarType height, const GfMatrix4d *framePtr=nullptr)
GLint GLsizei GLsizei height
static size_t ComputeNumNormals(const size_t numRadial, const size_t numCapAxial, const bool closedSweep=true)
static constexpr size_t minNumCapAxial
static TfToken GetNormalsInterpolation()
static constexpr size_t minNumRadial
static void GeneratePoints(PointIterType iter,...)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
static void GenerateNormals(PointIterType iter,...)