GRASS GIS 7 Programmer's Manual
7.9.dev(2021)-e5379bbd7
|
Vector library - intersection (lower level functions) More...
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <grass/vector.h>
#include <grass/glocale.h>
#include "dgraph.h"
#include "e_intersect.h"
Go to the source code of this file.
Macros | |
#define | LENGTH(DX, DY) (sqrt((DX*DX)+(DY*DY))) |
#define | MIN(X, Y) ((X<Y)?X:Y) |
#define | MAX(X, Y) ((X>Y)?X:Y) |
#define | PI M_PI |
Functions | |
struct seg_intersections * | create_si_struct (int segments_count) |
void | destroy_si_struct (struct seg_intersections *si) |
void | add_ipoint1 (struct seg_intersection_list *il, int with, double dist, int ip) |
void | add_ipoint (const struct line_pnts *Points, int first_seg, int second_seg, double x, double y, struct seg_intersections *si) |
void | sort_intersection_list (struct seg_intersection_list *il) |
int | compare (const void *a, const void *b) |
double | get_epsilon (struct line_pnts *Points) |
struct seg_intersections * | find_all_intersections (const struct line_pnts *Points) |
struct planar_graph * | pg_create_struct (int n, int e) |
void | pg_destroy_struct (struct planar_graph *pg) |
int | pg_existsedge (struct planar_graph *pg, int v1, int v2) |
void | pg_addedge1 (struct pg_vertex *v, struct pg_edge *e) |
void | pg_addedge (struct planar_graph *pg, int v1, int v2) |
struct planar_graph * | pg_create (const struct line_pnts *Points) |
Vector library - intersection (lower level functions)
Higher level functions for reading/writing/manipulating vectors.
(C) 2008-2009 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file dgraph.c.
Definition at line 29 of file dgraph.c.
Referenced by pg_create_struct().
void add_ipoint | ( | const struct line_pnts * | Points, |
int | first_seg, | ||
int | second_seg, | ||
double | x, | ||
double | y, | ||
struct seg_intersections * | si | ||
) |
void add_ipoint1 | ( | struct seg_intersection_list * | il, |
int | with, | ||
double | dist, | ||
int | ip | ||
) |
int compare | ( | const void * | a, |
const void * | b | ||
) |
Definition at line 177 of file dgraph.c.
Referenced by MT_functions_new(), and rbtree_create().
struct seg_intersections* create_si_struct | ( | int | segments_count | ) |
void destroy_si_struct | ( | struct seg_intersections * | si | ) |
struct seg_intersections* find_all_intersections | ( | const struct line_pnts * | Points | ) |
void pg_addedge | ( | struct planar_graph * | pg, |
int | v1, | ||
int | v2 | ||
) |
Definition at line 416 of file dgraph.c.
References _, planar_graph::e, planar_graph::eallocated, planar_graph::ecount, G_debug(), G_fatal_error(), pg_addedge1(), pg_existsedge(), planar_graph::v, pg_edge::v1, pg_edge::v2, planar_graph::vcount, pg_edge::visited_left, pg_edge::visited_right, pg_edge::winding_left, and pg_edge::winding_right.
Definition at line 405 of file dgraph.c.
References pg_vertex::eallocated, pg_vertex::ecount, pg_vertex::edges, and G_realloc.
Referenced by pg_addedge().
struct planar_graph* pg_create | ( | const struct line_pnts * | Points | ) |
struct planar_graph* pg_create_struct | ( | int | n, |
int | e | ||
) |
Definition at line 352 of file dgraph.c.
References planar_graph::e, planar_graph::eallocated, planar_graph::ecount, G_malloc, MAX, NULL, planar_graph::v, and planar_graph::vcount.
void pg_destroy_struct | ( | struct planar_graph * | pg | ) |
Definition at line 368 of file dgraph.c.
References pg_vertex::angles, planar_graph::e, pg_vertex::edges, G_free(), planar_graph::v, and planar_graph::vcount.
int pg_existsedge | ( | struct planar_graph * | pg, |
int | v1, | ||
int | v2 | ||
) |
Definition at line 382 of file dgraph.c.
References pg_vertex::ecount, pg_vertex::edges, planar_graph::v, pg_edge::v1, and pg_edge::v2.
Referenced by pg_addedge().