mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-06 02:15:41 +02:00
Remove duplicated code
This commit is contained in:
@@ -240,27 +240,27 @@ static int metacmp(const std::vector<long long> &keys1, const std::vector<long l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double get_interestingness(const struct coalesce *c1) {
|
double get_interestingness(const serial_feature *sf) {
|
||||||
return 0; // XXX
|
return 0; // XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
static mvt_value find_attribute_value(const struct coalesce *c1, std::string key) {
|
static mvt_value find_attribute_value(const serial_feature *sf, std::string key) {
|
||||||
if (key == ORDER_BY_SIZE) {
|
if (key == ORDER_BY_SIZE) {
|
||||||
mvt_value v;
|
mvt_value v;
|
||||||
v.type = mvt_double;
|
v.type = mvt_double;
|
||||||
v.numeric_value.double_value = c1->sf.extent;
|
v.numeric_value.double_value = sf->extent;
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
if (key == ORDER_BY_INTERESTINGNESS) {
|
if (key == ORDER_BY_INTERESTINGNESS) {
|
||||||
mvt_value v;
|
mvt_value v;
|
||||||
v.type = mvt_double;
|
v.type = mvt_double;
|
||||||
v.numeric_value.double_value = get_interestingness(c1);
|
v.numeric_value.double_value = get_interestingness(sf);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::vector<long long> &keys1 = c1->sf.keys;
|
const std::vector<long long> &keys1 = sf->keys;
|
||||||
const std::vector<long long> &values1 = c1->sf.values;
|
const std::vector<long long> &values1 = sf->values;
|
||||||
const char *stringpool1 = c1->sf.stringpool;
|
const char *stringpool1 = sf->stringpool;
|
||||||
|
|
||||||
for (size_t i = 0; i < keys1.size(); i++) {
|
for (size_t i = 0; i < keys1.size(); i++) {
|
||||||
mvt_value key1 = retrieve_string(keys1[i], stringpool1, NULL);
|
mvt_value key1 = retrieve_string(keys1[i], stringpool1, NULL);
|
||||||
@@ -269,9 +269,9 @@ static mvt_value find_attribute_value(const struct coalesce *c1, std::string key
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < c1->sf.full_keys.size(); i++) {
|
for (size_t i = 0; i < sf->full_keys.size(); i++) {
|
||||||
if (c1->sf.full_keys[i] == key) {
|
if (sf->full_keys[i] == key) {
|
||||||
return stringified_to_mvt_value(c1->sf.full_values[i].type, c1->sf.full_values[i].s.c_str());
|
return stringified_to_mvt_value(sf->full_values[i].type, sf->full_values[i].s.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,8 +302,8 @@ static mvt_value coerce_double(mvt_value v) {
|
|||||||
struct ordercmp {
|
struct ordercmp {
|
||||||
bool operator()(const struct coalesce &a, const struct coalesce &b) {
|
bool operator()(const struct coalesce &a, const struct coalesce &b) {
|
||||||
for (size_t i = 0; i < order_by.size(); i++) {
|
for (size_t i = 0; i < order_by.size(); i++) {
|
||||||
mvt_value v1 = coerce_double(find_attribute_value(&a, order_by[i].name));
|
mvt_value v1 = coerce_double(find_attribute_value(&a.sf, order_by[i].name));
|
||||||
mvt_value v2 = coerce_double(find_attribute_value(&b, order_by[i].name));
|
mvt_value v2 = coerce_double(find_attribute_value(&b.sf, order_by[i].name));
|
||||||
|
|
||||||
if (order_by[i].descending) {
|
if (order_by[i].descending) {
|
||||||
if (v2 < v1) {
|
if (v2 < v1) {
|
||||||
@@ -494,94 +494,10 @@ struct partial_arg {
|
|||||||
drawvec *shared_nodes;
|
drawvec *shared_nodes;
|
||||||
};
|
};
|
||||||
|
|
||||||
double get_interestingness(const serial_feature *c1) {
|
|
||||||
return 0; // XXX
|
|
||||||
}
|
|
||||||
|
|
||||||
double get_interestingness(const partial *c1) {
|
|
||||||
return 0; // XXX
|
|
||||||
}
|
|
||||||
|
|
||||||
// THIS IS RIDICULOUS to have three almost-identical representations for features. FIX FIX FIX
|
|
||||||
|
|
||||||
static mvt_value find_attribute_value(const serial_feature *c1, std::string key) {
|
|
||||||
if (key == ORDER_BY_SIZE) {
|
|
||||||
mvt_value v;
|
|
||||||
v.type = mvt_double;
|
|
||||||
v.numeric_value.double_value = c1->extent;
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
if (key == ORDER_BY_INTERESTINGNESS) {
|
|
||||||
mvt_value v;
|
|
||||||
v.type = mvt_double;
|
|
||||||
v.numeric_value.double_value = get_interestingness(c1);
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
const std::vector<long long> &keys1 = c1->keys;
|
|
||||||
const std::vector<long long> &values1 = c1->values;
|
|
||||||
const char *stringpool1 = c1->stringpool;
|
|
||||||
|
|
||||||
for (size_t i = 0; i < keys1.size(); i++) {
|
|
||||||
mvt_value key1 = retrieve_string(keys1[i], stringpool1, NULL);
|
|
||||||
if (key == key1.string_value) {
|
|
||||||
return retrieve_string(values1[i], stringpool1, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < c1->full_keys.size(); i++) {
|
|
||||||
if (c1->full_keys[i] == key) {
|
|
||||||
return stringified_to_mvt_value(c1->full_values[i].type, c1->full_values[i].s.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mvt_value v;
|
|
||||||
v.type = mvt_null;
|
|
||||||
v.numeric_value.null_value = 0;
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static mvt_value find_attribute_value(const partial *c1, std::string key) {
|
|
||||||
if (key == ORDER_BY_SIZE) {
|
|
||||||
mvt_value v;
|
|
||||||
v.type = mvt_double;
|
|
||||||
v.numeric_value.double_value = c1->sf.extent;
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
if (key == ORDER_BY_INTERESTINGNESS) {
|
|
||||||
mvt_value v;
|
|
||||||
v.type = mvt_double;
|
|
||||||
v.numeric_value.double_value = get_interestingness(c1);
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
const std::vector<long long> &keys1 = c1->sf.keys;
|
|
||||||
const std::vector<long long> &values1 = c1->sf.values;
|
|
||||||
const char *stringpool1 = c1->sf.stringpool;
|
|
||||||
|
|
||||||
for (size_t i = 0; i < keys1.size(); i++) {
|
|
||||||
mvt_value key1 = retrieve_string(keys1[i], stringpool1, NULL);
|
|
||||||
if (key == key1.string_value) {
|
|
||||||
return retrieve_string(values1[i], stringpool1, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < c1->sf.full_keys.size(); i++) {
|
|
||||||
if (c1->sf.full_keys[i] == key) {
|
|
||||||
return stringified_to_mvt_value(c1->sf.full_values[i].type, c1->sf.full_values[i].s.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mvt_value v;
|
|
||||||
v.type = mvt_null;
|
|
||||||
v.numeric_value.null_value = 0;
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool order_partials(const serial_feature &a, const partial &b) {
|
static bool order_partials(const serial_feature &a, const partial &b) {
|
||||||
for (size_t i = 0; i < order_by.size(); i++) {
|
for (size_t i = 0; i < order_by.size(); i++) {
|
||||||
mvt_value v1 = coerce_double(find_attribute_value(&a, order_by[i].name));
|
mvt_value v1 = coerce_double(find_attribute_value(&a, order_by[i].name));
|
||||||
mvt_value v2 = coerce_double(find_attribute_value(&b, order_by[i].name));
|
mvt_value v2 = coerce_double(find_attribute_value(&b.sf, order_by[i].name));
|
||||||
|
|
||||||
if (order_by[i].descending) {
|
if (order_by[i].descending) {
|
||||||
if (v2 < v1) {
|
if (v2 < v1) {
|
||||||
|
|||||||
Reference in New Issue
Block a user