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
16#ifndef _PATH_INCLUDE
17#define _PATH_INCLUDE
18
19#include "pathgeom.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25
26#if defined(_BLD_pathplan) && defined(__EXPORT__)
27# define extern __EXPORT__
28#endif
29
30/* find shortest euclidean path within a simple polygon */
31 extern int Pshortestpath(Ppoly_t * boundary, Ppoint_t endpoints[2],
32 Ppolyline_t * output_route);
33
34/* fit a spline to an input polyline, without touching barrier segments */
35 extern int Proutespline(Pedge_t * barriers, int n_barriers,
36 Ppolyline_t input_route,
37 Pvector_t endpoint_slopes[2],
38 Ppolyline_t * output_route);
39
40/* utility function to convert from a set of polygonal obstacles to barriers */
41 extern int Ppolybarriers(Ppoly_t ** polys, int npolys,
42 Pedge_t ** barriers, int *n_barriers);
43
44/* function to convert a polyline into a spline representation */
45 extern void make_polyline(Ppolyline_t line, Ppolyline_t* sline);
46
47#undef extern
48
49#ifdef __cplusplus
50}
51#endif
52#endif
53