|
template<typename OP > |
static void | dispatch (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset, OP op) |
|
template<typename OP > |
static void | dispatch (const GA_Detail *gdp, GA_Offset offset, OP op) |
|
template<typename OP > |
static void | dispatch (GA_PrimitiveTypeId type, const GA_Primitive *baseprim, OP op) |
|
static GA_Size | getVertexCount (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset) |
|
static GA_OffsetListRef | getVertexList (const GA_Detail *gdp, GA_Offset offset) |
| Return shallow copy of the vertex list. More...
|
|
static GA_Offset | getVertexOffset (const GA_Detail *gdp, GA_Offset offset, GA_Size index) |
| Return the vertex offset from a given vertex index. More...
|
|
static GA_Offset | getPointOffset (const GA_Detail *gdp, GA_Offset offset, GA_Size index) |
| Return the point offset from a given vertex index. More...
|
|
static GA_Size | getFaceCount (GA_PrimitiveTypeId type, const GA_Detail *d, GA_Offset offset) |
| The number of faces that make up this volume. More...
|
|
static int | getFaceIndices (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset, GA_Size faceno, UT_Array< int > &vtxlist) |
| Returns the indices to the vertices, not the vertex offsets! More...
|
|
static int | getFaceIndexCount (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset, GA_Size faceno) |
| Returns the number of indices in specified face. More...
|
|
static GA_Offset | findSharedFace (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset, GA_Size faceno) |
|
static GA_Size | getEdgeCount (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset) |
| The number of edges in this volume. More...
|
|
static void | getEdgeIndices (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset, GA_Size edgeno, int &e0, int &e1) |
|
static void | computeInteriorPointWeights (GA_PrimitiveTypeId type, const GA_Detail *gdp, GA_Offset offset, UT_Array< GA_Offset > &vtxlist, UT_Array< float > &weightlist, fpreal u, fpreal v, fpreal w) |
| Evaluate the interior point weights. More...
|
|
Definition at line 37 of file GEO_VolumeElement.h.
This lets you create a stack-version of the primitive so you can duck-type directly to GEO_PrimTetrahedron, GEO_PrimHexahedron, etc. Usage: GEO_VolumeElement::dispatch(type, gdp, primoff, [&](auto &prim) { prim.normal(comp); }); will be the equivalent of creating a stack GEO_PrimTetrahedon(gdp, primoff) and calling normal on it.
To retreive the actual type you can use decltype
GEO_VolumeElement::dispatch(type, gdp, primoff, [&](auto &prim) { using PrimT = SYS_RemoveCVRef_t<decltype(prim)>; typename PrimT::Face face(prim, i); });
Definition at line 74 of file GEO_VolumeElement.h.