up investigation
by fiddleuser04
HTML
<script src="https://threejs.org/build/three.js"></script>
JavaScript
function matrix2String(m) {
if (m instanceof THREE.Vector3) {
const a = m.toArray();
return ` ${a[0]}\n ${a[1]}\n ${a[2]}`;
} else {
throw 'unknown type';
}
}
window.onload = function() {
let mesh = new THREE.Mesh(); //use defaults
//initial values
console.log(`mesh.up:\n${matrix2String(mesh.up)}`);
console.log(`mesh.localToWorld(mesh.up):\n${matrix2String(mesh.localToWorld(mesh.up))}`);
//first rotation
mesh.rotateX(Math.PI / 2);
mesh.updateMatrix();
mesh.updateMatrixWorld();
console.log(`mesh.up:\n${matrix2String(mesh.up)}`);
console.log(`mesh.localToWorld(mesh.up):\n${matrix2String(mesh.localToWorld(mesh.up))}`);
//second rotation
mesh.rotateX(Math.PI / 2);
mesh.updateMatrix();
mesh.updateMatrixWorld();
console.log(`mesh.up:\n${matrix2String(mesh.up)}`);
console.log(`mesh.localToWorld(mesh.up):\n${matrix2String(mesh.localToWorld(mesh.up))}`);
}