www.pudn.com > hull.zip > pointops.c


/*
 * Ken Clarkson wrote this.  Copyright (c) 1995 by AT&T..
 * Permission to use, copy, modify, and distribute this software for any
 * purpose without fee is hereby granted, provided that this entire notice
 * is included in all copies of any software which is or includes a copy
 * or modification of this software and in all copies of the supporting
 * documentation for such software.
 * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
 * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
 * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 */

#include 
#include 
#include 
#include 
#include 

#include "points.h"

int	pdim;	/* point dimension */

#define NEARZERO(d)	((d) < FLT_EPSILON && (d) > -FLT_EPSILON)
Coord maxdist(int dim, point p1, point p2) {
	Coord	x,y,
		d = 0;
	int i = dim;


	while (i--) {
		x = *p1++;
		y = *p2++;
		d += (x 0) ? val: -val;
		max = (abs > max) ? abs : max;
	}


	if (max< 100*DBL_EPSILON) {
		fprintf(stderr, "fails to scale: ");
		print_point(stderr, dim,p);fflush(stderr);
		fprintf(stderr, "\n");
		return 1;
	}

	for (i=0;i