--- ray/src/common/tmesh.h 2003/03/10 19:38:19 2.1 +++ ray/src/common/tmesh.h 2003/06/06 16:38:47 2.4 @@ -1,7 +1,12 @@ -/* RCSid: $Id: tmesh.h,v 2.1 2003/03/10 19:38:19 greg Exp $ */ +/* RCSid $Id: tmesh.h,v 2.4 2003/06/06 16:38:47 schorsch Exp $ */ /* * Header file for triangle mesh routines using barycentric coordinates */ +#ifndef _RAD_TMESH_H_ +#define _RAD_TMESH_H_ +#ifdef __cplusplus +extern "C" { +#endif #define TCALNAME "tmesh.cal" /* the name of our auxiliary file */ @@ -11,7 +16,7 @@ typedef struct { } BARYCCM; #ifndef COSTOL -#define COSTOL 0.99985 /* cosine of tolerance for smoothing */ +#define COSTOL 0.999995 /* cosine of tolerance for smoothing */ #endif /* flat_tri() return values */ @@ -20,3 +25,18 @@ typedef struct { #define RVBENT 2 /* reversed and not flat */ #define RVFLAT 3 /* reversed and flat */ #define DEGEN -1 /* degenerate (zero area) */ + + +int flat_tri(FVECT v1, FVECT v2, FVECT v3, + FVECT n1, FVECT n2, FVECT n3); +int comp_baryc(BARYCCM *bcm, FVECT v1, FVECT v2, FVECT v3); +void eval_baryc(FLOAT wt[3], FVECT p, BARYCCM *bcm); +int get_baryc(FLOAT wt[3], FVECT p, FVECT v1, FVECT v2, FVECT v3); +void put_baryc(BARYCCM *bcm, FLOAT com[][3], int n); + + +#ifdef __cplusplus +} +#endif +#endif /* _RAD_TMESH_H_ */ +