[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49565] trunk/blender/source/blender/ collada: COLLADA: added initial support for ymag and yfov in importer.

Gaia Clary gaia.clary at machinimatrix.org
Sat Aug 4 23:25:19 CEST 2012


Revision: 49565
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49565
Author:   gaiaclary
Date:     2012-08-04 21:25:19 +0000 (Sat, 04 Aug 2012)
Log Message:
-----------
COLLADA: added initial support for ymag and yfov in importer. fixes issue #32237

Modified Paths:
--------------
    trunk/blender/source/blender/collada/AnimationImporter.cpp
    trunk/blender/source/blender/collada/AnimationImporter.h

Modified: trunk/blender/source/blender/collada/AnimationImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/AnimationImporter.cpp	2012-08-04 21:04:26 UTC (rev 49564)
+++ trunk/blender/source/blender/collada/AnimationImporter.cpp	2012-08-04 21:25:19 UTC (rev 49565)
@@ -934,12 +934,24 @@
 				Assign_float_animations(listid, AnimCurves, "lens");
 			}
 
+			else if ((animType->camera & CAMERA_YFOV) != 0) {
+				const COLLADAFW::AnimatableFloat *yfov =  &(camera->getYFov());
+				const COLLADAFW::UniqueId& listid = yfov->getAnimationList();
+				Assign_float_animations(listid, AnimCurves, "lens");
+			}
+
 			else if ((animType->camera & CAMERA_XMAG) != 0) {
 				const COLLADAFW::AnimatableFloat *xmag =  &(camera->getXMag());
 				const COLLADAFW::UniqueId& listid = xmag->getAnimationList();
 				Assign_float_animations(listid, AnimCurves, "ortho_scale");
 			}
 
+			else if ((animType->camera & CAMERA_YMAG) != 0) {
+				const COLLADAFW::AnimatableFloat *ymag =  &(camera->getYMag());
+				const COLLADAFW::UniqueId& listid = ymag->getAnimationList();
+				Assign_float_animations(listid, AnimCurves, "ortho_scale");
+			}
+
 			if ((animType->camera & CAMERA_ZFAR) != 0) {
 				const COLLADAFW::AnimatableFloat *zfar =  &(camera->getFarClippingPlane());
 				const COLLADAFW::UniqueId& listid = zfar->getAnimationList();
@@ -1166,14 +1178,22 @@
 
 	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::Camera *camera  = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()];
+		const bool is_perspective_type   = camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE;
 
-		if (camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE) {
-			types->camera = setAnimType(&(camera->getXMag()), (types->camera), CAMERA_XFOV);
+		int addition;
+		const COLLADAFW::Animatable *mag;
+		const COLLADAFW::UniqueId listid = camera->getYMag().getAnimationList();
+		if (animlist_map.find(listid) != animlist_map.end()) {
+			mag = &(camera->getYMag());
+			addition = (is_perspective_type) ? CAMERA_YFOV: CAMERA_YMAG;
 		}
 		else {
-			types->camera = setAnimType(&(camera->getXMag()), (types->camera), CAMERA_XMAG);
+			mag = &(camera->getXMag());
+			addition = (is_perspective_type) ? CAMERA_XFOV: CAMERA_XMAG;
 		}
+		types->camera = setAnimType(mag, (types->camera), addition);
+
 		types->camera = setAnimType(&(camera->getFarClippingPlane()), (types->camera), CAMERA_ZFAR);
 		types->camera = setAnimType(&(camera->getNearClippingPlane()), (types->camera), CAMERA_ZNEAR);
 
@@ -1205,10 +1225,14 @@
 
 int AnimationImporter::setAnimType(const COLLADAFW::Animatable *prop, int types, int addition)
 {
-	const COLLADAFW::UniqueId& listid =  prop->getAnimationList();
+	int anim_type;
+	const COLLADAFW::UniqueId& listid       = prop->getAnimationList();
 	if (animlist_map.find(listid) != animlist_map.end())
-		return types | addition;
-	else return types;
+		anim_type =  types | addition;
+	else
+		anim_type = types;
+
+	return anim_type;
 }		
 
 // Is not used anymore.

Modified: trunk/blender/source/blender/collada/AnimationImporter.h
===================================================================
--- trunk/blender/source/blender/collada/AnimationImporter.h	2012-08-04 21:04:26 UTC (rev 49564)
+++ trunk/blender/source/blender/collada/AnimationImporter.h	2012-08-04 21:25:19 UTC (rev 49565)
@@ -102,8 +102,10 @@
 //		INANIMATE = 0,
 		CAMERA_XFOV = 2,
 		CAMERA_XMAG = 4,
-		CAMERA_ZFAR = 8,
-		CAMERA_ZNEAR = 16
+		CAMERA_YFOV = 8,
+		CAMERA_YMAG = 16,
+		CAMERA_ZFAR = 32,
+		CAMERA_ZNEAR = 64
 	};
 
 	enum matAnim




More information about the Bf-blender-cvs mailing list