Files
SaraP cbec90699f FIST 6.8 :
- creato il progetto in Visual Studio per compilare come libreria statica
- modifiche al codice originale per integrarlo nelle nostre librerie.
2025-03-04 16:19:35 +01:00

87 lines
3.2 KiB
C++

/*****************************************************************************/
/* */
/* 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 <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
/* */
/* 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;
}