From 6b781dc660cc683391f5c3f144198f198f238c59 Mon Sep 17 00:00:00 2001 From: nicopietroni Date: Fri, 27 Feb 2009 16:15:28 +0000 Subject: [PATCH] changed evaluation of AreaGlobal in InterpolationParameters function --- vcg/space/triangle2.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vcg/space/triangle2.h b/vcg/space/triangle2.h index eb0581ed..7284217d 100644 --- a/vcg/space/triangle2.h +++ b/vcg/space/triangle2.h @@ -29,6 +29,7 @@ #define __VCG_TRIANGLE2 #include #include +#include #include namespace vcg { @@ -86,11 +87,11 @@ bool InterpolationParameters(const CoordType & bq, ScalarType &a, ScalarType &b, { const ScalarType EPSILON = ScalarType(0.000001); - //ScalarType AreaGlobal=(P(1) - P(0)) ^ (P(2) - P(0)); - ScalarType Area0=(P(2) - P(1)) ^ (bq - P(1)); - ScalarType Area1=(P(0) - P(2)) ^ (bq - P(2)); - ScalarType Area2=(P(1) - P(0)) ^ (bq - P(0)); - ScalarType AreaGlobal=Area0+Area1+Area2; + ScalarType AreaGlobal=(P(1) - P(0)) ^ (P(2) - P(0)); + ScalarType Area0=((P(2) - P(1)) ^ (bq - P(1))); + ScalarType Area1=((P(0) - P(2)) ^ (bq - P(2))); + ScalarType Area2=((P(1) - P(0)) ^ (bq - P(0))); + //ScalarType AreaGlobal=Area0+Area1+Area2; /*if ((Area0>(AreaGlobal+EPSILON))||(Area1>(AreaGlobal+EPSILON))||(Area2>(AreaGlobal+EPSILON))) return false;*/ a=Area0/AreaGlobal;