[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2764] trunk/py/scripts/addons/ io_scene_x3d/export_x3d.py: fix [#29262] X3D exporter does not export ok for obj_type != 'MESH'
Campbell Barton
ideasman42 at gmail.com
Sun Dec 11 17:26:47 CET 2011
Revision: 2764
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2764
Author: campbellbarton
Date: 2011-12-11 16:26:36 +0000 (Sun, 11 Dec 2011)
Log Message:
-----------
fix [#29262] X3D exporter does not export ok for obj_type != 'MESH'
this is a patch submission but fix in a different way
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
Modified: trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2011-12-11 00:36:39 UTC (rev 2763)
+++ trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2011-12-11 16:26:36 UTC (rev 2764)
@@ -266,6 +266,9 @@
# store files to copy
copy_set = set()
+ # store names of newly cerated meshes, so we dont overlap
+ mesh_name_set = set()
+
fw = file.write
base_src = os.path.dirname(bpy.data.filepath)
base_dst = os.path.dirname(file.name)
@@ -1377,14 +1380,30 @@
me = obj.to_mesh(scene, use_apply_modifiers, 'PREVIEW')
except:
me = None
+ do_remove = True
else:
me = obj.data
+ do_remove = False
if me is not None:
+ # ensure unique name, we could also do this by
+ # postponing mesh removal, but clearing data - TODO
+ if do_remove:
+ me.name = obj.name.rstrip("1234567890").rstrip(".")
+ me_name_new = me_name_org = me.name
+ count = 0
+ while me_name_new in mesh_name_set:
+ me.name = "%.17s.%03d" % (me_name_org, count)
+ me_name_new = me.name
+ count += 1
+ mesh_name_set.add(me_name_new)
+ del me_name_new, me_name_org, count
+ # done
+
writeIndexedFaceSet(ident, obj, me, obj_matrix, world)
# free mesh created with create_mesh()
- if me != obj.data:
+ if do_remove:
bpy.data.meshes.remove(me)
elif obj_type == 'LAMP':
@@ -1466,7 +1485,7 @@
bpy.data.materials.remove(gpu_shader_dummy_mat)
# copy all collected files.
- print(copy_set)
+ # print(copy_set)
bpy_extras.io_utils.path_reference_copy(copy_set)
print('Info: finished X3D export to %r' % file.name)
More information about the Bf-extensions-cvs
mailing list