Hi! I’m allowing users to add their object to the scene within a defined area. I don’t have any control on how user builds their models and how they center it in Blender, but I want to scale it to fit the area I provide them and put the model to the center of the area.
I managed to calculate the scale and resize the model using Box3(). however I still can’t recenter it to the middle of the scene.
Here is an example:
Users model (Not centered in blender)
The area and the users model once loaded as glb file.
As you may see the model has a correct scale however it’s shifted to the top. How can I recenter it?

Here is my code so far
      const objectBox = new THREE.Box3().setFromObject(element);
      const objectWidth = objectBox.max.x - objectBox.min.x;
      const objectHeight = objectBox.max.z - objectBox.min.z;
      const squareBox = new THREE.Box3().setFromObject(square.placeholder);
      const squareWidth = squareBox.max.x - squareBox.min.x;
      const squareHeight = squareBox.max.z - squareBox.min.z;
      
      const newScale = calculateScale({ // this not important - just a function that calculates the scale
        width: objectWidth,
        height: objectHeight,
        currentScale: 10,
      }, { width: squareWidth, height: squareHeight });
      element.scale.set(newScale/2, newScale/2, newScale/2)
P.S here is another example of a model that was perfectly centered in Blender and it appear just right on my area

