# THREEjs: updating an object's matrix doesnt change it's position and rotation params

I want to set a transformation matrix to an object upon creation and then control it by position, rotation and scale, but while changing the matrix does change the object in world space, it's position parameter still remains 0, 0, 0.

let mesh =  new THREE.Mesh(
new THREE.BoxGeometry(),
new THREE.MeshPhongMaterial({color:0xf15728})
)

let pos = new THREE.Vector3().setFromMatrixPosition(m)

mesh.matrixAutoUpdate = false
mesh.matrix.copy(m)

// ***************//
mesh.updateMatrix()
// ***************//

console.log("mesh.position", mesh.position)
console.log("pos", pos)


Here's the output for the values of both pos and mesh.position

I think you need to call setFromMatrixPosition(m) again after updating the matrix. After all, you need to update both the position and matrix, not just the matrix.
mesh.position.setFromMatrixPosition(mesh.matrix) or mesh.position = new THREE.Vector3().setFromMatrixPosition(mesh.matrix) right after mesh.updateMatrix()