Graphviz 13.0.0~dev.20241220.2304
|
finds and smooths shortest paths More...
Go to the source code of this file.
Functions | |
int | Pshortestpath (Ppoly_t *boundary, Ppoint_t endpoints[2], Ppolyline_t *output_route) |
int | Proutespline (Pedge_t *barriers, size_t n_barriers, Ppolyline_t input_route, Pvector_t endpoint_slopes[2], Ppolyline_t *output_route) |
int | Ppolybarriers (Ppoly_t **polys, int npolys, Pedge_t **barriers, int *n_barriers) |
void | make_polyline (Ppolyline_t line, Ppolyline_t *sline) |
libpathplan provides functions for creating spline paths in the plane that are constrained by a polygonal boundary or obstacles to avoid. All polygons must be simple, but need not be convex.
Definition in file pathplan.h.
void make_polyline | ( | Ppolyline_t | line, |
Ppolyline_t * | sline | ||
) |
Definition at line 59 of file util.c.
References gv_recalloc(), Ppoly_t::pn, and Ppoly_t::ps.
Referenced by genroute(), makePolyline(), makeStraightEdges(), routesplines_(), and simpleSplineRoute().
Definition at line 24 of file util.c.
References Pedge_t::a, Pedge_t::b, gv_calloc(), Ppoly_t::pn, and Ppoly_t::ps.
int Proutespline | ( | Pedge_t * | barriers, |
size_t | n_barriers, | ||
Ppolyline_t | input_route, | ||
Pvector_t | endpoint_slopes[2], | ||
Ppolyline_t * | output_route | ||
) |
Definition at line 69 of file route.c.
References growops(), normv(), opl, ops, Ppoly_t::pn, Ppoly_t::ps, and reallyroutespline().
Referenced by genroute(), makeSpline(), routesplines_(), simpleSplineRoute(), and vgpanecmd().
int Pshortestpath | ( | Ppoly_t * | boundary, |
Ppoint_t | endpoints[2], | ||
Ppolyline_t * | output_route | ||
) |
Definition at line 83 of file shortest.c.
References add2dq(), deque_t::apex, ccw(), connecttris(), DQ_BACK, DQ_FRONT, triangle_t::e, finddqsplit(), deque_t::fpnlpi, free(), growops(), ISCCW, pointnlink_t::link, deque_t::lpnlpi, triangle_t::mark, marktripath(), NULL, ops, Ppoly_t::pn, tedge_t::pnl0p, tedge_t::pnl1p, deque_t::pnlpn, deque_t::pnlps, pointintri(), POINTNLINKPSIZE, pointnlink_t::pp, prerror, PRISIZE_T, Ppoly_t::ps, tedge_t::right_index, SIZE_MAX, splitdq(), triangulate(), tris, Pxy_t::x, and Pxy_t::y.
Referenced by genroute(), routesplines_(), and simpleSplineRoute().