1/* $Id$ $Revision$ */
2/* vim:set shiftwidth=4 ts=8: */
3
4/*************************************************************************
5 * Copyright (c) 2011 AT&T Intellectual Property
6 * All rights reserved. This program and the accompanying materials
7 * are made available under the terms of the Eclipse Public License v1.0
8 * which accompanies this distribution, and is available at
9 * http://www.eclipse.org/legal/epl-v10.html
10 *
11 * Contributors: See CVS logs. Details at http://www.graphviz.org/
12 *************************************************************************/
13
14
15#ifndef VISIBILITY_H
16#define VISIBILITY_H
17
18#include <assert.h>
19#include <math.h>
20#include <stdlib.h>
21#include <limits.h>
22#include "vispath.h"
23#include "pathutil.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29 typedef COORD **array2;
30
31#define OBSCURED 0.0
32#define EQ(p,q) ((p.x == q.x) && (p.y == q.y))
33#define NEQ(p,q) (!EQ(p,q))
34#define NIL(p) ((p)0)
35#define CW 0
36#define CCW 1
37
38 struct vconfig_s {
39 int Npoly;
40 int N; /* number of points in walk of barriers */
41 Ppoint_t *P; /* barrier points */
42 int *start;
43 int *next;
44 int *prev;
45
46 /* this is computed from the above */
47 array2 vis;
48 };
49#ifdef _WIN32
50#ifndef PATHPLAN_EXPORTS
51#define extern __declspec(dllimport)
52#endif
53#endif
54/*end visual studio*/
55
56 extern COORD *ptVis(vconfig_t *, int, Ppoint_t);
57 extern int directVis(Ppoint_t, int, Ppoint_t, int, vconfig_t *);
58 extern void visibility(vconfig_t *);
59 extern int *makePath(Ppoint_t p, int pp, COORD * pvis,
60 Ppoint_t q, int qp, COORD * qvis,
61 vconfig_t * conf);
62
63#undef extern
64
65#ifdef __cplusplus
66}
67#endif
68#endif
69