Description of the problem
It’d be nice to configure the default direction of rotation (handedness) in Three.js.
Maybe it can be a static property on Object3D or Matrix4?
For example:
Object3D.HANDEDNESS_X = 'left'
Object3D.HANDEDNESS_Y = 'right'
Object3D.HANDEDNESS_Z = 'left'
or maybe on an instance-per-instance basis? F.e.:
Object3D.handednessX = 'left'
Object3D.handednessY = 'right'
Object3D.handednessZ = 'left'
I think perhaps on an object-per-object would be nicer and more flexible.
Ah, but if it is on an object-per-object basis, then we have access to the matrix, so it would be cleaner for it to be an instance variable on Matrix4
:
Object3D.matrix.handednessX = 'left'
Object3D.matrix.handednessY = 'right'
Object3D.matrix.handednessZ = 'left'
Three.js version
- Dev
Browser
- All of them
OS
- All of them
I think such a feature will make the math classes ~9 times more complicated…
In 7 years we were not able to export from Blender with the right handedness. And that was a case of single handedness to single handedness. In short, handedness is complicated.
Feel free to give it a go, but I suspect the complexity this brings would scare contributors.
See https://www.evl.uic.edu/ralph/508S98/coordinates.html.
There is no way I would support making per-axis handedness configurable.
I recommend closing this issue.