Graphviz 13.0.0~dev.20250210.0415
|
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <pathplan/pathutil.h>
#include <pathplan/tri.h>
#include <util/alloc.h>
Go to the source code of this file.
Functions | |
static int | triangulate (Ppoint_t **pointp, size_t pointn, void(*fn)(void *, const Ppoint_t *), void *vc) |
int | ccw (Ppoint_t p1, Ppoint_t p2, Ppoint_t p3) |
are the given points counter-clockwise, clockwise, or co-linear? | |
static Ppoint_t | point_indexer (void *base, size_t index) |
int | Ptriangulate (Ppoly_t *polygon, void(*fn)(void *, const Ppoint_t *), void *vc) |
bool | isdiagonal (size_t i, size_t ip2, void *pointp, size_t pointn, indexer_t indexer) |
is (i, i + 2) a diagonal? | |
bool | intersects (Ppoint_t pa, Ppoint_t pb, Ppoint_t pc, Ppoint_t pd) |
line to line intersection | |
bool | between (Ppoint_t pa, Ppoint_t pb, Ppoint_t pc) |
is pb between pa and pc? | |
Definition at line 23 of file triang.c.
References ISCCW, ISCW, ISON, Pxy_t::x, and Pxy_t::y.
Referenced by between(), convert(), finddqsplit(), intersects(), isdiagonal(), pointintri(), and Pshortestpath().
bool isdiagonal | ( | size_t | i, |
size_t | ip2, | ||
void * | pointp, | ||
size_t | pointn, | ||
indexer_t | indexer | ||
) |
Definition at line 91 of file triang.c.
References ccw(), intersects(), ISCCW, and ISCW.
Referenced by triangulate(), and triangulate().
|
static |
Definition at line 28 of file triang.c.
Referenced by triangulate().
Definition at line 36 of file triang.c.
References free(), gv_calloc(), and triangulate().
|
static |
Definition at line 61 of file triang.c.
References A, isdiagonal(), point_indexer(), and triangulate().
Referenced by Ptriangulate(), and triangulate().