normalizedZoom() == zoom level of the visual appearance
This commit is contained in:
@@ -37,6 +37,7 @@ public:
|
||||
// Getters
|
||||
void matrixFor(mat4& matrix, const Tile::ID& id) const;
|
||||
float getZoom() const;
|
||||
float getNormalizedZoom() const;
|
||||
int32_t getIntegerZoom() const;
|
||||
double getScale() const;
|
||||
double getAngle() const;
|
||||
|
||||
@@ -46,7 +46,7 @@ void Map::loadSettings() {
|
||||
transform.setAngle(settings.angle);
|
||||
transform.setScale(settings.scale);
|
||||
transform.setLonLat(settings.longitude, settings.latitude);
|
||||
style.cascade(transform.getZoom());
|
||||
style.cascade(transform.getNormalizedZoom());
|
||||
update();
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ void Map::stopPanning() {
|
||||
|
||||
void Map::scaleBy(double ds, double cx, double cy, double duration) {
|
||||
transform.scaleBy(ds, cx, cy, duration);
|
||||
style.cascade(transform.getZoom());
|
||||
style.cascade(transform.getNormalizedZoom());
|
||||
update();
|
||||
|
||||
transform.getLonLat(settings.longitude, settings.latitude);
|
||||
@@ -137,7 +137,7 @@ void Map::getLonLat(double& lon, double& lat) const {
|
||||
|
||||
void Map::setLonLatZoom(double lon, double lat, double zoom, double duration) {
|
||||
transform.setLonLatZoom(lon, lat, zoom, duration);
|
||||
style.cascade(transform.getZoom());
|
||||
style.cascade(transform.getNormalizedZoom());
|
||||
update();
|
||||
|
||||
transform.getLonLat(settings.longitude, settings.latitude);
|
||||
@@ -151,7 +151,7 @@ void Map::getLonLatZoom(double& lon, double& lat, double& zoom) const {
|
||||
|
||||
void Map::setScale(double scale, double cx, double cy, double duration) {
|
||||
transform.setScale(scale, cx, cy, duration);
|
||||
style.cascade(transform.getZoom());
|
||||
style.cascade(transform.getNormalizedZoom());
|
||||
update();
|
||||
|
||||
transform.getLonLat(settings.longitude, settings.latitude);
|
||||
@@ -161,7 +161,7 @@ void Map::setScale(double scale, double cx, double cy, double duration) {
|
||||
|
||||
void Map::setZoom(double zoom, double duration) {
|
||||
transform.setZoom(zoom, duration);
|
||||
style.cascade(transform.getZoom());
|
||||
style.cascade(transform.getNormalizedZoom());
|
||||
update();
|
||||
|
||||
transform.getLonLat(settings.longitude, settings.latitude);
|
||||
@@ -215,7 +215,7 @@ void Map::resetPosition() {
|
||||
transform.setAngle(0);
|
||||
transform.setLonLat(0, 0);
|
||||
transform.setZoom(0);
|
||||
style.cascade(transform.getZoom());
|
||||
style.cascade(transform.getNormalizedZoom());
|
||||
update();
|
||||
|
||||
transform.getLonLat(settings.longitude, settings.latitude);
|
||||
|
||||
@@ -256,6 +256,10 @@ float Transform::getZoom() const {
|
||||
return log(scale) / M_LN2;
|
||||
}
|
||||
|
||||
float Transform::getNormalizedZoom() const {
|
||||
return log(scale * util::tileSize / 256.0f) / M_LN2;
|
||||
}
|
||||
|
||||
int32_t Transform::getIntegerZoom() const {
|
||||
return floor(log(scale) / M_LN2);
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ void Painter::render(const Tile& tile) {
|
||||
return;
|
||||
}
|
||||
|
||||
frameHistory.record(transform.getZoom());
|
||||
frameHistory.record(transform.getNormalizedZoom());
|
||||
|
||||
matrix = tile.matrix;
|
||||
glStencilFunc(GL_EQUAL, tile.clip_id, 0xFF);
|
||||
@@ -534,7 +534,7 @@ void Painter::renderText(TextBucket& bucket, const std::string& layer_name, cons
|
||||
|
||||
textShader->setAngle((int32_t)(angle + 256) % 256);
|
||||
textShader->setFlip(bucket.geom_desc.path == TextPathType::Curve ? 1 : 0);
|
||||
textShader->setZoom((transform.getZoom() - zoomAdjust) * 10); // current zoom level
|
||||
textShader->setZoom((transform.getNormalizedZoom() - zoomAdjust) * 10); // current zoom level
|
||||
|
||||
// Label fading
|
||||
const float duration = 300.0f;
|
||||
|
||||
Reference in New Issue
Block a user