Skip to content

Commit dad35f9

Browse files
committed
Merge remote-tracking branch 'origin/feature/refactor-camera' into develop
2 parents 1cd5185 + 1859a8f commit dad35f9

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

worldwind/src/main/java/gov/nasa/worldwind/WorldWindow.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ public class WorldWindow extends GLSurfaceView implements Choreographer.FrameCal
9292

9393
protected final Viewport viewport = new Viewport();
9494

95+
protected boolean keepScale = true;
96+
9597
protected int depthBits;
9698

9799
protected final Pool<Frame> framePool = new SynchronizedPool<>();
@@ -116,7 +118,7 @@ public boolean handleMessage(Message msg) {
116118
} else if (msg.what == MSG_ID_SET_VIEWPORT) {
117119
Viewport newViewport = (Viewport) msg.obj;
118120
// Keep map scale by adopting field of view on view port resize
119-
if (viewport.height != 0) {
121+
if (keepScale && viewport.height != 0) {
120122
try {
121123
camera.setFieldOfView(camera.getFieldOfView() * newViewport.height / viewport.height);
122124
} catch (IllegalArgumentException ignore) {
@@ -315,6 +317,19 @@ public Navigator getNavigator() {
315317
return this.navigator;
316318
}
317319

320+
public boolean isKeepScale() {
321+
return keepScale;
322+
}
323+
324+
/**
325+
* Keep pixel scale when changing the height of viewport by adapting field of view
326+
*
327+
* @param keepScale if true, then field of view will be changed on viewport height change to keep pixel scale
328+
*/
329+
public void setKeepScale(boolean keepScale) {
330+
this.keepScale = keepScale;
331+
}
332+
318333
public void addNavigatorListener(NavigatorListener listener) {
319334
if (listener == null) {
320335
throw new IllegalArgumentException(

0 commit comments

Comments
 (0)