SCENE에 있는 MESH의 크기측정하기

Scene에 있는 Mesh의 크기를 알고 싶으면 THREE.Box3를 사용해야 한다.

일단 크기 x : 10, y : 30, z : 20인 육면체를 생성한 뒤 scene에 더한다.

var geometry = new THREE.BoxGeometry( 10, 30, 20 );
var material = new THREE.MeshLambertMaterial( { color: 0x4eb8fb } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );

THREE.Box3를 생성한 뒤 setFromObject 함수의 매개변수로 육면체 mesh를 넘겨준다.
size함수를 실행하면 { x : 10, y : 30, z : 20 } 의 object를 return 받을 수 있다.

var box = new THREE.Box3().setFromObject( cube );
var size = box.size();
console.log('x:' + size.x +'ny:' + size.y + 'nz:' + size.z);

‘크기 측정하기’ 버튼을 클릭하면 mesh의 크기를 알 수 있다.

예상한 대로라면 x : 10, y : 30, z : 20의 결과가 나와야 하지만 클릭할 때 마다 크기가 다른 것을 알 수 있다.

처음 생성할 때의 mesh의 크기가 아니라 현재의 mesh를 박스를 씌운 다음에 그 박스의 크기를 측정하는 것이라서 구가 아닌 이상은 mesh가 회전할 때 마다 다른 크기가 된다는 것을 알 수 있다.

( Three.js v79 사용 )