/*****************************************************************************/ /* */ /* F I S T : Fast, Industrial-Strength Triangulation */ /* */ /*****************************************************************************/ /* */ /* (C) Martin Held */ /* (C) Universitaet Salzburg, Salzburg, Austria */ /* */ /* This code is not in the public domain. All rights reserved! Please make */ /* sure to read the full copyright statement contained in api_functions.cpp. */ /* */ /*****************************************************************************/ /* */ /* get standard libraries */ /* */ #include #include #include #include /* */ /* get my header files */ /* */ #include "fpkernel.h" #include "martin.h" #include "defs.h" #include "list.h" #include "header.h" #include "basic.h" #include "data.h" /* */ /* function prototypes of functions provided in this file */ /* */ void Fake3D(global_struct *all); void Fake3D(global_struct *all) { listdef *list = &all->c_list; datadef *data = &all->c_data; list_ind ind, ind1; int i1, i, j; double scale, x, y, z; x = all->bb_max.x - all->bb_min.x; y = all->bb_max.y - all->bb_min.y; scale = Max(x, y) / C_20_0; InitVertices(&all->c_vertex, data->num_pnts); for (i = 0; i < list->num_loops; ++i) { ind = list->loops[i]; ind1 = ind; i1 = GetIndex(list,ind1); UniformRandom(z); #ifdef EXT_APPL_SITES j = StoreVertex(&all->c_vertex, data->points[i1].x, data->points[i1].y, z * scale, GetExtApplPnt(data,i1)); #else j = StoreVertex(&all->c_vertex,data->points[i1].x, data->points[i1].y, z * scale); #endif SetOriginal(list, ind1, j); ind1 = GetNextNode(list,ind1); i1 = GetIndex(list,ind1); while (ind1 != ind) { UniformRandom(z); #ifdef EXT_APPL_SITES j = StoreVertex(&all->c_vertex, data->points[i1].x, data->points[i1].y, z * scale, GetExtApplPnt(data, i1)); #else j = StoreVertex(&all->c_vertex, data->points[i1].x, data->points[i1].y, z * scale); #endif SetOriginal(list, ind1, j); ind1 = GetNextNode(list,ind1); i1 = GetIndex(list,ind1); } } return; }