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-01-20 10:52:45 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-01-20 10:52:45 +0300
commitb99cd4de335fd7ca349cd6a38848d31d28442db3 (patch)
tree6a786419aefb5cab4700d473bc18bb5503b1de24 /io_scene_x3d
parent251e10b5cbeeb1c0c91a02e4faa78d2a7d91dae6 (diff)
fix for exception exporting empty curves. added use_selected option for the operator.
Diffstat (limited to 'io_scene_x3d')
-rw-r--r--io_scene_x3d/__init__.py1
-rw-r--r--io_scene_x3d/export_x3d.py32
2 files changed, 23 insertions, 10 deletions
diff --git a/io_scene_x3d/__init__.py b/io_scene_x3d/__init__.py
index 67d35ce9..987895ad 100644
--- a/io_scene_x3d/__init__.py
+++ b/io_scene_x3d/__init__.py
@@ -63,6 +63,7 @@ class ExportX3D(bpy.types.Operator, ExportHelper):
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)
diff --git a/io_scene_x3d/export_x3d.py b/io_scene_x3d/export_x3d.py
index 03b5ec26..5b4c8805 100644
--- a/io_scene_x3d/export_x3d.py
+++ b/io_scene_x3d/export_x3d.py
@@ -680,7 +680,8 @@ class x3d_class:
##########################################################
def export(self, scene, world, alltextures,
- EXPORT_APPLY_MODIFIERS=False,
+ use_apply_modifiers=False,
+ use_selection=True,
EXPORT_TRI=False,
):
@@ -697,7 +698,12 @@ class x3d_class:
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)
@@ -712,16 +718,20 @@ class x3d_class:
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 @@ class x3d_class:
self.file.write("\n</Scene>\n</X3D>")
- # if EXPORT_APPLY_MODIFIERS:
+ # if use_apply_modifiers:
# if containerMesh:
# containerMesh.vertices = None
@@ -827,6 +837,7 @@ class x3d_class:
def save(operator, context, filepath="",
+ use_selection=True,
use_apply_modifiers=False,
use_triangulate=False,
use_compress=False):
@@ -852,7 +863,8 @@ def save(operator, context, filepath="",
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,
)