Hello,
I implemented code to toggle into ICRF camera view per the documentation (Transforms - Cesium Documentation).
However, when I enter into ICRF, I am unable to pan or tilt. When I exit ICRF, pan functionality returns, but tilt functionality seems to be permanently disabled.
Here is my code. Any help would be appreciated. Thank you.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="https://cesium.com/downloads/cesiumjs/releases/1.113/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.113/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
<button type="button" onclick="toggleEcef()">Toggle Reference Frame</button><br>Current Reference Frame:<span
id="mode">ECEF</span><br>
<div id="cesiumContainer" style="height: 600px; width:800px"></div>
</div>
</body>
<script type="application/javascript">
function toggleEcef() {
ecef = !ecef;
let span = document.getElementById("mode");
span.innerHTML = ecef ? "ECEF" : "ICRF";
}
var ecef = true;
function updateCameraInertial(scene, time) {
console.log(ecef);
if (!ecef) {
const icrfToFixed = Cesium.Transforms.computeIcrfToFixedMatrix(time);
if (Cesium.defined(icrfToFixed)) {
const camera = viewer.camera;
const offset = Cesium.Cartesian3.clone(camera.position);
const transform = Cesium.Matrix4.fromRotationTranslation(icrfToFixed);
camera.lookAtTransform(transform, offset);
} else {
console.error("icrToFixed not defined")
}
}
}
Cesium.Ion.defaultAccessToken = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const viewer = new Cesium.Viewer('cesiumContainer', {
terrain: Cesium.Terrain.fromWorldTerrain(),
});
viewer.scene.postUpdate.addEventListener(updateCameraInertial);
</script>
</html>