sets left face of given edge invalid and saves info about its old left ring
| 85 | |
| 86 | // sets left face of given edge invalid and saves info about its old left ring |
| 87 | void invalidateFace( MeshTopology& topology, FullRemovedFacesInfo& removedFaceInfo, int contId, int interId, EdgeId leftEdge, size_t oldEdgesSize ) |
| 88 | { |
| 89 | auto thisFace = topology.left( leftEdge ); |
| 90 | if ( !thisFace.valid() ) |
| 91 | return; |
| 92 | // fill removed tris |
| 93 | auto& removedInfo = removedFaceInfo[contId][interId]; |
| 94 | removedInfo.f = thisFace; |
| 95 | int leftEdgesCount = 0; |
| 96 | for ( auto e : leftRing( topology, thisFace ) ) |
| 97 | { |
| 98 | // we don't want to add new edges to this info structure |
| 99 | // still they can be present in because of splices done before |
| 100 | if ( e < oldEdgesSize ) |
| 101 | { |
| 102 | if ( leftEdgesCount > 2 ) |
| 103 | { |
| 104 | assert( false ); |
| 105 | break; |
| 106 | } |
| 107 | removedInfo.leftRing[leftEdgesCount] = e; |
| 108 | ++leftEdgesCount; |
| 109 | } |
| 110 | } |
| 111 | topology.setLeft( leftEdge, {} ); |
| 112 | } |
| 113 | |
| 114 | void iterateFindRemovedFaceInfo( FullRemovedFacesInfo& removedFaces, int contId, int interId, EdgeId leftEdge ) |
| 115 | { |
no test coverage detected