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-05-24 18:56:09 +0400
committerGaia Clary <gaia.clary@machinimatrix.org>2012-05-24 18:56:09 +0400
commitda67c969b38d748049ddd118a21fa046241739fe (patch)
treed866705bb0ecde30c6cd2f5f647d15b283e113fd /source/blender/collada
parent09344fb1027a03158cf151ec45891ab339c478fc (diff)
Patch #31570: Implementation of 'Include bone children' Option
Diffstat (limited to 'source/blender/collada')
-rw-r--r--source/blender/collada/ExportSettings.h1
-rw-r--r--source/blender/collada/SceneExporter.cpp37
-rw-r--r--source/blender/collada/collada.cpp17
-rw-r--r--source/blender/collada/collada.h8
4 files changed, 40 insertions, 23 deletions
diff --git a/source/blender/collada/ExportSettings.h b/source/blender/collada/ExportSettings.h
index 41fa7e1ed38..b875282ac33 100644
--- a/source/blender/collada/ExportSettings.h
+++ b/source/blender/collada/ExportSettings.h
@@ -32,6 +32,7 @@ struct ExportSettings
public:
bool selected;
bool apply_modifiers;
+ bool include_bone_children;
bool second_life;
char *filepath;
};
diff --git a/source/blender/collada/SceneExporter.cpp b/source/blender/collada/SceneExporter.cpp
index cd36267fd56..f79ae2b52a9 100644
--- a/source/blender/collada/SceneExporter.cpp
+++ b/source/blender/collada/SceneExporter.cpp
@@ -79,25 +79,28 @@ void SceneExporter::writeNodes(Object *ob, Scene *sce)
bool is_skinned_mesh = arm_exporter->is_skinned_mesh(ob);
std::list<Object*> child_objects;
- // list child objects
- Base *b = (Base*) sce->base.first;
- while (b) {
- // cob - child object
- Object *cob = b->object;
-
- if (cob->parent == ob) {
- switch (cob->type) {
- case OB_MESH:
- case OB_CAMERA:
- case OB_LAMP:
- case OB_EMPTY:
- case OB_ARMATURE:
- child_objects.push_back(cob);
- break;
+
+ if (this->export_settings->include_bone_children) {
+ // list child objects
+ Base *b = (Base*) sce->base.first;
+ while (b) {
+ // cob - child object
+ Object *cob = b->object;
+
+ if (cob->parent == ob) {
+ switch (cob->type) {
+ case OB_MESH:
+ case OB_CAMERA:
+ case OB_LAMP:
+ case OB_EMPTY:
+ case OB_ARMATURE:
+ child_objects.push_back(cob);
+ break;
+ }
}
- }
- b = b->next;
+ b = b->next;
+ }
}
diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp
index ae024ec52a7..c947144412a 100644
--- a/source/blender/collada/collada.cpp
+++ b/source/blender/collada/collada.cpp
@@ -49,14 +49,21 @@ extern "C"
return 0;
}
- int collada_export(Scene *sce, const char *filepath, int selected, int apply_modifiers, int second_life)
+ int collada_export(
+ Scene *sce,
+ const char *filepath,
+ int selected,
+ int apply_modifiers,
+ int include_bone_children,
+ int second_life)
{
ExportSettings export_settings;
- export_settings.selected = selected != 0;
- export_settings.apply_modifiers = apply_modifiers != 0;
- export_settings.second_life = second_life != 0;
- export_settings.filepath = (char *)filepath;
+ export_settings.selected = selected != 0;
+ export_settings.apply_modifiers = apply_modifiers != 0;
+ export_settings.include_bone_children = include_bone_children != 0;
+ export_settings.second_life = second_life != 0;
+ export_settings.filepath = (char *)filepath;
/* annoying, collada crashes if file cant be created! [#27162] */
if (!BLI_exists(filepath)) {
diff --git a/source/blender/collada/collada.h b/source/blender/collada/collada.h
index f335796f799..d5c26bb402c 100644
--- a/source/blender/collada/collada.h
+++ b/source/blender/collada/collada.h
@@ -37,7 +37,13 @@ extern "C" {
* both return 1 on success, 0 on error
*/
int collada_import(bContext *C, const char *filepath);
- int collada_export(Scene *sce, const char *filepath, int selected, int apply_modifiers, int second_life);
+ int collada_export(
+ Scene *sce,
+ const char *filepath,
+ int selected,
+ int apply_modifiers,
+ int include_bone_children,
+ int second_life);
#ifdef __cplusplus
}
#endif