13 #ifndef __GU_Decompose_h__
14 #define __GU_Decompose_h__
51 namespace GU_Decomposition
62 myStart(s), myEnd(e) { }
65 const T *
begin()
const {
return myStart; }
68 const T *
end()
const {
return myEnd; }
81 const T *myStart, *myEnd;
91 bool split_all =
false,
93 bool sort_patches =
true);
99 {
return int(myPatchEnd.size()); }
105 {
return int(myBoundaryStart.size()) - 1; }
109 {
return myPatchFirstBoundary(p + 1)
110 - myPatchFirstBoundary(p); }
120 {
return myBoundaryPatch(b); }
124 {
return int(myPatchPolys.size()); }
128 {
return int(myBoundaryHedges.size()); }
132 {
return { myPatchPolys.data()
133 + (p ? myPatchEnd(p - 1) : 0),
134 myPatchPolys.data() + myPatchEnd(p) }; }
137 {
return { myBoundaryHedges.data()
138 + myBoundaryStart(b),
139 myBoundaryHedges.data()
140 + myBoundaryStart(b + 1) }; }
143 {
return boundaryHedges(myPatchFirstBoundary(p)
151 const SubIndexMap &poly_index_map)
const;
160 const OffsetSet &bd_src_vtxs);
188 bool split_all =
false,
194 bool split_all =
false,
200 {
return int(myPathStarts.size()) - 1; }
203 {
return myPathClosed(path); }
207 {
return int(myPathPoints.size()); }
210 {
return { myPathPoints.data()
211 + myPathStarts(path),
213 + myPathStarts(path + 1) }; }
218 const EdgeArray &edges,
222 void reversePath(
int i);
252 {
return int(myPathStarts.size()) - 1; }
255 {
return myPathClosed(path); }
259 {
return int(myPathHedges.size()); }
262 {
return { myPathHedges.data() + myPathStarts(path),
264 + myPathStarts(path + 1) }; }
268 void shiftPath(
int path,
int shift);
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
PtrRange< GEO_Hedge > patchBoundaryHedges(int p, int b) const
GLsizei const GLchar *const * path
int numPatches() const
Returns the number of maximal manifold components (patches).
SYS_FORCE_INLINE const T & first() const
int boundaryPatch(int b) const
PtrRange< GA_Offset > pathPoints(int path) const
int numPatchBoundaries(int p) const
SYS_FORCE_INLINE exint size() const
int numPathHedges() const
bool isClosed(int path) const
SYS_FORCE_INLINE const T * end() const
int numBoundaries() const
PtrRange< GEO_Hedge > pathHedges(int path) const
int numBoundaryHedges() const
GLboolean GLboolean GLboolean b
bool isClosed(int path) const
SYS_FORCE_INLINE const T & last() const
PtrRange(const T *s, const T *e)
PtrRange< GA_Offset > patchPolys(int p) const
SYS_FORCE_INLINE const T * begin() const
PtrRange< GEO_Hedge > boundaryHedges(int b) const
UT_StringArray JOINTS hip
int numPathPoints() const