On Thu, 2009-04-23 at 10:56 -0600, Ron Jensen wrote: > On Thu, 2009-04-23 at 11:56 -0400, Patrice Poly wrote: > > > nope, same behaviour!! > > > > > > i think that on my "slow" PC, your ridge lift is sometimes initialised a > > > little to early (while position is 0,0,0 maybe), resulting in some nan > > > in the result of terrain scan, wich lead to a "nan" in > > > /environment/ridge-lift-fps. > > > > > > and as it's used to compute the next aircraft position, nan go all along > > > the calculs... > > > > > > i tested : > > > _ridge_lift_fps_node->setDoubleValue( 0 ); > > > > > > and no more nan, all the properties in ridge-lift are now valid. > > > > > > jano > > > > Jano, may I ask you to do a little experiment ? > > > > As you have a machine which triggers the error, maybe you could try this: > > > > comment out all the formulas, and replace them by a nice constant, all over > > the file. > > Then, from bottom to top, and one by one, put the original calculations > > back. > > > > Maybe that could help focus on the one that produces the bad thing ? > > > > > > Then, you could also try the following ? > > > > line 231 : if (timer >= 1.0 ) { > > > > this waits 1 second before doing a scan, maybe > > * this could be raised to a longer time ? > > * this could be replaced by something that tells us for sure the scenery is > > here,the plane is placed, and that get_elevation_m is ready to work ? > > > > I'm blind here for these experiments... > > Adding a test for NaN will prevent (or at least mask) the problem: > > strength = lift_mps * SG_METER_TO_FEET ; > if(isnan(strength)) strength=0; > _ridge_lift_fps_node->setDoubleValue( strength ); > > > We could add some debug printing, too perhaps:
if(isnan(strength)){ SG_LOG( SG_EVENT, SG_ALERT, "Ridge lift strength is NaN = " << strength ); strength=0; } _ridge_lift_fps_node->setDoubleValue( strength ); SG_LOG is preferred over cout... Ron ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel