three.js中将group放在一个mesh中
var box = setFromObject(group);
var width = box.max.x - box.min.x;
var height = box.max.y - box.min.y;
var depth = box.max.z - box.min.z;
var bbox = new THREE.CubeGeometry(width, height, depth);
bboxMesh = new THREE.Mesh(bbox, new THREE.MeshBasicMaterial({color: 0x000000, vertexColors: THREE.VertexColors, wireframeLinewidth: 2, wireframe: true}));
// scene.add(bboxMesh);
bboxMesh.position.x = ((box.min.x + box.max.x) / 2);
bboxMesh.position.y = ((box.min.y + box.max.y) / 2);
bboxMesh.position.z = ((box.min.z + box.max.z) / 2);
setFromObject函数
function setFromObject(object) {
var box = new THREE.Box3();
var v1 = new THREE.Vector3();
object.updateMatrixWorld(true);
box.makeEmpty();
object.traverse(function (node) {
if (node.geometry !== undefined && node.geometry.vertices !== undefined) {
var vertices = node.geometry.vertices;
for (var i = 0, il = vertices.length; i < il; i++) {
v1.copy(vertices[ i ]);
v1.applyMatrix4(node.matrixWorld);
box.expandByPoint(v1);
}
}
});
return box;
};