Skip to content

Commit d906785

Browse files
committed
Remove auto usage in tests, create public name for uniform_point_distribution
1 parent a6bfe95 commit d906785

File tree

3 files changed

+30
-16
lines changed

3 files changed

+30
-16
lines changed

extensions/example/random/random_example.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ int main()
4747
bg::append(mp, point(x, y));
4848
}
4949
}
50-
auto box_dist = bg::random::uniform_point_distribution(b);
51-
auto mp_dist = bg::random::uniform_point_distribution(mp);
52-
auto seg_dist = bg::random::uniform_point_distribution(s);
53-
auto poly_dist = bg::random::uniform_point_distribution(poly);
50+
bg::random::uniform_point_distribution<box> box_dist(b);
51+
bg::random::uniform_point_distribution<multi_point> mp_dist(mp);
52+
bg::random::uniform_point_distribution<segment> seg_dist(s);
53+
bg::random::uniform_point_distribution<polygon> poly_dist(poly);
5454
std::ofstream svg("random.svg");
5555
bg::svg_mapper<point> mapper(svg, 720, 720);
5656
mapper.add(poly);
@@ -70,7 +70,7 @@ int main()
7070
typedef bg::model::point<double, 2, bg::cs::spherical_equatorial<bg::degree>> point_spherical;
7171
typedef bg::model::box<point_spherical> box_spherical;
7272
box_spherical sb(point_spherical(0, 0), point_spherical(90, 90));
73-
auto sb_dist = bg::random::uniform_point_distribution(sb);
73+
bg::random::uniform_point_distribution<box_spherical> sb_dist(sb);
7474
for (int i = 0 ; i < 10*samples ; ++i)
7575
{
7676
point_spherical p = sb_dist(generator);

extensions/test/random/random.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ void test_geographic()
2828
//to great circle arc length.
2929
typedef bg::model::linestring<point2d_geog> linestring;
3030
linestring ls {{ 0.0, 0.0 }, { 45.0, 45.0 }, { 60.0, 60.0 }};
31-
auto l_dist = bg::random::uniform_point_distribution(ls);
31+
bg::random::uniform_point_distribution<linestring> l_dist(ls);
3232
std::mt19937 generator(0);
3333
int sample_count = 2000;
3434
int count_below_45 = 0;
@@ -51,7 +51,7 @@ void test_geographic()
5151
//known area ratios of spherical caps.
5252
typedef bg::model::box<point2d_geog> box;
5353
box b {{ 0.0, 0.0 }, { 90.0, 90.0 }};
54-
auto b_dist = bg::random::uniform_point_distribution(b);
54+
bg::random::uniform_point_distribution<box> b_dist(b);
5555
int under_60 = 0;
5656
for (int i = 0 ; i < sample_count ; ++i)
5757
{
@@ -75,8 +75,8 @@ void test_polygon()
7575
bg::read_wkt(
7676
"POLYGON((16 21,17.1226 17.5451,20.7553 17.5451, 17.8164 15.4098,18.9389 11.9549,16 14.0902,13.0611 11.9549, 14.1836 15.4098,11.2447 17.5451,14.8774 17.5451,16 21))",
7777
poly);
78-
auto poly_dist = bg::random::uniform_point_distribution(poly);
79-
decltype(poly_dist) poly_dist2;
78+
bg::random::uniform_point_distribution<polygon> poly_dist(poly);
79+
bg::random::uniform_point_distribution<polygon> poly_dist2;
8080
BOOST_CHECK( !(poly_dist == poly_dist2) );
8181
std::stringstream ss;
8282
ss << poly_dist;
@@ -122,7 +122,7 @@ void test_multipoint()
122122
typedef bg::model::multi_point<point3d_cart> multipoint;
123123
multipoint mp {{0.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}};
124124
int first = 0;
125-
auto mp_dist = bg::random::uniform_point_distribution(mp);
125+
bg::random::uniform_point_distribution<multipoint> mp_dist(mp);
126126
std::mt19937 generator(0);
127127
int sample_count = 1000;
128128
for (int i = 0 ; i < sample_count ; ++i)

include/boost/geometry/extensions/random/uniform_point_distribution.hpp

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,24 @@ template
1919
typename DomainGeometry,
2020
typename Point = typename geometry::point_type<DomainGeometry>::type
2121
>
22-
inline dispatch::uniform_point_distribution<DomainGeometry, Point>
23-
uniform_point_distribution(DomainGeometry const& domain)
22+
class uniform_point_distribution :
23+
public dispatch::uniform_point_distribution<DomainGeometry, Point>
2424
{
25-
return dispatch::uniform_point_distribution<DomainGeometry, Point>(domain);
25+
public:
26+
typedef dispatch::uniform_point_distribution<DomainGeometry, Point> base;
27+
using base::base;
28+
uniform_point_distribution(DomainGeometry const& domain) : base(domain) {}
29+
};
30+
31+
template
32+
<
33+
typename DomainGeometry,
34+
typename Point = typename geometry::point_type<DomainGeometry>::type
35+
>
36+
inline uniform_point_distribution<DomainGeometry, Point>
37+
return_uniform_point_distribution(DomainGeometry const& domain)
38+
{
39+
return uniform_point_distribution<DomainGeometry, Point>(domain);
2640
}
2741

2842
}}} // namespace boost::geometry::random
@@ -37,7 +51,7 @@ template
3751
inline std::basic_ostream<Char, Traits>& operator<<
3852
(
3953
std::basic_ostream<Char, Traits> &os,
40-
boost::geometry::random::dispatch::uniform_point_distribution
54+
boost::geometry::random::uniform_point_distribution
4155
<
4256
DomainGeometry, Point
4357
> const& dist
@@ -57,7 +71,7 @@ template
5771
inline std::basic_istream<Char, Traits>& operator>>
5872
(
5973
std::basic_istream<Char, Traits> &is,
60-
boost::geometry::random::dispatch::uniform_point_distribution
74+
boost::geometry::random::uniform_point_distribution
6175
<
6276
DomainGeometry, Point
6377
> & dist
@@ -67,7 +81,7 @@ inline std::basic_istream<Char, Traits>& operator>>
6781
std::getline(is, line);
6882
DomainGeometry g;
6983
namespace bg = boost::geometry;
70-
typedef typename bg::random::dispatch::uniform_point_distribution
84+
typedef typename bg::random::uniform_point_distribution
7185
<
7286
DomainGeometry, Point
7387
>::param_type param_type;

0 commit comments

Comments
 (0)