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))}`);
}