$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r77179 - trunk/boost/geometry/extensions/gis/projections/proj
From: barend.gehrels_at_[hidden]
Date: 2012-03-03 13:26:02
Author: barendgehrels
Date: 2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
New Revision: 77179
URL: http://svn.boost.org/trac/boost/changeset/77179
Log:
Boost.Geometry - projections, generated again from proj4 (trunk)
Text files modified: 
   trunk/boost/geometry/extensions/gis/projections/proj/cea.hpp     |    17 ++--                                    
   trunk/boost/geometry/extensions/gis/projections/proj/geos.hpp    |    87 ++++++++++++++++++++-----               
   trunk/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp |     2                                         
   trunk/boost/geometry/extensions/gis/projections/proj/krovak.hpp  |   133 +++++++++++++++++++-------------------- 
   trunk/boost/geometry/extensions/gis/projections/proj/moll.hpp    |    14 +--                                     
   trunk/boost/geometry/extensions/gis/projections/proj/nell.hpp    |    12 +--                                     
   trunk/boost/geometry/extensions/gis/projections/proj/omerc.hpp   |    24 +++---                                  
   trunk/boost/geometry/extensions/gis/projections/proj/robin.hpp   |    88 +++++++++++++-------------              
   trunk/boost/geometry/extensions/gis/projections/proj/sterea.hpp  |    21 +++--                                   
   9 files changed, 221 insertions(+), 177 deletions(-)
