diff --git a/src/mol-canvas3d/controls/trackball.ts b/src/mol-canvas3d/controls/trackball.ts index 7955ab4c5976d0c137f2a88c9ed878cf1632a902..63234d324de095b95e09cd11ad07bd13354d4d95 100644 --- a/src/mol-canvas3d/controls/trackball.ts +++ b/src/mol-canvas3d/controls/trackball.ts @@ -209,6 +209,8 @@ namespace TrackballControls { /** Update the object's position, direction and up vectors */ function update() { + if (p.spin) spin(); + Vec3.sub(_eye, object.position, target) rotateCamera() @@ -300,7 +302,6 @@ namespace TrackballControls { function spin() { _spinSpeed[0] = (p.spinSpeed || 0) / 1000; if (!_isInteracting) Vec2.add(_moveCurr, _movePrev, _spinSpeed); - if (p.spin) requestAnimationFrame(spin); } // force an update at start @@ -313,9 +314,7 @@ namespace TrackballControls { get props() { return p as Readonly<TrackballControlsProps> }, setProps: (props: Partial<TrackballControlsProps>) => { - const wasSpinning = p.spin Object.assign(p, props) - if (p.spin && !wasSpinning) requestAnimationFrame(spin) }, update,