Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find object dimensions in three.js

Short question. How does one find the dimensions of a mesh in three.js?

I have Collada (.dae) files which I would like to know the size of in units (x,y,z). I have seen comments about using geometry.computeBoundingBox(), but I am still not exactly sure how to use it.

Also I am aware of using scale but my ultimate goal is to compare objects in the scene with realistic measurements (mm) so it helps to know the exact physical dimensions of an object so that I may change it if necessary.

Appreciate any words of wisdom :^)

like image 286
Jonathan Drummond Avatar asked Jan 02 '18 14:01

Jonathan Drummond


1 Answers

Using a bounding box sounds like a good idea. You can try something like this

    boundingBox = new THREE.Box3().setFromObject(your_object)
    size = boundingBox.getSize() // Returns Vector3

Docs:

  • Box3: https://threejs.org/docs/#api/math/Box3
  • Vector3: https://threejs.org/docs/#api/math/Vector3

Comment update: Now that I have the object dimensions X,Y,Z, how can I change the value of let's say 'X' and have the object scale to it?

scaleFactor = otherSize.x / mySize.x 
myObject.scale(scaleFactor, scaleFactor, scaleFactor)
like image 77
jparimaa Avatar answered Nov 16 '22 15:11

jparimaa