24 #ifndef PXR_IMAGING_GEOM_UTIL_SPHERE_MESH_GENERATOR_H 25 #define PXR_IMAGING_GEOM_UTIL_SPHERE_MESH_GENERATOR_H 27 #include "pxr/imaging/geomUtil/api.h" 28 #include "pxr/imaging/geomUtil/meshGeneratorBase.h" 32 PXR_NAMESPACE_OPEN_SCOPE
70 static constexpr
size_t minNumRadial = 3;
71 static constexpr
size_t minNumAxial = 2;
74 static size_t ComputeNumPoints(
75 const size_t numRadial,
76 const size_t numAxial,
77 const bool closedSweep =
true);
81 const size_t numRadial,
82 const size_t numAxial,
83 const bool closedSweep =
true);
85 template<
typename PointIterType,
88 typename _EnableIfGfVec3Iterator<PointIterType>::type>
89 static void GeneratePoints(
91 const size_t numRadial,
92 const size_t numAxial,
93 const ScalarType radius,
96 constexpr ScalarType sweep = 360;
97 GeneratePoints(iter, numRadial, numAxial, radius, sweep, framePtr);
100 template<
typename PointIterType,
103 typename _EnableIfGfVec3Iterator<PointIterType>::type>
104 static void GeneratePoints(
106 const size_t numRadial,
107 const size_t numAxial,
108 const ScalarType radius,
109 const ScalarType sweepDegrees,
113 typename std::iterator_traits<PointIterType>::value_type;
115 _GeneratePointsImpl(numRadial, numAxial, radius, sweepDegrees,
116 framePtr ? _PointWriter<PointType>(iter, framePtr)
117 : _PointWriter<PointType>(iter));
120 using GeomUtilMeshGeneratorBase::GeneratePoints;
124 template<
typename Po
intType>
125 static void _GeneratePointsImpl(
126 const size_t numRadial,
127 const size_t numAxial,
128 const typename PointType::ScalarType radius,
129 const typename PointType::ScalarType sweepDegrees,
130 const _PointWriter<PointType>& ptWriter);
133 PXR_NAMESPACE_CLOSE_SCOPE
135 #endif // PXR_IMAGING_GEOM_UTIL_SPHERE_MESH_GENERATOR_H This class provides common implementation for the different mesh generator classes in GeomUtil.
Topology data for meshes.
Stores a 4x4 matrix of double elements.
This class provides an implementation for generating topology and point positions on a sphere with a ...