cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=687df102d67d118b92e43504be48f88fd1e96ea8

commit 687df102d67d118b92e43504be48f88fd1e96ea8
Author: perepelits.m <perepelit...@samsung.com>
Date:   Sat Jan 9 00:32:47 2016 +0100

    evas: fix optimization of vertex count in convex hull
    
    Summary: FLT_COMPARISON should be used everywhere in evas_3d_utils.h
    
    Reviewers: cedric, raster, Hermet
    
    Subscribers: jpeg, artem.popov
    
    Differential Revision: https://phab.enlightenment.org/D3551
    
    Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/evas/include/evas_3d_utils.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/evas/include/evas_3d_utils.h 
b/src/lib/evas/include/evas_3d_utils.h
index cc557c6..9b901b4 100644
--- a/src/lib/evas/include/evas_3d_utils.h
+++ b/src/lib/evas/include/evas_3d_utils.h
@@ -1339,6 +1339,7 @@ convex_hull_vertex_set(Evas_Triangle3 *el, unsigned short 
int *vertex_count, flo
         vect = el->p2;
         break;
      }
+
    (*vertex_count)++;
    *vertex = (float*) realloc(*vertex, (10 * (*vertex_count)) * sizeof(float));
 
@@ -1805,11 +1806,11 @@ evas_convex_hull_get(float *data, int count, int 
stride, Eina_Inarray *vertex,
 
 #define CHECK_AND_SET_VERTEX(coord)                                            
       \
   exist1 = EINA_FALSE;                                                         
       \
-  for (i = 0, new_stride = 0; (i < vertex_count) && !exist1; i++, new_stride 
+= 10)  \
+  for (i = 0, new_stride = 0; (i < vertex_count) && !exist1; i++, new_stride 
+= 10)   \
      {                                                                         
       \
-        if ((k > 0) && (el->p##coord.x == found_vertex[new_stride]) &&         
       \
-            (el->p##coord.y == found_vertex[new_stride + 1]) &&                
       \
-            (el->p##coord.z == found_vertex[new_stride + 2]))                  
       \
+        if ((k > 0) && !FLT_COMPARISON(el->p##coord.x, 
found_vertex[new_stride]) &&   \
+            !FLT_COMPARISON(el->p##coord.y, found_vertex[new_stride + 1]) &&   
       \
+            !FLT_COMPARISON(el->p##coord.z, found_vertex[new_stride + 2]))     
       \
           {                                                                    
       \
              exist1 = EINA_TRUE;                                               
       \
              found_index[3 * k + coord] = i;                                   
       \

-- 


Reply via email to