19 #ifndef __GU_NSidedSubdivPatch_h__
20 #define __GU_NSidedSubdivPatch_h__
37 mySides(sides), myDivs(
divs) { setupMesh(); }
41 int divs()
const {
return myDivs; }
44 int sides()
const {
return mySides; }
49 {
return myPoints(pointIndex(m, i, j)); }
53 {
return myPoints(pointIndex(m, i, j)); }
55 void subdivide(
const Patch &
src);
64 int pointIndex(
int m,
int i,
int j)
const;
81 if (i == myDivs && j == myDivs)
82 return int(myPoints.size()) - 1;
90 m = (m + mySides - 1) % mySides;
98 m = (m + 1) % mySides;
104 return myMeshSize * m + myDivs * i +
j;
108 template <
typename S>
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
SYS_FORCE_INLINE int sides() const
GU_NSidedSubdivPatchT(int sides, int divs=1)
SYS_FORCE_INLINE const UT_Vector3T< T > & pos(int m, int i, int j) const
SYS_FORCE_INLINE UT_Vector3T< T > & pos(int m, int i, int j)
IMATH_HOSTDEVICE constexpr int divs(int x, int y) IMATH_NOEXCEPT
UT_Vector3T< UT_Vector3T< typename S::Real > > interpolatePatch(const S &s, int m, typename S::Real u, typename S::Real v)
SYS_FORCE_INLINE int divs() const
GU_NSidedSubdivPatchT< fpreal32 > GU_NSidedSubdivPatchF