6 Tooltip: 'Export to Open Dynamics.'
8 __author__
= "Rodrigo Hernandez"
9 __url__
= ("http://www.ode.org")
13 This script Exports a Blender scene as a series of ODE Convex Geom data stored in a C header file.
19 def WriteMesh(file,ob
):
20 mesh
= ob
.getData(mesh
=1)
22 file.write("unsigned int %s_pointcount = %d;\n" % (ob
.getName(),len(mesh
.verts
)))
24 file.write("unsigned int %s_planecount = %d;\n" % (ob
.getName(),len(mesh
.faces
)))
26 file.write("dReal %s_points[%d]={\n" % (ob
.getName(),(len(mesh
.verts
)*3)))
27 for vert
in mesh
.verts
:
28 if vert
.index
==(len(mesh
.verts
)-1):
29 file.write("%f,%f,%f\n};\n" % (vert
.co
[0],vert
.co
[1],vert
.co
[2]))
31 file.write("%f,%f,%f,\n" % (vert
.co
[0],vert
.co
[1],vert
.co
[2]))
33 file.write("unsigned int %s_polygons[]={\n" % ob
.getName())
34 for face
in mesh
.faces
:
35 file.write("%d," % len(face
.verts
))
36 for vert
in face
.verts
:
37 file.write("%d," % vert
.index
)
38 if face
.index
==(len(mesh
.faces
)-1):
43 file.write("dReal %s_planes[]={\n" % ob
.getName())
44 for face
in mesh
.faces
:
45 # d calculated separatelly for code readability
46 d
= face
.no
[0]*face
.verts
[0].co
[0]+face
.no
[1]*face
.verts
[0].co
[1]+face
.no
[2]*face
.verts
[0].co
[2]
47 file.write("%f,%f,%f,%f,\n" % (face
.no
[0],face
.no
[1],face
.no
[2],d
))
51 sce
= bpy
.data
.scenes
.active
52 in_editmode
= Blender
.Window
.EditMode()
53 if in_editmode
: Blender
.Window
.EditMode(0)
54 file = open("convex.h",mode
='wt')
55 for ob
in sce
.objects
:
56 if ob
.getType()=='Mesh':
60 Blender
.Window
.EditMode(1)
61 print "ODE Export Done"