7#ifndef PXR_IMAGING_GEOM_UTIL_PLANE_MESH_GENERATOR_H
8#define PXR_IMAGING_GEOM_UTIL_PLANE_MESH_GENERATOR_H
10#include "pxr/imaging/geomUtil/api.h"
11#include "pxr/imaging/geomUtil/meshGeneratorBase.h"
16PXR_NAMESPACE_OPEN_SCOPE
55 static size_t ComputeNumPoints();
57 static size_t ComputeNumNormals()
63 static TfToken GetNormalsInterpolation()
66 return GeomUtilInterpolationTokens->constant;
72 template<
typename PointIterType,
75 typename _EnableIfGfVec3Iterator<PointIterType>::type>
76 static void GeneratePoints(
78 const ScalarType xLength,
79 const ScalarType yLength,
83 typename std::iterator_traits<PointIterType>::value_type;
85 _GeneratePointsImpl(xLength, yLength,
86 framePtr ? _PointWriter<PointType>(iter, framePtr)
87 : _PointWriter<PointType>(iter));
90 using GeomUtilMeshGeneratorBase::GeneratePoints;
92 template<
typename PointIterType,
94 typename _EnableIfGfVec3Iterator<PointIterType>::type>
95 static void GenerateNormals(
100 typename std::iterator_traits<PointIterType>::value_type;
102 _GenerateNormalsImpl(
103 framePtr ? _PointWriter<PointType>(iter, framePtr)
104 : _PointWriter<PointType>(iter));
107 using GeomUtilMeshGeneratorBase::GenerateNormals;
111 template<
typename Po
intType>
112 static void _GeneratePointsImpl(
113 const typename PointType::ScalarType xLength,
114 const typename PointType::ScalarType yLength,
115 const _PointWriter<PointType>& ptWriter);
117 template<
typename Po
intType>
118 static void _GenerateNormalsImpl(
119 const _PointWriter<PointType>& ptWriter);
122PXR_NAMESPACE_CLOSE_SCOPE
This class provides common implementation for the different mesh generator classes in GeomUtil.
This class provides an implementation for generating topology, point positions and surface normals on...
Stores a 4x4 matrix of double elements.
Topology data for meshes.
Token for efficient comparison, assignment, and hashing of known strings.