From 90b64737f12f749b93e6a609b1b3680938ef6b85 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 27 Jul 2011 19:08:18 +0000 Subject: [PATCH] Material Diffuse Color animation COLLADA import. --- source/blender/collada/AnimationExporter.cpp | 2 +- source/blender/collada/AnimationImporter.cpp | 7 +++++++ source/blender/collada/AnimationImporter.h | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index a4ff987d9ea..4c07b8c8b03 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -112,7 +112,7 @@ void AnimationExporter::exportAnimations(Scene *sce) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) - ||(!strcmp(transformName, "diffuse"))) + ||(!strcmp(transformName, "diffuse_color"))) dae_animation(ob ,fcu, transformName, true, ma ); fcu = fcu->next; } diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 3e56b3fb57e..dad10d91117 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -934,6 +934,12 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); Assign_color_animations( listid, AnimCurves , "specular_color" ); } + + if((animType->material & MATERIAL_DIFF_COLOR) != 0){ + const COLLADAFW::ColorOrTexture *cot = &(efc->getDiffuse()); + const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); + Assign_color_animations( listid, AnimCurves , "diffuse_color" ); + } } } } @@ -1002,6 +1008,7 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD COLLADAFW::EffectCommon *efc = commonEffects[0]; types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); + types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); } } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index a274d0ebb01..642d218dd41 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -109,7 +109,8 @@ private: enum matAnim { MATERIAL_SHININESS = 2, - MATERIAL_SPEC_COLOR = 4 + MATERIAL_SPEC_COLOR = 4, + MATERIAL_DIFF_COLOR = 1 << 3 }; enum AnimationType