MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / main

Function main

examples/cpp-examples/Collision.dox.cpp:8–26  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6#include <iostream>
7
8int 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}

Callers

nothing calls this directly

Calls 6

makeUVSphereFunction · 0.85
findCollidingTrianglesFunction · 0.85
countMethod · 0.80
transformMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected