11 #ifndef __GEO_HedgeInterface__
12 #define __GEO_HedgeInterface__
23 template <
typename DERIVED>
37 {
return static_cast<const DERIVED &
>(*this); }
44 {
return derived().isValidHedgeImpl(h); }
47 {
return derived().isPrimaryImpl(h); }
50 {
return derived().primaryImpl(h); }
53 {
return derived().srcVertexImpl(h); }
56 {
return derived().dstVertexImpl(h); }
59 {
return derived().vertexPointImpl(vtx); }
63 {
return derived().vertexToNextVertexImpl(vtx); }
67 {
return derived().pointVertexImpl(vtx); }
71 {
return derived().vertexPrimitiveImpl(vtx); }
76 {
return derived().lnextImpl(h); }
80 {
return derived().lprevImpl(e); }
89 {
return derived().symImpl(e); }
93 {
return derived().getDetailImpl(); }
97 {
return derived().polyPrevImpl(v); }
101 {
return derived().polyNextImpl(v); }
105 {
return derived().polyNextWithPrevImpl(v, vprev); }
109 {
return derived().polyHedgeImpl(poly); }
442 #define PRIM_ORDER_VERTICES
452 bool exclude_prims =
true) :
454 { buildHedgeTopologyLinks(prims, exclude_prims); }
473 {
return GAisValid(vtx) ? myGdp->vertexPoint(vtx)
478 ? myGdp->vertexPrimitive(vtx)
483 {
return myGdp->vertexToNextVertex(vtx); }
487 {
return myGdp->pointVertex(vtx); }
505 {
return myPrimPrevRef(v); }
509 {
return myPrimNextRef(v); }
521 void buildHedgeTopologyLinks(
523 bool exclude_prims =
true);
562 {
return GAisValid(vtx) ? myGdp->vertexPoint(vtx)
567 ? myGdp->vertexPrimitive(vtx)
572 {
return myGdp->vertexToNextVertex(vtx); }
576 {
return myGdp->pointVertex(vtx); }
639 void destroyHedgeTopologyLinks();
642 {
return myHaveHedgeTopology; }
649 { myWranglerCache = wc; }
672 {
return GAisValid(vtx) ? myGdp->vertexPoint(vtx)
677 ? myGdp->vertexPrimitive(vtx)
682 {
return myGdp->vertexToNextVertex(vtx); }
686 {
return myGdp->pointVertex(vtx); }
767 {
return nextEquivalentHedge(e); }
774 {
return primaryEquivalentHedge(e); }
1041 bool check_contractible =
true);
1058 bool and_equivalent =
true,
1064 bool and_equivalent =
true,
1078 bool and_equivalent =
true,
1102 void deletePointStar(
GA_Offset pt,
bool patch_link =
true,
1119 bool myKeepHedgeTopology;
1120 bool myHaveHedgeTopology;
1159 return GAisValid(myHedgeNextRef(srcvtx));
1167 #ifdef PRIM_ORDER_VERTICES
1180 GA_Offset esrcnext = myHedgeNextRef(esrc);
1181 return (esrcnext <= esrc);
1197 vprev = myPrimPrevRef(v);
1198 return myPrimNextRef(v);
1211 GEO_UncachedHedgeInterface::isOurPoly(
GA_Offset poly)
const
1213 if (myPolys && !myPolys->containsOffset(poly))
1225 while (h =
sym(h), h != h0)
1236 while (h =
sym(h), h != h0)
1246 auto k = vtxs.
find(v);
1247 return vtxs((k + 1) % vtxs.size());
1254 auto k = vtxs.
find(v);
1255 auto n = vtxs.size();
1256 return vtxs((k +
n - 1) %
n);
1264 auto k = vtxs.
find(v);
1265 auto n = vtxs.size();
1266 vprev = vtxs((k +
n - 1) %
n);
1267 return vtxs((k + 1) %
n);
1274 if (vtxs.size() == 0 || !isOurPoly(poly))
GEO_Hedge prevManifoldOutgoingHedge(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE fpreal length(T &iface, GEO_Hedge h)
bool haveHedgeTopology() const
SYS_FORCE_INLINE GA_Offset hedgePrimitiveOffset(const GA_Detail *gdp, GEO_Hedge h)
GA_Offset preSrcPoint(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset dstPoint(GEO_SHedge sh) const
Returns the src vertex of a signed hedge.
SYS_FORCE_INLINE GEO_Hedge coincidentPolyHedge(T &iface, GEO_Hedge h, GA_Offset pt)
bool areOpposite(GEO_SHedge e1, GEO_SHedge e2) const
GEO_Hedge firstOutgoingHedge(T &iface, GA_Offset point)
SYS_FORCE_INLINE GEO_Hedge ofirst(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset srcPoint(const GA_Detail *gdp, GEO_Hedge h)
SYS_FORCE_INLINE GA_Offset postDstPoint(T &iface, GEO_Hedge h)
UT_Vector3 hedgeVector(GEO_Hedge e) const
Returns the vector defined by the end-points of e.
SYS_FORCE_INLINE GEO_Hedge nextIncidentHedge(GEO_Hedge h, GA_Offset pt) const
fpreal srcPrimitiveAngle(GEO_Hedge h, UT_Vector3 *nml=nullptr) const
GEO_Hedge firstManifoldOutgoingHedge(T &iface, GEO_Hedge h)
GA_Size numIncidentEdges(T &iface, GA_Offset pt)
UT_Vector3 srcPos3(GEO_Hedge e) const
Returns the positions of the source point of e.
SYS_FORCE_INLINE GEO_Hedge onext(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge sym(GEO_Hedge e) const
GEO_Hedge firstOutgoingHedge(GA_Offset pt) const
fpreal dstPrimitiveAngleCos(GEO_Hedge e) const
Returns the primitives angle at dst of the hedge.
GEO_Hedge nextIncidentEdge(GEO_Hedge e, GA_Offset pt) const
SYS_FORCE_INLINE GA_Offset polyPrevImpl(GA_Offset v) const
SYS_FORCE_INLINE GA_Offset vertexPointImpl(GA_Offset vtx) const
bool getBitFast(exint index) const
SYS_FORCE_INLINE UT_Vector3 dstPos3(T &iface, GEO_Hedge h)
FromType find(ToType value, FromType s=FromType(0)) const
bool areEquivalent(GEO_Hedge e1, GEO_Hedge e2) const
Returns true if e1 and e2 are equivalent hedges.
GA_Offset srcVertex(GEO_Hedge e) const
Returns the src vertex of the hedge.
SYS_FORCE_INLINE int getPrimitiveTypeId(GA_Offset primoff) const
GEO_Hedge prevManifoldIncomingHedge(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge lnext(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset srcVertex(const GEO_SHedge &sh) const
Returns the source vertex of a signed hedge.
GA_Offset postDstPoint(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset vertexPoint(GA_Offset vtx) const
fpreal dstPrimitiveAngle(GEO_Hedge h, UT_Vector3 *nml=nullptr) const
GA_Offset preSrcVertex(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset postDstVertex(T &iface, GEO_Hedge h)
UT_Vector3 hedgeVector(GEO_Hedge e) const
Returns the vector defined by the end-points of e.
GA_Size numIncidentHedges(T &iface, GA_Offset pt)
GEO_Primitive * hedgePrimitive(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset vertexToNextVertexImpl(GA_Offset vtx) const
SYS_FORCE_INLINE const DERIVED & derived() const
GEO_Hedge nextOutgoingHedge(GEO_Hedge e) const
GEO_Hedge nextIncomingHedge(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge polyHedgeImpl(GA_Offset poly) const
SYS_FORCE_INLINE GA_Offset dstVertex(const GEO_SHedge &sh) const
Returns the destination vertex of a signed hedge.
SYS_FORCE_INLINE GA_Offset polyNextWithPrevImpl(GA_Offset v, GA_Offset &vprev) const
GA_Offset srcVertex(GEO_Hedge)
GEO_Hedge nextIncomingHedge(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE GEO_Hedge nextPrimitiveHedge(T &iface, GEO_Hedge h)
GEO_Hedge nextManifoldOutgoingHedge(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE const GA_Detail * getDetailImpl() const
SYS_FORCE_INLINE GEO_Hedge symImpl(GEO_Hedge h) const
bool areOpposite(GEO_Hedge e1, GEO_Hedge e2) const
SYS_FORCE_INLINE const GA_Primitive * hedgePrimitive(const GA_Detail *gdp, GEO_Hedge h)
SYS_FORCE_INLINE GA_Offset vertexToNextVertex(GA_Offset vtx) const
SYS_FORCE_INLINE GA_Offset preSrcVertex(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset dstVertexImpl(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset preSrcPoint(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE UT_Vector3 srcPos3(const GA_Detail *gdp, GEO_Hedge h)
SYS_FORCE_INLINE GA_Offset preSrcVertex(T &iface, GEO_Hedge h)
void setWranglerCache(GA_ElementWranglerCache *wc)
bool isBridgeHedge(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE bool isValidHedge(GEO_Hedge h) const
#define GEO_INVALID_HEDGE
An invalid hedge is sometimes returned if an operation is unsuccessful.
SYS_FORCE_INLINE GEO_Hedge lprev(GEO_Hedge h) const
GEO_Hedge nextManifoldIncomingHedge(GEO_Hedge e) const
GA_Offset dstPoint(GEO_Hedge e) const
Returns the point to which the dst vertex is wired.
SYS_FORCE_INLINE GEO_Hedge onext(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset polyPrev(GA_Offset v) const
SYS_FORCE_INLINE GEO_Hedge firstIncidentHedge(GA_Offset pt) const
SYS_FORCE_INLINE GA_Offset polyNext(GA_Offset v) const
SYS_FORCE_INLINE bool GAisValid(GA_Size v)
SYS_FORCE_INLINE GEO_Hedge dfirst(GEO_Hedge e) const
exint GA_Size
Defines the bit width for index and offset types in GA.
SYS_FORCE_INLINE GA_Offset polyNextImpl(GA_Offset v) const
SYS_FORCE_INLINE bool getPrimitiveClosedFlag(GA_Offset primoff) const
GEO_Hedge nextManifoldIncomingHedge(T &iface, GEO_Hedge h)
GEO_Hedge prevPrimitiveHedge(GEO_Hedge h) const
#define GA_INVALID_OFFSET
GA_Offset hedgePrimitiveOffset(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge primaryEquivalentHedge(GEO_Hedge h) const
UT_Vector3 dstPos3(GEO_Hedge e) const
Returns the positions of the destination point of e.
GEO_Hedge firstManifoldIncomingHedge(GEO_Hedge h) const
SYS_FORCE_INLINE fpreal srcPrimitiveAngleCos(T &iface, GEO_Hedge h)
GEO_DetachedHedgeInterface(const GA_Detail *gdp, const GA_PrimitiveGroup *prims=nullptr, bool exclude_prims=true)
SYS_FORCE_INLINE GEO_Hedge dnext(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset vertexPrimitiveImpl(GA_Offset vtx) const
GEO_Hedge firstOutgoingHedge(GA_Offset pt) const
SYS_FORCE_INLINE GEO_Hedge dnext(GEO_Hedge e) const
GEO_Hedge findHedgeWithEndpoints(GA_Offset p0, GA_Offset p1) const
Find a hedge with the given endpoints or return GEO_INVLAID_HEDGE.
bool areEquivalent(GEO_SHedge e1, GEO_SHedge e2) const
Returns true if e1 and e2 are equivalent signed hedges.
SYS_FORCE_INLINE GA_Offset vertexPoint(GA_Offset vtx) const
SYS_FORCE_INLINE GEO_Hedge lprev(GEO_Hedge e) const
Returns the previous hedge in poly of h.
GEO_Hedge firstManifoldIncomingHedge(T &iface, GEO_Hedge h)
fpreal dstPrimitiveAngle(GEO_Hedge e, UT_Vector3 *nml=0) const
SYS_FORCE_INLINE GA_Offset nextPrimVertex(GA_Offset v) const
SYS_FORCE_INLINE GA_Offset srcVertexImpl(GEO_Hedge h) const
GA_Size numIncidentEdges(GA_Offset pt) const
SYS_FORCE_INLINE GA_Offset polyPrevImpl(GA_Offset v) const
SYS_FORCE_INLINE GA_Offset hedgePoly(GEO_Hedge h) const
SYS_FORCE_INLINE GEO_Hedge ofirst(GEO_Hedge e) const
SYS_FORCE_INLINE fpreal srcPrimitiveAngle(T &iface, GEO_Hedge h, UT_Vector3 *nml)
SYS_FORCE_INLINE GA_Offset vertexPrimitive(GA_Offset vtx) const
SYS_FORCE_INLINE bool areOpposite(T &iface, GEO_Hedge h1, GEO_Hedge h2)
GEO_Hedge prevManifoldOutgoingHedge(GEO_Hedge e) const
Returns the previous hedge with the same src as e in a counterclockwise.
GEO_Hedge encapsulates a half-edge (hedge) which is the restriction of.
SYS_FORCE_INLINE GEO_Hedge oprev(GEO_Hedge e) const
GA_Size numIncidentHedges(GA_Offset pt) const
Returns the number of distinct hedges incident to pt.
GEO_Hedge otherPrimitiveHedgeAtPoint(GEO_Hedge h, GA_Offset pt) const
SYS_FORCE_INLINE GA_OffsetListRef getPrimitiveVertexList(GA_Offset primoff) const
GEO_Hedge firstIncomingHedge(GA_Offset pt) const
bool isBoundaryHedge(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Size numEquivalentHedges(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE GA_Offset pointVertexImpl(GA_Offset vtx) const
SYS_FORCE_INLINE GA_Offset pointVertexImpl(GA_Offset vtx) const
SYS_FORCE_INLINE GEO_Hedge sym(GEO_Hedge e) const
GEO_Hedge nextIncidentHedge(GEO_Hedge e, GA_Offset pt) const
SYS_FORCE_INLINE bool isPrimary(GEO_Hedge h) const
UT_Vector3 srcPos3(GEO_Hedge e) const
Returns the positions of the source point of e.
SYS_FORCE_INLINE GA_Offset vertexPrimitiveImpl(GA_Offset vtx) const
UT_UniquePtr< GA_PrimitiveGroup > GA_PrimitiveGroupUPtr
SYS_FORCE_INLINE GA_Offset srcVertexImpl(GEO_Hedge h) const
GEO_Hedge nextOutgoingHedge(GEO_Hedge e) const
bool isBridgeHedge(GEO_Hedge e) const
SYS_FORCE_INLINE fpreal dstPrimitiveAngleCos(T &iface, GEO_Hedge h)
GEO_Hedge nextIncidentEdge(T &iface, GEO_Hedge h, GA_Offset point)
GEO_Hedge nextManifoldOutgoingHedge(GEO_Hedge e) const
GEO_Hedge nextIncidentHedge(T &iface, GEO_Hedge h, GA_Offset pt)
void getAdjacentBoundaryVertices(GA_Offset vtx, GA_Offset &prev_vtx, GA_Offset &next_vtx) const
GEO_Hedge firstIncomingHedge(T &iface, GA_Offset pt)
SYS_FORCE_INLINE GA_Offset dstVertex(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset postDstPoint(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset srcPoint(GEO_Hedge h) const
fpreal length(GEO_Hedge e) const
GEO_Hedge firstIncidentEdge(GA_Offset pt) const
SYS_FORCE_INLINE GA_Offset vertexPrimitive(GA_Offset vtx) const
SYS_FORCE_INLINE GEO_Hedge lprevImpl(GEO_Hedge h) const
GA_Offset postDstVertex(GEO_Hedge e) const
bool isManifoldHedge(GEO_Hedge e, bool accept_bd=false) const
SYS_FORCE_INLINE GA_Offset vertexToNextVertex(GA_Offset vtx) const
SYS_FORCE_INLINE GA_Offset vertexPointImpl(GA_Offset vtx) const
SYS_FORCE_INLINE GA_Offset dstVertex(T &iface, GEO_Hedge h)
bool isBoundaryHedge(GEO_Hedge e) const
SYS_FORCE_INLINE bool isValidHedgeImpl(GEO_Hedge h) const
SYS_FORCE_INLINE GEO_Hedge lnextImpl(GEO_Hedge h) const
Returns the next hedge in poly of h.
GA_Topology & getTopology()
bool areOpposite(GEO_Hedge e1, GEO_Hedge e2) const
UT_Vector3 dstPos3(GEO_Hedge e) const
Returns the positions of the destination point of e.
SYS_FORCE_INLINE GEO_Hedge primary(GEO_Hedge e) const
SYS_FORCE_INLINE GA_Offset pointVertex(GA_Offset vtx) const
SYS_FORCE_INLINE fpreal dstPrimitiveAngle(T &iface, GEO_Hedge h, UT_Vector3 *nml)
SYS_FORCE_INLINE bool isManifoldHedge(T &iface, GEO_Hedge h, bool accept_bd)
ImageBuf OIIO_API flip(const ImageBuf &src, ROI roi={}, int nthreads=0)
SYS_FORCE_INLINE bool isValidHedgeImpl(GEO_Hedge h) const
GLfloat GLfloat GLfloat GLfloat h
SYS_FORCE_INLINE GEO_Hedge primaryImpl(GEO_Hedge h) const
GEO_Hedge nextOutgoingHedge(T &iface, GEO_Hedge h)
GEO_Hedge firstIncidentHedge(GA_Offset pt) const
GEO_Hedge firstManifoldOutgoingHedge(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge nextPrimitiveHedge(GEO_Hedge h) const
fpreal srcPrimitiveAngleCos(GEO_Hedge e) const
Returns the primitives angle at src of the hedge.
GA_Detail * getDetail() const
SYS_FORCE_INLINE GA_Offset pointVertex(GA_Offset vtx) const
SYS_FORCE_INLINE GEO_Hedge polyHedge(GA_Offset poly) const
GEO_Hedge prevManifoldIncomingHedge(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE GEO_Hedge dprev(GEO_Hedge e) const
GEO_Hedge findHedgeWithEndpoints(T &iface, GA_Offset p0, GA_Offset p1)
SYS_FORCE_INLINE const GA_Detail * getDetailImpl() const
SYS_FORCE_INLINE GEO_SHedge primary(GEO_SHedge sh) const
fpreal length(GEO_Hedge e) const
GA_Offset postDstVertex(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset hedgePrimitiveOffset(GEO_Hedge h) const
GEO_Hedge firstIncidentEdge(T &iface, GA_Offset pt)
GEO_Hedge nextIncidentEdge(GEO_Hedge e, GA_Offset pt) const
GEO_Hedge firstIncidentEdge(GA_Offset pt) const
SYS_FORCE_INLINE GEO_Hedge lprevImpl(GEO_Hedge h) const
Returns the previous hedge in poly of h.
SYS_FORCE_INLINE GA_Offset srcVertex(GEO_Hedge h) const
SYS_FORCE_INLINE GEO_Hedge polyHedgeImpl(GA_Offset poly) const
SYS_FORCE_INLINE GEO_Hedge primary(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset vertexToNextVertexImpl(GA_Offset vtx) const
SYS_FORCE_INLINE bool isPrimaryImpl(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset polyNext(GA_Offset v) const
SYS_FORCE_INLINE GEO_Hedge lnext(GEO_Hedge h) const
Returns the next hedge in poly of h.
SYS_FORCE_INLINE GA_Offset polyNext(GA_Offset v, GA_Offset &vprev) const
SYS_FORCE_INLINE bool isPrimaryImpl(GEO_Hedge h) const
fpreal srcPrimitiveAngleCos(GEO_Hedge e) const
Returns the primitives angle at src of the hedge.
bool isManifoldHedge(GEO_Hedge e, bool accept_bd=false) const
SYS_FORCE_INLINE GA_Offset srcPoint(GEO_SHedge sh) const
Returns the src vertex of a signed hedge.
bool isBridgeHedge(GEO_Hedge e) const
SYS_FORCE_INLINE bool areEquivalent(T &iface, GEO_Hedge h1, GEO_Hedge h2)
SYS_FORCE_INLINE GA_Offset prevPrimVertex(GA_Offset v) const
SYS_FORCE_INLINE GEO_Hedge otherPrimitiveHedgeAtPoint(GEO_Hedge h, GA_Offset pt) const
Container class for all geometry.
SYS_FORCE_INLINE GA_Offset dstVertexImpl(GEO_Hedge h) const
SYS_FORCE_INLINE GEO_Hedge nextEquivalentHedge(GEO_Hedge h) const
SYS_FORCE_INLINE GEO_Hedge lcoincident(GEO_Hedge h, GA_Offset pt) const
GEO_Hedge firstIncidentHedge(T &iface, GA_Offset pt)
SYS_FORCE_INLINE GA_Offset dstPoint(GEO_Hedge h) const
Returns the point to which the dst vertex is wired.
SYS_FORCE_INLINE GEO_Hedge hedge() const
GEO_Hedge prevManifoldIncomingHedge(GEO_Hedge e) const
GEO_Hedge findHedgeWithEndpoints(GA_Offset p0, GA_Offset p1) const
Find a hedge with the given endpoints or return GEO_INVLAID_HEDGE.
GEO_Hedge nextManifoldOutgoingHedge(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge dfirst(GEO_Hedge h) const
GA_Size numEquivalentHedges(GEO_Hedge e) const
Returns the number of hedges in the equivalence class of e.
SYS_FORCE_INLINE GEO_Hedge dprev(GEO_Hedge e) const
void OIIO_UTIL_API split(string_view str, std::vector< string_view > &result, string_view sep=string_view(), int maxsplit=-1)
SYS_FORCE_INLINE const GA_Detail * getDetail() const
fpreal srcPrimitiveAngle(GEO_Hedge e, UT_Vector3 *nml=0) const
GA_Size numIncidentHedges(GA_Offset pt) const
Returns the number of distinct hedges incident to pt.
bool areEquivalent(GEO_Hedge e1, GEO_Hedge e2) const
Returns true if e1 and e2 are equivalent hedges.
SYS_FORCE_INLINE GEO_Hedge prevPrimitiveHedge(GEO_Hedge h) const
SYS_FORCE_INLINE GA_Offset polyPrev(GA_Offset v) const
virtual ~GEO_ConstHedgeInterface()=default
fpreal dstPrimitiveAngleCos(GEO_Hedge e) const
Returns the primitives angle at dst of the hedge.
GEO_Hedge firstIncomingHedge(GA_Offset pt) const
SYS_FORCE_INLINE GA_Offset polyNextWithPrevImpl(GA_Offset v, GA_Offset &vprev) const
GEO_Hedge prevManifoldOutgoingHedge(GEO_Hedge e) const
Returns the previous hedge with the same src as e in a counterclockwise.
SYS_FORCE_INLINE GA_Offset preSrcPoint(GEO_Hedge h) const
SYS_FORCE_INLINE GEO_Hedge prevPrimitiveHedge(T &iface, GEO_Hedge h)
GEO_Hedge nextIncomingHedge(GEO_Hedge e) const
SYS_FORCE_INLINE GEO_Hedge primaryImpl(GEO_Hedge h) const
GA_Size numEquivalentHedges(GEO_Hedge e) const
Returns the number of hedges in the equivalence class of e.
GA_Size numIncidentEdges(GA_Offset pt) const
GA_Offset dstVertex(GEO_Hedge e) const
Returns the dst vertex of the hedge.
SYS_FORCE_INLINE GEO_Hedge lnextImpl(GEO_Hedge h) const
GEO_Hedge firstManifoldOutgoingHedge(GEO_Hedge e) const
GEO_Hedge nextPrimitiveHedge(GEO_Hedge e) const
GEO_Hedge firstManifoldIncomingHedge(GEO_Hedge e) const
Manifold Scan Methods:
SYS_FORCE_INLINE GEO_Hedge oprev(GEO_Hedge e) const
GA_Offset srcPoint(GEO_Hedge e) const
Returns the point to which the src vertex is wired.
SYS_FORCE_INLINE GA_Offset dstPoint(T &iface, GEO_Hedge h)
SYS_FORCE_INLINE GA_Offset polyNextImpl(GA_Offset v) const
GEO_Hedge nextManifoldIncomingHedge(GEO_Hedge e) const
SYS_FORCE_INLINE bool isBoundaryHedge(T &iface, GEO_Hedge h)