]> git.mxchange.org Git - simgear.git/commitdiff
Optionally deprecate parts of SGBucket
authorJames Turner <zakalawe@mac.com>
Wed, 19 Feb 2014 22:06:48 +0000 (14:06 -0800)
committerJames Turner <zakalawe@mac.com>
Wed, 19 Feb 2014 22:06:48 +0000 (14:06 -0800)
When NO_DEPRECATED_API is set, remove portions of the
SGBucket API.

simgear/bucket/newbucket.cxx
simgear/bucket/newbucket.hxx

index beb20d087f47ee9c14c4c0ce0c1ca10df9802aee..5d2f7a6c8a0d1cf0ab331788f78ed213a9ef684f 100644 (file)
@@ -64,10 +64,13 @@ void SGBucket::make_bad()
     lat = -1000;
 }
 
+#ifndef NO_DEPRECATED_API
+
 // constructor for specified location
 SGBucket::SGBucket(const double dlon, const double dlat) {
     set_bucket(dlon, dlat);
 }
+#endif
 
 SGBucket::SGBucket(const SGGeod& geod) {
     set_bucket(geod.getLongitudeDeg(),
@@ -107,8 +110,23 @@ static int floorWithEpsilon(double x)
     }
 }
 
+#ifndef NO_DEPRECATED_API
+
+void SGBucket::set_bucket(double dlon, double dlat)
+{
+    innerSet(dlon, dlat);
+}
+
+
+void SGBucket::set_bucket(const SGGeod& geod)
+{
+    innerSet(geod.getLongitudeDeg(), geod.getLatitudeDeg());
+}
+
+#endif
+
 // Set the bucket params for the specified lat and lon
-void SGBucket::set_bucket( double dlon, double dlat )
+void SGBucket::innerSet( double dlon, double dlat )
 {
     if ((dlon < -180.0) || (dlon >= 180.0)) {
         SG_LOG(SG_TERRAIN, SG_WARN, "SGBucket::set_bucket: passed longitude:" << dlon);
@@ -171,11 +189,6 @@ void SGBucket::set_bucket( double dlon, double dlat )
     }
 }
 
-void SGBucket::set_bucket(const SGGeod& geod)
-{
-    set_bucket(geod.getLongitudeDeg(), geod.getLatitudeDeg());
-}
-
 // Build the path name for this bucket
 std::string SGBucket::gen_base_path() const {
     // long int index;
@@ -297,7 +310,10 @@ SGBucket SGBucket::sibling(int dx, int dy) const
     
     double tmp = get_center_lon() + dx * span;
     tmp = SGMiscd::normalizePeriodic(-180.0, 180.0, tmp);
-    return SGBucket(tmp, clat);
+    
+    SGBucket b;
+    b.innerSet(tmp, clat);
+    return b;
 }
 
 std::string SGBucket::gen_index_str() const
@@ -309,6 +325,7 @@ std::string SGBucket::gen_index_str() const
        return (std::string)tmp;
 }
 
+#ifndef NO_DEPRECATED_API
 // find the bucket which is offset by the specified tile units in the
 // X & Y direction.  We need the current lon and lat to resolve
 // ambiguities when going from a wider tile to a narrower one above or
@@ -335,7 +352,7 @@ SGBucket sgBucketOffset( double dlon, double dlat, int dx, int dy ) {
 
     return result;
 }
-
+#endif
 
 // calculate the offset between two buckets
 void sgBucketDiff( const SGBucket& b1, const SGBucket& b2, int *dx, int *dy ) {
@@ -400,7 +417,7 @@ void sgGetBuckets( const SGGeod& min, const SGGeod& max, std::vector<SGBucket>&
         span = sg_bucket_span( lat );
         for (lon = min.getLongitudeDeg(); lon <= max.getLongitudeDeg(); lon += span)
         {
-            SGBucket b(lon, lat);
+            SGBucket b(SGGeod::fromDeg(lon, lat));
             if (!b.isValid()) {
                 continue;
             }
index 605171a3d15e2927e0d8a7ee1b298ab6ae2a9356..b21f1ff0145f3e1ec74fd6baf31b08a3e48a77db 100644 (file)
@@ -43,6 +43,8 @@
 #include <iosfwd>
 #include <vector>
 
+// #define NO_DEPRECATED_API
+
 /**
  * standard size of a bucket in degrees (1/8 of a degree)
  */
@@ -101,6 +103,7 @@ private:
     unsigned char x;          // x subdivision (0 to 7)
     unsigned char y;          // y subdivision (0 to 7)
 
+    void innerSet( double dlon, double dlat );
 public:
 
     /**
@@ -113,13 +116,15 @@ public:
      */
     bool isValid() const;
     
+#ifndef NO_DEPRECATED_API
     /**
      * Construct a bucket given a specific location.
      * @param dlon longitude specified in degrees
      * @param dlat latitude specified in degrees
      */
     SGBucket(const double dlon, const double dlat);
-
+#endif
+    
     /**
      * Construct a bucket given a specific location.
      * @param dlon longitude specified in degrees
@@ -132,6 +137,7 @@ public:
      */
     SGBucket(const long int bindex);
 
+#ifndef NO_DEPRECATED_API
     /**
      * Reset a bucket to represent a new lat and lon
      * @param dlon longitude specified in degrees
@@ -139,12 +145,14 @@ public:
      */
     void set_bucket(const SGGeod& geod);
 
+
     /**
      * Reset a bucket to represent a new lat and lon
      * @param dlon longitude specified in degrees
      * @param dlat latitude specified in degrees
      */
     void set_bucket( double dlon, double dlat );
+#endif
     
     /**
      * Create an impossible bucket.
@@ -290,7 +298,7 @@ inline bool operator!= (const SGBucket& lhs, const SGBucket& rhs)
         return !(lhs == rhs);
     }
 
-
+#ifndef NO_DEPRECATED_API
 /**
  * \relates SGBucket
  * Return the bucket which is offset from the specified dlon, dlat by
@@ -302,6 +310,7 @@ inline bool operator!= (const SGBucket& lhs, const SGBucket& rhs)
  * @return offset bucket
  */
 SGBucket sgBucketOffset( double dlon, double dlat, int x, int y );
+#endif
 
 
 /**