cbec90699f
- creato il progetto in Visual Studio per compilare come libreria statica - modifiche al codice originale per integrarlo nelle nostre librerie.
87 lines
3.2 KiB
C++
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;
|
|
}
|