Hi again! Ralf Gerlich wrote: > This has to do mostly with the special cases introduced for rounding > (regarding SG_EPSILON) and for covering the difference between (int) > cast rounding towards zero and the desired behaviour more similar to a > floor().
The problem only occurs for latitudes north of 83N or south of 83S western longitudes. Only here the longitudinal span of buckets is above 1.0 and always divisible by 2, so that the center of a bucket always lies on an integral longitude. This leads to the fabs(diff)<SG_EPSILON condition in newbucket.cxx:109 to evaluate to true and therefore activates the wrong calculation. Casting to (int) always rounds towards zero, which in this case leads to the base longitude being shifted eastwards by one span. In case of latitudes north of 89N or south of 89S non-western longitudes (>=0) will lead to a base longitude of 0, while western longitudes will lead to a base longitude of -180. This means that the single tiles surrounding the polar caps (width 360 degree, height 1/8 degree) essentially have different tile numbers depending on whether one is coming from an eastern or a western latitude. This might also explain the "missing northpole"-problem reported by Torsten Dreyer some time ago. Another possibility would be that Curt's last build failed in a similar way as ours did and there are not northpole tiles ;-) Cheers, Ralf ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel