| 929 | } |
| 930 | |
| 931 | FaceId MeshTopology::sharedFace( EdgeId a, EdgeId b ) const |
| 932 | { |
| 933 | assert( a && b ); |
| 934 | const auto al = left( a ); |
| 935 | const auto bl = left( b ); |
| 936 | if ( al && al == bl ) |
| 937 | return al; |
| 938 | const auto ar = right( a ); |
| 939 | if ( ar && ar == bl ) |
| 940 | return ar; |
| 941 | const auto br = right( b ); |
| 942 | if ( al && al == br ) |
| 943 | return al; |
| 944 | if ( ar && ar == br ) |
| 945 | return ar; |
| 946 | return {}; |
| 947 | } |
| 948 | |
| 949 | FaceId MeshTopology::lastValidFace() const |
| 950 | { |