-
-
Notifications
You must be signed in to change notification settings - Fork 36.2k
Description
Description of the problem
As an example, Babylon has this feature built in, called pivot points. CSS has it in the form of the transform-origin property.
These features enable rotation about a pivot point with a one-liner.
Here's an implementation idea: https://jsfiddle.net/mmalex/hd8ex0ok/ (thanks @nmalex).
I believe ideally this would be implemented inside Matrix4, and the Matrix4.compose( position, quaternion, scale ) signature would be changed to Matrix4.compose( position, quaternion, scale[, origin] ), with the origin parameter being optional for backwards compatibility.
An origin property would be added to Object3D, so that we can for example write object.origin.set(1,2,3).
updateMatrixWorld would then call this.matrix.compose( this.position, this.quaternion, this.scale, this.origin ).
Just bike shedding, but pivot could also be another name in place of origin, but I like origin better because "pivot" doesn't seem to align with "scale" (I'm thinking that scale would also happen about the origin).
Three.js version
- Dev
- r102
- ...
Browser
- All of them
- Chrome
- Firefox
- Internet Explorer
OS
- All of them
- Windows
- macOS
- Linux
- Android
- iOS
Hardware Requirements (graphics card, VR Device, ...)
N/A