occt-products: master 4ca65043

Author Committer Branch Timestamp Parent
oan oan master 2023-03-09 12:53:56 master 95937b11
Changeset 0033322: Collision Detection - Collision Detection fails to detect triangles if offset parameter is specified

- Correct ColDetectionProxy_Intersector::ContactPoints() so the triangles touching another triangle by a single point are also added to the result - use TOL value to drop the bounce in the higher bits at the ends of the segment;
- ColDetectionProxy_Triangle::CheckProxy(): check that at least one node of one of the triangles could be projected on the internal area of another one - do not stop on the first triangle when all its nodes are failed;
- ColDetectionProxy_Triangle::CheckProxy(): add check for exact intersection of the triangles as far as current approach does not take it into account;
- Optimize internal data structures: use NCollection_Map instead of TColgp_SequenceOfPnt to keep selected triangles and intersection points unique so to avoid multiple data duplications;
- In case of intersection, add intersection points to result1 as well as to result2, because intersection functionality is now involved into offset triangles detection. So behavior of both functionalities are synchronized now;
- Add parameter "-all" to "cdeval" Draw command in order to detect all collisions instead of just the first occasion.
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - src/ColDetectionProxy/ColDetectionProxy_Intersector.cxx Diff File
add - src/ColDetectionProxy/ColDetectionProxy_MapOfPnt.hxx Diff File
add - src/ColDetectionProxy/ColDetectionProxy_PntHasher.hxx Diff File
mod - src/ColDetectionProxy/ColDetectionProxy_Result.hxx Diff File
add - tests/coldet/collision/bug33322 Diff File