Blender
V3.3
|
Public Member Functions | |
CrossData () | |
CrossData (T l, CDTVert< T > *v, SymEdge< T > *i, SymEdge< T > *o) | |
CrossData (const CrossData &other) | |
CrossData (CrossData &&other) noexcept | |
~CrossData ()=default | |
CrossData & | operator= (const CrossData &other) |
CrossData & | operator= (CrossData &&other) noexcept |
Public Attributes | |
T | lambda = T(0) |
CDTVert< T > * | vert |
SymEdge< T > * | in |
SymEdge< T > * | out |
The CrossData class defines either an endpoint or an intermediate point in the path we will take to insert an edge constraint. Each such point will either be (a) a vertex or (b) a fraction lambda (0 < lambda < 1) along some #SymEdge.]
In general, lambda=0 indicates case a and lambda != 0 indicates case be. The 'in' edge gives the destination attachment point of a diagonal from the previous crossing, and the 'out' edge gives the origin attachment point of a diagonal to the next crossing. But in some cases, 'in' and 'out' are undefined or not needed, and will be NULL.
For case (a), 'vert' will be the vertex, and lambda will be 0, and 'in' will be the #SymEdge from 'vert' that has as face the one that you go through to get to this vertex. If you go exactly along an edge then we set 'in' to NULL, since it won't be needed. The first crossing will have 'in' = NULL. We set 'out' to the #SymEdge that has the face we go through to get to the next crossing, or, if the next crossing is a case (a), then it is the edge that goes to that next vertex. 'out' will be NULL for the last one.
For case (b), vert will be NULL at first, and later filled in with the created split vertex, and 'in' will be the #SymEdge that we go through, and lambda will be between 0 and 1, the fraction from in's vert to in->next's vert to put the split vertex. 'out' is not needed in this case, since the attachment point will be the sym of the first half of the split edge.
Definition at line 1578 of file delaunay_2d.cc.
Definition at line 1585 of file delaunay_2d.cc.
|
inline |
Definition at line 1588 of file delaunay_2d.cc.
Definition at line 1591 of file delaunay_2d.cc.
Definition at line 1595 of file delaunay_2d.cc.
Definition at line 1603 of file delaunay_2d.cc.
References CrossData< T >::in, CrossData< T >::lambda, CrossData< T >::out, usdtokens::out(), and CrossData< T >::vert.
|
inlinenoexcept |
Definition at line 1613 of file delaunay_2d.cc.
References usdtokens::out().
Definition at line 1582 of file delaunay_2d.cc.
Referenced by add_edge_constraint(), dump_crossings(), fill_crossdata_for_through_vert(), get_next_crossing_from_edge(), and CrossData< T >::operator=().
Definition at line 1580 of file delaunay_2d.cc.
Referenced by add_edge_constraint(), dump_crossings(), fill_crossdata_for_intersect(), fill_crossdata_for_through_vert(), get_next_crossing_from_edge(), and CrossData< T >::operator=().
Definition at line 1583 of file delaunay_2d.cc.
Referenced by add_edge_constraint(), dump_crossings(), fill_crossdata_for_intersect(), fill_crossdata_for_through_vert(), and CrossData< T >::operator=().
Definition at line 1581 of file delaunay_2d.cc.
Referenced by add_edge_constraint(), dump_crossings(), fill_crossdata_for_through_vert(), get_next_crossing_from_vert(), and CrossData< T >::operator=().