diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index e21a9370935..d35c3649ab5 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -905,7 +905,22 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node , if ( type != 0) break; } - + + 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()]; + + const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); + const COLLADAFW::UniqueId& xfov_listid = xfov ->getAnimationList(); + + if (animlist_map.find(xfov_listid) != animlist_map.end()) + type = type|CAMERA_XFOV; + + + if ( type != 0) break; + + } + return type; } diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index 5a9638d2bb2..22bff6e493d 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -38,11 +38,13 @@ #include "COLLADAFWNode.h" #include "COLLADAFWUniqueId.h" #include "COLLADAFWLight.h" +#include "COLLADAFWCamera.h" #include "DNA_anim_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_lamp_types.h" +#include "DNA_camera_types.h" //#include "ArmatureImporter.h" #include "TransformReader.h" @@ -90,7 +92,8 @@ private: NODE_TRANSFORM = 1, LIGHT_COLOR = 2, LIGHT_FOA = 4, - LIGHT_FOE = 8 + LIGHT_FOE = 8, + CAMERA_XFOV = 16 }; public: diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 2815d8703ed..a5946b4aa88 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -854,6 +854,7 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera ) } this->uid_camera_map[camera->getUniqueId()] = cam; + this->FW_object_map[camera->getUniqueId()] = camera; // XXX import camera options return true; }