Inheritance: EventDispatcher → Controls →
This class can be used to provide a drag'n'drop interaction.
const controls = new DragControls( objects, camera, renderer.domElement );
// add event listener to highlight dragged objects
controls.addEventListener( 'dragstart', function ( event ) {
event.object.material.emissive.set( 0xaaaaaa );
} );
controls.addEventListener( 'dragend', function ( event ) {
event.object.material.emissive.set( 0x000000 );
} );
DragControls is an addon, and must be imported explicitly, see Installation#Addons.
import { DragControls } from 'three/addons/controls/DragControls.js';
Constructs a new controls instance.
objects
An array of draggable 3D objects.
camera
The camera of the rendered scene.
domElement
The HTML DOM element used for event listeners.
Default is null.
An array of draggable 3D objects.
The raycaster used for detecting 3D objects.
Whether children of draggable objects can be dragged independently from their parent.
Default is true.
The speed at which the object will rotate when dragged in rotate mode. The higher the number the faster the rotation.
Default is 1.
This option only works if the objects array contains a single draggable group object. If set to true, the controls does not transform individual objects but the entire group.
Default is false.
Fires when the user drags a 3D object.
Fires when the user has finished dragging a 3D object.
Fires when the pointer is moved out of a 3D object.
Fires when the pointer is moved onto a 3D object, or onto one of its children.