|
@@ -4,9 +4,11 @@
|
|
#include <grass/vect/digit.h>
|
|
#include <grass/vect/digit.h>
|
|
|
|
|
|
/* --- ANSI prototypes for the lib/vector/Vlib functions --- */
|
|
/* --- ANSI prototypes for the lib/vector/Vlib functions --- */
|
|
-/* "Public" functions, for use in modules */
|
|
|
|
- /* Basic structures */
|
|
|
|
- /* Points (line) */
|
|
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * "Public" functions, for use in modules
|
|
|
|
+ */
|
|
|
|
+/* Points (line) */
|
|
struct line_pnts *Vect_new_line_struct(void);
|
|
struct line_pnts *Vect_new_line_struct(void);
|
|
int Vect_append_point(struct line_pnts *, double, double, double);
|
|
int Vect_append_point(struct line_pnts *, double, double, double);
|
|
int Vect_append_points(struct line_pnts *, struct line_pnts *, int);
|
|
int Vect_append_points(struct line_pnts *, struct line_pnts *, int);
|
|
@@ -23,8 +25,8 @@ int Vect_reset_line(struct line_pnts *);
|
|
int Vect_destroy_line_struct(struct line_pnts *);
|
|
int Vect_destroy_line_struct(struct line_pnts *);
|
|
int Vect_point_on_line(struct line_pnts *, double, double *, double *,
|
|
int Vect_point_on_line(struct line_pnts *, double, double *, double *,
|
|
double *, double *, double *);
|
|
double *, double *, double *);
|
|
-int Vect_line_segment(struct line_pnts *InPoints, double start, double end,
|
|
|
|
- struct line_pnts *OutPoints);
|
|
|
|
|
|
+int Vect_line_segment(struct line_pnts *, double, double,
|
|
|
|
+ struct line_pnts *);
|
|
double Vect_line_length(struct line_pnts *);
|
|
double Vect_line_length(struct line_pnts *);
|
|
double Vect_area_perimeter(struct line_pnts *);
|
|
double Vect_area_perimeter(struct line_pnts *);
|
|
double Vect_line_geodesic_length(struct line_pnts *);
|
|
double Vect_line_geodesic_length(struct line_pnts *);
|
|
@@ -36,7 +38,7 @@ void Vect_line_parallel(struct line_pnts *, double, double, int,
|
|
struct line_pnts *);
|
|
struct line_pnts *);
|
|
void Vect_line_buffer(struct line_pnts *, double, double, struct line_pnts *);
|
|
void Vect_line_buffer(struct line_pnts *, double, double, struct line_pnts *);
|
|
|
|
|
|
- /* Categories */
|
|
|
|
|
|
+/* Categories */
|
|
struct line_cats *Vect_new_cats_struct(void);
|
|
struct line_cats *Vect_new_cats_struct(void);
|
|
int Vect_cat_set(struct line_cats *, int, int);
|
|
int Vect_cat_set(struct line_cats *, int, int);
|
|
int Vect_cat_get(struct line_cats *, int, int *);
|
|
int Vect_cat_get(struct line_cats *, int, int *);
|
|
@@ -49,14 +51,14 @@ int Vect_get_area_cats(struct Map_info *, int, struct line_cats *);
|
|
int Vect_get_area_cat(struct Map_info *, int, int);
|
|
int Vect_get_area_cat(struct Map_info *, int, int);
|
|
int Vect_get_line_cat(struct Map_info *, int, int);
|
|
int Vect_get_line_cat(struct Map_info *, int, int);
|
|
|
|
|
|
- /* List of categories */
|
|
|
|
|
|
+/* List of categories */
|
|
struct cat_list *Vect_new_cat_list(void);
|
|
struct cat_list *Vect_new_cat_list(void);
|
|
int Vect_str_to_cat_list(const char *, struct cat_list *);
|
|
int Vect_str_to_cat_list(const char *, struct cat_list *);
|
|
int Vect_array_to_cat_list(int *, int, struct cat_list *);
|
|
int Vect_array_to_cat_list(int *, int, struct cat_list *);
|
|
int Vect_cat_in_cat_list(int, struct cat_list *);
|
|
int Vect_cat_in_cat_list(int, struct cat_list *);
|
|
int Vect_destroy_cat_list(struct cat_list *);
|
|
int Vect_destroy_cat_list(struct cat_list *);
|
|
|
|
|
|
- /* Vector array */
|
|
|
|
|
|
+/* Vector array */
|
|
VARRAY *Vect_new_varray(int size);
|
|
VARRAY *Vect_new_varray(int size);
|
|
int Vect_set_varray_from_cat_string(struct Map_info *, int, const char *, int,
|
|
int Vect_set_varray_from_cat_string(struct Map_info *, int, const char *, int,
|
|
int, VARRAY *);
|
|
int, VARRAY *);
|
|
@@ -65,30 +67,30 @@ int Vect_set_varray_from_cat_list(struct Map_info *, int, struct cat_list *,
|
|
int Vect_set_varray_from_db(struct Map_info *, int, const char *, int, int,
|
|
int Vect_set_varray_from_db(struct Map_info *, int, const char *, int, int,
|
|
VARRAY *);
|
|
VARRAY *);
|
|
|
|
|
|
- /* DB connection - field info */
|
|
|
|
|
|
+/* DB connection - field info */
|
|
struct dblinks *Vect_new_dblinks_struct(void);
|
|
struct dblinks *Vect_new_dblinks_struct(void);
|
|
-void Vect_reset_dblinks(struct dblinks *p);
|
|
|
|
-int Vect_add_dblink(struct dblinks *p, int number, const char *name,
|
|
|
|
- const char *table, const char *key, const char *db,
|
|
|
|
- const char *driver);
|
|
|
|
-int Vect_check_dblink(struct dblinks *p, int field);
|
|
|
|
-int Vect_map_add_dblink(struct Map_info *, int number, const char *name,
|
|
|
|
- const char *table, const char *key, const char *db,
|
|
|
|
- const char *driver);
|
|
|
|
-int Vect_map_del_dblink(struct Map_info *, int number);
|
|
|
|
-int Vect_map_check_dblink(struct Map_info *, int field);
|
|
|
|
|
|
+void Vect_reset_dblinks(struct dblinks *);
|
|
|
|
+int Vect_add_dblink(struct dblinks *, int, const char *,
|
|
|
|
+ const char *, const char *, const char *,
|
|
|
|
+ const char *);
|
|
|
|
+int Vect_check_dblink(struct dblinks *, int);
|
|
|
|
+int Vect_map_add_dblink(struct Map_info *, int, const char *,
|
|
|
|
+ const char *, const char *, const char *,
|
|
|
|
+ const char *);
|
|
|
|
+int Vect_map_del_dblink(struct Map_info *, int);
|
|
|
|
+int Vect_map_check_dblink(struct Map_info *, int);
|
|
int Vect_read_dblinks(struct Map_info *);
|
|
int Vect_read_dblinks(struct Map_info *);
|
|
int Vect_write_dblinks(struct Map_info *);
|
|
int Vect_write_dblinks(struct Map_info *);
|
|
-struct field_info *Vect_default_field_info(struct Map_info *Map, int field,
|
|
|
|
- const char *field_name, int type);
|
|
|
|
-struct field_info *Vect_get_dblink(struct Map_info *Map, int link);
|
|
|
|
-struct field_info *Vect_get_field(struct Map_info *Map, int field);
|
|
|
|
-void Vect_set_db_updated(struct Map_info *Map);
|
|
|
|
-const char *Vect_get_column_names(struct Map_info *Map, int field);
|
|
|
|
-const char *Vect_get_column_types(struct Map_info *Map, int field);
|
|
|
|
-const char *Vect_get_column_names_types(struct Map_info *Map, int field);
|
|
|
|
-
|
|
|
|
- /* List of FID (feature ID) (integers) */
|
|
|
|
|
|
+struct field_info *Vect_default_field_info(struct Map_info *, int,
|
|
|
|
+ const char *, int);
|
|
|
|
+struct field_info *Vect_get_dblink(struct Map_info *, int);
|
|
|
|
+struct field_info *Vect_get_field(struct Map_info *, int );
|
|
|
|
+void Vect_set_db_updated(struct Map_info *);
|
|
|
|
+const char *Vect_get_column_names(struct Map_info *, int);
|
|
|
|
+const char *Vect_get_column_types(struct Map_info *, int);
|
|
|
|
+const char *Vect_get_column_names_types(struct Map_info *, int);
|
|
|
|
+
|
|
|
|
+/* List of FID (feature ID) (integers) */
|
|
struct ilist *Vect_new_list(void);
|
|
struct ilist *Vect_new_list(void);
|
|
int Vect_list_append(struct ilist *, int);
|
|
int Vect_list_append(struct ilist *, int);
|
|
int Vect_list_append_list(struct ilist *, struct ilist *);
|
|
int Vect_list_append_list(struct ilist *, struct ilist *);
|
|
@@ -98,7 +100,7 @@ int Vect_val_in_list(struct ilist *, int);
|
|
int Vect_reset_list(struct ilist *);
|
|
int Vect_reset_list(struct ilist *);
|
|
int Vect_destroy_list(struct ilist *);
|
|
int Vect_destroy_list(struct ilist *);
|
|
|
|
|
|
- /* Bounding box (MBR) */
|
|
|
|
|
|
+/* Bounding box (MBR) */
|
|
int Vect_point_in_box(double, double, double, BOUND_BOX *);
|
|
int Vect_point_in_box(double, double, double, BOUND_BOX *);
|
|
int Vect_box_overlap(BOUND_BOX *, BOUND_BOX *);
|
|
int Vect_box_overlap(BOUND_BOX *, BOUND_BOX *);
|
|
int Vect_box_copy(BOUND_BOX *, BOUND_BOX *);
|
|
int Vect_box_copy(BOUND_BOX *, BOUND_BOX *);
|
|
@@ -106,14 +108,14 @@ int Vect_box_extend(BOUND_BOX *, BOUND_BOX *);
|
|
int Vect_box_clip(double *, double *, double *, double *, BOUND_BOX *);
|
|
int Vect_box_clip(double *, double *, double *, double *, BOUND_BOX *);
|
|
int Vect_region_box(struct Cell_head *, BOUND_BOX *);
|
|
int Vect_region_box(struct Cell_head *, BOUND_BOX *);
|
|
|
|
|
|
- /* Spatial index */
|
|
|
|
|
|
+/* Spatial index */
|
|
void Vect_spatial_index_init(SPATIAL_INDEX *);
|
|
void Vect_spatial_index_init(SPATIAL_INDEX *);
|
|
void Vect_spatial_index_destroy(SPATIAL_INDEX *);
|
|
void Vect_spatial_index_destroy(SPATIAL_INDEX *);
|
|
void Vect_spatial_index_add_item(SPATIAL_INDEX *, int, BOUND_BOX *);
|
|
void Vect_spatial_index_add_item(SPATIAL_INDEX *, int, BOUND_BOX *);
|
|
void Vect_spatial_index_del_item(SPATIAL_INDEX *, int);
|
|
void Vect_spatial_index_del_item(SPATIAL_INDEX *, int);
|
|
int Vect_spatial_index_select(SPATIAL_INDEX *, BOUND_BOX *, struct ilist *);
|
|
int Vect_spatial_index_select(SPATIAL_INDEX *, BOUND_BOX *, struct ilist *);
|
|
|
|
|
|
- /* Category index */
|
|
|
|
|
|
+/* Category index */
|
|
int Vect_cidx_get_num_fields(struct Map_info *);
|
|
int Vect_cidx_get_num_fields(struct Map_info *);
|
|
int Vect_cidx_get_field_number(struct Map_info *, int);
|
|
int Vect_cidx_get_field_number(struct Map_info *, int);
|
|
int Vect_cidx_get_field_index(struct Map_info *, int);
|
|
int Vect_cidx_get_field_index(struct Map_info *, int);
|
|
@@ -132,7 +134,7 @@ int Vect_cidx_save(struct Map_info *);
|
|
int Vect_cidx_open(struct Map_info *, int);
|
|
int Vect_cidx_open(struct Map_info *, int);
|
|
|
|
|
|
|
|
|
|
- /* Set/get Map header info */
|
|
|
|
|
|
+/* Set/get map header info */
|
|
int Vect_read_header(struct Map_info *);
|
|
int Vect_read_header(struct Map_info *);
|
|
int Vect_write_header(struct Map_info *);
|
|
int Vect_write_header(struct Map_info *);
|
|
const char *Vect_get_name(struct Map_info *);
|
|
const char *Vect_get_name(struct Map_info *);
|
|
@@ -162,7 +164,7 @@ double Vect_get_thresh(struct Map_info *);
|
|
int Vect_get_constraint_box(struct Map_info *, BOUND_BOX *);
|
|
int Vect_get_constraint_box(struct Map_info *, BOUND_BOX *);
|
|
|
|
|
|
|
|
|
|
- /* Get map level 2 informations */
|
|
|
|
|
|
+/* Get map level 2 informations */
|
|
int Vect_level(struct Map_info *);
|
|
int Vect_level(struct Map_info *);
|
|
int Vect_get_num_nodes(struct Map_info *);
|
|
int Vect_get_num_nodes(struct Map_info *);
|
|
int Vect_get_num_primitives(struct Map_info *, int);
|
|
int Vect_get_num_primitives(struct Map_info *, int);
|
|
@@ -175,15 +177,14 @@ int Vect_get_area_box(struct Map_info *, int, BOUND_BOX *);
|
|
int Vect_get_isle_box(struct Map_info *, int, BOUND_BOX *);
|
|
int Vect_get_isle_box(struct Map_info *, int, BOUND_BOX *);
|
|
int Vect_get_map_box(struct Map_info *, BOUND_BOX *);
|
|
int Vect_get_map_box(struct Map_info *, BOUND_BOX *);
|
|
int V__map_overlap(struct Map_info *, double, double, double, double);
|
|
int V__map_overlap(struct Map_info *, double, double, double, double);
|
|
-
|
|
|
|
void Vect_set_release_support(struct Map_info *);
|
|
void Vect_set_release_support(struct Map_info *);
|
|
void Vect_set_category_index_update(struct Map_info *);
|
|
void Vect_set_category_index_update(struct Map_info *);
|
|
|
|
|
|
- /* Set/get fatal error behaviour */
|
|
|
|
|
|
+/* Set/get fatal error behaviour */
|
|
int Vect_set_fatal_error(int);
|
|
int Vect_set_fatal_error(int);
|
|
int Vect_get_fatal_error();
|
|
int Vect_get_fatal_error();
|
|
|
|
|
|
- /* Open/close/rewind/set_constraints for map */
|
|
|
|
|
|
+/* Open/close/rewind/set_constraints for map */
|
|
int Vect_check_input_output_name(const char *, const char *, int);
|
|
int Vect_check_input_output_name(const char *, const char *, int);
|
|
int Vect_legal_filename(const char *);
|
|
int Vect_legal_filename(const char *);
|
|
int Vect_set_open_level(int);
|
|
int Vect_set_open_level(int);
|
|
@@ -194,7 +195,7 @@ int Vect_open_update(struct Map_info *, const char *, const char *);
|
|
int Vect_open_update_head(struct Map_info *, const char *, const char *);
|
|
int Vect_open_update_head(struct Map_info *, const char *, const char *);
|
|
int Vect_copy_head_data(struct Map_info *, struct Map_info *);
|
|
int Vect_copy_head_data(struct Map_info *, struct Map_info *);
|
|
int Vect_build(struct Map_info *, FILE *);
|
|
int Vect_build(struct Map_info *, FILE *);
|
|
-int Vect_get_built(struct Map_info *Map);
|
|
|
|
|
|
+int Vect_get_built(struct Map_info *);
|
|
int Vect_build_partial(struct Map_info *, int, FILE *);
|
|
int Vect_build_partial(struct Map_info *, int, FILE *);
|
|
int Vect_set_constraint_region(struct Map_info *, double, double, double,
|
|
int Vect_set_constraint_region(struct Map_info *, double, double, double,
|
|
double, double, double);
|
|
double, double, double);
|
|
@@ -203,21 +204,22 @@ int Vect_remove_constraints(struct Map_info *);
|
|
int Vect_rewind(struct Map_info *);
|
|
int Vect_rewind(struct Map_info *);
|
|
int Vect_close(struct Map_info *);
|
|
int Vect_close(struct Map_info *);
|
|
|
|
|
|
- /* Read/write lines, nodes, areas */
|
|
|
|
- /* Level 1 and 2 */
|
|
|
|
|
|
+/* Read/write lines, nodes, areas */
|
|
|
|
+/* Level 1 and 2 */
|
|
int Vect_read_next_line(struct Map_info *, struct line_pnts *,
|
|
int Vect_read_next_line(struct Map_info *, struct line_pnts *,
|
|
struct line_cats *);
|
|
struct line_cats *);
|
|
-long Vect_write_line(struct Map_info *, int type, struct line_pnts *,
|
|
|
|
|
|
+long Vect_write_line(struct Map_info *, int, struct line_pnts *,
|
|
struct line_cats *);
|
|
struct line_cats *);
|
|
|
|
|
|
-int Vect_get_num_dblinks(struct Map_info *map);
|
|
|
|
|
|
+int Vect_get_num_dblinks(struct Map_info *);
|
|
|
|
|
|
- /* Level 2 only */
|
|
|
|
|
|
+/* Level 2 only */
|
|
int Vect_read_line(struct Map_info *, struct line_pnts *, struct line_cats *,
|
|
int Vect_read_line(struct Map_info *, struct line_pnts *, struct line_cats *,
|
|
int);
|
|
int);
|
|
int Vect_rewrite_line(struct Map_info *, int, int, struct line_pnts *,
|
|
int Vect_rewrite_line(struct Map_info *, int, int, struct line_pnts *,
|
|
struct line_cats *);
|
|
struct line_cats *);
|
|
int Vect_delete_line(struct Map_info *, int);
|
|
int Vect_delete_line(struct Map_info *, int);
|
|
|
|
+int Vect_restore_line(struct Map_info *, int, long);
|
|
|
|
|
|
int Vect_line_alive(struct Map_info *, int);
|
|
int Vect_line_alive(struct Map_info *, int);
|
|
int Vect_node_alive(struct Map_info *, int);
|
|
int Vect_node_alive(struct Map_info *, int);
|
|
@@ -225,6 +227,7 @@ int Vect_area_alive(struct Map_info *, int);
|
|
int Vect_isle_alive(struct Map_info *, int);
|
|
int Vect_isle_alive(struct Map_info *, int);
|
|
int Vect_get_line_nodes(struct Map_info *, int, int *, int *);
|
|
int Vect_get_line_nodes(struct Map_info *, int, int *, int *);
|
|
int Vect_get_line_areas(struct Map_info *, int, int *, int *);
|
|
int Vect_get_line_areas(struct Map_info *, int, int *, int *);
|
|
|
|
+long Vect_get_line_offset(const struct Map_info *, int);
|
|
|
|
|
|
int Vect_get_node_coor(struct Map_info *, int, double *, double *, double *);
|
|
int Vect_get_node_coor(struct Map_info *, int, double *, double *, double *);
|
|
int Vect_get_node_n_lines(struct Map_info *, int);
|
|
int Vect_get_node_n_lines(struct Map_info *, int);
|
|
@@ -244,20 +247,20 @@ int Vect_get_isle_boundaries(struct Map_info *, int, struct ilist *);
|
|
|
|
|
|
int Vect_get_centroid_area(struct Map_info *, int);
|
|
int Vect_get_centroid_area(struct Map_info *, int);
|
|
|
|
|
|
- /* Level 2 update only */
|
|
|
|
-int Vect_get_num_updated_lines(struct Map_info *map);
|
|
|
|
-int Vect_get_updated_line(struct Map_info *map, int idx);
|
|
|
|
-int Vect_get_num_updated_nodes(struct Map_info *map);
|
|
|
|
-int Vect_get_updated_node(struct Map_info *map, int idx);
|
|
|
|
|
|
+/* Level 2 update only */
|
|
|
|
+int Vect_get_num_updated_lines(struct Map_info *);
|
|
|
|
+int Vect_get_updated_line(struct Map_info *, int);
|
|
|
|
+int Vect_get_num_updated_nodes(struct Map_info *);
|
|
|
|
+int Vect_get_updated_node(struct Map_info *, int);
|
|
|
|
|
|
- /* History */
|
|
|
|
-int Vect_hist_command(struct Map_info *Map);
|
|
|
|
-int Vect_hist_write(struct Map_info *Map, const char *str);
|
|
|
|
-int Vect_hist_copy(struct Map_info *In, struct Map_info *Out);
|
|
|
|
-void Vect_hist_rewind(struct Map_info *Map);
|
|
|
|
-char *Vect_hist_read(char *s, int size, struct Map_info *Map);
|
|
|
|
|
|
+/* History */
|
|
|
|
+int Vect_hist_command(struct Map_info *);
|
|
|
|
+int Vect_hist_write(struct Map_info *, const char *);
|
|
|
|
+int Vect_hist_copy(struct Map_info *, struct Map_info *);
|
|
|
|
+void Vect_hist_rewind(struct Map_info *);
|
|
|
|
+char *Vect_hist_read(char *, int, struct Map_info *);
|
|
|
|
|
|
- /* Selecting features */
|
|
|
|
|
|
+/* Selecting features */
|
|
int Vect_select_lines_by_box(struct Map_info *, BOUND_BOX *, int,
|
|
int Vect_select_lines_by_box(struct Map_info *, BOUND_BOX *, int,
|
|
struct ilist *);
|
|
struct ilist *);
|
|
int Vect_select_areas_by_box(struct Map_info *, BOUND_BOX *, struct ilist *);
|
|
int Vect_select_areas_by_box(struct Map_info *, BOUND_BOX *, struct ilist *);
|
|
@@ -275,7 +278,7 @@ int Vect_select_lines_by_polygon(struct Map_info *, struct line_pnts *, int,
|
|
int Vect_select_areas_by_polygon(struct Map_info *, struct line_pnts *, int,
|
|
int Vect_select_areas_by_polygon(struct Map_info *, struct line_pnts *, int,
|
|
struct line_pnts **, struct ilist *);
|
|
struct line_pnts **, struct ilist *);
|
|
|
|
|
|
- /* Analysis */
|
|
|
|
|
|
+/* Analysis */
|
|
int Vect_point_in_area(struct Map_info *, int, double, double);
|
|
int Vect_point_in_area(struct Map_info *, int, double, double);
|
|
int Vect_tin_get_z(struct Map_info *, double, double, double *, double *,
|
|
int Vect_tin_get_z(struct Map_info *, double, double, double *, double *,
|
|
double *);
|
|
double *);
|
|
@@ -292,7 +295,7 @@ int Vect_point_in_poly(double, double, struct line_pnts *);
|
|
int Vect_point_in_area_outer_ring(double, double, struct Map_info *, int);
|
|
int Vect_point_in_area_outer_ring(double, double, struct Map_info *, int);
|
|
int Vect_point_in_island(double, double, struct Map_info *, int);
|
|
int Vect_point_in_island(double, double, struct Map_info *, int);
|
|
|
|
|
|
- /* Cleaning */
|
|
|
|
|
|
+/* Cleaning */
|
|
void Vect_break_lines(struct Map_info *, int, struct Map_info *, FILE *);
|
|
void Vect_break_lines(struct Map_info *, int, struct Map_info *, FILE *);
|
|
int Vect_break_lines_list(struct Map_info *, struct ilist *, struct ilist *,
|
|
int Vect_break_lines_list(struct Map_info *, struct ilist *, struct ilist *,
|
|
int, struct Map_info *, FILE *);
|
|
int, struct Map_info *, FILE *);
|
|
@@ -318,7 +321,7 @@ int Vect_remove_small_areas(struct Map_info *, double, struct Map_info *,
|
|
int Vect_clean_small_angles_at_nodes(struct Map_info *, int,
|
|
int Vect_clean_small_angles_at_nodes(struct Map_info *, int,
|
|
struct Map_info *, FILE *);
|
|
struct Map_info *, FILE *);
|
|
|
|
|
|
- /* Overlay */
|
|
|
|
|
|
+/* Overlay */
|
|
int Vect_overlay_str_to_operator(const char *);
|
|
int Vect_overlay_str_to_operator(const char *);
|
|
int Vect_overlay(struct Map_info *, int, struct ilist *, struct ilist *,
|
|
int Vect_overlay(struct Map_info *, int, struct ilist *, struct ilist *,
|
|
struct Map_info *, int, struct ilist *, struct ilist *,
|
|
struct Map_info *, int, struct ilist *, struct ilist *,
|
|
@@ -328,14 +331,14 @@ int Vect_overlay_and(struct Map_info *, int, struct ilist *,
|
|
struct ilist *, struct ilist *,
|
|
struct ilist *, struct ilist *,
|
|
struct Map_info *);
|
|
struct Map_info *);
|
|
|
|
|
|
- /* Graph */
|
|
|
|
|
|
+/* Graph */
|
|
void Vect_graph_init(GRAPH *, int);
|
|
void Vect_graph_init(GRAPH *, int);
|
|
void Vect_graph_build(GRAPH *);
|
|
void Vect_graph_build(GRAPH *);
|
|
void Vect_graph_add_edge(GRAPH *, int, int, double, int);
|
|
void Vect_graph_add_edge(GRAPH *, int, int, double, int);
|
|
void Vect_graph_set_node_costs(GRAPH *, int, double);
|
|
void Vect_graph_set_node_costs(GRAPH *, int, double);
|
|
int Vect_graph_shortest_path(GRAPH *, int, int, struct ilist *, double *);
|
|
int Vect_graph_shortest_path(GRAPH *, int, int, struct ilist *, double *);
|
|
|
|
|
|
- /* Network (graph) */
|
|
|
|
|
|
+/* Network (graph) */
|
|
int Vect_net_build_graph(struct Map_info *, int, int, int, const char *,
|
|
int Vect_net_build_graph(struct Map_info *, int, int, int, const char *,
|
|
const char *, const char *, int, int);
|
|
const char *, const char *, int, int);
|
|
int Vect_net_shortest_path(struct Map_info *, int, int, struct ilist *,
|
|
int Vect_net_shortest_path(struct Map_info *, int, int, struct ilist *,
|
|
@@ -351,7 +354,7 @@ int Vect_net_shortest_path_coor(struct Map_info *, double, double, double,
|
|
struct line_pnts *, struct line_pnts *,
|
|
struct line_pnts *, struct line_pnts *,
|
|
double *, double *);
|
|
double *, double *);
|
|
|
|
|
|
- /* Miscellaneous */
|
|
|
|
|
|
+/* Miscellaneous */
|
|
int Vect_topo_dump(struct Map_info *, FILE *);
|
|
int Vect_topo_dump(struct Map_info *, FILE *);
|
|
double Vect_points_distance(double, double, double, double, double, double,
|
|
double Vect_points_distance(double, double, double, double, double, double,
|
|
int);
|
|
int);
|
|
@@ -364,7 +367,7 @@ int Vect_copy_table(struct Map_info *, struct Map_info *, int, int,
|
|
int Vect_copy_table_by_cats(struct Map_info *, struct Map_info *, int, int,
|
|
int Vect_copy_table_by_cats(struct Map_info *, struct Map_info *, int, int,
|
|
const char *, int, int *, int);
|
|
const char *, int, int *, int);
|
|
int Vect_copy_tables(struct Map_info *, struct Map_info *, int);
|
|
int Vect_copy_tables(struct Map_info *, struct Map_info *, int);
|
|
-int Vect_delete(const char *map);
|
|
|
|
|
|
+int Vect_delete(const char *);
|
|
int Vect_segment_intersection(double, double, double, double, double, double,
|
|
int Vect_segment_intersection(double, double, double, double, double, double,
|
|
double, double, double, double, double, double,
|
|
double, double, double, double, double, double,
|
|
double *, double *, double *, double *,
|
|
double *, double *, double *, double *,
|
|
@@ -375,11 +378,13 @@ int Vect_line_intersection(struct line_pnts *, struct line_pnts *,
|
|
int Vect_line_check_intersection(struct line_pnts *, struct line_pnts *, int);
|
|
int Vect_line_check_intersection(struct line_pnts *, struct line_pnts *, int);
|
|
char *Vect_subst_var(const char *str, struct Map_info *Map);
|
|
char *Vect_subst_var(const char *str, struct Map_info *Map);
|
|
|
|
|
|
-/* Internal functions, MUST NOT be used in modules */
|
|
|
|
|
|
+/*
|
|
|
|
+ * Internal functions, MUST NOT be used in modules
|
|
|
|
+ */
|
|
int Vect_print_header(struct Map_info *);
|
|
int Vect_print_header(struct Map_info *);
|
|
int Vect__init_head(struct Map_info *);
|
|
int Vect__init_head(struct Map_info *);
|
|
|
|
|
|
- /* Open/close/rewind map */
|
|
|
|
|
|
+/* Open/close/rewind map */
|
|
int Vect_coor_info(struct Map_info *, struct Coor_info *);
|
|
int Vect_coor_info(struct Map_info *, struct Coor_info *);
|
|
const char *Vect_maptype_info(struct Map_info *);
|
|
const char *Vect_maptype_info(struct Map_info *);
|
|
int Vect_open_topo(struct Map_info *, int);
|
|
int Vect_open_topo(struct Map_info *, int);
|
|
@@ -404,7 +409,7 @@ int V1_close_nat(struct Map_info *);
|
|
int V1_close_ogr(struct Map_info *);
|
|
int V1_close_ogr(struct Map_info *);
|
|
int V2_close_ogr(struct Map_info *);
|
|
int V2_close_ogr(struct Map_info *);
|
|
|
|
|
|
- /* Read/write lines */
|
|
|
|
|
|
+/* Read/write lines */
|
|
int V1_read_line_nat(struct Map_info *, struct line_pnts *,
|
|
int V1_read_line_nat(struct Map_info *, struct line_pnts *,
|
|
struct line_cats *, long);
|
|
struct line_cats *, long);
|
|
int V1_read_next_line_nat(struct Map_info *, struct line_pnts *,
|
|
int V1_read_next_line_nat(struct Map_info *, struct line_pnts *,
|
|
@@ -421,6 +426,8 @@ int V2_read_next_line_ogr(struct Map_info *, struct line_pnts *,
|
|
struct line_cats *);
|
|
struct line_cats *);
|
|
int V1_delete_line_nat(struct Map_info *, long);
|
|
int V1_delete_line_nat(struct Map_info *, long);
|
|
int V2_delete_line_nat(struct Map_info *, int);
|
|
int V2_delete_line_nat(struct Map_info *, int);
|
|
|
|
+int V1_restore_line_nat(struct Map_info *, long);
|
|
|
|
+int V2_restore_line_nat(struct Map_info *, int, long);
|
|
long V1_write_line_nat(struct Map_info *, int type, struct line_pnts *,
|
|
long V1_write_line_nat(struct Map_info *, int type, struct line_pnts *,
|
|
struct line_cats *);
|
|
struct line_cats *);
|
|
long V2_write_line_nat(struct Map_info *, int type, struct line_pnts *,
|
|
long V2_write_line_nat(struct Map_info *, int type, struct line_pnts *,
|
|
@@ -447,4 +454,4 @@ int Vect_attach_isle(struct Map_info *, int);
|
|
int Vect_attach_isles(struct Map_info *, BOUND_BOX *);
|
|
int Vect_attach_isles(struct Map_info *, BOUND_BOX *);
|
|
int Vect_attach_centroids(struct Map_info *, BOUND_BOX *);
|
|
int Vect_attach_centroids(struct Map_info *, BOUND_BOX *);
|
|
|
|
|
|
-#endif
|
|
|
|
|
|
+#endif /* GRASS_VECT_H */
|