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:
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;
}
}