diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2012-06-13 01:25:29 +0400 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2012-06-13 01:25:29 +0400 |
commit | 36ed4818e5944dfb6ae7a71377f3bee4cba5a899 (patch) | |
tree | 6d852907a52c0ae5b7907678690db39ee1420b77 /source/blender/collada/collada.cpp | |
parent | 5dc0b35a019651e052c7770330aafc7f2d7fb690 (diff) |
patch #31794 Collada: make exporter more robust, now uses BKE_object_relational_superset()
Diffstat (limited to 'source/blender/collada/collada.cpp')
-rw-r--r-- | source/blender/collada/collada.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp index e880082c9ec..b852190dd4c 100644 --- a/source/blender/collada/collada.cpp +++ b/source/blender/collada/collada.cpp @@ -56,20 +56,12 @@ extern "C" int apply_modifiers, int include_armatures, - int include_bone_children, + int include_children, int use_object_instantiation, int second_life ) { ExportSettings export_settings; - - export_settings.selected = selected != 0; - export_settings.apply_modifiers = apply_modifiers != 0; - export_settings.include_armatures = include_armatures != 0; - export_settings.include_bone_children = include_bone_children != 0; - export_settings.second_life = second_life != 0; - export_settings.use_object_instantiation = use_object_instantiation != 0; - export_settings.filepath = (char *)filepath; /* annoying, collada crashes if file cant be created! [#27162] */ if (!BLI_exists(filepath)) { @@ -80,9 +72,27 @@ extern "C" } /* end! */ + + export_settings.selected = selected != 0; + export_settings.apply_modifiers = apply_modifiers != 0; + export_settings.include_armatures = include_armatures != 0; + export_settings.include_children = include_children != 0; + export_settings.second_life = second_life != 0; + export_settings.use_object_instantiation = use_object_instantiation != 0; + export_settings.filepath = (char *)filepath; + + int includeFilter = OB_REL_NONE; + if (export_settings.include_armatures) includeFilter |= OB_REL_MOD_ARMATURE; + if (export_settings.include_children) includeFilter |= OB_REL_CHILDREN_RECURSIVE; + + eObjectSet objectSet = (export_settings.selected) ? OB_SET_SELECTED : OB_SET_ALL; + export_settings.export_set = BKE_object_relational_superset(sce, objectSet, (eObRelationTypes)includeFilter); + DocumentExporter exporter(&export_settings); exporter.exportCurrentScene(sce); + BLI_linklist_free(export_settings.export_set, NULL); + return 1; } } |