I found this utility class a while back when I was trying to do the same thing. I don't remember who posted it originally, but if I find the original post I will update this thread.
package
{
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.objects.DisplayObject3D;
public class BoundingBox
{
public var maxX :Number = 0;
public var minX :Number = 0;
public var maxY :Number = 0;
public var minY :Number = 0;
public var maxZ :Number = 0;
public var minZ :Number = 0;
public var sizeX :Number = 0;
public var sizeY :Number = 0;
public var sizeZ :Number = 0;
public function BoundingBox( object:DisplayObject3D )
{
parseMesh( object );
sizeX = maxX - minX;
sizeY = maxY - minY;
sizeZ = maxZ - minZ;
}
private function parseMesh(object:DisplayObject3D):void
{
if (object.children)
for each(var child:DisplayObject3D in object.children)
parseMesh(child);
if ( !object.geometry)
return;
for each(var vertex:Vertex3D in object.geometry.vertices)
{
maxX = Math.max(maxX, vertex.x);
minX = Math.min(minX, vertex.x);
maxY = Math.max(maxY, vertex.y);
minY = Math.min(minY, vertex.y);
maxZ = Math.max(maxZ, vertex.z);
minZ = Math.min(minZ, vertex.z);
}
}
}
}
_______________________________________________
Papervision3D mailing list
Papervision3D@...
http://osflash.org/mailman/listinfo/papervision3d_osflash.org