Material Diffuse Color animation COLLADA import.

This commit is contained in:
Sukhitha Prabhath Jayathilake 2011-07-27 19:08:18 +00:00
parent 4a32691416
commit 90b64737f1
3 changed files with 10 additions and 2 deletions

@ -112,7 +112,7 @@ void AnimationExporter::exportAnimations(Scene *sce)
transformName = extract_transform_name( fcu->rna_path ); transformName = extract_transform_name( fcu->rna_path );
if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color"))
||(!strcmp(transformName, "diffuse"))) ||(!strcmp(transformName, "diffuse_color")))
dae_animation(ob ,fcu, transformName, true, ma ); dae_animation(ob ,fcu, transformName, true, ma );
fcu = fcu->next; fcu = fcu->next;
} }

@ -934,6 +934,12 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node ,
const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList();
Assign_color_animations( listid, AnimCurves , "specular_color" ); 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]; COLLADAFW::EffectCommon *efc = commonEffects[0];
types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS);
types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR);
types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR);
} }
} }

@ -109,7 +109,8 @@ private:
enum matAnim enum matAnim
{ {
MATERIAL_SHININESS = 2, MATERIAL_SHININESS = 2,
MATERIAL_SPEC_COLOR = 4 MATERIAL_SPEC_COLOR = 4,
MATERIAL_DIFF_COLOR = 1 << 3
}; };
enum AnimationType enum AnimationType