Graphviz  2.29.20120524.0446
lib/common/pointset.h
Go to the documentation of this file.
00001 /* $Id$ $Revision$ */
00002 /* vim:set shiftwidth=4 ts=8: */
00003 
00004 /*************************************************************************
00005  * Copyright (c) 2011 AT&T Intellectual Property 
00006  * All rights reserved. This program and the accompanying materials
00007  * are made available under the terms of the Eclipse Public License v1.0
00008  * which accompanies this distribution, and is available at
00009  * http://www.eclipse.org/legal/epl-v10.html
00010  *
00011  * Contributors: See CVS logs. Details at http://www.graphviz.org/
00012  *************************************************************************/
00013 
00014 #ifndef _POINTSET_H
00015 #define _POINTSET_H 1
00016 
00017 #include <cdt.h>
00018 #include <geom.h>
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024     typedef Dict_t PointSet;
00025     typedef Dict_t PointMap;
00026 #ifdef GVDLL
00027 #define extern __declspec(dllexport)
00028 #else
00029 #define extern
00030 #endif
00031 
00032 /*visual studio*/
00033 #ifdef WIN32_DLL
00034 #ifndef GVC_EXPORTS
00035 #define extern __declspec(dllimport)
00036 #endif
00037 #endif
00038 /*end visual studio*/
00039 
00040         extern PointSet *newPS(void);
00041     extern void freePS(PointSet *);
00042     extern void insertPS(PointSet *, point);
00043     extern void addPS(PointSet *, int, int);
00044     extern int inPS(PointSet *, point);
00045     extern int isInPS(PointSet *, int, int);
00046     extern int sizeOf(PointSet *);
00047     extern point *pointsOf(PointSet *);
00048 
00049     extern PointMap *newPM(void);
00050     extern void clearPM(PointMap *);
00051     extern void freePM(PointMap *);
00052     extern int insertPM(PointMap *, int, int, int);
00053     extern int updatePM(PointMap * pm, int x, int y, int v);
00054 
00055 #undef extern
00056 #ifdef __cplusplus
00057 }
00058 #endif
00059 
00060 #endif /* _POINTSET_H */