MCPcopy Create free account
hub / github.com/RenderKit/embree / CollideFunc

Function CollideFunc

tutorials/collide/collide.cpp:74–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74void CollideFunc (void* userPtr, RTCCollision* collisions, unsigned int num_collisions)
75{
76 for (size_t i=0; i<num_collisions;)
77 {
78 bool intersect = intersect_triangle_triangle(collisions[i].geomID0,collisions[i].primID0,
79 collisions[i].geomID1,collisions[i].primID1);
80 if (intersect) i++;
81 else collisions[i] = collisions[--num_collisions];
82 }
83
84 if (num_collisions == 0)
85 return;
86
87 Lock<MutexSys> lock(mutex);
88 for (size_t i=0; i<num_collisions; i++)
89 {
90 const unsigned geomID0 = collisions[i].geomID0;
91 const unsigned primID0 = collisions[i].primID0;
92 const unsigned geomID1 = collisions[i].geomID1;
93 const unsigned primID1 = collisions[i].primID1;
94
95 static_cast<Collisions*>(userPtr)->push_back(std::make_pair(std::make_pair(geomID0,primID0),std::make_pair(geomID1,primID1)));
96 }
97}
98
99void triangle_bounds_func(const struct RTCBoundsFunctionArguments* args)
100{

Callers

nothing calls this directly

Calls 2

push_backMethod · 0.45

Tested by

no test coverage detected