[Bf-blender-cvs] [c48a851c726] collada: Feature Collada: Added new class for exporting Animation Clips.

Gaia Clary noreply at git.blender.org
Wed Mar 28 21:30:33 CEST 2018


Commit: c48a851c726667eb2c64b30b6cdd0c673f5d167f
Author: Gaia Clary
Date:   Mon Mar 5 17:59:14 2018 +0100
Branches: collada
https://developer.blender.org/rBc48a851c726667eb2c64b30b6cdd0c673f5d167f

Feature Collada: Added new class for exporting Animation Clips.

This class is work in progres and not yet used. It is
also not yet largely tested and needs some improvements
regarding which actions will be exported for which objects.

===================================================================

A	source/blender/collada/AnimationClipExporter.cpp
A	source/blender/collada/AnimationClipExporter.h

===================================================================

diff --git a/source/blender/collada/AnimationClipExporter.cpp b/source/blender/collada/AnimationClipExporter.cpp
new file mode 100644
index 00000000000..a2c4b388b7e
--- /dev/null
+++ b/source/blender/collada/AnimationClipExporter.cpp
@@ -0,0 +1,55 @@
+/*
+* ***** BEGIN GPL LICENSE BLOCK *****
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Jan Diederich, Tod Liverseed.
+*
+* ***** END GPL LICENSE BLOCK *****
+*/
+
+#include "GeometryExporter.h"
+#include "AnimationClipExporter.h"
+#include "MaterialExporter.h"
+
+void AnimationClipExporter::exportAnimationClips(Scene *sce)
+{
+	openLibrary();
+	std::map<std::string, COLLADASW::ColladaAnimationClip *> clips;
+
+	std::vector<std::vector<std::string>>::iterator anim_meta_entry;
+	for (anim_meta_entry = anim_meta.begin(); anim_meta_entry != anim_meta.end(); ++anim_meta_entry) {
+		std::vector<std::string> entry = *anim_meta_entry;
+		std::string action_id = entry[0];
+		std::string action_name = entry[1];
+
+		std::map<std::string, COLLADASW::ColladaAnimationClip *>::iterator it = clips.find(action_name);
+		if (it == clips.end())
+		{
+			COLLADASW::ColladaAnimationClip *clip = new COLLADASW::ColladaAnimationClip(action_name);
+			clips[action_name] = clip;
+		}
+		COLLADASW::ColladaAnimationClip *clip = clips[action_name];
+		clip->setInstancedAnimation(action_id);
+	}
+
+	std::map<std::string, COLLADASW::ColladaAnimationClip *>::iterator clips_it;
+	for (clips_it = clips.begin(); clips_it != clips.end(); clips_it++) {
+		COLLADASW::ColladaAnimationClip *clip = (COLLADASW::ColladaAnimationClip *)clips_it->second;
+		addAnimationClip(*clip);
+	}
+
+	closeLibrary();
+}
diff --git a/source/blender/collada/AnimationClipExporter.h b/source/blender/collada/AnimationClipExporter.h
new file mode 100644
index 00000000000..2dbe98ffe31
--- /dev/null
+++ b/source/blender/collada/AnimationClipExporter.h
@@ -0,0 +1,50 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Jan Diederich, Tod Liverseed.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "COLLADASWLibraryAnimationClips.h"
+
+
+class AnimationClipExporter:COLLADASW::LibraryAnimationClips {
+private:
+	EvaluationContext * eval_ctx;
+	Scene *scene;
+	COLLADASW::StreamWriter *sw;
+	const ExportSettings *export_settings;
+	std::vector<std::vector<std::string>> anim_meta;
+
+public:
+
+	AnimationClipExporter(EvaluationContext *eval_ctx, COLLADASW::StreamWriter *sw, const ExportSettings *export_settings, std::vector<std::vector<std::string>> anim_meta) :
+		eval_ctx(eval_ctx),
+		COLLADASW::LibraryAnimationClips(sw),
+		export_settings(export_settings),
+		anim_meta(anim_meta)
+	{
+		this->sw = sw;
+	}
+
+	void exportAnimationClips(Scene *sce);
+};
\ No newline at end of file



More information about the Bf-blender-cvs mailing list