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 사용 )