wolffd@0: /* $Id: pathplan.h,v 1.5 2009/06/03 01:10:54 ellson Exp $ $Revision: 1.5 $ */ wolffd@0: /* vim:set shiftwidth=4 ts=8: */ wolffd@0: wolffd@0: /********************************************************** wolffd@0: * This software is part of the graphviz package * wolffd@0: * http://www.graphviz.org/ * wolffd@0: * * wolffd@0: * Copyright (c) 1994-2004 AT&T Corp. * wolffd@0: * and is licensed under the * wolffd@0: * Common Public License, Version 1.0 * wolffd@0: * by AT&T Corp. * wolffd@0: * * wolffd@0: * Information and Software Systems Research * wolffd@0: * AT&T Research, Florham Park NJ * wolffd@0: **********************************************************/ wolffd@0: wolffd@0: wolffd@0: wolffd@0: #ifndef _PATH_INCLUDE wolffd@0: #define _PATH_INCLUDE wolffd@0: wolffd@0: #include "pathgeom.h" wolffd@0: wolffd@0: #ifdef __cplusplus wolffd@0: extern "C" { wolffd@0: #endif wolffd@0: wolffd@0: wolffd@0: #if defined(_BLD_pathplan) && defined(__EXPORT__) wolffd@0: # define extern __EXPORT__ wolffd@0: #endif wolffd@0: wolffd@0: /* find shortest euclidean path within a simple polygon */ wolffd@0: extern int Pshortestpath(Ppoly_t * boundary, Ppoint_t endpoints[2], wolffd@0: Ppolyline_t * output_route); wolffd@0: wolffd@0: /* fit a spline to an input polyline, without touching barrier segments */ wolffd@0: extern int Proutespline(Pedge_t * barriers, int n_barriers, wolffd@0: Ppolyline_t input_route, wolffd@0: Pvector_t endpoint_slopes[2], wolffd@0: Ppolyline_t * output_route); wolffd@0: wolffd@0: /* utility function to convert from a set of polygonal obstacles to barriers */ wolffd@0: extern int Ppolybarriers(Ppoly_t ** polys, int npolys, wolffd@0: Pedge_t ** barriers, int *n_barriers); wolffd@0: wolffd@0: /* function to convert a polyline into a spline representation */ wolffd@0: extern void make_polyline(Ppolyline_t line, Ppolyline_t* sline); wolffd@0: wolffd@0: #undef extern wolffd@0: wolffd@0: #ifdef __cplusplus wolffd@0: } wolffd@0: #endif wolffd@0: #endif