Camera lens animation Identifying

This commit is contained in:
2011-07-06 18:09:36 +00:00
parent 1e14e2f465
commit 6c88a16b3a
3 changed files with 21 additions and 2 deletions

View File

@@ -906,6 +906,21 @@ int AnimationImporter::get_animation_type ( const COLLADAFW::Node * node ,
}
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;
}

View File

@@ -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:

View File

@@ -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;
}