[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