CesiumGS / CesiumGS/cesium

Using Camera.lookAt followed by camera.setView breaks mouse controls

Open
#7,094 2 comments 1 reaction 0 assignees View on GitHub
category - camera type - bug
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

It looks like by doing the following, the camera.position will be set to (0, 0, 0) and then trying to adjust the camera using the mouse will cause a failure:
```JavaScript
viewer.camera.lookAt(Cesium.Cartesian3.fromDegrees(15, 0, 100), new Cesium.HeadingPitchRange(0, 0, 100));
viewer.camera.setView({destination: Cesium.Cartesian3.fromDegrees(15, 0, 100)});

// then try to adjust the camera using the mouse
```

Using sandcastle it gives this error:
```
DeveloperError: normalized result is not a number
DeveloperError@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:540:19
Cartesian3.normalize@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:8139:19
rotateVertical@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:188049:17
Camera.prototype.rotateUp@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:188040:9
rotate3D@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:233530:13
spin3D@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:233409:13
reactToInput@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:232513:21
update3D@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:234040:9
ScreenSpaceCameraController.prototype.update@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:234075:13
Scene.prototype.initializeFrame@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:239589:9
CesiumWidget.prototype.render@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:250532:13
render@https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:249915:25
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure in Sandcastle with the reported camera.lookAt, camera.setView, and mouse-control sequence. Start from the stack entries for Camera.prototype.rotateUp, rotateVertical, and Cartesian3.normalize; done means the same sequence leaves mouse controls usable without the “normalized result is not a number” error.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.