wolffd@0
|
1 /* $Id: pathplan.h,v 1.5 2009/06/03 01:10:54 ellson Exp $ $Revision: 1.5 $ */
|
wolffd@0
|
2 /* vim:set shiftwidth=4 ts=8: */
|
wolffd@0
|
3
|
wolffd@0
|
4 /**********************************************************
|
wolffd@0
|
5 * This software is part of the graphviz package *
|
wolffd@0
|
6 * http://www.graphviz.org/ *
|
wolffd@0
|
7 * *
|
wolffd@0
|
8 * Copyright (c) 1994-2004 AT&T Corp. *
|
wolffd@0
|
9 * and is licensed under the *
|
wolffd@0
|
10 * Common Public License, Version 1.0 *
|
wolffd@0
|
11 * by AT&T Corp. *
|
wolffd@0
|
12 * *
|
wolffd@0
|
13 * Information and Software Systems Research *
|
wolffd@0
|
14 * AT&T Research, Florham Park NJ *
|
wolffd@0
|
15 **********************************************************/
|
wolffd@0
|
16
|
wolffd@0
|
17
|
wolffd@0
|
18
|
wolffd@0
|
19 #ifndef _PATH_INCLUDE
|
wolffd@0
|
20 #define _PATH_INCLUDE
|
wolffd@0
|
21
|
wolffd@0
|
22 #include "pathgeom.h"
|
wolffd@0
|
23
|
wolffd@0
|
24 #ifdef __cplusplus
|
wolffd@0
|
25 extern "C" {
|
wolffd@0
|
26 #endif
|
wolffd@0
|
27
|
wolffd@0
|
28
|
wolffd@0
|
29 #if defined(_BLD_pathplan) && defined(__EXPORT__)
|
wolffd@0
|
30 # define extern __EXPORT__
|
wolffd@0
|
31 #endif
|
wolffd@0
|
32
|
wolffd@0
|
33 /* find shortest euclidean path within a simple polygon */
|
wolffd@0
|
34 extern int Pshortestpath(Ppoly_t * boundary, Ppoint_t endpoints[2],
|
wolffd@0
|
35 Ppolyline_t * output_route);
|
wolffd@0
|
36
|
wolffd@0
|
37 /* fit a spline to an input polyline, without touching barrier segments */
|
wolffd@0
|
38 extern int Proutespline(Pedge_t * barriers, int n_barriers,
|
wolffd@0
|
39 Ppolyline_t input_route,
|
wolffd@0
|
40 Pvector_t endpoint_slopes[2],
|
wolffd@0
|
41 Ppolyline_t * output_route);
|
wolffd@0
|
42
|
wolffd@0
|
43 /* utility function to convert from a set of polygonal obstacles to barriers */
|
wolffd@0
|
44 extern int Ppolybarriers(Ppoly_t ** polys, int npolys,
|
wolffd@0
|
45 Pedge_t ** barriers, int *n_barriers);
|
wolffd@0
|
46
|
wolffd@0
|
47 /* function to convert a polyline into a spline representation */
|
wolffd@0
|
48 extern void make_polyline(Ppolyline_t line, Ppolyline_t* sline);
|
wolffd@0
|
49
|
wolffd@0
|
50 #undef extern
|
wolffd@0
|
51
|
wolffd@0
|
52 #ifdef __cplusplus
|
wolffd@0
|
53 }
|
wolffd@0
|
54 #endif
|
wolffd@0
|
55 #endif
|