| 81 | } |
| 82 | |
| 83 | static bool vertEdge2MeshEdgePoints( const MeshTopology & topology, VertId av, EdgePoint & a, EdgePoint & b ) |
| 84 | { |
| 85 | if ( topology.org( b.e ) == av ) |
| 86 | { |
| 87 | a = EdgePoint( b.e, 0 ); |
| 88 | return true; |
| 89 | } |
| 90 | if ( topology.dest( b.e ) == av ) |
| 91 | { |
| 92 | a = EdgePoint( b.e, 1 ); |
| 93 | return true; |
| 94 | } |
| 95 | if ( topology.left( b.e ) && topology.dest( topology.next( b.e ) ) == av ) |
| 96 | { |
| 97 | a = EdgePoint( topology.next( b.e ).sym(), 0 ); |
| 98 | return true; |
| 99 | } |
| 100 | if ( topology.right( b.e ) && topology.dest( topology.prev( b.e ) ) == av ) |
| 101 | { |
| 102 | a = EdgePoint( topology.prev( b.e ).sym(), 0 ); |
| 103 | b = b.sym(); |
| 104 | return true; |
| 105 | } |
| 106 | return false; |
| 107 | } |
| 108 | |
| 109 | bool fromSameTriangle( const MeshTopology & topology, EdgePoint & a, EdgePoint & b ) |
| 110 | { |