| 6 | #include <iostream> |
| 7 | |
| 8 | int main() |
| 9 | { |
| 10 | auto meshA = MR::makeUVSphere(); // make mesh A |
| 11 | auto meshB = MR::makeUVSphere(); // make mesh B |
| 12 | meshB.transform( MR::AffineXf3f::translation( MR::Vector3f( 0.1f, 0.1f, 0.1f ) ) ); // shift mesh B for better demonstration |
| 13 | |
| 14 | auto collidingFacePairs = MR::findCollidingTriangles( meshA, meshB ); // find each pair of colliding faces |
| 15 | for ( const auto [fa, fb] : collidingFacePairs ) |
| 16 | std::cout << int( fa ) << " " << int( fb ) << "\n"; // print each pair of colliding faces |
| 17 | |
| 18 | auto [collidingFaceBitSetA, collidingFaceBitSetB] = MR::findCollidingTriangleBitsets( meshA, meshB ); // find bitsets of colliding faces |
| 19 | std::cout << collidingFaceBitSetA.count() << "\n"; // print number of colliding faces from mesh A |
| 20 | std::cout << collidingFaceBitSetB.count() << "\n"; // print number of colliding faces from mesh B |
| 21 | |
| 22 | |
| 23 | auto isColliding = !MR::findCollidingTriangles( meshA, meshB, nullptr, true ).empty(); // fast check if mesh A and mesh B collide |
| 24 | std::cout << isColliding << "\n"; |
| 25 | return 0; |
| 26 | } |
nothing calls this directly
no test coverage detected