/*****************************************************************************/
/*                                                                           */
/*           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. */
/*                                                                           */
/*****************************************************************************/

/*                                                                           */
/* Note: A polygonal area with a total of N vertices and H holes has exactly */
/*    N - 2 + 2 * H                                                          */
/* triangles.                                                                */
/*                                                                           */

#include "martin.h"
#include "defs.h"

// MODIF : includo questo file per rendere api_fist l'unico file da includere per utilizzare fist
#include "header.h"

/* api_functions.cpp: */

boolean FIST_HandlePolyhedron(rt_options *rt_opt);

boolean FIST_HandlePolygon(rt_options *rt_opt);

boolean FIST_2D_PolyArray(int num_contours, int num_vertices[],
                            double (*input_vtx)[2], int *num_triangles,
                            int (*output_tri)[3]);

boolean FIST_3D_FaceArray(int num_contours, int num_vtx[], 
                          double (*input_vtx)[3], int *num_tri, 
                          int (*output_tri)[3]);

void FIST_TerminateProgram(global_struct *all);

void FIST_HandleError(errordef FistErrorCode);

const char* FIST_GetProgName(); 

const char* FIST_GetProgVersion(); 

const char* FIST_GetProgYear();



// funzioni aggiunte per integrazione con le nostre librerie
/* fist_added_functions.cpp : */
void AddLoopInFace( global_struct *all, int nHoles, boolean bFirstLoop, int nPoints) ;
void OptimizeMemoryAllocation( global_struct *all, int nLoops, int nPoints) ;