diff toolboxes/graph_visualisation/share/man/man3/pathplan.3 @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/graph_visualisation/share/man/man3/pathplan.3	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,97 @@
+.TH LIBPATH 3 "01 APRIL 1997"
+.SH NAME
+\fBlibpathplan\fR \- finds and smooths shortest paths
+.SH SYNOPSIS
+.ta .75i 1.5i 2.25i 3i 3.75i 4.5i 5.25i 6i
+.PP
+.nf
+\f5
+#include <graphviz/pathplan.h>
+
+typedef struct Pxy_t {
+    double x, y;
+} Pxy_t;
+
+typedef struct Pxy_t Ppoint_t;
+typedef struct Pxy_t Pvector_t;
+
+typedef struct Ppoly_t {
+    Ppoint_t *ps;
+    int pn;
+} Ppoly_t;
+
+typedef Ppoly_t Ppolyline_t;
+
+typedef struct Pedge_t {
+    Ppoint_t a, b;
+} Pedge_t;
+
+typedef struct vconfig_s vconfig_t;
+
+#define POLYID_NONE	
+#define POLYID_UNKNOWN
+
+\fP
+.fi
+.SH FUNCTIONS
+
+.nf
+\f5
+int Pshortestpath(Ppoly_t *boundary, Ppoint_t endpoints[2], Ppolyline_t *output_route);
+\fP
+.fi
+Finds a shortest path between two points in a simple polygon.
+You pass endpoints interior to the polygon boundary.
+A shortest path connecting the points that remains in the polygon
+is returned in output_route.  If either endpoint does not lie in
+the polygon, an error code is returned. (what code!!)
+
+.nf
+\f5
+vconfig_t *Pobsopen(Ppoly_t **obstacles, int n_obstacles);
+.br
+int Pobspath(vconfig_t *config, Ppoint_t p0, int poly0, Ppoint_t p1, int poly1, Ppolyline_t *output_route);
+.br
+void Pobsclose(vconfig_t *config);
+\fP
+.fi
+These functions find a shortest path between two points in a
+simple polygon that possibly contains polygonal obstacles (holes).
+\f5Pobsopen\fP creates a configuration (an opaque struct of type
+\f5vconfig_t\fP) on a set of obstacles. \f5Pobspath\fP finds
+a shortest path between the endpoints that remains outside the
+obstacles.  If the endpoints are known to lie inside obstacles,
+\f5poly0\fP or \f5poly1\fP should be set to the index in the
+\f5obstacles\fP array.  If an endpoint is definitely not inside
+an obstacle, then \f5POLYID_NONE\fP should be passed.  If the
+caller has not checked, then \f5POLYID_UNKNOWN\fP should be passed,
+and the path library will perform the test.
+
+(!! there is no boundary polygon in this model?!!!)
+
+.nf
+\f5
+int Proutespline (Pedge_t *barriers, int n_barriers, Ppolyline_t input_route, Pvector_t endpoint_slopes[2],
+	Ppolyline_t *output_route);
+\fP
+.fi
+
+This function fits a Bezier curve to a polyline path. 
+The curve must avoid a set of barrier segments. The polyline
+is usually the \f5output_route\fP of one of the shortest path
+finders, but it can be any simple path that doesn't cross
+any obstacles.  The input also includes endpoint slopes and
+0,0 means unconstrained slope.  
+
+Finally, this utility function converts an input list of polygons
+into an output list of barrier segments:
+.nf
+\f5
+int Ppolybarriers(Ppoly_t **polys, int n_polys, Pedge_t **barriers, int *n_barriers);
+\fP
+.fi
+
+.SH AUTHORS
+David Dobkin (dpd@cs.princeton.edu),
+Eleftherios Koutsofios (ek@research.att.com),
+Emden Gansner (erg@research.att.com).