AABB Blender Python Script

AABB Generate Script

image

 

Code
#!BPY

"""
Name: 'BBox'
Blender: 249
Group: 'Mesh'
Tooltip: 'Generate BBox'
"""

from Blender import *
obj
=Scene.GetCurrent().objects.active
print obj
m
=obj.getData(mesh=True)
new_m
=Mesh.New()
for i in range(len(m.verts)):
    new_m.verts.extend(m.verts[i].co)

    
new_m.transform(obj.getMatrix())

Lx
=[i.co.x for i in new_m.verts]
Ly
=[i.co.y for i in new_m.verts]
Lz
=[i.co.z for i in new_m.verts]

Lx.sort()
Ly.sort()
Lz.sort()

min
=[Lx[0],Ly[0],Lz[0]]
max
=[Lx[-1],Ly[-1],Lz[-1]]

ex
=max[0]-min[0]
ey
=max[1]-min[1]
ez
=max[2]-min[2]

bbox_v
=[min,[min[0],min[1],min[2]+ez],[min[0]+ex,min[1],min[2]+ez],[min[0]+ex,min[1],min[2]],
        [min[0],min[
1]+ey,min[2]],[min[0],min[1]+ey,min[2]+ez],max,[min[0]+ex,min[1]+ey,min[2]]]

bbox_e
=[[0,1],[1,2],[2,3],[3,0],
        [
4,5],[5,6],[6,7],[7,4],
        [0,
4],[1,5],[2,6],[3,7]]

mesh
=Mesh.New()
mesh.verts.extend(bbox_v)
mesh.edges.extend(bbox_e)

bbox
=Scene.GetCurrent().objects.new(mesh,"BBOX")

 

posted @ 2009-07-10 13:41  euphoria  阅读(329)  评论(0编辑  收藏  举报