[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55088] trunk/blender/source/blender/ collada: Collada fixed Collada ID name for exported animation curves

Gaia Clary gaia.clary at machinimatrix.org
Thu Mar 7 11:26:05 CET 2013


Revision: 55088
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55088
Author:   gaiaclary
Date:     2013-03-07 10:26:04 +0000 (Thu, 07 Mar 2013)
Log Message:
-----------
Collada fixed Collada ID name for exported animation curves

Modified Paths:
--------------
    trunk/blender/source/blender/collada/AnimationExporter.cpp
    trunk/blender/source/blender/collada/AnimationExporter.h
    trunk/blender/source/blender/collada/collada_internal.cpp
    trunk/blender/source/blender/collada/collada_internal.h

Modified: trunk/blender/source/blender/collada/AnimationExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/AnimationExporter.cpp	2013-03-07 06:46:50 UTC (rev 55087)
+++ trunk/blender/source/blender/collada/AnimationExporter.cpp	2013-03-07 10:26:04 UTC (rev 55088)
@@ -259,6 +259,12 @@
 		return id_name(ob);
 }
 
+std::string AnimationExporter::getAnimationPathId(const FCurve *fcu)
+{
+	std::string rna_path = std::string(fcu->rna_path);
+	return translate_id(rna_path);
+}
+
 //convert f-curves to animation curves and write
 void AnimationExporter::dae_animation(Object *ob, FCurve *fcu, char *transformName, bool is_param, Material *ma)
 {
@@ -305,16 +311,27 @@
 	//Create anim Id
 	if (ob->type == OB_ARMATURE) {
 		ob_name =  getObjectBoneName(ob, fcu);
-		BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s.%s", (char *)translate_id(ob_name).c_str(),
-		             transformName, axis_name);
+		BLI_snprintf(
+				anim_id,
+				sizeof(anim_id),
+				"%s_%s.%s",
+				(char *)translate_id(ob_name).c_str(),
+				(char *)translate_id(transformName).c_str(),
+				axis_name);
 	}
 	else {
 		if (ma)
 			ob_name = id_name(ob) + "_material";
 		else
 			ob_name = id_name(ob);
-		BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s_%s", (char *)translate_id(ob_name).c_str(),
-		             fcu->rna_path, axis_name);
+
+		BLI_snprintf(
+				anim_id,
+				sizeof(anim_id),
+				"%s_%s_%s",
+				(char *)translate_id(ob_name).c_str(),
+				(char *)getAnimationPathId(fcu).c_str(),
+				axis_name);
 	}
 
 	openAnimation(anim_id, COLLADABU::Utils::EMPTY_STRING);

Modified: trunk/blender/source/blender/collada/AnimationExporter.h
===================================================================
--- trunk/blender/source/blender/collada/AnimationExporter.h	2013-03-07 06:46:50 UTC (rev 55087)
+++ trunk/blender/source/blender/collada/AnimationExporter.h	2013-03-07 10:26:04 UTC (rev 55088)
@@ -184,6 +184,7 @@
 	char *extract_transform_name(char *rna_path);
 
 	std::string getObjectBoneName(Object *ob, const FCurve * fcu);
+	std::string getAnimationPathId(const FCurve *fcu);
 
 	void getBakedPoseData(Object *obarm, int startFrame, int endFrame, bool ActionBake, bool ActionBakeFirstFrame);
 

Modified: trunk/blender/source/blender/collada/collada_internal.cpp
===================================================================
--- trunk/blender/source/blender/collada/collada_internal.cpp	2013-03-07 06:46:50 UTC (rev 55087)
+++ trunk/blender/source/blender/collada/collada_internal.cpp	2013-03-07 10:26:04 UTC (rev 55088)
@@ -224,6 +224,12 @@
 }
 
 /** Look at documentation of translate_map */
+std::string translate_id(const char *idString)
+{
+	std::string id = std::string(idString);
+	return translate_id(id);
+}
+
 std::string translate_id(const std::string &id)
 {
 	if (id.size() == 0) {

Modified: trunk/blender/source/blender/collada/collada_internal.h
===================================================================
--- trunk/blender/source/blender/collada/collada_internal.h	2013-03-07 06:46:50 UTC (rev 55087)
+++ trunk/blender/source/blender/collada/collada_internal.h	2013-03-07 10:26:04 UTC (rev 55088)
@@ -92,6 +92,7 @@
 extern void clear_global_id_map();
 /** Look at documentation of translate_map */
 extern std::string translate_id(const std::string &id);
+extern std::string translate_id(const char *idString);
 
 extern std::string id_name(void *id);
 




More information about the Bf-blender-cvs mailing list