Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Conty Estevez <conty@yafray.org>2004-06-28 00:10:20 +0400
committerAlejandro Conty Estevez <conty@yafray.org>2004-06-28 00:10:20 +0400
commit7febd4547dc3f10aa3d5ff9219a3971bae8256a8 (patch)
treed059b00d3592f370804ebd10fae6f51918535f46 /source/blender/yafray
parentb8f73db964790e49fe98b5c9646bd392956b3516 (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.cpp10
-rw-r--r--source/blender/yafray/intern/yafexternal.cpp115
-rw-r--r--source/blender/yafray/intern/yafexternal.h17
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;
};