So we could implemented Zoom to Cursor for mouse users
DEPRECATED
[three-js] exposes real modules now via three/examples/jsm/... For example to import the Orbit, do
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
is the three.js OrbitControls from official repo examples
To install with npm do
npm install three
npm install three-orbitcontrols
All 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 = false
Please note that:
- You call
OrbitControls
directly instead ofTHREE.OrbitControls
. - This package does not depend directly on three.js, which is declared as a peer dependency.
See also examples:
- CommonJS example: clone this repo, install deps and launch
npm run example_commonjs
. - TypeScript example: clone this repo, install deps and launch
npm run example_typescript
.
See OrbiControls.js history here.
Please also note that this repo's minor version equals three.js release number.
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 canvas: see also online demo.