UTILITIES:


 
void ReportError(char *modulename, char *message, ErrType severity);

Report an error message. The severity may be specified as

MESSG: Print a message to the screen
WARNING: Print message with additional attention grabbing text
ERROR: Print message with additional attention grabbing text
FATAL: Print attention grabbing message and exit.
 
 



  VECTOR FUNCTIONS:

void vdiff(double *a, double *b, double *a_minus_b);



void vsum(double *a, double *b, double *a_plus_b);


double vmag2(double *v);


double vmag(double *v);


void vcross(double *a, double *b, double *a_cross_b);


double vdot(double *a, double *b);


void vnorm(double *a, double *unita);



   REAL NUMBER COMPARISON FUNCTIONS:


 

int REAL_le(double a, double b);



int REAL_ge(double a, double b);


int REAL_eq(double a, double b);


 



  COMP GEOM FUNCTIONS:

int pntInTriangle2(double *pnt, double (*tri)[3], double tol, int flag, int *mtype, int *locID);
 

Check if a point that is guaranteed to be in the plane of a triangle is inside the triangle itself.
If flag = 1, check if point is strictly inside
    flag = 0, check if point is inside or on the boundary within a real tolerance 'tol'
Return value =  1 (inside), 0 (outside), -1 (on boundary)
If point is on the boundary, mtype indicates type of entity it is on
locID indicates the local ID number of the vertex or edge it is on
 



int pntInTet(double *pnt, double (*tet)[3], double tol, int flag, int *mtype, int *locID);

Check if a point is inside a tet
If flag = 1, check if point is strictly inside
    flag = 0, check if point is inside or on the booundary
              within a real tolerance 'tol'
Return value =  1 (inside), 0 (outside), -1 (on boundary)
If point is on the boundary, mtype indicates type of entity it is on
locID indicates the local ID number of the vertex or edge it is on
 



void Tri_CircumCen(double (*xyz)[3], double *cen);


double Tri_Area(double (*xyz)[3]);


void   Tri_Normal(double (*xyz)[3], double *normal);


double Tet_Volume(double (*xyz)[3]);


void   Tet_CircumCen(double (*xyz)[3], double *cen);