void g2d_polygon_add(zarray_t *poly, double v[2])
int g2d_line_segment_intersect_segment(const g2d_line_segment_t *sega, const g2d_line_segment_t *segb, double *p)
void g2d_polygon_make_ccw(zarray_t *poly)
zarray_t * g2d_polygon_create_empty()
void g2d_line_init_from_points(g2d_line_t *line, const double p0[2], const double p1[2])
int g2d_polygon_contains_polygon(const zarray_t *polya, const zarray_t *polyb)
int g2d_polygon_rasterize(const zarray_t *poly, double y, double *x)
void g2d_line_segment_closest_point(const g2d_line_segment_t *seg, const double *q, double *p)
zarray_t * g2d_polygon_create_data(double v[][2], int sz)
int g2d_line_intersect_line(const g2d_line_t *linea, const g2d_line_t *lineb, double *p)
double g2d_line_segment_closest_point_distance(const g2d_line_segment_t *seg, const double *q)
void g2d_line_segment_init_from_points(g2d_line_segment_t *seg, const double p0[2], const double p1[2])
zarray_t * g2d_polygon_create_zeros(int sz)
int g2d_polygon_intersects_polygon(const zarray_t *polya, const zarray_t *polyb)
double g2d_line_get_coordinate(const g2d_line_t *line, const double q[2])
int g2d_polygon_contains_point(const zarray_t *poly, double q[2])
int g2d_polygon_overlaps_polygon(const zarray_t *polya, const zarray_t *polyb)