Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-12-11 20:26:36 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-11 20:26:36 +0400
commitf1b4acba3fc8b56bf3232cd5c05b8266a6af899e (patch)
treecd210f84e14a1aa383ce72ee012480714c4e1ede /io_scene_x3d/export_x3d.py
parent502b3ba6e1650b00ef38145382f4a8451cca98ca (diff)
fix [#29262] X3D exporter does not export ok for obj_type != 'MESH'
this is a patch submission but fix in a different way
Diffstat (limited to 'io_scene_x3d/export_x3d.py')
-rw-r--r--io_scene_x3d/export_x3d.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/io_scene_x3d/export_x3d.py b/io_scene_x3d/export_x3d.py
index 6cc1fb2b..7ef39af3 100644
--- a/io_scene_x3d/export_x3d.py
+++ b/io_scene_x3d/export_x3d.py
@@ -266,6 +266,9 @@ def export(file,
# 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 @@ def export(file,
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 @@ def export(file,
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)