|
| SYS_STATIC_ASSERT (GA_MAX_ORDER< 16) |
|
| GU_GridT () |
|
| ~GU_GridT () |
|
void | precompute () |
|
void | initSingleGrid (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0)) |
|
void | initColTube (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0)) |
|
void | initRowTube (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0)) |
|
void | initColSphere (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0), INT_TYPE end_pt=INT_TYPE(1), INT_TYPE start_mid_pt=INT_TYPE(2)) |
|
void | initRowSphere (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0), INT_TYPE end_pt=INT_TYPE(1), INT_TYPE start_mid_pt=INT_TYPE(2)) |
|
void | initSplitRowSphere (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0), INT_TYPE end_pt=INT_TYPE(1), INT_TYPE start_mid_pt=INT_TYPE(2)) |
|
void | initSplitColSphere (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0), INT_TYPE end_pt=INT_TYPE(1), INT_TYPE start_mid_pt=INT_TYPE(2)) |
|
void | initTorus (exint nedgerows, exint nedgecols, INT_TYPE start_pt=INT_TYPE(0)) |
|
void | initColCone (exint nedgerows, exint nedgecols, bool row0_pole=true, INT_TYPE start_pt=INT_TYPE(0), INT_TYPE start_mid_pt=INT_TYPE(1)) |
|
void | clear () |
|
INT_TYPE | getPoint (exint row, exint col) const |
|
bool | doesRowWrap (exint row) const |
|
bool | doesColWrap (exint col) const |
|
void | shiftPoints (INT_TYPE shift) |
|
bool | isInvalidTPSurf () const |
|
void | fixTPSurf () |
|
template<typename INT_TYPE = GA_Offset>
struct GU_GridT< INT_TYPE >
Definition at line 41 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The bools can't be in-class initialized, since they're bitfields, and the C++ standard evidently missed the case of bitfields. NOTE: The row and col starts are non-negative, so that destructing a default constructed grid won't crash.
Definition at line 153 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
Free memory allocations owned by this. NOTE: This intentionally does not clear myPrimitiveType, mySurfaceType, myBasisOrderU, myBasisOrderV, or myUnrollCurves.
Definition at line 258 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
void GU_GridT< INT_TYPE >::initColCone |
( |
exint |
nedgerows, |
|
|
exint |
nedgecols, |
|
|
bool |
row0_pole = true , |
|
|
INT_TYPE |
start_pt = INT_TYPE(0) , |
|
|
INT_TYPE |
start_mid_pt = INT_TYPE(1) |
|
) |
| |
NOTE: mySurfaceType & myPrimitiveType must be set before calling, and so should myFirstRowIfNotWrapped, myLastRowIfNotWrapped, and myUnrollCurves if rows/cols/rowcol, or myTriangularPoles if quads/tris. NOTE: You'll probably want to set myFirstRowIfNotWrapped or myLastRowIfNotWrapped to false, depending on row0_pole. NOTE: You don't need to call precompute() after this.
template<typename INT_TYPE >
void GU_GridT< INT_TYPE >::initColSphere |
( |
exint |
nedgerows, |
|
|
exint |
nedgecols, |
|
|
INT_TYPE |
start_pt = INT_TYPE(0) , |
|
|
INT_TYPE |
end_pt = INT_TYPE(1) , |
|
|
INT_TYPE |
start_mid_pt = INT_TYPE(2) |
|
) |
| |
This is the sphere most people expect, with north and south poles (row=0/nedgerows). NOTE: mySurfaceType & myPrimitiveType must be set before calling, and so should myFirstRowIfNotWrapped, myLastRowIfNotWrapped, and myUnrollCurves if rows/cols/rowcol, or myTriangularPoles if quads/tris. NOTE: You'll probably want to set myFirstRowIfNotWrapped and myLastRowIfNotWrapped to false, to match the Sphere SOP. NOTE: You don't need to call precompute() after this.
Definition at line 1363 of file GU_GridImpl.h.
template<typename INT_TYPE >
void GU_GridT< INT_TYPE >::initRowSphere |
( |
exint |
nedgerows, |
|
|
exint |
nedgecols, |
|
|
INT_TYPE |
start_pt = INT_TYPE(0) , |
|
|
INT_TYPE |
end_pt = INT_TYPE(1) , |
|
|
INT_TYPE |
start_mid_pt = INT_TYPE(2) |
|
) |
| |
This is the sphere most people DON'T expect, with east and west poles (col=0/nedgecols). NOTE: mySurfaceType & myPrimitiveType must be set before calling, and so should myFirstColIfNotWrapped, myLastColIfNotWrapped, and myUnrollCurves if rows/cols/rowcol, or myTriangularPoles if quads/tris. NOTE: You'll probably want to set myFirstColIfNotWrapped and myLastColIfNotWrapped to false, to match the Sphere SOP. NOTE: You don't need to call precompute() after this.
Definition at line 1454 of file GU_GridImpl.h.
template<typename INT_TYPE >
void GU_GridT< INT_TYPE >::initSingleGrid |
( |
exint |
nedgerows, |
|
|
exint |
nedgecols, |
|
|
INT_TYPE |
start_pt = INT_TYPE(0) |
|
) |
| |
NOTE: mySurfaceType & myPrimitiveType must be set before calling, and so should myFirstRowIfNotWrapped, myLastRowIfNotWrapped, myFirstColIfNotWrapped, and myLastColIfNotWrapped if rows/cols/rowcol. NOTE: You don't need to call precompute() after this.
Definition at line 1094 of file GU_GridImpl.h.
template<typename INT_TYPE >
void GU_GridT< INT_TYPE >::initSplitColSphere |
( |
exint |
nedgerows, |
|
|
exint |
nedgecols, |
|
|
INT_TYPE |
start_pt = INT_TYPE(0) , |
|
|
INT_TYPE |
end_pt = INT_TYPE(1) , |
|
|
INT_TYPE |
start_mid_pt = INT_TYPE(2) |
|
) |
| |
This is effectively a slice of a col sphere, with north and south poles (row=0/nedgerows). NOTE: mySurfaceType & myPrimitiveType must be set before calling, and so should myFirstRowIfNotWrapped, myLastRowIfNotWrapped, and myUnrollCurves if rows/cols/rowcol, or myTriangularPoles if quads/tris. NOTE: You'll probably want to set myFirstRowIfNotWrapped and myLastRowIfNotWrapped to false, to match the Sphere SOP. NOTE: You don't need to call precompute() after this.
Definition at line 1653 of file GU_GridImpl.h.
template<typename INT_TYPE >
void GU_GridT< INT_TYPE >::initSplitRowSphere |
( |
exint |
nedgerows, |
|
|
exint |
nedgecols, |
|
|
INT_TYPE |
start_pt = INT_TYPE(0) , |
|
|
INT_TYPE |
end_pt = INT_TYPE(1) , |
|
|
INT_TYPE |
start_mid_pt = INT_TYPE(2) |
|
) |
| |
This is effectively a slice of a row sphere, with north and south poles (col=0/nedgecols). NOTE: mySurfaceType & myPrimitiveType must be set before calling, and so should myFirstRowIfNotWrapped, myLastRowIfNotWrapped, and myUnrollCurves if rows/cols/rowcol, or myTriangularPoles if quads/tris. NOTE: You'll probably want to set myFirstRowIfNotWrapped and myLastRowIfNotWrapped to false, to match the Sphere SOP. NOTE: You don't need to call precompute() after this.
Definition at line 1545 of file GU_GridImpl.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The following members are cached values computed from the members above, not used for input. After setting the other members, either precompute() must be called or these members must be manually set, before any other functions can be called.
Definition at line 141 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The following members are cached values computed from the members above, not used for input. After setting the other members, either precompute() must be called or these members must be manually set, before any other functions can be called.
Definition at line 142 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myCurvesIfBasisRowCol |
If myPrimitiveType is NURBS or BEZIER, and mySurfaceType is GEO_PATCH_ROWS or GEO_PATCH_COLS or GEO_PATCH_ROWCOL, this indicates whether to create separate curve primitives (true), or a surface primitive with its surface type set correspondingly.
Definition at line 133 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myFirstColIfNotWrapped |
If mySurfaceType is cols or rows and cols, and rows aren't wrapped, if this is true, the first col is present (the usual), else it's not (e.g. the grid might be connected to an existing mesh).
Definition at line 115 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myFirstRowIfNotWrapped |
If mySurfaceType is rows or rows and cols, and columns aren't wrapped, if this is true, the first row is present (the usual), else it's not (e.g. the grid might be connected to an existing mesh).
Definition at line 105 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myLastColIfNotWrapped |
If mySurfaceType is cols or rows and cols, and rows aren't wrapped, if this is true, the final col is present (the usual), else it's not (e.g. the grid might be connected to an existing mesh).
Definition at line 120 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myLastRowIfNotWrapped |
If mySurfaceType is rows or rows and cols, and columns aren't wrapped, if this is true, the final row is present (the usual), else it's not (e.g. the grid might be connected to an existing mesh).
Definition at line 110 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The following members are cached values computed from the members above, not used for input. After setting the other members, either precompute() must be called or these members must be manually set, before any other functions can be called.
Definition at line 143 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The following members are cached values computed from the members above, not used for input. After setting the other members, either precompute() must be called or these members must be manually set, before any other functions can be called.
Definition at line 144 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The following members are cached values computed from the members above, not used for input. After setting the other members, either precompute() must be called or these members must be manually set, before any other functions can be called.
Definition at line 145 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
NOTE: The following members are cached values computed from the members above, not used for input. After setting the other members, either precompute() must be called or these members must be manually set, before any other functions can be called.
Definition at line 146 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myTriangularPoles |
If adjacent points on the boundary are equal, and mySurfaceType is one of the triangle options or quads, the appropriate polygons will be simple triangles, instead of quads or pairs of triangles. If a boundary quad becomes fully degenerate, no polygon will be output for it.
Definition at line 127 of file GU_Grid.h.
template<typename INT_TYPE = GA_Offset>
bool GU_GridT< INT_TYPE >::myUnrollCurves |
If mySurfaceType is rows, cols, or rows and cols, and a particular row or column wraps around (row0[col]==row1[col] or col0[row]==col1[row]), This indicates to create an open curve with an extra vertex (if true), instead of a closed polygon (if false).
Definition at line 100 of file GU_Grid.h.