npm i three-orbit-controls
https://www.npmjs.com/package/three-orbit-controls
import * as THREE from 'three';
var OrbitControls = require('three-orbit-controls')(THREE);
...
var controls = new OrbitControls(camera);
// var controls = new OrbitControls(camera, [renderer.domElement]); // Permet de déterminer le domElement qui écoute les mouse events
controls.target.set( x, y, z );
controls.enableDamping = true;
controls.dampingFactor = .25;
controls.enableZoom = true;
controls.autoRotate = true;
controls.autoRotateSpeed = .5;
controls.minDistance = 2;
controls.maxDistance = 20;
controls.minPolarAngle = Math.PI/2; // 0 = view from above
controls.maxPolarAngle = Math.PI/2; // Math.PI = view from below
controls.update();
La caméra ne doit pas être au même en droit que son centre de rotation, sans quoi elle ne bougera plus.