For this one by the way: We can reproduce this still but it takes some time and precision ![:slight_smile: :slight_smile:](https://emoji.discourse-cdn.com/twitter/slight_smile.png?v=9)
Anyways, by commenting out the following code fixed everything for us “magically”… I am not really sure what is this code for:
Camera.prototype._adjustOrthographicFrustum = function(zooming) {
if (!(this.frustum instanceof OrthographicFrustum)) {
return;
}
if (!zooming && this._positionCartographic.height < 150000.0) {
return;
}
if (!Matrix4.equals(Matrix4.IDENTITY, this.transform)) {
this.frustum.width = Cartesian3.magnitude(this.position);
return;
}
var scene = this._scene;
var globe = scene._globe;
var rayIntersection;
var depthIntersection;
/*
// !!! This broke orhto mode zoom badly !!!
if (defined(globe)) {
var mousePosition = scratchAdjustOrtghographicFrustumMousePosition;
mousePosition.x = scene.drawingBufferWidth / 2.0;
mousePosition.y = scene.drawingBufferHeight / 2.0;
var ray = this.getPickRay(mousePosition, pickGlobeScratchRay);
rayIntersection = globe.pick(ray, scene, scratchRayIntersection);
if (scene.pickPositionSupported) {
depthIntersection = scene.pickPositionWorldCoordinates(mousePosition, scratchDepthIntersection);
}
if (defined(rayIntersection) && defined(depthIntersection)) {
var depthDistance = defined(depthIntersection) ? Cartesian3.distance(depthIntersection, this.positionWC) : Number.POSITIVE_INFINITY;
var rayDistance = defined(rayIntersection) ? Cartesian3.distance(rayIntersection, this.positionWC) : Number.POSITIVE_INFINITY;
this.frustum.width = Math.min(depthDistance, rayDistance);
} else if (defined(depthIntersection)) {
this.frustum.width = Cartesian3.distance(depthIntersection, this.positionWC);
} else if (defined(rayIntersection)) {
this.frustum.width = Cartesian3.distance(rayIntersection, this.positionWC);
}
}
if (!defined(globe) || (!defined(rayIntersection) && !defined(depthIntersection))) */
{
var distance = Math.max(this.positionCartographic.height, 0.0);
this.frustum.width = distance;
}
};