I've compared your implementation of ISA-GJK in Solid 3.5.4 vs. the pseudo code you give in your book, and I have a few questions:
1) In the pseudo code, there is a check if the new support point is a member of the current simplex, but in your code you don't actually check for that, you only do in the hybrid penetration depth procedure.
2) I can't seem to find a description of the "safe exit" test.
3) You don't include a description of calculating the common points. I'm especially interested in the hybrid penetration depth point calculation. I'm guessing you are trimming off the margin?
Thanks.
Questions for Gino about your book
-
- Posts: 133
- Joined: Wed Jul 27, 2005 1:05 pm
- Location: Berkeley, CA
-
- Posts: 133
- Joined: Wed Jul 27, 2005 1:05 pm
- Location: Berkeley, CA
-
- Physics Researcher
- Posts: 22
- Joined: Mon Jun 27, 2005 9:28 am
- Location: Helmond, Netherlands
Re: Questions for Gino about your book
1) In the code I only perform the check in GJK distance computation routines (closest_points and hybrid_penetration depth) Cases where ISA-GJK ends up cycling are extremely rare. The SAFE_EXIT takes care of them now.jmc wrote:I've compared your implementation of ISA-GJK in Solid 3.5.4 vs. the pseudo code you give in your book, and I have a few questions:
1) In the pseudo code, there is a check if the new support point is a member of the current simplex, but in your code you don't actually check for that, you only do in the hybrid penetration depth procedure.
2) I can't seem to find a description of the "safe exit" test.
3) You don't include a description of calculating the common points. I'm especially interested in the hybrid penetration depth point calculation. I'm guessing you are trimming off the margin?
Thanks.
2) There is no description in the book. SAFE_EXIT terminates as soon as the decrease in distance in an iteration drops below a certain threshold. It is very robust but may occasionally terminate too soon.
3) I do not have the book handy right now but both the common point computation and the hybrid method are discussed in Chapter 4.
Good luck
-
- Physics Researcher
- Posts: 22
- Joined: Mon Jun 27, 2005 9:28 am
- Location: Helmond, Netherlands
This test checks whether the current simplex W cup { w } has a zero "volume". Here "volume" means length (line segment), area (triangle) or volume (tetrahedron). An affinely dependent simplex is a sure sign of a missed termination condition. This test should also detect the "inSimplex" cases, but with finite-precision you are never really sure.jmc wrote:4) Could you describe the is_affinely_dependant test, and why you added that to your code. It isn't mentioned in the book at all.
Thanks
Cheers,