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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaia Clary <gaia.clary@machinimatrix.org>2012-06-13 01:25:29 +0400
committerGaia Clary <gaia.clary@machinimatrix.org>2012-06-13 01:25:29 +0400
commit36ed4818e5944dfb6ae7a71377f3bee4cba5a899 (patch)
tree6d852907a52c0ae5b7907678690db39ee1420b77 /source/blender/collada/collada.cpp
parent5dc0b35a019651e052c7770330aafc7f2d7fb690 (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.cpp28
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;
}
}