GRASS GIS 8 Programmer's Manual  8.5.0dev(2024)-d6dec75dd4
level_two.c File Reference

Vector library - topology level functions. More...

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

Go to the source code of this file.

Functions

plus_t Vect_get_num_nodes (struct Map_info *Map)
 Get number of nodes in vector map. More...
 
plus_t Vect_get_num_primitives (struct Map_info *Map, int type)
 Get number of primitives in vector map. More...
 
plus_t Vect_get_num_lines (struct Map_info *Map)
 Fetch number of features (points, lines, boundaries, centroids) in vector map. More...
 
plus_t Vect_get_num_areas (struct Map_info *Map)
 Get number of areas in vector map. More...
 
plus_t Vect_get_num_kernels (struct Map_info *Map)
 Fetch number of kernels in vector map. More...
 
plus_t Vect_get_num_faces (struct Map_info *Map)
 Get number of faces in vector map. More...
 
plus_t Vect_get_num_volumes (struct Map_info *Map)
 Fetch number of volumes in vector map. More...
 
plus_t Vect_get_num_islands (struct Map_info *Map)
 Get number of islands in vector map. More...
 
plus_t Vect_get_num_holes (struct Map_info *Map)
 Fetch number of holes in vector map. More...
 
int Vect_get_num_dblinks (struct Map_info *Map)
 Get number of defined dblinks. More...
 
int Vect_get_num_updated_lines (struct Map_info *Map)
 Get number of updated features. More...
 
int Vect_get_updated_line (struct Map_info *Map, int idx)
 Get updated line by index. More...
 
off_t Vect_get_updated_line_offset (struct Map_info *Map, int idx)
 Get updated line offset by index. More...
 
int Vect_get_num_updated_nodes (struct Map_info *Map)
 Get number of updated nodes. More...
 
int Vect_get_updated_node (struct Map_info *Map, int idx)
 Get updated (modified) node by index. More...
 
int Vect_get_line_type (struct Map_info *Map, int line)
 Get line type. More...
 
int Vect_get_node_coor (struct Map_info *Map, int num, double *x, double *y, double *z)
 Get node coordinates. More...
 
int Vect_get_line_nodes (struct Map_info *Map, int line, int *n1, int *n2)
 Get line nodes. More...
 
int Vect_get_line_areas (struct Map_info *Map, int line, int *left, int *right)
 Get area id on the left and right side of the boundary. More...
 
int Vect_get_node_n_lines (struct Map_info *Map, int node)
 Get number of lines for node. More...
 
int Vect_get_node_line (struct Map_info *Map, int node, int line)
 Get line id for node line index. More...
 
float Vect_get_node_line_angle (struct Map_info *Map, int node, int line)
 Angle of segment of the line connected to the node. More...
 
int Vect_get_centroid_area (struct Map_info *Map, int centroid)
 Get area id the centroid is within. More...
 
void Vect_set_updated (struct Map_info *Map, int enable)
 Enable/disable maintenance of list of updated lines/nodes. More...
 
void Vect_reset_updated (struct Map_info *Map)
 Reset list of updated lines/nodes. More...
 

Detailed Description

Vector library - topology level functions.

(C) 2001-2009, 2011-2012 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
Original author CERL, probably Dave Gerdes or Mike Higgins.
Update to GRASS 5.7 Radim Blazek and David D. Gray.
Update to GRASS 7 by Martin Landa <landa.martin gmail.com>

Definition in file level_two.c.

Function Documentation

◆ Vect_get_centroid_area()

int Vect_get_centroid_area ( struct Map_info Map,
int  centroid 
)

Get area id the centroid is within.

Parameters
Mappointer to Map_info struct
centroidcentroid id
Returns
area id the centroid is within
0 for not in area
negative id if centroid is duplicated in the area

Definition at line 429 of file level_two.c.

Referenced by Vedit_delete_area_centroid().

◆ Vect_get_line_areas()

int Vect_get_line_areas ( struct Map_info Map,
int  line,
int *  left,
int *  right 
)

