Questions for Gino about your book

Please don't post Bullet support questions here, use the above forums instead.
Post Reply
User avatar
John McCutchan
Posts: 133
Joined: Wed Jul 27, 2005 1:05 pm
Location: Berkeley, CA
Contact:

Questions for Gino about your book

Post 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.
User avatar
John McCutchan
Posts: 133
Joined: Wed Jul 27, 2005 1:05 pm
Location: Berkeley, CA
Contact:

Post 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
gino
Physics Researcher
Posts: 22
Joined: Mon Jun 27, 2005 9:28 am
Location: Helmond, Netherlands
Contact:

Re: Questions for Gino about your book

Post 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
gino
Physics Researcher
Posts: 22
Joined: Mon Jun 27, 2005 9:28 am
Location: Helmond, Netherlands
Contact:

Post 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,
Post Reply