I have extended the TransformControls functionality, which allows to add any defined axis. Defining the axis direction has become more convenient using a vector. Moreover, you can create multiple custom transfer axes using the method addCustomTransferAxes(axisDirList: Vector3). you can also add a single axis using addTransferAxis(axisDir: vector3)
interactive demo with code coming soon
Edit: Sorry for the delay. Unfortunately, i didnt got the chance to clean up the code so i thought i would just share what i got.
the most important part of the code is:
let axesDirList = [
new THREE.Vector3(1, 1, 1), // Quadrant I
new THREE.Vector3(-1, 1, 1), // Quadrant II
new THREE.Vector3(-1, -1, 1), // Quadrant III
new THREE.Vector3(1, -1, 1), // Quadrant IV
];
....
transformControl.addTransferAxesList(axesDirList);
Currently, it only allows transfering. But the concept can easily be appkied to rotation and scaling. I have only extended it just enough for a required task, but if i see enough interest here, i might add rotation and scaling
Excellent. Iād love to see the implementation of scaling and rotation, as long as they have the potential to skew geometries like in the following illustration (it shows scaling along a diagonal axis so that a square becomes a rhomboid).