diff options
author | Nathan Letwory <nathan@letworyinteractive.com> | 2011-03-28 13:31:44 +0400 |
---|---|---|
committer | Nathan Letwory <nathan@letworyinteractive.com> | 2011-03-28 13:31:44 +0400 |
commit | bd9854e7d1dee9b59ccab146c43db542e4873171 (patch) | |
tree | 9a60f633b6311451573da62eb9feeeff865e8d2d /source/blender/collada/DocumentImporter.cpp | |
parent | e5bf21898ea7fdc9d13b4f046fcbcf16064c6df4 (diff) |
Import light blender profile if it exists.
Diffstat (limited to 'source/blender/collada/DocumentImporter.cpp')
-rw-r--r-- | source/blender/collada/DocumentImporter.cpp | 69 |
1 files changed, 65 insertions, 4 deletions
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index b0bbe49a182..ce6f4777e9a 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -103,7 +103,7 @@ DocumentImporter::DocumentImporter(bContext *C, const char *filename) : DocumentImporter::~DocumentImporter() { - std::map<COLLADAFW::UniqueId, ExtraTags*>::iterator etit; + TagsMap::iterator etit; etit = uid_tags_map.begin(); while(etit!=uid_tags_map.end()) { delete etit->second; @@ -867,6 +867,12 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) Lamp *lamp = NULL; std::string la_id, la_name; + TagsMap::iterator etit; + ExtraTags *et = 0; + etit = uid_tags_map.find(light->getUniqueId().toAscii()); + if(etit != uid_tags_map.end()) + et = etit->second; + la_id = light->getOriginalId(); la_name = light->getName(); if (la_name.size()) lamp = (Lamp*)add_lamp((char*)la_name.c_str()); @@ -954,6 +960,61 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) } break; } + + if(et) { + et->setData("type", &(lamp->type)); + et->setData("flag", &(lamp->flag)); + et->setData("mode", &(lamp->mode)); + et->setData("gamma", &(lamp->k)); + et->setData("shadow_r", &(lamp->shdwr)); + et->setData("shadow_g", &(lamp->shdwg)); + et->setData("shadow_b", &(lamp->shdwb)); + et->setData("energy", &(lamp->energy)); + et->setData("dist", &(lamp->dist)); + et->setData("spotsize", &(lamp->spotsize)); + et->setData("spotblend", &(lamp->spotblend)); + et->setData("halo_intensity", &(lamp->haint)); + et->setData("att1", &(lamp->att1)); + et->setData("att2", &(lamp->att2)); + et->setData("falloff_type", &(lamp->falloff_type)); + et->setData("clipsta", &(lamp->clipsta)); + et->setData("clipend", &(lamp->clipend)); + et->setData("shadspotsize", &(lamp->shadspotsize)); + et->setData("bias", &(lamp->bias)); + et->setData("soft", &(lamp->soft)); + et->setData("compressthresh", &(lamp->compressthresh)); + et->setData("bufsize", &(lamp->bufsize)); + et->setData("samp", &(lamp->samp)); + et->setData("buffers", &(lamp->buffers)); + et->setData("filtertype", &(lamp->filtertype)); + et->setData("bufflag", &(lamp->bufflag)); + et->setData("buftype", &(lamp->buftype)); + et->setData("ray_samp", &(lamp->ray_samp)); + et->setData("ray_sampy", &(lamp->ray_sampy)); + et->setData("ray_sampz", &(lamp->ray_sampz)); + et->setData("ray_samp_type", &(lamp->ray_samp_type)); + et->setData("area_shape", &(lamp->area_shape)); + et->setData("area_size", &(lamp->area_size)); + et->setData("area_sizey", &(lamp->area_sizey)); + et->setData("area_sizez", &(lamp->area_sizez)); + et->setData("adapt_thresh", &(lamp->adapt_thresh)); + et->setData("ray_samp_method", &(lamp->ray_samp_method)); + et->setData("shadhalostep", &(lamp->shadhalostep)); + et->setData("sun_effect_type", &(lamp->shadhalostep)); + et->setData("skyblendtype", &(lamp->skyblendtype)); + et->setData("horizon_brightness", &(lamp->horizon_brightness)); + et->setData("spread", &(lamp->spread)); + et->setData("sun_brightness", &(lamp->sun_brightness)); + et->setData("sun_size", &(lamp->sun_size)); + et->setData("backscattered_light", &(lamp->backscattered_light)); + et->setData("sun_intensity", &(lamp->sun_intensity)); + et->setData("atm_turbidity", &(lamp->atm_turbidity)); + et->setData("atm_extinction_factor", &(lamp->atm_extinction_factor)); + et->setData("atm_distance_factor", &(lamp->atm_distance_factor)); + et->setData("skyblendfac", &(lamp->skyblendfac)); + et->setData("sky_exposure", &(lamp->sky_exposure)); + et->setData("sky_colorspace", &(lamp->sky_colorspace)); + } this->uid_lamp_map[light->getUniqueId()] = lamp; return true; @@ -1007,15 +1068,15 @@ bool DocumentImporter::writeKinematicsScene( const COLLADAFW::KinematicsScene* k ExtraTags* DocumentImporter::getExtraTags(const COLLADAFW::UniqueId &uid) { - if(uid_tags_map.find(uid)==uid_tags_map.end()) { + if(uid_tags_map.find(uid.toAscii())==uid_tags_map.end()) { return NULL; } - return uid_tags_map[uid]; + return uid_tags_map[uid.toAscii()]; } bool DocumentImporter::addExtraTags( const COLLADAFW::UniqueId &uid, ExtraTags *extra_tags) { - uid_tags_map[uid] = extra_tags; + uid_tags_map[uid.toAscii()] = extra_tags; return true; } |