Get area id on the left and right side of the boundary.

Negative area id indicates an isle.

Parameters
Mappointer to Map_info struct
lineline id
[out]left,rightarea id on the left and right side
Returns
1 on success
-1 on failure (topology not available, line is not a boundary)

Definition at line 346 of file level_two.c.

◆ Vect_get_line_nodes()

int Vect_get_line_nodes ( struct Map_info Map,
int  line,
int *  n1,
int *  n2 
)

Get line nodes.

Parameters
Mappointer to Map_info struct
lineline id
n1(start node), n2 (end node) ids of line nodes (or NULL)
Returns
1

Definition at line 303 of file level_two.c.

◆ Vect_get_line_type()

int Vect_get_line_type ( struct Map_info Map,
int  line 
)

Get line type.

Parameters
Mappointer to Map_info struct
lineline id
Returns
line type

Definition at line 254 of file level_two.c.

◆ Vect_get_node_coor()

int Vect_get_node_coor ( struct Map_info Map,
int  num,
double *  x,
double *  y,
double *  z 
)

Get node coordinates.

Parameters
Mappointer to Map_info struct
numnode id (starts at 1)
[out]x,y,zcoordinates values (for 2D coordinates z is NULL)
Returns
0 on success
-1 on error

Definition at line 274 of file level_two.c.

References _, G_warning(), Plus_head::n_nodes, Plus_head::Node, NULL, Map_info::plus, P_node::x, x, P_node::y, and P_node::z.

Referenced by Vect_find_node().

◆ Vect_get_node_line()

int Vect_get_node_line ( struct Map_info Map,
int  node,
int  line 
)

Get line id for node line index.

Parameters
Mappointer to Map_info struct
nodenode id
lineline index (range: 0 - Vect_get_node_n_lines())
Returns
line id

Definition at line 396 of file level_two.c.

◆ Vect_get_node_line_angle()

float Vect_get_node_line_angle ( struct Map_info Map,
int  node,
int  line 
)

Angle of segment of the line connected to the node.

Parameters
Mappointer to Map_info struct
nodenode number
lineline index (range: 0 - Vect_get_node_n_lines())
Returns
angle of segment of the line connected to the node

Definition at line 412 of file level_two.c.

◆ Vect_get_node_n_lines()

int Vect_get_node_n_lines ( struct Map_info Map,
int  node 
)

Get number of lines for node.

Parameters
Mappointer to Map_info struct
nodenode id
Returns
numbers of lines

Definition at line 380 of file level_two.c.

◆ Vect_get_num_areas()

plus_t Vect_get_num_areas ( struct Map_info Map)

Get number of areas in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of areas

Definition at line 87 of file level_two.c.

References Plus_head::n_areas, and Map_info::plus.

Referenced by vector2perimeters(), and Vedit_delete_areas_cat().

◆ Vect_get_num_dblinks()

int Vect_get_num_dblinks ( struct Map_info Map)

Get number of defined dblinks.

Parameters
Mappointer to Map_info struct
Returns
number of dblinks

Definition at line 159 of file level_two.c.

References Map_info::dblnk, and dblinks::n_fields.

Referenced by Vect_copy_map_dblinks(), Vect_get_field2(), and Vect_get_field_number().

◆ Vect_get_num_faces()

plus_t Vect_get_num_faces ( struct Map_info Map)

Get number of faces in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of faces

Definition at line 111 of file level_two.c.

References Plus_head::n_flines, and Map_info::plus.

◆ Vect_get_num_holes()

plus_t Vect_get_num_holes ( struct Map_info Map)

Fetch number of holes in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of holes

Definition at line 147 of file level_two.c.

References Plus_head::n_holes, and Map_info::plus.

◆ Vect_get_num_islands()

plus_t Vect_get_num_islands ( struct Map_info Map)

Get number of islands in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of islands

Definition at line 135 of file level_two.c.

References Plus_head::n_isles, and Map_info::plus.

◆ Vect_get_num_kernels()

plus_t Vect_get_num_kernels ( struct Map_info Map)

Fetch number of kernels in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of kernels

