From a0d4a95ff7979cbdcfe26392d1f8a6ff83f36990 Mon Sep 17 00:00:00 2001 From: Sukhitha Prabhath Jayathilake Date: Wed, 6 Jul 2011 18:34:01 +0000 Subject: [PATCH] Camera lens animation import. --- source/blender/collada/AnimationExporter.cpp | 2 +- source/blender/collada/AnimationImporter.cpp | 22 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index c100166a682..f480cd2a48e 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -597,7 +597,7 @@ void AnimationExporter::exportAnimations(Scene *sce) //bool is_rotation = !strcmp(fcu->rna_path, "rotation"); bool is_angle = false; - if (strstr(fcu->rna_path, "rotation")||strstr(fcu->rna_path, "lens")) is_angle = true; + if (strstr(fcu->rna_path, "rotation")) is_angle = true; COLLADASW::FloatSourceF source(mSW); source.setId(source_id); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index d35c3649ab5..a70e3cd8abd 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -855,6 +855,28 @@ void AnimationImporter::translate_Animations_NEW ( COLLADAFW::Node * node , } } } + + if ( ((animType & CAMERA_XFOV) != 0) ) + { + Camera * camera = (Camera*) ob->data; + + if (!camera->adt || !camera->adt->action) act = verify_adt_action((ID*)&camera->id, 1); + else act = camera->adt->action; + + ListBase *AnimCurves = &(act->curves); + const COLLADAFW::InstanceCameraPointerArray& nodeCameras= node->getInstanceCameras(); + + for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { + const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; + + if ((animType & CAMERA_XFOV) != 0 ) + { + const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); + const COLLADAFW::UniqueId& listid = xfov->getAnimationList(); + Assign_float_animations( listid ,AnimCurves, "lens"); + } + } + } } //Check if object is animated by checking if animlist_map holds the animlist_id of node transforms