-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How can i calculate all the contact triangles pairs in hpp::fcl::BVHModel<hpp::fcl::OBBRSS>? #615
Comments
Who can help me, and who can suggest some pentration depth calculate method? |
Hello @damengziuu In this constructor,
the second argument is the maximal number of contacts (pairs of triangles in collision in your case). I do not know what the value you pass is, but if you pass |
Yes, but the contact pairs are all intersecting triangles. If a contact triangle is in another Geom, it will not form a contact pair. |
On your plot, are the missing face colliding or are they strictly in the interior of the other geometry ? |
they strictly in the interior of the other geometry. |
Then you have to do the work on your own. If you know the meshes are convex, then it isn't hard. The contact triangles form a border and you must find the triangles which are at the interior.
A simple geometric analysis to determine if a triangle is in the interior should be sufficient. |
Thank you for your reply.
|
Yes, it looks like this. You have to find one triangle in the interior. Then, you can bootstrap the traversal of neighbors for this one then. The only tricky point is to get one triangle in the interior. |
Now I am going to try this method. But I think of a new case, if the geometry is non-convex or if there is an open ring at the intersection, is there a error issue with the internal neighborhood search method? |
There is no guarantee that this will work for non convex meshes. |
I want to use this library to calculate all the triangle pairs that come into contact when two convex bodies come into contact. But now I can only get the boundary of the intersecting convex bodies.
How should I solve this problem? I'll make sure I set more pieces to detect than triangles
Here is my code:
// Initial position
Transform3f tf1; // identity
Transform3f tf2; // identity
Eigen::MatrixXd tR1(3, 3),tR2(3, 3);
Eigen::MatrixXd tT1(3, 1),tT2(3, 1);
tR1 << 1.0000000000000000, 0, 0,
0, 1, 0,
0, 0, 1;
tT1 << 0.25900000099999998,
0.091704199000000000,
0.14302674900000001;
tf1.setRotation(tR1);
tf1.setTranslation(tT1);
my result:
The text was updated successfully, but these errors were encountered: