[ODE] dCylinder bugs?

slipch slipch <slipch at gsc-game.kiev.ua>
Tue Feb 18 03:04:01 2003


Hello Michael,

Monday, February 17, 2003, 10:22:18 PM, you wrote:

MB> Hi All,

MB> I've noticed two things in the current version of dCylinder and I wanted to
MB> check to see if anyone else had seen the same.

MB> 1. MSVC reports a var used before initialized.  This message is only
MB> reported in release builds so you may need to do a release build to see the
MB> warning.   Here's the exact warning:

MB> "dCylinder.cpp(1024) : warning C4700: local variable 'normal' used without
MB> having been initialized"

MB> The line of code is:

MB>     sign = (dDOT14(normal,R+1) > 0) ? REAL(1.0) : REAL(-1.0);

MB> This appears to be a valid warning to me, and may cause bad stuff to happen.


MB> 2. The Cylinder/Box and Cylinder/Cylinder collisions seem to have issues
MB> when the cylinder end is parallel to a box's side or another cylinder's end.
MB> In these cases the cylinder seems to work through one another after a nice
MB> Jello dance.  When the collision occurs on the round part of the cylinder,
MB> things seem to behave much better.

MB> Any comments?

MB> Thanks,
MB> Mike

MB> BTW This is a great list!

I have encountered this problem.
 Most likely that it is not a bug.
 
There are two possible reasons
1) Not definite dInfinity. dInfinityValue may not be exported from dll.
   I can not export dInfinityValue from dll and assign its value in my
   code.
2) You get -dInfinity in geometry position or rotation. Sometimes
   this happen. Usually due to infinite untwisting.

This must cause the message in many ODE collision routines if you compile
ODE as MSVC project in debug configuration.

-- 
Best regards,
 Konstantin Slipchenko                            mailto:slipch@gsc-game.kiev.ua