Graphviz 13.0.0~dev.20241220.2304
|
#include <cgraph/list.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <math.h>
#include <pathplan/pathutil.h>
#include <pathplan/tri.h>
#include <util/prisize_t.h>
Go to the source code of this file.
Data Structures | |
struct | pointnlink_t |
struct | tedge_t |
struct | triangle_t |
struct | deque_t |
Macros | |
#define | DQ_FRONT 1 |
#define | DQ_BACK 2 |
#define | prerror(msg) fprintf (stderr, "lib/pathplan/%s:%d: %s\n", __FILE__, __LINE__, (msg)) |
#define | POINTSIZE sizeof (Ppoint_t) |
#define | POINTNLINKSIZE sizeof (pointnlink_t) |
#define | POINTNLINKPSIZE sizeof (pointnlink_t *) |
Typedefs | |
typedef struct pointnlink_t | pointnlink_t |
typedef struct triangle_t | triangle_t |
typedef struct deque_t | deque_t |
Functions | |
static int | triangulate (pointnlink_t **, size_t) |
static int | loadtriangle (pointnlink_t *, pointnlink_t *, pointnlink_t *) |
static void | connecttris (size_t, size_t) |
static bool | marktripath (size_t, size_t) |
static void | add2dq (deque_t *dq, int, pointnlink_t *) |
static void | splitdq (deque_t *dq, int, size_t) |
static size_t | finddqsplit (const deque_t *dq, pointnlink_t *) |
static int | pointintri (size_t, Ppoint_t *) |
static int | growops (size_t) |
static Ppoint_t | point_indexer (void *base, size_t index) |
int | Pshortestpath (Ppoly_t *polyp, Ppoint_t eps[2], Ppolyline_t *output) |
Variables | |
static triangles_t | tris |
static Ppoint_t * | ops |
static size_t | opn |
#define DQ_BACK 2 |
Definition at line 22 of file shortest.c.
#define DQ_FRONT 1 |
Definition at line 21 of file shortest.c.
#define POINTNLINKPSIZE sizeof (pointnlink_t *) |
Definition at line 35 of file shortest.c.
#define POINTNLINKSIZE sizeof (pointnlink_t) |
Definition at line 34 of file shortest.c.
#define POINTSIZE sizeof (Ppoint_t) |
Definition at line 27 of file shortest.c.
#define prerror | ( | msg | ) | fprintf (stderr, "lib/pathplan/%s:%d: %s\n", __FILE__, __LINE__, (msg)) |
Definition at line 24 of file shortest.c.
typedef struct pointnlink_t pointnlink_t |
typedef struct triangle_t triangle_t |
|
static |
Definition at line 396 of file shortest.c.
References DQ_FRONT, deque_t::fpnlpi, pointnlink_t::link, deque_t::lpnlpi, and deque_t::pnlps.
Referenced by Pshortestpath().
|
static |
Definition at line 361 of file shortest.c.
References triangle_t::e, tedge_t::pnl0p, tedge_t::pnl1p, pointnlink_t::pp, tedge_t::right_index, and tris.
Referenced by Pshortestpath().
|
static |
Definition at line 417 of file shortest.c.
References deque_t::apex, ccw(), deque_t::fpnlpi, ISCCW, ISCW, deque_t::lpnlpi, deque_t::pnlps, and pointnlink_t::pp.
Referenced by Pshortestpath().
|
static |
Definition at line 437 of file shortest.c.
References NULL, opn, ops, POINTSIZE, and prerror.
Referenced by Pshortestpath().
|
static |
Definition at line 344 of file shortest.c.
References triangle_t::e, tedge_t::pnl0p, tedge_t::pnl1p, prerror, tedge_t::right_index, SIZE_MAX, and tris.
Referenced by triangulate().
|
static |
Definition at line 379 of file shortest.c.
References mark(), marktripath(), SIZE_MAX, and tris.
Referenced by marktripath(), and Pshortestpath().
|
static |
Definition at line 73 of file shortest.c.
References pointnlink_t::pp.
Referenced by triangulate().
|
static |
Definition at line 427 of file shortest.c.
References ccw(), ISCW, and tris.
Referenced by Pshortestpath().
int Pshortestpath | ( | Ppoly_t * | polyp, |
Ppoint_t | eps[2], | ||
Ppolyline_t * | output | ||
) |
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().
|
static |
Definition at line 410 of file shortest.c.
References DQ_FRONT, deque_t::fpnlpi, and deque_t::lpnlpi.
Referenced by Pshortestpath().
|
static |
Definition at line 318 of file shortest.c.
References isdiagonal(), loadtriangle(), point_indexer(), points, prerror, and triangulate().
Referenced by Pshortestpath(), and triangulate().
|
static |
Definition at line 58 of file shortest.c.
Referenced by growops().
|
static |
Definition at line 57 of file shortest.c.
Referenced by growops(), and Pshortestpath().
|
static |
Definition at line 55 of file shortest.c.
Referenced by connecttris(), loadtriangle(), marktripath(), mkTriIndices(), pointintri(), and Pshortestpath().