is the three.js OrbitControls from official repo examples
To install with npm do
npm install three
npm install three-orbitcontrolsAll credit goes to OrbitControls.js contributors. See also official OrbitControls documentation.
I have just stolen the code and modified to export it as a module so you can do something like
const THREE = require('three')
const OrbitControls = require('three-orbitcontrols')
// ES6 also works, i.e.
// import OrbitControls from 'three-orbitcontrols'
// Init THREE scene (add your code)
const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000)
camera.position.z = 5
const renderer = new THREE.WebGLRenderer({ canvas })
const controls = new OrbitControls(camera, renderer.domElement)
controls.enableDamping = true
controls.dampingFactor = 0.25
controls.enableZoom = falsePlease note that:
- You call
OrbitControlsdirectly instead ofTHREE.OrbitControls. - This package does not depend directly on three.js, which is declared as a peer dependency.
See also examples/ folder.
There is another package similar to this one: three-orbit-controls. I decided to create another package with a different approach, see this issue for the rationale.
I am using this package for my 3d tic tac toe online game.
To update OrbitControls.js code follow instructions below.
First of all target latest three.js release number, for instance do
THREEJS_RELEASE=96which will set the download URL to something like
wget https://raw.githubusercontent.com/mrdoob/three.js/r96/examples/js/controls/OrbitControls.jsNow you can launch
rm OrbitControls.js* # clean up previous files
wget https://raw.githubusercontent.com/mrdoob/three.js/r${THREEJS_RELEASE}/examples/js/controls/OrbitControls.js -O OrbitControls.js.new
echo "/* three-orbitcontrols addendum */ var THREE = require('three');" > OrbitControls.js
cat OrbitControls.js.new >> OrbitControls.js
echo "/* three-orbitcontrols addendum */ module.exports = exports.default = THREE.OrbitControls;" >> OrbitControls.js
rm OrbitControls.js.new # clean up downloaded fileNote that minor version in this package is in sync with three.js minor version, i.e. release number.
Also update peerDependencies attribute in package.json with latest three.js version.