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