Multiple firing of moveStart/moveEnd events when getting camera heading, pitch, roll

1. A concise explanation of the problem you’re experiencing.

Getting the heading, pitch, roll of the camera periodically can cause additional moveStart/moveEnd events to fire.

2. A minimal code example. If you’ve found a bug, this helps us reproduce and repair it.
Sandcastle:

https://sandcastle.cesium.com/#c=nVRNb9pAEP0rIy4xUrLYBn9ACGpFOVRKmypJc/JlsYew6nqX7q5JaJT/3vEHhKTtIfXB8s7Me/PmzcKWG9gKfEADF6DwAeZoRVWyuybmneTNca6V40KhOemfZ2pLmJyXaDhhWjBrz5TM1GAAcy2rcllZKHWBBGhrbI4KWR0iXNDVlnqLN44bB7hF5TLVMrFDnPGiWNSpS2EdERhvVancCa28PjxlCgByrayWyKS+906+XN0t4Ob24/VtI/a53zTat1qo4i+NKPpfbRZfPzVN3ibPuudYAdnyTUsJ3DkjlpVDC3oFbo17L0mW2YFFYioyZdF9Vg7NlkuPFFzMOhGvDWdr5IVQ960GaN/U6bvKdVnSNOA0CJUb5BabZiuDPytU+Y6EwMNa5Gt4WQEnd/YucYOAj5iT0oIdiF933wiXr8//kTQ0bT3+KQS+7+9NWDyWfCMRNtqK2l0SRUJyXlm0L0oOuyL5BjfISYTcwUoYZIfNreTuVnudLQVaJxSvKSf7SzwnJvriashWRpfXZBVX1jvzmT+Kg9AfJeOhn/hBEqWnLcs7HmIJgihNw8gPgjQdhXESv58lTJIojlgYJaNwOIzHYb/j0EbQ+rp5nl54u4VPIGZhOgzSiCYIknGUHjdv9jKBs4BFiZ+M4yGJG4/ScXxcVO9nAn4beO7uae+0N7VuJ3HWxj+IcqPpZlRGeowNHJYbScuwg2WV/0DHcmtr2HSwB00LsQVRXGS9N38dWQ9yya2lzKqS8kb8wqw3mw6o/hVM6mbAK/o1SL6rS9bB7LINMsamAzr+iXJayyU3R4y/AQ

4. The Cesium version you’re using, your operating system and browser.

Cesium 1.62,****Linux, Chrome/Firefox

I have same problem in cesiumjs 1.99 .0 when sceneMode is SceneMode.COLUMBUS_VIEW
BY modify cesium\Source\Scene\Camera.js at 960 line can solve this problem

heading: {
get: function () {
if (this._mode !== SceneMode.MORPHING) {
const ellipsoid = this._projection.ellipsoid;

	//=============mymodify ==================
	var backposition = Cartesian3.clone(this.position);
	
	var backdirection = Cartesian3.clone(this.direction);
	var back_direction = Cartesian3.clone(this._direction);
	var back_directionWC = Cartesian3.clone(this._directionWC);

	var backup = Cartesian3.clone(this.up);
	var back_up = Cartesian3.clone(this._up);
	var back_upWC = Cartesian3.clone(this._upWC);

	var backright = Cartesian3.clone(this.right);
	var back_right = Cartesian3.clone(this._right);
	var back_rightWC = Cartesian3.clone(this._rightWC);
	//=============mymodify ==================
	
    const oldTransform = Matrix4.clone(this._transform, scratchHPRMatrix1);
    const transform = Transforms.eastNorthUpToFixedFrame(
      this.positionWC,
      ellipsoid,
      scratchHPRMatrix2
    );
    this._setTransform(transform);

    const heading = getHeading(this.direction, this.up);

    this._setTransform(oldTransform);
	
	//=============mymodify ==================
	Cartesian3.clone(backposition,this.position);
	
	Cartesian3.clone(backdirection,this.direction);
	Cartesian3.clone(back_direction,this._direction);
	Cartesian3.clone(back_directionWC,this._directionWC);
	
	Cartesian3.clone(backup,this.up);
	Cartesian3.clone(back_up,this._up);
	Cartesian3.clone(back_upWC,this._upWC);
	
	Cartesian3.clone(backright,this.right);
	Cartesian3.clone(back_right,this._right);
	Cartesian3.clone(back_rightWC,this._rightWC);
	//=============mymodify ==================

    return heading;
  }

  return undefined;
},

},