- Export hard edge and face info

- Use Edges field rather then 2 vert faces (worked in some apps but crashed maya)
This commit is contained in:
Campbell Barton 2009-05-06 04:24:01 +00:00
parent 7a0841cbb6
commit de4f811b4b

@ -1,13 +1,13 @@
#!BPY #!BPY
""" """
Name: 'Autodesk FBX (.fbx)...' Name: 'Autodesk FBX (.fbx)...'
Blender: 244 Blender: 249
Group: 'Export' Group: 'Export'
Tooltip: 'Selection to an ASCII Autodesk FBX ' Tooltip: 'Selection to an ASCII Autodesk FBX '
""" """
__author__ = "Campbell Barton" __author__ = "Campbell Barton"
__url__ = ['www.blender.org', 'blenderartists.org'] __url__ = ['www.blender.org', 'blenderartists.org']
__version__ = "1.1" __version__ = "1.2"
__bpydoc__ = """\ __bpydoc__ = """\
This script is an exporter to the FBX file format. This script is an exporter to the FBX file format.
@ -1385,22 +1385,18 @@ def write(filename, batch_objects = None, \
else: file.write(',%i,%i,%i,%i' % fi ) else: file.write(',%i,%i,%i,%i' % fi )
i+=1 i+=1
ed_val = [None, None] file.write('\n\t\tEdges: ')
LOOSE = Blender.Mesh.EdgeFlags.LOOSE i=-1
for ed in me.edges: for ed in me.edges:
if ed.flag & LOOSE:
ed_val[0] = ed.v1.index
ed_val[1] = -(ed.v2.index+1)
if i==-1: if i==-1:
file.write('%i,%i' % tuple(ed_val) ) file.write('%i,%i' % (ed.v1.index, ed.v2.index))
i=0 i=0
else: else:
if i==13: if i==13:
file.write('\n\t\t') file.write('\n\t\t')
i=0 i=0
file.write(',%i,%i' % tuple(ed_val) ) file.write(',%i,%i' % (ed.v1.index, ed.v2.index))
i+=1 i+=1
del LOOSE
file.write('\n\t\tGeometryVersion: 124') file.write('\n\t\tGeometryVersion: 124')
@ -1423,6 +1419,51 @@ def write(filename, batch_objects = None, \
i+=1 i+=1
file.write('\n\t\t}') file.write('\n\t\t}')
# Write Face Smoothing
file.write('''
LayerElementSmoothing: 0 {
Version: 102
Name: ""
MappingInformationType: "ByPolygon"
ReferenceInformationType: "Direct"
Smoothing: ''')
i=-1
for f in me.faces:
if i==-1:
file.write('%i' % f.smooth); i=0
else:
if i==54:
file.write('\n '); i=0
file.write(',%i' % f.smooth)
i+=1
file.write('\n\t\t}')
# Write Edge Smoothing
file.write('''
LayerElementSmoothing: 0 {
Version: 101
Name: ""
MappingInformationType: "ByEdge"
ReferenceInformationType: "Direct"
Smoothing: ''')
SHARP = Blender.Mesh.EdgeFlags.SHARP
i=-1
for ed in me.edges:
if i==-1:
file.write('%i' % ((ed.flag&SHARP)!=0)); i=0
else:
if i==54:
file.write('\n '); i=0
file.write(',%i' % ((ed.flag&SHARP)!=0))
i+=1
file.write('\n\t\t}')
del SHARP
# Write VertexColor Layers # Write VertexColor Layers
# note, no programs seem to use this info :/ # note, no programs seem to use this info :/
collayers = [] collayers = []