forked from bartvdbraak/blender
Apply patch [#36601].
Submitted by Saurabh Wankhade (sauraedron). This patch adds camera shift and dof export and import in a Blender profile.
This commit is contained in:
parent
6fce374637
commit
76aa5dfb70
@ -63,7 +63,6 @@ void CamerasExporter::exportCameras(Scene *sce)
|
||||
}
|
||||
void CamerasExporter::operator()(Object *ob, Scene *sce)
|
||||
{
|
||||
// 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 +77,9 @@ void CamerasExporter::operator()(Object *ob, Scene *sce)
|
||||
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 +91,17 @@ void CamerasExporter::operator()(Object *ob, Scene *sce)
|
||||
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;
|
||||
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ extern "C" {
|
||||
}
|
||||
|
||||
#include "ExportSettings.h"
|
||||
#include "DNA_camera_types.h"
|
||||
|
||||
class CamerasExporter: COLLADASW::LibraryCameras
|
||||
{
|
||||
@ -45,6 +46,7 @@ public:
|
||||
void exportCameras(Scene *sce);
|
||||
void operator()(Object *ob, Scene *sce);
|
||||
private:
|
||||
bool exportBlenderProfile(COLLADASW::Camera &cla,Camera *cam);
|
||||
const ExportSettings *export_settings;
|
||||
};
|
||||
|
||||
|
@ -933,6 +933,7 @@ bool DocumentImporter::writeCamera(const COLLADAFW::Camera *camera)
|
||||
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 @@ bool DocumentImporter::writeCamera(const COLLADAFW::Camera *camera)
|
||||
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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user