# Create object

A three.js mesh object is created:

```
var geometry = new THREE.BufferGeometry();
var standardMaterial = new THREE.MeshStandardMaterial( {/* inputs */ } );
var mesh = new THREE.Mesh( geometry, standardMaterial );
// Then mesh is added as an object to 3D scene.
```

# Set transformation matrix

I intend to set the transformation matrix of the object:

```
object = ... // Is already created and passed around.
const pkm = ... // Containing 16 numbers, equivalent of a 4x4 matrix.
var matrix = new THREE.Matrix4();
matrix.set(
pkm.X00, pkm.X01, pkm.X02, pkm.X03,
pkm.X10, pkm.X11, pkm.X12, pkm.X13,
pkm.X20, pkm.X21, pkm.X22, pkm.X23,
pkm.X30, pkm.X31, pkm.X32, pkm.X33,
);
object.applyMatrix4( matrix );
object.updateMatrixWorld( true );
```

# Problem

The problem is that the above approach of setting transformation matrix just multiplies the *new* matrix into the *previous* matrix of the object. But we want the *previous* matrix to be completely replaced by the *new* matrix.

What is the best practice - most robust way - to replace the *previous* matrix of a three.js object/mesh with a completely *new* one?