[ODE] Patch for collision_trimesh_trimesh_new available
oder at eleks.lviv.ua
Fri Sep 14 09:04:54 MST 2007
I've submited patch #1794781
Fixed: Bug in hashing algorithm when program did not search for key match if hash table bucket was full
Fixed: Inefficiency of hash value to index conversion when only lower 8 bist of 32 bits available were used
Improved: Hashing algorithm itself having removed code with no effect from it, having improved input value preprocessing quality and having changed it to generate better bit distribution in output
Fixed: Bug when different contacts could be merged together because of hash collision
Fixed: Bug when extra contacts were ignored if all contact slots were already occupied instead of trying to merge them with some of matching contacts already recorded
Fixed: Bug with least depth contact being selected during contact merging instead of most deep one
Discovered: Bug with opposite contacts being reported as one contact with dummy normal of (1; 0; 0) instead of being annihilated
Fixed: floating point types and immediate constants to match ODE style
How to merge:
1) Checkout revision 1216
2) Unpack archive in trunk/ode/src/
3) Update from SVN
4) Resolve conflicts (if any)
5) Commit to SVN
Compiled but not tested (do not have possibility to). If you have any standard tests it would be appreciated if they be run before committing this.
I've made corrections mostly to PushNewContact() function (replacement for GenerateContact() in old code). I did not review mathematics part (did not want to spend time trying to understand all that). However, considering the quality of hash table implementation, I would not trust the author too much and would suggest somebody who is familiar with math used there to review the rest of the code (FindTriangleTriangleCollision()).
More changes by me are coming in next few days.
-- Yahoo ID: oleh_derevenko
-- ICQ: 36361783
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ODE