1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
/* $Id: vis.h,v 1.2 2005/10/18 18:42:59 ellson Exp $ $Revision: 1.2 $ */
/* vim:set shiftwidth=4 ts=8: */
/**********************************************************
* This software is part of the graphviz package *
* http://www.graphviz.org/ *
* *
* Copyright (c) 1994-2004 AT&T Corp. *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Corp. *
* *
* Information and Software Systems Research *
* AT&T Research, Florham Park NJ *
**********************************************************/
#ifndef VISIBILITY_H
#define VISIBILITY_H
#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include <limits.h>
#include <vispath.h>
#include <pathutil.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef COORD **array2;
#define OBSCURED 0.0
#define EQ(p,q) ((p.x == q.x) && (p.y == q.y))
#define NEQ(p,q) (!EQ(p,q))
#define NIL(p) ((p)0)
#define CW 0
#define CCW 1
struct vconfig_s {
int Npoly;
int N; /* number of points in walk of barriers */
Ppoint_t *P; /* barrier points */
int *start;
int *next;
int *prev;
/* this is computed from the above */
array2 vis;
};
extern COORD *ptVis(vconfig_t *, int, Ppoint_t);
extern int directVis(Ppoint_t, int, Ppoint_t, int, vconfig_t *);
extern void visibility(vconfig_t *);
extern int *makePath(Ppoint_t p, int pp, COORD * pvis,
Ppoint_t q, int qp, COORD * qvis,
vconfig_t * conf);
#ifdef __cplusplus
}
#endif
#endif
|