Modified: trunk/boost/geometry/extensions/gis/projections/proj/cea.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/cea.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/cea.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -47,7 +47,7 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace cea{
+    namespace detail { namespace cea{ 
             static const double EPS = 1e-10;
 
             struct par_cea
@@ -108,7 +108,7 @@
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
                     double t;
-
+                
                     if ((t = fabs(xy_y *= this->m_par.k0)) - EPS <= 1.) {
                         if (t >= 1.)
                             lp_lat = xy_y < 0. ? -HALFPI : HALFPI;
@@ -123,11 +123,10 @@
             template <typename Parameters>
             void setup_cea(Parameters& par, par_cea& proj_parm)
             {
-                double t;
+                double t = 0;
                 if (pj_param(par.params, "tlat_ts").i &&
-                    (par.k0 = cos(t = pj_param(par.params, "rlat_ts").f)) < 0.) throw proj_exception(-24);
-                else
-                    t = 0.;
+                    (par.k0 = cos(t = pj_param(par.params, "rlat_ts").f)) < 0.)
+                  throw proj_exception(-24);
                 if (par.es) {
                     t = sin(t);
                     par.k0 /= sqrt(1. - par.es * t * t);
@@ -143,7 +142,7 @@
             }
 
         }} // namespace detail::cea
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Equal Area Cylindrical projection
@@ -215,7 +214,7 @@
             factory.add_to_factory("cea", new cea_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/geos.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/geos.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/geos.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -45,7 +45,7 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace geos{
+    namespace detail { namespace geos{ 
 
             struct par_geos
             {
@@ -56,9 +56,11 @@
                 double  radius_g;
                 double  radius_g_1;
                 double  C;
+                std::string  sweep_axis;
+                int     flip_axis;
             };
-
-
+            
+            
 
             // template class, using CRTP to implement forward/inverse
             template <typename Geographic, typename Cartesian, typename Parameters>
@@ -78,7 +80,7 @@
                 inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const
                 {
                     double r, Vx, Vy, Vz, tmp;
-
+                
                 /* Calculation of geocentric latitude. */
                     lp_lat = atan (this->m_proj_parm.radius_p2 * tan (lp_lat));
                 /* Calculation of the three components of the vector from satellite to
@@ -92,18 +94,34 @@
                         throw proj_exception();;
                 /* Calculation based on view angles from satellite. */
                     tmp = this->m_proj_parm.radius_g - Vx;
-                    xy_x = this->m_proj_parm.radius_g_1 * atan (Vy / tmp);
-                    xy_y = this->m_proj_parm.radius_g_1 * atan (Vz / boost::math::hypot (Vy, tmp));
+                        if(this->m_proj_parm.flip_axis)
+                          {
+                            xy_x = this->m_proj_parm.radius_g_1 * atan (Vy / boost::math::hypot (Vz, tmp));
+                            xy_y = this->m_proj_parm.radius_g_1 * atan (Vz / tmp);
+                          }
+                        else
+                          {
+                            xy_x = this->m_proj_parm.radius_g_1 * atan (Vy / tmp);
+                            xy_y = this->m_proj_parm.radius_g_1 * atan (Vz / boost::math::hypot (Vy, tmp));
+                          }
                 }
 
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
                     double Vx, Vy, Vz, a, b, det, k;
-
+                
                 /* Setting three components of vector from satellite to position.*/
                     Vx = -1.0;
-                    Vy = tan (xy_x / this->m_proj_parm.radius_g_1);
-                    Vz = tan (xy_y / this->m_proj_parm.radius_g_1) * boost::math::hypot(1.0, Vy);
+                        if(this->m_proj_parm.flip_axis)
+                          {
+                            Vz = tan (xy_y / this->m_proj_parm.radius_g_1);
+                            Vy = tan (xy_x / this->m_proj_parm.radius_g_1) * boost::math::hypot(1.0, Vz);
+                          }
+                        else
+                          {
+                            Vy = tan (xy_x / this->m_proj_parm.radius_g_1);
+                            Vz = tan (xy_y / this->m_proj_parm.radius_g_1) * boost::math::hypot(1.0, Vy);
+                          }
                 /* Calculation of terms in cubic equation and determinant.*/
                     a = Vz / this->m_proj_parm.radius_p;
                     a   = Vy * Vy + a * a + Vx * Vx;
@@ -139,7 +157,7 @@
                 inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const
                 {
                     double Vx, Vy, Vz, tmp;
-
+                
                 /* Calculation of the three components of the vector from satellite to
                 ** position on earth surface (lon,lat).*/
                     tmp = cos(lp_lat);
@@ -150,18 +168,34 @@
                     if (((this->m_proj_parm.radius_g - Vx) * Vx - Vy * Vy - Vz * Vz) < 0.) throw proj_exception();;
                 /* Calculation based on view angles from satellite.*/
                     tmp = this->m_proj_parm.radius_g - Vx;
-                    xy_x = this->m_proj_parm.radius_g_1 * atan(Vy / tmp);
-                    xy_y = this->m_proj_parm.radius_g_1 * atan(Vz / boost::math::hypot(Vy, tmp));
+                        if(this->m_proj_parm.flip_axis)
+                          {
+                            xy_x = this->m_proj_parm.radius_g_1 * atan(Vy / boost::math::hypot(Vz, tmp));
+                            xy_y = this->m_proj_parm.radius_g_1 * atan(Vz / tmp);
+                          }
+                        else
+                          {
+                            xy_x = this->m_proj_parm.radius_g_1 * atan(Vy / tmp);
+                            xy_y = this->m_proj_parm.radius_g_1 * atan(Vz / boost::math::hypot(Vy, tmp));
+                          }
                 }
 
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
                     double Vx, Vy, Vz, a, b, det, k;
-
+                
                 /* Setting three components of vector from satellite to position.*/
                     Vx = -1.0;
-                    Vy = tan (xy_x / (this->m_proj_parm.radius_g - 1.0));
-                    Vz = tan (xy_y / (this->m_proj_parm.radius_g - 1.0)) * sqrt (1.0 + Vy * Vy);
+                    if(this->m_proj_parm.flip_axis)
+                          {
+                            Vz = tan (xy_y / (this->m_proj_parm.radius_g - 1.0));
+                            Vy = tan (xy_x / (this->m_proj_parm.radius_g - 1.0)) * sqrt (1.0 + Vz * Vz);
+                          }
+                        else
+                          {
+                            Vy = tan (xy_x / (this->m_proj_parm.radius_g - 1.0));
+                            Vz = tan (xy_y / (this->m_proj_parm.radius_g - 1.0)) * sqrt (1.0 + Vy * Vy);
+                          }
                 /* Calculation of terms in cubic equation and determinant.*/
                     a   = Vy * Vy + Vz * Vz + Vx * Vx;
                     b   = 2 * this->m_proj_parm.radius_g * Vx;
@@ -183,7 +217,22 @@
             {
                 if ((proj_parm.h = pj_param(par.params, "dh").f) <= 0.) throw proj_exception(-30);
                 if (par.phi0) throw proj_exception(-46);
-                proj_parm.radius_g = 1. + (proj_parm.radius_g_1 = proj_parm.h / par.a);
+                    proj_parm.sweep_axis = pj_param(par.params, "ssweep").s;
+                    if (proj_parm.sweep_axis.empty())
+                      proj_parm.flip_axis = 0;
+                    else
+                      {
+                        if (proj_parm.sweep_axis[1] != '\0' ||
+                            (proj_parm.sweep_axis[0] != 'x' &&
+                             proj_parm.sweep_axis[0] != 'y'))
+                          throw proj_exception(-49);
+                        if (proj_parm.sweep_axis[0] == 'y')
+                          proj_parm.flip_axis = 1;
+                        else
+                          proj_parm.flip_axis = 0;
+                      }
+                    proj_parm.radius_g_1 = proj_parm.h / par.a;
+                proj_parm.radius_g = 1. + proj_parm.radius_g_1;
                 proj_parm.C  = proj_parm.radius_g * proj_parm.radius_g - 1.0;
                 if (par.es) {
                     proj_parm.radius_p      = sqrt (par.one_es);
@@ -199,7 +248,7 @@
             }
 
         }} // namespace detail::geos
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Geostationary Satellite View projection
@@ -271,7 +320,7 @@
             factory.add_to_factory("geos", new geos_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -84,7 +84,7 @@
 
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
-                    double s; boost::ignore_unused_variable_warning(s);
+                    double s;
 
                     if ((s = fabs(lp_lat = pj_inv_mlfn(xy_y, this->m_par.es, this->m_proj_parm.en))) < HALFPI) {
                         s = sin(lp_lat);
Modified: trunk/boost/geometry/extensions/gis/projections/proj/krovak.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/krovak.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/krovak.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -45,42 +45,42 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace krovak{
+    namespace detail { namespace krovak{ 
 
             struct par_krovak
             {
                 double    C_x;
             };
-
-
-
-
-
+            
+            
+            
+            
+            
             /**
                NOTES: According to EPSG the full Krovak projection method should have
                       the following parameters.  Within PROJ.4 the azimuth, and pseudo
-                      standard parallel are hardcoded in the algorithm and can't be
+                      standard parallel are hardcoded in the algorithm and can't be 
                       altered from outside.  The others all have defaults to match the
                       common usage with Krovak projection.
-
+            
               lat_0 = latitude of centre of the projection
-
+                     
               lon_0 = longitude of centre of the projection
-
+              
               ** = azimuth (true) of the centre line passing through the centre of the projection
-
+            
               ** = latitude of pseudo standard parallel
-
+               
               k  = scale factor on the pseudo standard parallel
-
+              
               x_0 = False Easting of the centre of the projection at the apex of the cone
-
+              
               y_0 = False Northing of the centre of the projection at the apex of the cone
-
+            
              **/
-
-
-
+            
+            
+            
 
             // template class, using CRTP to implement forward/inverse
             template <typename Geographic, typename Cartesian, typename Parameters>
@@ -100,20 +100,17 @@
                 inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const
                 {
                 /* calculate xy from lat/lon */
-
-
-
-
+                
                 /* Constants, identical to inverse transform function */
                     double s45, s90, e2, e, alfa, uq, u0, g, k, k1, n0, ro0, ad, a, s0, n;
                     double gfi, u, fi0, deltav, s, d, eps, ro;
-
-
+                
+                
                     s45 = 0.785398163397448;    /* 45 DEG */
                     s90 = 2 * s45;
                     fi0 = this->m_par.phi0;    /* Latitude of projection centre 49 DEG 30' */
-
-                   /* Ellipsoid is used as Parameter in for.c and inv.c, therefore a must
+                
+                   /* Ellipsoid is used as Parameter in for.c and inv.c, therefore a must 
                       be set to 1 here.
                       Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.1528128,
                       e2=0.006674372230614;
@@ -122,67 +119,67 @@
                     /* e2 = this->m_par.es;*/       /* 0.006674372230614; */
                     e2 = 0.006674372230614;
                     e = sqrt(e2);
-
+                
                     alfa = sqrt(1. + (e2 * pow(cos(fi0), 4)) / (1. - e2));
-
+                
                     uq = 1.04216856380474;      /* DU(2, 59, 42, 42.69689) */
                     u0 = asin(sin(fi0) / alfa);
                     g = pow(   (1. + e * sin(fi0)) / (1. - e * sin(fi0)) , alfa * e / 2.  );
-
+                
                     k = tan( u0 / 2. + s45) / pow  (tan(fi0 / 2. + s45) , alfa) * g;
-
+                
                     k1 = this->m_par.k0;
                     n0 = a * sqrt(1. - e2) / (1. - e2 * pow(sin(fi0), 2));
                     s0 = 1.37008346281555;       /* Latitude of pseudo standard parallel 78 DEG 30'00" N */
                     n = sin(s0);
                     ro0 = k1 * n0 / tan(s0);
                     ad = s90 - uq;
-
+                
                 /* Transformation */
-
+                
                     gfi =pow ( ((1. + e * sin(lp_lat)) /
                                (1. - e * sin(lp_lat))) , (alfa * e / 2.));
-
+                
                     u= 2. * (atan(k * pow( tan(lp_lat / 2. + s45), alfa) / gfi)-s45);
-
+                
                     deltav = - lp_lon * alfa;
-
+                
                     s = asin(cos(ad) * sin(u) + sin(ad) * cos(u) * cos(deltav));
                     d = asin(cos(u) * sin(deltav) / cos(s));
                     eps = n * d;
                     ro = ro0 * pow(tan(s0 / 2. + s45) , n) / pow(tan(s / 2. + s45) , n)   ;
-
+                
                    /* x and y are reverted! */
                     xy_y = ro * cos(eps) / a;
                     xy_x = ro * sin(eps) / a;
-
+                
                         if( !pj_param(this->m_par.params, "tczech").i )
                       {
                         xy_y *= -1.0;
                         xy_x *= -1.0;
                       }
-
+                
                             return;
                 }
-
-
-
+                
+                
+                
 
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
                     /* calculate lat/lon from xy */
-
+                
                 /* Constants, identisch wie in der Umkehrfunktion */
                     double s45, s90, fi0, e2, e, alfa, uq, u0, g, k, k1, n0, ro0, ad, a, s0, n;
                     double u, deltav, s, d, eps, ro, fi1, xy0;
                     int ok;
-
+                
                     s45 = 0.785398163397448;    /* 45 DEG */
                     s90 = 2 * s45;
                     fi0 = this->m_par.phi0;    /* Latitude of projection centre 49 DEG 30' */
-
-
-                   /* Ellipsoid is used as Parameter in for.c and inv.c, therefore a must
+                
+                
+                   /* Ellipsoid is used as Parameter in for.c and inv.c, therefore a must 
                       be set to 1 here.
                       Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.1528128,
                       e2=0.006674372230614;
@@ -191,47 +188,47 @@
                     /* e2 = this->m_par.es; */      /* 0.006674372230614; */
                     e2 = 0.006674372230614;
                     e = sqrt(e2);
-
+                
                     alfa = sqrt(1. + (e2 * pow(cos(fi0), 4)) / (1. - e2));
                     uq = 1.04216856380474;      /* DU(2, 59, 42, 42.69689) */
                     u0 = asin(sin(fi0) / alfa);
                     g = pow(   (1. + e * sin(fi0)) / (1. - e * sin(fi0)) , alfa * e / 2.  );
-
+                
                     k = tan( u0 / 2. + s45) / pow  (tan(fi0 / 2. + s45) , alfa) * g;
-
+                
                     k1 = this->m_par.k0;
                     n0 = a * sqrt(1. - e2) / (1. - e2 * pow(sin(fi0), 2));
                     s0 = 1.37008346281555;       /* Latitude of pseudo standard parallel 78 DEG 30'00" N */
                     n = sin(s0);
                     ro0 = k1 * n0 / tan(s0);
                     ad = s90 - uq;
-
-
+                
+                
                 /* Transformation */
                    /* revert y, x*/
                     xy0=xy_x;
                     xy_x=xy_y;
                     xy_y=xy0;
-
+                
                         if( !pj_param(this->m_par.params, "tczech").i )
                       {
                         xy_x *= -1.0;
                         xy_y *= -1.0;
                       }
-
+                
                     ro = sqrt(xy_x * xy_x + xy_y * xy_y);
                     eps = atan2(xy_y, xy_x);
                     d = eps / sin(s0);
                     s = 2. * (atan(  pow(ro0 / ro, 1. / n) * tan(s0 / 2. + s45)) - s45);
-
+                
                     u = asin(cos(ad) * sin(s) - sin(ad) * cos(s) * cos(d));
                     deltav = asin(cos(s) * sin(d) / cos(u));
-
+                
                     lp_lon = this->m_par.lam0 - deltav / alfa;
-
+                
                 /* ITERATION FOR lp_lat */
                    fi1 = u;
-
+                
                    ok = 0;
                    do
                    {
@@ -239,18 +236,18 @@
                                             pow( tan(u / 2. + s45) , 1. / alfa)  *
                                             pow( (1. + e * sin(fi1)) / (1. - e * sin(fi1)) , e / 2.)
                                            )  - s45);
-
+                
                       if (fabs(fi1 - lp_lat) < 0.000000000000001) ok=1;
                       fi1 = lp_lat;
-
+                
                    }
                    while (ok==0);
-
+                
                    lp_lon -= this->m_par.lam0;
-
+                
                             return;
                 }
-
+                
             };
 
             // Krovak
@@ -262,14 +259,14 @@
                  * here Latitude Truescale */
                 ts = pj_param(par.params, "rlat_ts").f;
                 proj_parm.C_x = ts;
-
+                
                 /* we want Bessel as fixed ellipsoid */
                 par.a = 6377397.155;
                 par.e = sqrt(par.es = 0.006674372230614);
                     /* if latitude of projection center is not set, use 49d30'N */
                 if (!pj_param(par.params, "tlat_0").i)
                         par.phi0 = 0.863937979737193;
-
+             
                     /* if center long is not set use 42d30'E of Ferro - 17d40' for Ferro */
                     /* that will correspond to using longitudes relative to greenwich    */
                     /* as input and output, instead of lat/long relative to Ferro */
@@ -280,12 +277,12 @@
                         par.k0 = 0.9999;
                 /* always the same */
                 // par.inv = e_inverse;
-
+             
                 // par.fwd = e_forward;
             }
 
         }} // namespace detail::krovak
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Krovak projection
@@ -329,7 +326,7 @@
             factory.add_to_factory("krovak", new krovak_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/moll.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/moll.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/moll.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -46,7 +46,7 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace moll{
+    namespace detail { namespace moll{ 
             static const int MAX_ITER = 10;
             static const double LOOP_TOL = 1e-7;
 
@@ -74,7 +74,7 @@
                 {
                     double k, V;
                     int i;
-
+                
                     k = this->m_proj_parm.C_p * sin(lp_lat);
                     for (i = MAX_ITER; i ; --i) {
                         lp_lat -= V = (lp_lat + sin(lp_lat) - k) /
@@ -92,8 +92,6 @@
 
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
-
-
                     lp_lat = aasin(xy_y / this->m_proj_parm.C_y);
                     lp_lon = xy_x / (this->m_proj_parm.C_x * cos(lp_lat));
                     lp_lat += lp_lat;
@@ -102,7 +100,7 @@
             };
 
             template <typename Parameters>
-            void setup(Parameters& par, par_moll& proj_parm, double p)
+            void setup(Parameters& par, par_moll& proj_parm, double p) 
             {
                 boost::ignore_unused_variable_warning(par);
                 boost::ignore_unused_variable_warning(proj_parm);
@@ -145,7 +143,7 @@
             }
 
         }} // namespace detail::moll
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Mollweide projection
@@ -253,7 +251,7 @@
             factory.add_to_factory("wag5", new wag5_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/nell.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/nell.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/nell.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -45,7 +45,7 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace nell{
+    namespace detail { namespace nell{ 
             static const int MAX_ITER = 10;
             static const double LOOP_TOL = 1e-7;
 
@@ -68,7 +68,7 @@
                 {
                     double k, V;
                     int i;
-
+                
                     k = 2. * sin(lp_lat);
                     V = lp_lat * lp_lat;
                     lp_lat *= 1.00371 + V * (-0.0935382 + V * -0.011412);
@@ -84,8 +84,6 @@
 
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
-
-
                     lp_lon = 2. * xy_x / (1. + cos(xy_y));
                     lp_lat = aasin(0.5 * (xy_y + sin(xy_y)));
                 }
@@ -101,7 +99,7 @@
             }
 
         }} // namespace detail::nell
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Nell projection
@@ -145,7 +143,7 @@
             factory.add_to_factory("nell", new nell_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/omerc.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/omerc.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/omerc.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -47,11 +47,11 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace omerc{
+    namespace detail { namespace omerc{ 
             static const double TOL = 1.e-7;
             static const double EPS = 1.e-10;
 
-                inline double TSFN0(double x)
+                inline double TSFN0(double x) 
                     {return tan(.5 * (HALFPI - (x))); }
 
 
@@ -61,8 +61,8 @@
                 double  v_pole_n, v_pole_s, u_0;
                 int no_rot;
             };
-
-
+            
+            
 
             // template class, using CRTP to implement forward/inverse
             template <typename Geographic, typename Cartesian, typename Parameters>
@@ -82,7 +82,7 @@
                 inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const
                 {
                     double  Q, S, T, U, V, temp, u, v;
-
+                
                     if (fabs(fabs(lp_lat) - HALFPI) > EPS) {
                         Q = this->m_proj_parm.E / pow(pj_tsfn(lp_lat, sin(lp_lat), this->m_par.e), this->m_proj_parm.B);
                         temp = 1. / Q;
@@ -95,7 +95,7 @@
                         v = 0.5 * this->m_proj_parm.ArB * log((1. - U)/(1. + U));
                         temp = cos(this->m_proj_parm.B * lp_lon);
                         u = (fabs(temp) < TOL) ? this->m_proj_parm.AB * lp_lon :
-                            this->m_proj_parm.ArB * atan2((S * this->m_proj_parm.cosgam + V * this->m_proj_parm.singam) , temp);
+                            this->m_proj_parm.ArB * atan2((S * this->m_proj_parm.cosgam + V * this->m_proj_parm.singam) , temp); 
                     } else {
                         v = lp_lat > 0 ? this->m_proj_parm.v_pole_n : this->m_proj_parm.v_pole_s;
                         u = this->m_proj_parm.ArB * lp_lat;
@@ -113,7 +113,7 @@
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
                     double  u, v, Qp, Sp, Tp, Vp, Up;
-
+                
                     if (this->m_proj_parm.no_rot) {
                         v = xy_y;
                         u = xy_x;
@@ -147,9 +147,9 @@
                     gamma0, lamc, lam1, lam2, phi1, phi2, alpha_c;
                 int alp, gam, no_off = 0;
                 proj_parm.no_rot = pj_param(par.params, "tno_rot").i;
-                if ((alp = pj_param(par.params, "talpha").i))
+                    if ((alp = pj_param(par.params, "talpha").i) != 0)
                     alpha_c = pj_param(par.params, "ralpha").f;
-                if ((gam = pj_param(par.params, "tgamma").i))
+                    if ((gam = pj_param(par.params, "tgamma").i) != 0)
                     gamma = pj_param(par.params, "rgamma").f;
                 if (alp || gam) {
                     lamc    = pj_param(par.params, "rlonc").f;
@@ -239,7 +239,7 @@
             }
 
         }} // namespace detail::omerc
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Oblique Mercator projection
@@ -286,7 +286,7 @@
             factory.add_to_factory("omerc", new omerc_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/robin.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/robin.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/robin.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -46,7 +46,7 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace robin{
+    namespace detail { namespace robin{ 
             static const double FXC = 0.8487;
             static const double FYC = 1.3523;
             static const double C1 = 11.45915590261646417544;
@@ -59,45 +59,45 @@
             static struct COEFS {
                 double c0, c1, c2, c3;
             } X[] = {
-            {1,    -5.67239e-12,    -7.15511e-05,    3.11028e-06},
-            {0.9986,    -0.000482241,    -2.4897e-05,    -1.33094e-06},
-            {0.9954,    -0.000831031,    -4.4861e-05,    -9.86588e-07},
-            {0.99,    -0.00135363,    -5.96598e-05,    3.67749e-06},
-            {0.9822,    -0.00167442,    -4.4975e-06,    -5.72394e-06},
-            {0.973,    -0.00214869,    -9.03565e-05,    1.88767e-08},
-            {0.96,    -0.00305084,    -9.00732e-05,    1.64869e-06},
-            {0.9427,    -0.00382792,    -6.53428e-05,    -2.61493e-06},
-            {0.9216,    -0.00467747,    -0.000104566,    4.8122e-06},
-            {0.8962,    -0.00536222,    -3.23834e-05,    -5.43445e-06},
-            {0.8679,    -0.00609364,    -0.0001139,    3.32521e-06},
-            {0.835,    -0.00698325,    -6.40219e-05,    9.34582e-07},
-            {0.7986,    -0.00755337,    -5.00038e-05,    9.35532e-07},
-            {0.7597,    -0.00798325,    -3.59716e-05,    -2.27604e-06},
-            {0.7186,    -0.00851366,    -7.0112e-05,    -8.63072e-06},
-            {0.6732,    -0.00986209,    -0.000199572,    1.91978e-05},
-            {0.6213,    -0.010418,    8.83948e-05,    6.24031e-06},
-            {0.5722,    -0.00906601,    0.000181999,    6.24033e-06},
-            {0.5322, 0.,0.,0.  }},
+                {1,    -5.67239e-12,    -7.15511e-05,    3.11028e-06},
+                {0.9986,    -0.000482241,    -2.4897e-05,    -1.33094e-06},
+                {0.9954,    -0.000831031,    -4.4861e-05,    -9.86588e-07},
+                {0.99,    -0.00135363,    -5.96598e-05,    3.67749e-06},
+                {0.9822,    -0.00167442,    -4.4975e-06,    -5.72394e-06},
+                {0.973,    -0.00214869,    -9.03565e-05,    1.88767e-08},
+                {0.96,    -0.00305084,    -9.00732e-05,    1.64869e-06},
+                {0.9427,    -0.00382792,    -6.53428e-05,    -2.61493e-06},
+                {0.9216,    -0.00467747,    -0.000104566,    4.8122e-06},
+                {0.8962,    -0.00536222,    -3.23834e-05,    -5.43445e-06},
+                {0.8679,    -0.00609364,    -0.0001139,    3.32521e-06},
+                {0.835,    -0.00698325,    -6.40219e-05,    9.34582e-07},
+                {0.7986,    -0.00755337,    -5.00038e-05,    9.35532e-07},
+                {0.7597,    -0.00798325,    -3.59716e-05,    -2.27604e-06},
+                {0.7186,    -0.00851366,    -7.0112e-05,    -8.63072e-06},
+                {0.6732,    -0.00986209,    -0.000199572,    1.91978e-05},
+                {0.6213,    -0.010418,    8.83948e-05,    6.24031e-06},
+                {0.5722,    -0.00906601,    0.000181999,    6.24033e-06},
+                {0.5322, 0.,0.,0.}  },
             Y[] = {
-            {0,    0.0124,    3.72529e-10,    1.15484e-09},
-            {0.062,    0.0124001,    1.76951e-08,    -5.92321e-09},
-            {0.124,    0.0123998,    -7.09668e-08,    2.25753e-08},
-            {0.186,    0.0124008,    2.66917e-07,    -8.44523e-08},
-            {0.248,    0.0123971,    -9.99682e-07,    3.15569e-07},
-            {0.31,    0.0124108,    3.73349e-06,    -1.1779e-06},
-            {0.372,    0.0123598,    -1.3935e-05,    4.39588e-06},
-            {0.434,    0.0125501,    5.20034e-05,    -1.00051e-05},
-            {0.4968,    0.0123198,    -9.80735e-05,    9.22397e-06},
-            {0.5571,    0.0120308,    4.02857e-05,    -5.2901e-06},
-            {0.6176,    0.0120369,    -3.90662e-05,    7.36117e-07},
-            {0.6769,    0.0117015,    -2.80246e-05,    -8.54283e-07},
-            {0.7346,    0.0113572,    -4.08389e-05,    -5.18524e-07},
-            {0.7903,    0.0109099,    -4.86169e-05,    -1.0718e-06},
-            {0.8435,    0.0103433,    -6.46934e-05,    5.36384e-09},
-            {0.8936,    0.00969679,    -6.46129e-05,    -8.54894e-06},
-            {0.9394,    0.00840949,    -0.000192847,    -4.21023e-06},
-            {0.9761,    0.00616525,    -0.000256001,    -4.21021e-06},
-            {1., 0.,0.,0 }};
+                {0,    0.0124,    3.72529e-10,    1.15484e-09},
+                {0.062,    0.0124001,    1.76951e-08,    -5.92321e-09},
+                {0.124,    0.0123998,    -7.09668e-08,    2.25753e-08},
+                {0.186,    0.0124008,    2.66917e-07,    -8.44523e-08},
+                {0.248,    0.0123971,    -9.99682e-07,    3.15569e-07},
+                {0.31,    0.0124108,    3.73349e-06,    -1.1779e-06},
+                {0.372,    0.0123598,    -1.3935e-05,    4.39588e-06},
+                {0.434,    0.0125501,    5.20034e-05,    -1.00051e-05},
+                {0.4958,    0.0123198,    -9.80735e-05,    9.22397e-06},
+                {0.5571,    0.0120308,    4.02857e-05,    -5.2901e-06},
+                {0.6176,    0.0120369,    -3.90662e-05,    7.36117e-07},
+                {0.6769,    0.0117015,    -2.80246e-05,    -8.54283e-07},
+                {0.7346,    0.0113572,    -4.08389e-05,    -5.18524e-07},
+                {0.7903,    0.0109099,    -4.86169e-05,    -1.0718e-06},
+                {0.8435,    0.0103433,    -6.46934e-05,    5.36384e-09},
+                {0.8936,    0.00969679,    -6.46129e-05,    -8.54894e-06},
+                {0.9394,    0.00840949,    -0.000192847,    -4.21023e-06},
+                {0.9761,    0.00616525,    -0.000256001,    -4.21021e-06},
+                {1., 0.,0.,0} };
 
             // template class, using CRTP to implement forward/inverse
             template <typename Geographic, typename Cartesian, typename Parameters>
@@ -122,7 +122,7 @@
                 {
                     int i;
                     double dphi;
-
+                
                     i = int_floor((dphi = fabs(lp_lat)) * C1);
                     if (i >= NODES) i = NODES - 1;
                     dphi = RAD_TO_DEG * (dphi - RC1 * i);
@@ -136,7 +136,7 @@
                     int i;
                     double t, t1;
                     struct COEFS T;
-
+                
                     lp_lon = xy_x / FXC;
                     lp_lat = fabs(xy_y / FYC);
                     if (lp_lat >= 1.) { /* simple pathologic cases */
@@ -179,7 +179,7 @@
             }
 
         }} // namespace detail::robin
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Robinson projection
@@ -223,7 +223,7 @@
             factory.add_to_factory("robin", new robin_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     #endif // doxygen
 
 }}} // namespace boost::geometry::projection
Modified: trunk/boost/geometry/extensions/gis/projections/proj/sterea.hpp
==============================================================================
--- trunk/boost/geometry/extensions/gis/projections/proj/sterea.hpp	(original)
+++ trunk/boost/geometry/extensions/gis/projections/proj/sterea.hpp	2012-03-03 13:26:01 EST (Sat, 03 Mar 2012)
@@ -16,7 +16,7 @@
 // PROJ4 is converted to Boost.Geometry by Barend Gehrels (Geodan, Amsterdam)
 
 // Original copyright notice:
-
+ 
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 // to deal in the Software without restriction, including without limitation
@@ -48,7 +48,7 @@
 namespace boost { namespace geometry { namespace projection
 {
     #ifndef DOXYGEN_NO_DETAIL
-    namespace detail { namespace sterea{
+    namespace detail { namespace sterea{ 
             static const double DEL_TOL = 1.e-14;
             static const int MAX_ITER = 10;
 
@@ -59,9 +59,9 @@
                 double R2;
                 gauss::GAUSS en;
             };
-
-
-
+            
+            
+            
 
             // template class, using CRTP to implement forward/inverse
             template <typename Geographic, typename Cartesian, typename Parameters>
@@ -81,7 +81,7 @@
                 inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const
                 {
                     double cosc, sinc, cosl_, k;
-
+                
                     detail::gauss::gauss(m_proj_parm.en, lp_lon, lp_lat);
                     sinc = sin(lp_lat);
                     cosc = cos(lp_lat);
@@ -94,7 +94,7 @@
                 inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const
                 {
                     double rho, c, sinc, cosc;
-
+                
                     xy_x /= this->m_par.k0;
                     xy_y /= this->m_par.k0;
                     if((rho = boost::math::hypot(xy_x, xy_y))) {
@@ -116,6 +116,9 @@
             template <typename Parameters>
             void setup_sterea(Parameters& par, par_sterea& proj_parm)
             {
+                    
+             
+            
                 double R;
                 proj_parm.en = detail::gauss::gauss_ini(par.e, par.phi0, proj_parm.phic0, R);
                 proj_parm.sinc0 = sin(proj_parm.phic0);
@@ -126,7 +129,7 @@
             }
 
         }} // namespace detail::sterea
-    #endif // doxygen
+    #endif // doxygen 
 
     /*!
         \brief Oblique Stereographic Alternative projection
@@ -171,7 +174,7 @@
             factory.add_to_factory("sterea", new sterea_entry<Geographic, Cartesian, Parameters>);
         }
 
-    } // namespace detail
+    } // namespace detail 
     // Create EPSG specializations
     // (Proof of Concept, only for some)