00001 /* $Id: hedges.h,v 1.2 2005/02/24 00:57:33 ellson Exp $ $Revision: 1.2 $ */ 00002 /* vim:set shiftwidth=4 ts=8: */ 00003 00004 /********************************************************** 00005 * This software is part of the graphviz package * 00006 * http://www.graphviz.org/ * 00007 * * 00008 * Copyright (c) 1994-2004 AT&T Corp. * 00009 * and is licensed under the * 00010 * Common Public License, Version 1.0 * 00011 * by AT&T Corp. * 00012 * * 00013 * Information and Software Systems Research * 00014 * AT&T Research, Florham Park NJ * 00015 **********************************************************/ 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 00022 00023 #ifndef HEDGES_H 00024 #define HEDGES_H 00025 00026 #include "site.h" 00027 #include "edges.h" 00028 00029 typedef struct Halfedge { 00030 struct Halfedge *ELleft, *ELright; 00031 Edge *ELedge; 00032 int ELrefcnt; 00033 char ELpm; 00034 Site *vertex; 00035 double ystar; 00036 struct Halfedge *PQnext; 00037 } Halfedge; 00038 00039 extern Halfedge *ELleftend, *ELrightend; 00040 00041 extern void ELinitialize(void); 00042 extern void ELcleanup(void); 00043 extern int right_of(Halfedge *, Point *); 00044 extern Site *hintersect(Halfedge *, Halfedge *); 00045 extern Halfedge *HEcreate(Edge *, char); 00046 extern void ELinsert(Halfedge *, Halfedge *); 00047 extern Halfedge *ELleftbnd(Point *); 00048 extern void ELdelete(Halfedge *); 00049 extern Halfedge *ELleft(Halfedge *), *ELright(Halfedge *); 00050 extern Halfedge *ELleftbnd(Point *); 00051 extern Site *leftreg(Halfedge *), *rightreg(Halfedge *); 00052 00053 #endif 00054 00055 #ifdef __cplusplus 00056 } 00057 #endif