GRASS GIS 7 Programmer's Manual  7.5.svn(2018)-r72721
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
clean_nodes.c File Reference

Vector library - Clean boundaries at nodes. More...

#include <stdlib.h>
#include <grass/vector.h>
#include <grass/glocale.h>
Include dependency graph for clean_nodes.c:

Go to the source code of this file.

Functions

int Vect_clean_small_angles_at_nodes (struct Map_info *Map, int otype, struct Map_info *Err)
 Clean small angles at nodes. More...
 

Detailed Description

Vector library - Clean boundaries at nodes.

Higher level functions for reading/writing/manipulating vectors.

(C) 2001-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.

Author
Radim Blazek

Definition in file clean_nodes.c.

Function Documentation

int Vect_clean_small_angles_at_nodes ( struct Map_info Map,
int  otype,
struct Map_info Err 
)

Clean small angles at nodes.

It may happen that even if the angle between 2 boundaries at node is very small, the calculated angle is 0 because of representation error. The map must be built at least on level GV_BUILD_BASE

Parameters
Mapinput map
otypefeature type
[out]Errvector map where error line segments are written
Returns
number of line modifications

Definition at line 34 of file clean_nodes.c.

References _, line_cats::cat, line_cats::field, G_debug(), G_percent(), G_verbose_message(), GV_BOUNDARY, GV_LINE, GV_LINES, Plus_head::Line, line_cats::n_cats, line_pnts::n_points, NULL, Map_info::plus, P_line::type, Vect_append_point(), Vect_cat_set(), Vect_delete_line(), Vect_get_node_coor(), Vect_get_node_line(), Vect_get_node_line_angle(), Vect_get_node_n_lines(), Vect_get_num_nodes(), Vect_line_delete_point(), Vect_line_prune(), Vect_new_cats_struct(), Vect_new_line_struct(), Vect_node_alive(), Vect_points_distance(), Vect_read_line(), Vect_reset_cats(), Vect_reset_line(), Vect_rewrite_line(), Vect_write_line(), x, line_pnts::x, line_pnts::y, and line_pnts::z.