Page 1 of 1
Questions for Gino about your book
Posted: Sat Sep 17, 2005 6:23 pm
by John McCutchan
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.
Posted: Sat Sep 17, 2005 6:25 pm
by John McCutchan
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
Re: Questions for Gino about your book
Posted: Tue Oct 04, 2005 3:35 pm
by gino
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.
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.
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
Posted: Tue Oct 04, 2005 3:44 pm
by gino
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
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.
Cheers,