diff options
author | Alejandro Conty Estevez <conty@yafray.org> | 2004-06-28 00:10:20 +0400 |
---|---|---|
committer | Alejandro Conty Estevez <conty@yafray.org> | 2004-06-28 00:10:20 +0400 |
commit | 7febd4547dc3f10aa3d5ff9219a3971bae8256a8 (patch) | |
tree | d059b00d3592f370804ebd10fae6f51918535f46 /source/blender/yafray | |
parent | b8f73db964790e49fe98b5c9646bd392956b3516 (diff) |
Finally, fixed the evil dll problem. It works now
on my win32 box with my tests without crashing.
But be aware! There may be more of them watching
us, waiting for a moment of distraction, nobody
is safe.
Diffstat (limited to 'source/blender/yafray')
-rw-r--r-- | source/blender/yafray/intern/export_Plugin.cpp | 10 | ||||
-rw-r--r-- | source/blender/yafray/intern/yafexternal.cpp | 115 | ||||
-rw-r--r-- | source/blender/yafray/intern/yafexternal.h | 17 |
3 files changed, 135 insertions, 7 deletions
diff --git a/source/blender/yafray/intern/export_Plugin.cpp b/source/blender/yafray/intern/export_Plugin.cpp index 2c6b21abaf1..02f7203e483 100644 --- a/source/blender/yafray/intern/export_Plugin.cpp +++ b/source/blender/yafray/intern/export_Plugin.cpp @@ -207,12 +207,12 @@ bool yafrayPluginRender_t::writeRender() { yafray::paramMap_t params; params["camera_name"]=yafray::parameter_t("MAINCAM"); - params["raydepth"]=yafray::parameter_t(R.r.YF_raydepth); + params["raydepth"]=yafray::parameter_t((float)R.r.YF_raydepth); params["gamma"]=yafray::parameter_t(R.r.YF_gamma); params["exposure"]=yafray::parameter_t(R.r.YF_exposure); if(R.r.YF_AA) { - params["AA_passes"]=yafray::parameter_t(R.r.YF_AApasses); + params["AA_passes"]=yafray::parameter_t((int)R.r.YF_AApasses); params["AA_minsamples"]=yafray::parameter_t(R.r.YF_AAsamples); } else @@ -235,7 +235,7 @@ bool yafrayPluginRender_t::writeRender() } if (hasworld) params["background_name"]=yafray::parameter_t("world_background"); params["AA_pixelwidth"]=yafray::parameter_t(1.5); - params["AA_threshold"]=yafray::parameter_t(0.05); + params["AA_threshold"]=yafray::parameter_t(0.05f); params["bias"]=yafray::parameter_t(R.r.YF_raybias); //params["outfile"]=yafray::parameter_t(imgout); blenderYafrayOutput_t output; @@ -532,7 +532,9 @@ void yafrayPluginRender_t::writeMaterialsAndModulators() params["type"]=yafray::parameter_t("blendershader"); params["name"]=yafray::parameter_t(blendmat->first); float diff=matr->alpha; + params["color"]=yafray::parameter_t(yafray::color_t(matr->r*diff,matr->g*diff,matr->b*diff)); + params["specular_color"]=yafray::parameter_t(yafray::color_t(matr->specr, matr->specg, matr->specb)); @@ -896,7 +898,7 @@ void yafrayPluginRender_t::writeObject(Object* obj, const vector<VlakRen*> &VLR_ caus=true; } bool has_orco=(VLR_list[0]->v1->orco!=NULL); - float sm_angle=0.1; + float sm_angle=0.1f; if (obj->type==OB_MESH) { Mesh* mesh = (Mesh*)obj->data; diff --git a/source/blender/yafray/intern/yafexternal.cpp b/source/blender/yafray/intern/yafexternal.cpp index 72c6e3221fa..97d43cbaf5a 100644 --- a/source/blender/yafray/intern/yafexternal.cpp +++ b/source/blender/yafray/intern/yafexternal.cpp @@ -27,6 +27,121 @@ parameter_t::~parameter_t() { } +paramMap_t::paramMap_t() +{ +} + +paramMap_t::~paramMap_t() +{ +} + +bool paramMap_t::getParam(const std::string &name,const std::string *&s) +{ + if(includes(name,TYPE_STRING)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + s=&(i->second.getStr()); + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,bool &b) +{ + std::string str; + if(includes(name,TYPE_STRING)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + str=i->second.getStr(); + if(str=="on") b=true; + else if(str=="off") b=false; + else return false; + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,float &f) +{ + if(includes(name,TYPE_FLOAT)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + f=i->second.getFnum(); + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,double &f) +{ + if(includes(name,TYPE_FLOAT)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + f=i->second.getFnum(); + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,int &in) +{ + if(includes(name,TYPE_FLOAT)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + in=(int)(i->second.getFnum()); + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,point3d_t &p) +{ + if(includes(name,TYPE_POINT)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + p=i->second.getP(); + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,color_t &c) +{ + if(includes(name,TYPE_COLOR)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + c=i->second.getC(); + } + else return false; + return true; +} + +bool paramMap_t::getParam(const std::string &name,colorA_t &c) +{ + if(includes(name,TYPE_COLOR)) + { + std::map<std::string,parameter_t>::iterator i=dicc.find(name); + c=i->second.getAC(); + } + else return false; + return true; +} + +bool paramMap_t::includes(const std::string &label,int type)const +{ + std::map<std::string,parameter_t>::const_iterator i=dicc.find(label); + if(i==dicc.end()) return false; + if((*i).second.type!=type) return false; + return true; +} + +void paramMap_t::checkUnused(const std::string &env)const +{ + for(std::map<std::string,parameter_t>::const_iterator i=dicc.begin();i!=dicc.end();++i) + if(!( (*i).second.used )) + std::cout<<"[WARNING]:Unused param "<<(*i).first<<" in "<<env<<"\n"; +} + parameter_t & paramMap_t::operator [] (const std::string &key) { return dicc[key]; diff --git a/source/blender/yafray/intern/yafexternal.h b/source/blender/yafray/intern/yafexternal.h index e92ae1c08d8..7353748a1ad 100644 --- a/source/blender/yafray/intern/yafexternal.h +++ b/source/blender/yafray/intern/yafexternal.h @@ -82,9 +82,20 @@ class parameter_t class paramMap_t { public: - parameter_t & operator [] (const std::string &key); - void clear(); - ~paramMap_t() {}; + paramMap_t(); + virtual bool getParam(const std::string &name,const std::string *&s); + virtual bool getParam(const std::string &name,bool &b); + virtual bool getParam(const std::string &name,float &f); + virtual bool getParam(const std::string &name,double &f); + virtual bool getParam(const std::string &name,int &i); + virtual bool getParam(const std::string &name,point3d_t &p); + virtual bool getParam(const std::string &name,color_t &c); + virtual bool getParam(const std::string &name,colorA_t &c); + virtual bool includes(const std::string &label,int type)const; + virtual void checkUnused(const std::string &env)const; + virtual parameter_t & operator [] (const std::string &key); + virtual void clear(); + virtual ~paramMap_t(); protected: std::map<std::string,parameter_t> dicc; }; |