From dd42e32aed1bbcb0eb3d0631e8a9603320071b98 Mon Sep 17 00:00:00 2001 From: valerio <valerio@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Tue, 13 Apr 2010 09:23:54 +0000 Subject: [PATCH] More fix to make it compile with double precision git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1978 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/geom/src/vec4.cc | 6 ++++-- modules/gfx/src/impl/calc_ambient.cc | 16 ++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/geom/src/vec4.cc b/modules/geom/src/vec4.cc index 6052187f2..8f53869a9 100644 --- a/modules/geom/src/vec4.cc +++ b/modules/geom/src/vec4.cc @@ -54,11 +54,13 @@ Vec4::Vec4(const Real d[4]) this->set(d[0],d[1],d[2],d[3]); } -/*Vec4::Vec4(const float d[4]) +#if OST_DOUBLE_PRECISION +Vec4::Vec4(const float d[4]) { this->set(d[0],d[1],d[2],d[3]); } -*/ +#endif + Vec4& Vec4::operator=(const Vec4& v) { if(&v!=this) { diff --git a/modules/gfx/src/impl/calc_ambient.cc b/modules/gfx/src/impl/calc_ambient.cc index c1e2cea98..2de067829 100644 --- a/modules/gfx/src/impl/calc_ambient.cc +++ b/modules/gfx/src/impl/calc_ambient.cc @@ -219,7 +219,7 @@ namespace { // largest opening angle from reference entry to corners float a0 = std::min(geom::Dot(dir0,dir1),std::min(geom::Dot(dir0,dir2),geom::Dot(dir0,dir3))); - if(eit->type==4) a0=std::min(a0,geom::Dot(dir0,dir4)); + if(eit->type==4) a0=std::min(a0,static_cast<float>(geom::Dot(dir0,dir4))); for(std::vector<RayEntry>::iterator rit=rays_.begin();rit!=rays_.end();++rit) { /* this _should_ be <0.0, and it should @@ -276,14 +276,14 @@ namespace { //std::cerr << " " << hit_count << " / " << rays_.size() << std::endl; if(lit->type==3) { - entry_accum[tlist[lit->id+0]]+=geom::Vec4(ratio,ratio,ratio,1.0); - entry_accum[tlist[lit->id+1]]+=geom::Vec4(ratio,ratio,ratio,1.0); - entry_accum[tlist[lit->id+2]]+=geom::Vec4(ratio,ratio,ratio,1.0); + entry_accum[tlist[lit->id+0]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); + entry_accum[tlist[lit->id+1]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); + entry_accum[tlist[lit->id+2]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); } else if(lit->type==4) { - entry_accum[qlist[lit->id+0]]+=geom::Vec4(ratio,ratio,ratio,1.0); - entry_accum[qlist[lit->id+1]]+=geom::Vec4(ratio,ratio,ratio,1.0); - entry_accum[qlist[lit->id+2]]+=geom::Vec4(ratio,ratio,ratio,1.0); - entry_accum[qlist[lit->id+3]]+=geom::Vec4(ratio,ratio,ratio,1.0); + entry_accum[qlist[lit->id+0]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); + entry_accum[qlist[lit->id+1]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); + entry_accum[qlist[lit->id+2]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); + entry_accum[qlist[lit->id+3]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0)); } } } -- GitLab