[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1452] trunk/py/scripts/addons/ io_scene_x3d: fix for exception exporting empty curves.
Campbell Barton
ideasman42 at gmail.com
Thu Jan 20 08:52:45 CET 2011
Revision: 1452
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1452
Author: campbellbarton
Date: 2011-01-20 07:52:45 +0000 (Thu, 20 Jan 2011)
Log Message:
-----------
fix for exception exporting empty curves. added use_selected option for the operator.
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_x3d/__init__.py
trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
Modified: trunk/py/scripts/addons/io_scene_x3d/__init__.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/__init__.py 2011-01-20 07:51:19 UTC (rev 1451)
+++ trunk/py/scripts/addons/io_scene_x3d/__init__.py 2011-01-20 07:52:45 UTC (rev 1452)
@@ -63,6 +63,7 @@
filename_ext = ".x3d"
filter_glob = StringProperty(default="*.x3d", options={'HIDDEN'})
+ use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default=False)
use_apply_modifiers = BoolProperty(name="Apply Modifiers", description="Use transformed mesh data from each object", default=True)
use_triangulate = BoolProperty(name="Triangulate", description="Triangulate quads.", default=False)
use_compress = BoolProperty(name="Compress", description="GZip the resulting file, requires a full python install", default=False)
Modified: trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2011-01-20 07:51:19 UTC (rev 1451)
+++ trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2011-01-20 07:52:45 UTC (rev 1452)
@@ -680,7 +680,8 @@
##########################################################
def export(self, scene, world, alltextures,
- EXPORT_APPLY_MODIFIERS=False,
+ use_apply_modifiers=False,
+ use_selection=True,
EXPORT_TRI=False,
):
@@ -697,8 +698,13 @@
self.writeFog(world)
self.proto = 0
- for ob_main in [o for o in scene.objects if o.is_visible(scene)]:
+ if use_selection:
+ objects = (o for o in scene.objects if o.is_visible(scene) and o.select)
+ else:
+ objects = (o for o in scene.objects if o.is_visible(scene))
+ for ob_main in objects:
+
free, derived = create_derived_objects(scene, ob_main)
if derived is None:
@@ -712,16 +718,20 @@
if objType == 'CAMERA':
self.writeViewpoint(ob, ob_mat, scene)
elif objType in ('MESH', 'CURVE', 'SURF', 'FONT'):
- if EXPORT_APPLY_MODIFIERS or objType != 'MESH':
- me = ob.create_mesh(scene, EXPORT_APPLY_MODIFIERS, 'PREVIEW')
+ if use_apply_modifiers or objType != 'MESH':
+ try:
+ me = ob.create_mesh(scene, use_apply_modifiers, 'PREVIEW')
+ except:
+ me = None
else:
me = ob.data
- self.writeIndexedFaceSet(ob, me, ob_mat, world, EXPORT_TRI=EXPORT_TRI)
+ if me is not None:
+ self.writeIndexedFaceSet(ob, me, ob_mat, world, EXPORT_TRI=EXPORT_TRI)
- # free mesh created with create_mesh()
- if me != ob.data:
- bpy.data.meshes.remove(me)
+ # free mesh created with create_mesh()
+ if me != ob.data:
+ bpy.data.meshes.remove(me)
elif objType == 'LAMP':
data = ob.data
@@ -743,7 +753,7 @@
self.file.write("\n</Scene>\n</X3D>")
- # if EXPORT_APPLY_MODIFIERS:
+ # if use_apply_modifiers:
# if containerMesh:
# containerMesh.vertices = None
@@ -827,6 +837,7 @@
def save(operator, context, filepath="",
+ use_selection=True,
use_apply_modifiers=False,
use_triangulate=False,
use_compress=False):
@@ -852,7 +863,8 @@
wrlexport.export(scene,
world,
alltextures,
- EXPORT_APPLY_MODIFIERS=use_apply_modifiers,
+ use_apply_modifiers=use_apply_modifiers,
+ use_selection=use_selection,
EXPORT_TRI=use_triangulate,
)
More information about the Bf-extensions-cvs
mailing list