Skip to content

Commit 03a089f

Browse files
committed
Add target_geom_type parameter to geom transformation run() func
Currently the parameter is still unused.
1 parent 506e755 commit 03a089f

4 files changed

Lines changed: 31 additions & 13 deletions

File tree

src/geom-transform.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ bool geom_transform_point_t::is_compatible_with(
1616

1717
geom::osmium_builder_t::wkbs_t
1818
geom_transform_point_t::run(geom::osmium_builder_t *builder,
19+
table_column_type /*target_geom_type*/,
1920
osmium::Node const &node) const
2021
{
2122
assert(builder);
@@ -49,6 +50,7 @@ bool geom_transform_line_t::is_compatible_with(
4950

5051
geom::osmium_builder_t::wkbs_t
5152
geom_transform_line_t::run(geom::osmium_builder_t *builder,
53+
table_column_type /*target_geom_type*/,
5254
osmium::Way *way) const
5355
{
5456
assert(builder);
@@ -59,6 +61,7 @@ geom_transform_line_t::run(geom::osmium_builder_t *builder,
5961

6062
geom::osmium_builder_t::wkbs_t
6163
geom_transform_line_t::run(geom::osmium_builder_t *builder,
64+
table_column_type /*target_geom_type*/,
6265
osmium::Relation const & /*relation*/,
6366
osmium::memory::Buffer const &buffer) const
6467
{
@@ -97,6 +100,7 @@ bool geom_transform_area_t::is_compatible_with(
97100

98101
geom::osmium_builder_t::wkbs_t
99102
geom_transform_area_t::run(geom::osmium_builder_t *builder,
103+
table_column_type /*target_geom_type*/,
100104
osmium::Way *way) const
101105
{
102106
assert(builder);
@@ -118,6 +122,7 @@ geom_transform_area_t::run(geom::osmium_builder_t *builder,
118122

119123
geom::osmium_builder_t::wkbs_t
120124
geom_transform_area_t::run(geom::osmium_builder_t *builder,
125+
table_column_type /*target_geom_type*/,
121126
osmium::Relation const &relation,
122127
osmium::memory::Buffer const &buffer) const
123128
{

src/geom-transform.hpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,22 @@ class geom_transform_t
3232

3333
virtual geom::osmium_builder_t::wkbs_t
3434
run(geom::osmium_builder_t * /*builder*/,
35+
table_column_type /*target_geom_type*/,
3536
osmium::Node const & /*node*/) const
3637
{
3738
return {};
3839
}
3940

4041
virtual geom::osmium_builder_t::wkbs_t
41-
run(geom::osmium_builder_t * /*builder*/, osmium::Way * /*way*/) const
42+
run(geom::osmium_builder_t * /*builder*/,
43+
table_column_type /*target_geom_type*/, osmium::Way * /*way*/) const
4244
{
4345
return {};
4446
}
4547

4648
virtual geom::osmium_builder_t::wkbs_t
4749
run(geom::osmium_builder_t * /*builder*/,
50+
table_column_type /*target_geom_type*/,
4851
osmium::Relation const & /*relation*/,
4952
osmium::memory::Buffer const & /*buffer*/) const
5053
{
@@ -60,6 +63,7 @@ class geom_transform_point_t : public geom_transform_t
6063
noexcept override;
6164

6265
geom::osmium_builder_t::wkbs_t run(geom::osmium_builder_t *builder,
66+
table_column_type target_geom_type,
6367
osmium::Node const &node) const override;
6468

6569
}; // class geom_transform_point_t
@@ -73,10 +77,12 @@ class geom_transform_line_t : public geom_transform_t
7377
noexcept override;
7478

7579
geom::osmium_builder_t::wkbs_t run(geom::osmium_builder_t *builder,
80+
table_column_type target_geom_type,
7681
osmium::Way *way) const override;
7782

7883
geom::osmium_builder_t::wkbs_t
79-
run(geom::osmium_builder_t *builder, osmium::Relation const &relation,
84+
run(geom::osmium_builder_t *builder, table_column_type target_geom_type,
85+
osmium::Relation const &relation,
8086
osmium::memory::Buffer const &buffer) const override;
8187

8288
private:
@@ -93,10 +99,12 @@ class geom_transform_area_t : public geom_transform_t
9399
noexcept override;
94100

95101
geom::osmium_builder_t::wkbs_t run(geom::osmium_builder_t *builder,
102+
table_column_type target_geom_type,
96103
osmium::Way *way) const override;
97104

98105
geom::osmium_builder_t::wkbs_t
99-
run(geom::osmium_builder_t *builder, osmium::Relation const &relation,
106+
run(geom::osmium_builder_t *builder, table_column_type target_geom_type,
107+
osmium::Relation const &relation,
100108
osmium::memory::Buffer const &buffer) const override;
101109

102110
private:

src/output-flex.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -967,25 +967,28 @@ get_default_transform(flex_table_column_t const &column,
967967
geom::osmium_builder_t::wkbs_t
968968
output_flex_t::run_transform(geom::osmium_builder_t *builder,
969969
geom_transform_t const *transform,
970+
table_column_type target_geom_type,
970971
osmium::Node const &node)
971972
{
972-
return transform->run(builder, node);
973+
return transform->run(builder, target_geom_type, node);
973974
}
974975

975976
geom::osmium_builder_t::wkbs_t
976977
output_flex_t::run_transform(geom::osmium_builder_t *builder,
977978
geom_transform_t const *transform,
979+
table_column_type target_geom_type,
978980
osmium::Way const & /*way*/)
979981
{
980982
if (get_way_nodes() <= 1U) {
981983
return {};
982984
}
983-
return transform->run(builder, m_context_way);
985+
return transform->run(builder, target_geom_type, m_context_way);
984986
}
985987

986988
geom::osmium_builder_t::wkbs_t
987989
output_flex_t::run_transform(geom::osmium_builder_t *builder,
988990
geom_transform_t const *transform,
991+
table_column_type target_geom_type,
989992
osmium::Relation const &relation)
990993
{
991994
m_buffer.clear();
@@ -1000,7 +1003,7 @@ output_flex_t::run_transform(geom::osmium_builder_t *builder,
10001003
m_mid->nodes_get_list(&(way.nodes()));
10011004
}
10021005

1003-
return transform->run(builder, relation, m_buffer);
1006+
return transform->run(builder, target_geom_type, relation, m_buffer);
10041007
}
10051008

10061009
template <typename OBJECT>
@@ -1035,7 +1038,8 @@ void output_flex_t::add_row(table_connection_t *table_connection,
10351038
}
10361039

10371040
auto *builder = table_connection->get_builder();
1038-
auto const wkbs = run_transform(builder, transform, object);
1041+
auto const wkbs =
1042+
run_transform(builder, transform, table.geom_column().type(), object);
10391043
for (auto const &wkb : wkbs) {
10401044
m_expire.from_wkb(wkb.c_str(), id);
10411045
write_row(table_connection, object.type(), id, wkb,

src/output-flex.hpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,17 @@ class output_flex_t : public output_t
181181

182182
geom::osmium_builder_t::wkbs_t
183183
run_transform(geom::osmium_builder_t *builder,
184-
geom_transform_t const *transform, osmium::Node const &node);
185-
186-
geom::osmium_builder_t::wkbs_t
187-
run_transform(geom::osmium_builder_t *builder,
188-
geom_transform_t const *transform, osmium::Way const &way);
184+
geom_transform_t const *transform,
185+
table_column_type target_geom_type, osmium::Node const &node);
189186

190187
geom::osmium_builder_t::wkbs_t
191188
run_transform(geom::osmium_builder_t *builder,
192189
geom_transform_t const *transform,
193-
osmium::Relation const &relation);
190+
table_column_type target_geom_type, osmium::Way const &way);
191+
192+
geom::osmium_builder_t::wkbs_t run_transform(
193+
geom::osmium_builder_t *builder, geom_transform_t const *transform,
194+
table_column_type target_geom_type, osmium::Relation const &relation);
194195

195196
template <typename OBJECT>
196197
void add_row(table_connection_t *table_connection, OBJECT const &object);

0 commit comments

Comments
 (0)