Revert "Limit feature expansion from multiplier density to 2x"

This reverts commit a26e41309d.
This commit is contained in:
Erica Fischer
2024-10-10 13:19:54 -07:00
parent 80f7cb1c0e
commit 44a683d808
2 changed files with 5 additions and 7 deletions
+1 -2
View File
@@ -94,11 +94,10 @@ struct serial_feature {
#define FEATURE_DROPPED -1 #define FEATURE_DROPPED -1
#define FEATURE_KEPT 0 #define FEATURE_KEPT 0
#define FEATURE_ADDED_FOR_MULTIPLIER_DENSITY INT_MAX #define FEATURE_NO_REALLY_KEEP_IT_AROUND INT_MAX
// <0: dropped // <0: dropped
// 0: kept // 0: kept
// >0: sequence number of additional feature kept by retain-points-multiplier // >0: sequence number of additional feature kept by retain-points-multiplier
// INT_MAX: additional feature kept by preserve-multiplier-density-threshold
int dropped = FEATURE_DROPPED; // was this feature dropped by rate? int dropped = FEATURE_DROPPED; // was this feature dropped by rate?
// unsigned long long drop_by; // dot-dropping priority // unsigned long long drop_by; // dot-dropping priority
+4 -5
View File
@@ -1237,10 +1237,9 @@ static serial_feature next_feature(decompressor *geoms, std::atomic<long long> *
} else if (z + extra_multiplier_zooms >= feature_minzoom && count->second + 1 < retain_points_multiplier) { } else if (z + extra_multiplier_zooms >= feature_minzoom && count->second + 1 < retain_points_multiplier) {
count->second++; count->second++;
sf.dropped = count->second; sf.dropped = count->second;
} else if (preserve_multiplier_density_threshold > 0 && count->second + 1 < 2 * retain_points_multiplier && } else if (preserve_multiplier_density_threshold > 0 &&
sf.gap > ((1LL << (32 - z)) / preserve_multiplier_density_threshold) * ((1LL << (32 - z)) / preserve_multiplier_density_threshold)) { sf.gap > ((1LL << (32 - z)) / preserve_multiplier_density_threshold) * ((1LL << (32 - z)) / preserve_multiplier_density_threshold)) {
count->second++; sf.dropped = FEATURE_NO_REALLY_KEEP_IT_AROUND;
sf.dropped = FEATURE_ADDED_FOR_MULTIPLIER_DENSITY;
} else { } else {
sf.dropped = FEATURE_DROPPED; sf.dropped = FEATURE_DROPPED;
} }
@@ -1902,7 +1901,7 @@ long long write_tile(decompressor *geoms, std::atomic<long long> *geompos_in, ch
} else { } else {
can_stop_early = false; can_stop_early = false;
if (sf.dropped != FEATURE_DROPPED && sf.dropped != FEATURE_ADDED_FOR_MULTIPLIER_DENSITY) { if (sf.dropped != FEATURE_DROPPED && sf.dropped != FEATURE_NO_REALLY_KEEP_IT_AROUND) {
// Does the current multiplier cluster already have too many features? // Does the current multiplier cluster already have too many features?
// (Because we are dropping dynamically, and we have already filled the // (Because we are dropping dynamically, and we have already filled the
// cluster with features that were dynamically dropped from being // cluster with features that were dynamically dropped from being
@@ -2153,7 +2152,7 @@ long long write_tile(decompressor *geoms, std::atomic<long long> *geompos_in, ch
if (sf.dropped == FEATURE_KEPT) { if (sf.dropped == FEATURE_KEPT) {
layer.multiplier_cluster_size = 1; layer.multiplier_cluster_size = 1;
lead_features_count++; lead_features_count++;
} else if (sf.dropped == FEATURE_ADDED_FOR_MULTIPLIER_DENSITY) { } else if (sf.dropped == FEATURE_NO_REALLY_KEEP_IT_AROUND) {
other_multiplier_cluster_features_count++; other_multiplier_cluster_features_count++;
} else { } else {
layer.multiplier_cluster_size++; layer.multiplier_cluster_size++;