-#ifdef FG_HAVE_STD_INCLUDES
-# include <cmath>
-# include <cstdio> // sprintf()
-# include <iostream>
-#else
-# include <math.h>
-# include <stdio.h> // sprintf()
-# include <iostream.h>
-#endif
-
-// I don't understand ... <math.h> or <cmath> should be included
-// already depending on how you defined FG_HAVE_STD_INCLUDES, but I
-// can go ahead and add this -- CLO
-#ifdef __MWERKS__
-# include <math.h> // needed fabs()
-#endif
-
-#include STL_STRING
-
-FG_USING_STD(string);
-
-#if ! defined( FG_HAVE_NATIVE_SGI_COMPILERS )
-FG_USING_STD(ostream);
-#endif
-
-
-
-#define FG_BUCKET_SPAN 0.125 // 1/8 of a degree
-#define FG_HALF_BUCKET_SPAN 0.0625 // 1/2 of 1/8 of a degree = 1/16 = 0.0625
-
-class FGBucket;
-ostream& operator<< ( ostream&, const FGBucket& );
-bool operator== ( const FGBucket&, const FGBucket& );
-
-class FGBucket {
-
-private:
- double cx, cy; // centerpoint (lon, lat) in degrees of bucket
- int lon; // longitude index (-180 to 179)
- int lat; // latitude index (-90 to 89)
- int x; // x subdivision (0 to 7)
- int y; // y subdivision (0 to 7)
-
-public:
-
- // default constructor
- FGBucket();
-
- // create a bucket which would contain the specified lon/lat
- FGBucket(const double lon, const double lat);
-
- // create a bucket based on "long int" index
- FGBucket(const long int bindex);
-
- // create an impossible bucket if false
- FGBucket(const bool is_good);
-
- ~FGBucket();
-
- // Set the bucket params for the specified lat and lon
- void set_bucket( double dlon, double dlat );
- void set_bucket( double *lonlat ) {
- set_bucket( lonlat[0], lonlat[1] );
- }
-
- void make_bad ( void );