Definition at line 99 of file level_two.c.

References Plus_head::n_klines, and Map_info::plus.

◆ Vect_get_num_lines()

plus_t Vect_get_num_lines ( struct Map_info Map)

Fetch number of features (points, lines, boundaries, centroids) in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of features

Definition at line 75 of file level_two.c.

References Plus_head::n_lines, and Map_info::plus.

Referenced by NetA_initialise_varray(), and Vect_fidx_dump().

◆ Vect_get_num_nodes()

plus_t Vect_get_num_nodes ( struct Map_info Map)

Get number of nodes in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of nodes

Definition at line 34 of file level_two.c.

References Plus_head::n_nodes, and Map_info::plus.

◆ Vect_get_num_primitives()

plus_t Vect_get_num_primitives ( struct Map_info Map,
int  type 
)

Get number of primitives in vector map.

Parameters
Mappointer to Map_info struct
typefeature type
Returns
number of primitives

Definition at line 47 of file level_two.c.

◆ Vect_get_num_updated_lines()

int Vect_get_num_updated_lines ( struct Map_info Map)

Get number of updated features.

Note: Vect_set_updated() must be called to maintain list of updated features

Parameters
Mappointer to Map_info struct
Returns
number of updated features

Definition at line 175 of file level_two.c.

References Plus_head::n_uplines, Map_info::plus, and Plus_head::uplist.

◆ Vect_get_num_updated_nodes()

int Vect_get_num_updated_nodes ( struct Map_info Map)

Get number of updated nodes.

Parameters
Mappointer to Map_info struct
Returns
number of updated nodes

Definition at line 219 of file level_two.c.

References Plus_head::n_upnodes, Map_info::plus, and Plus_head::uplist.

◆ Vect_get_num_volumes()

plus_t Vect_get_num_volumes ( struct Map_info Map)

Fetch number of volumes in vector map.

Parameters
Mappointer to Map_info struct
Returns
number of volumes

Definition at line 123 of file level_two.c.

References Plus_head::n_volumes, and Map_info::plus.

◆ Vect_get_updated_line()

int Vect_get_updated_line ( struct Map_info Map,
int  idx 
)

Get updated line by index.

Note: Vect_set_updated() must be called to maintain list of updated features

Parameters
Mappointer to Map_info struct
idxindex
Returns
updated line

Definition at line 191 of file level_two.c.

References Map_info::plus, Plus_head::uplines, and Plus_head::uplist.

◆ Vect_get_updated_line_offset()

off_t Vect_get_updated_line_offset ( struct Map_info Map,
int  idx 
)

Get updated line offset by index.

Note: Vect_set_updated() must be called to maintain list of updated features

Parameters
Mappointer to Map_info struct
idxindex
Returns
updated line

Definition at line 207 of file level_two.c.

References Map_info::plus, Plus_head::uplines_offset, and Plus_head::uplist.

◆ Vect_get_updated_node()

int Vect_get_updated_node ( struct Map_info Map,
int  idx 
)

Get updated (modified) node by index.

Note: Vect_set_updated() must be called to maintain list of updated features

Negative id:

  • if Node[id] is not NULL then the node was added
  • if Node[id] is NULL then the node was deleted Positive id:
  • node was updated
Parameters
Mappointer to Map_info struct
idxindex
Returns
id of modified node

Definition at line 241 of file level_two.c.

References Map_info::plus, Plus_head::uplist, and Plus_head::upnodes.

◆ Vect_reset_updated()

void Vect_reset_updated ( struct Map_info Map)

Reset list of updated lines/nodes.

Parameters
Mappointer to Map_info struct

Definition at line 469 of file level_two.c.

◆ Vect_set_updated()

void Vect_set_updated ( struct Map_info Map,
int  enable 
)

Enable/disable maintenance of list of updated lines/nodes.

See Plus_head.uplist for details.

Parameters
Mappointer to Map_info struct
enableTRUE/FALSE to enable/disable

Definition at line 454 of file level_two.c.

References G_debug(), and Map_info::name.