| 1199 | } |
| 1200 | |
| 1201 | void splitQuad( MeshTopology & topology, EdgeId a, FaceBitSet * outNewFaces ) |
| 1202 | { |
| 1203 | assert( topology.isLeftQuad( a ) ); |
| 1204 | assert( topology.left( a ) ); |
| 1205 | auto d = topology.makeEdge(); |
| 1206 | topology.splice( topology.prev( a.sym() ), d ); |
| 1207 | topology.splice( topology.next( a ).sym(), d.sym() ); |
| 1208 | assert( topology.isLeftTri( d ) ); |
| 1209 | assert( topology.isLeftTri( d.sym() ) ); |
| 1210 | assert( topology.left( d ) ); |
| 1211 | assert( !topology.left( d.sym() ) ); |
| 1212 | auto f = topology.addFaceId(); |
| 1213 | topology.setLeft( d.sym(), f ); |
| 1214 | if ( outNewFaces ) |
| 1215 | outNewFaces->autoResizeSet( f ); |
| 1216 | } |
| 1217 | |
| 1218 | MakeBridgeResult makeBridge( MeshTopology & topology, EdgeId a, EdgeId b, FaceBitSet * outNewFaces ) |
| 1219 | { |