Index: source/blender/collada/CameraExporter.cpp =================================================================== --- source/blender/collada/CameraExporter.cpp (revision 59507) +++ source/blender/collada/CameraExporter.cpp (working copy) @@ -63,7 +63,7 @@ } void CamerasExporter::operator()(Object *ob, Scene *sce) { - // TODO: shiftx, shifty, YF_dofdist + // Done :TODO: shiftx, shifty, YF_dofdist Camera *cam = (Camera *)ob->data; std::string cam_id(get_camera_id(ob)); std::string cam_name(id_name(cam)); @@ -78,7 +78,9 @@ persp.setZFar(cam->clipend, false, "zfar"); persp.setZNear(cam->clipsta, false, "znear"); COLLADASW::Camera ccam(mSW, &persp, cam_id, cam_name); + exportBlenderProfile(ccam, cam); addCamera(ccam); + break; } case CAM_ORTHO: @@ -90,8 +92,17 @@ ortho.setZFar(cam->clipend, false, "zfar"); ortho.setZNear(cam->clipsta, false, "znear"); COLLADASW::Camera ccam(mSW, &ortho, cam_id, cam_name); + exportBlenderProfile(ccam, cam); addCamera(ccam); break; } } } +bool CamerasExporter::exportBlenderProfile(COLLADASW::Camera &cm,Camera *cam) +{ + cm.addExtraTechniqueParameter("blender","shiftx",cam->shiftx); + cm.addExtraTechniqueParameter("blender","shifty",cam->shifty); + cm.addExtraTechniqueParameter("blender","YF_dofdist",cam->YF_dofdist); + return true; + +} Index: source/blender/collada/CameraExporter.h =================================================================== --- source/blender/collada/CameraExporter.h (revision 59507) +++ source/blender/collada/CameraExporter.h (working copy) @@ -37,6 +37,7 @@ } #include "ExportSettings.h" +#include "DNA_camera_types.h" class CamerasExporter: COLLADASW::LibraryCameras { @@ -45,6 +46,7 @@ void exportCameras(Scene *sce); void operator()(Object *ob, Scene *sce); private: + bool exportBlenderProfile(COLLADASW::Camera &cla,Camera *cam); const ExportSettings *export_settings; }; Index: source/blender/collada/DocumentImporter.cpp =================================================================== --- source/blender/collada/DocumentImporter.cpp (revision 59507) +++ source/blender/collada/DocumentImporter.cpp (working copy) @@ -933,6 +933,7 @@ Camera *cam = NULL; std::string cam_id, cam_name; + ExtraTags *et=getExtraTags(camera->getUniqueId()); cam_id = camera->getOriginalId(); cam_name = camera->getName(); if (cam_name.size()) cam = (Camera *)BKE_camera_add(G.main, (char *)cam_name.c_str()); @@ -942,6 +943,12 @@ fprintf(stderr, "Cannot create camera.\n"); return true; } + + if(et && et->isProfile("blender")) { + et->setData("shiftx",&(cam->shiftx)); + et->setData("shifty",&(cam->shifty)); + et->setData("YF_dofdist",&(cam->YF_dofdist)); + } cam->clipsta = camera->getNearClippingPlane().getValue(); cam->clipend = camera->getFarClippingPlane().getValue();