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 | #ifdef __cplusplus |
15 | extern "C" { |
16 | #endif |
17 | |
18 | |
19 | |
20 | #ifndef HEDGES_H |
21 | #define HEDGES_H |
22 | |
23 | #include "site.h" |
24 | #include "edges.h" |
25 | |
26 | typedef struct Halfedge { |
27 | struct Halfedge *ELleft, *ELright; |
28 | Edge *ELedge; |
29 | int ELrefcnt; |
30 | char ELpm; |
31 | Site *vertex; |
32 | double ystar; |
33 | struct Halfedge *PQnext; |
34 | } Halfedge; |
35 | |
36 | extern Halfedge *ELleftend, *ELrightend; |
37 | |
38 | extern void ELinitialize(void); |
39 | extern void ELcleanup(void); |
40 | extern int right_of(Halfedge *, Point *); |
41 | extern Site *hintersect(Halfedge *, Halfedge *); |
42 | extern Halfedge *HEcreate(Edge *, char); |
43 | extern void ELinsert(Halfedge *, Halfedge *); |
44 | extern Halfedge *ELleftbnd(Point *); |
45 | extern void ELdelete(Halfedge *); |
46 | extern Halfedge *ELleft(Halfedge *), *ELright(Halfedge *); |
47 | extern Halfedge *ELleftbnd(Point *); |
48 | extern Site *leftreg(Halfedge *), *rightreg(Halfedge *); |
49 | |
50 | #endif |
51 | |
52 | #ifdef __cplusplus |
53 | } |
54 | #endif |
55 | |