From 962e0b766d699d3dd6e680d111837a383020d261 Mon Sep 17 00:00:00 2001 From: Arohan Ajit Date: Wed, 22 Jan 2025 08:22:30 -0500 Subject: [PATCH 1/5] update --- gui/wxpython/vdigit/wxdigit.py | 158 ++++++++++++++++++++++++++++++--- 1 file changed, 146 insertions(+), 12 deletions(-) diff --git a/gui/wxpython/vdigit/wxdigit.py b/gui/wxpython/vdigit/wxdigit.py index b4b7b0dfd7b..862b747481b 100644 --- a/gui/wxpython/vdigit/wxdigit.py +++ b/gui/wxpython/vdigit/wxdigit.py @@ -26,22 +26,156 @@ @author Martin Landa """ -import grass.script.core as grass - -from grass.pydispatch.signal import Signal +import os +import sys +from ctypes import byref, c_double, c_int, create_string_buffer, pointer -from core.gcmd import GError +import grass.script.core as grass from core.debug import Debug +from core.gcmd import GError from core.settings import UserSettings +from grass.lib.dbmi import ( + DB_C_TYPE_STRING, + DB_NEXT, + DB_OK, + DB_SEQUENTIAL, + db_append_string, + db_close_database_shutdown_driver, + db_convert_column_value_to_string, + db_execute_immediate, + db_fetch, + db_get_column_name, + db_get_column_sqltype, + db_get_column_value, + db_get_cursor_table, + db_get_string, + db_get_table_column, + db_get_table_number_of_columns, + db_init_handle, + db_init_string, + db_open_database, + db_open_select_cursor, + db_set_handle, + db_set_string, + db_shutdown_driver, + db_sqltype_to_Ctype, + db_start_driver, + db_test_value_isnull, + dbCursor, + dbHandle, + dbString, +) +from grass.lib.gis import ( + GMAPSET_MAX, + GNAME_MAX, + G_find_vector2, + G_free, + G_name_is_fully_qualified, +) +from grass.lib.vector import ( + GV_AREA, + GV_BOUNDARY, + GV_CENTROID, + GV_LINE, + GV_LINES, + GV_POINT, + GV_POINTS, + GV_TOPO_PSEUDO, + WITHOUT_Z, + Map_info, + Vect_append_point, + Vect_area_alive, + Vect_area_perimeter, + Vect_break_lines_list, + Vect_cat_set, + Vect_cidx_get_cat_by_index, + Vect_cidx_get_field_number, + Vect_cidx_get_num_cats_by_index, + Vect_cidx_get_num_fields, + Vect_close, + Vect_delete_line, + Vect_destroy_boxlist, + Vect_destroy_cats_struct, + Vect_destroy_line_struct, + Vect_destroy_list, + Vect_field_cat_del, + Vect_get_area_area, + Vect_get_area_boundaries, + Vect_get_area_centroid, + Vect_get_area_points, + Vect_get_centroid_area, + Vect_get_dblink, + Vect_get_field, + Vect_get_finfo_geometry_type, + Vect_get_finfo_topology_info, + Vect_get_line_areas, + Vect_get_line_box, + Vect_get_line_type, + Vect_get_mapset, + Vect_get_name, + Vect_get_num_dblinks, + Vect_get_num_lines, + Vect_get_num_updated_lines, + Vect_get_point_in_area, + Vect_get_updated_line, + Vect_get_updated_line_offset, + Vect_is_3d, + Vect_line_alive, + Vect_line_check_intersection, + Vect_line_length, + Vect_list_append, + Vect_new_boxlist, + Vect_new_cats_struct, + Vect_new_line_struct, + Vect_new_list, + Vect_open_old, + Vect_points_distance, + Vect_read_line, + Vect_reset_cats, + Vect_reset_line, + Vect_reset_updated, + Vect_restore_line, + Vect_rewrite_line, + Vect_select_lines_by_box, + Vect_select_lines_by_polygon, + Vect_set_updated, + Vect_snap_lines_list, + Vect_write_line, + bound_box, +) +from grass.lib.vedit import ( + NO_SNAP, + SNAP, + SNAPVERTEX, + Vedit_add_vertex, + Vedit_bulk_labeling, + Vedit_chtype_lines, + Vedit_connect_lines, + Vedit_copy_lines, + Vedit_delete_area_centroid, + Vedit_delete_lines, + Vedit_flip_lines, + Vedit_merge_lines, + Vedit_move_lines, + Vedit_move_vertex, + Vedit_remove_vertex, + Vedit_select_by_query, + Vedit_snap_line, + Vedit_split_lines, +) +from grass.pydispatch.signal import Signal from vdigit.wxdisplay import DisplayDriver, GetLastError -try: - from grass.lib.gis import * - from grass.lib.vector import * - from grass.lib.vedit import * - from grass.lib.dbmi import * -except (ImportError, OSError, TypeError) as e: - print("wxdigit.py: {}".format(e), file=sys.stderr) +# Define missing constants +QUERY_UNKNOWN = 0 +QUERY_LENGTH = 1 +QUERY_DANGLE = 2 + +none = None # Python's None for C compatibility +ret = 0 # Initialize return value +line = Vect_new_line_struct() # Create new line structure +changeset = [] # Initialize changeset list +new_bboxs = [] # Initialize new bboxes list class VDigitError: @@ -1943,7 +2077,7 @@ def _addFeature(self, ftype, coords, layer, cat, snap, threshold): ) if newc < 0: self._error.WriteLine() - return len(fids, fids) + return len(fids), fids fids.append(newc) Vect_destroy_line_struct(bpoints) From 237db3d78be509ffa0f34c752f098936b0bc102d Mon Sep 17 00:00:00 2001 From: Arohan Ajit Date: Wed, 22 Jan 2025 08:23:20 -0500 Subject: [PATCH 2/5] update --- .flake8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.flake8 b/.flake8 index 99c6e425717..03013aa973a 100644 --- a/.flake8 +++ b/.flake8 @@ -25,7 +25,7 @@ per-file-ignores = gui/wxpython/image2target/g.gui.image2target.py: E501 gui/wxpython/photo2image/g.gui.photo2image.py: E501 gui/wxpython/psmap/*: E501 - gui/wxpython/vdigit/*: E722, F405, F403 + gui/wxpython/vdigit/*: F405, F403 gui/wxpython/animation/g.gui.animation.py: E501 gui/wxpython/tplot/g.gui.tplot.py: E501 gui/wxpython/iclass/g.gui.iclass.py: E501 From 2eda914a21d5734c9c322b33e0bc256d96be9496 Mon Sep 17 00:00:00 2001 From: Arohan Ajit Date: Thu, 23 Jan 2025 23:42:05 -0500 Subject: [PATCH 3/5] update --- gui/wxpython/vdigit/wxdigit.py | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/gui/wxpython/vdigit/wxdigit.py b/gui/wxpython/vdigit/wxdigit.py index 862b747481b..0231ff9454b 100644 --- a/gui/wxpython/vdigit/wxdigit.py +++ b/gui/wxpython/vdigit/wxdigit.py @@ -162,20 +162,14 @@ Vedit_select_by_query, Vedit_snap_line, Vedit_split_lines, + QUERY_UNKNOWN, + QUERY_LENGTH, + QUERY_DANGLE, ) from grass.pydispatch.signal import Signal from vdigit.wxdisplay import DisplayDriver, GetLastError -# Define missing constants -QUERY_UNKNOWN = 0 -QUERY_LENGTH = 1 -QUERY_DANGLE = 2 - none = None # Python's None for C compatibility -ret = 0 # Initialize return value -line = Vect_new_line_struct() # Create new line structure -changeset = [] # Initialize changeset list -new_bboxs = [] # Initialize new bboxes list class VDigitError: @@ -1020,7 +1014,7 @@ def MoveSelectedLines(self, move): if nlines > 0 and self._settings["breakLines"]: for i in range(1, nlines): - self._breakLineAtIntersection(nlines + i, None, changeset) + self._breakLineAtIntersection(nlines + i, None) if nlines > 0: self._addChangeset() @@ -1220,6 +1214,7 @@ def EditLine(self, line, coords): self.poMapInfo, line, ltype, self.poPoints, self.poCats ) if newline > 0 and self.emit_signals: + new_bboxs = [self._getBbox(newline)] new_areas_cats = [self._getLineAreasCategories(newline)] if newline > 0 and self._settings["breakLines"]: @@ -1620,7 +1615,7 @@ def GetLineLength(self, line): ltype = Vect_read_line(self.poMapInfo, self.poPoints, None, line) if ltype < 0: self._error.ReadLine(line) - return ret + return -1 length = -1 if ltype & GV_LINES: # lines & boundaries @@ -1641,8 +1636,8 @@ def GetAreaSize(self, centroid): ltype = Vect_read_line(self.poMapInfo, None, None, centroid) if ltype < 0: - self._error.ReadLine(line) - return ret + self._error.ReadLine(centroid) + return -1 if ltype != GV_CENTROID: return -1 @@ -1670,8 +1665,8 @@ def GetAreaPerimeter(self, centroid): ltype = Vect_read_line(self.poMapInfo, None, None, centroid) if ltype < 0: - self._error.ReadLine(line) - return ret + self._error.ReadLine(centroid) + return -1 if ltype != GV_CENTROID: return -1 From fea9ef6e7a1f63023ec5a2040f398aae89c04785 Mon Sep 17 00:00:00 2001 From: Arohan Ajit Date: Fri, 24 Jan 2025 12:34:10 -0500 Subject: [PATCH 4/5] update --- gui/wxpython/vdigit/wxdigit.py | 272 +++++++++++++++++---------------- 1 file changed, 137 insertions(+), 135 deletions(-) diff --git a/gui/wxpython/vdigit/wxdigit.py b/gui/wxpython/vdigit/wxdigit.py index 0231ff9454b..a58136c23b2 100644 --- a/gui/wxpython/vdigit/wxdigit.py +++ b/gui/wxpython/vdigit/wxdigit.py @@ -34,143 +34,145 @@ from core.debug import Debug from core.gcmd import GError from core.settings import UserSettings -from grass.lib.dbmi import ( - DB_C_TYPE_STRING, - DB_NEXT, - DB_OK, - DB_SEQUENTIAL, - db_append_string, - db_close_database_shutdown_driver, - db_convert_column_value_to_string, - db_execute_immediate, - db_fetch, - db_get_column_name, - db_get_column_sqltype, - db_get_column_value, - db_get_cursor_table, - db_get_string, - db_get_table_column, - db_get_table_number_of_columns, - db_init_handle, - db_init_string, - db_open_database, - db_open_select_cursor, - db_set_handle, - db_set_string, - db_shutdown_driver, - db_sqltype_to_Ctype, - db_start_driver, - db_test_value_isnull, - dbCursor, - dbHandle, - dbString, -) -from grass.lib.gis import ( - GMAPSET_MAX, - GNAME_MAX, - G_find_vector2, - G_free, - G_name_is_fully_qualified, -) -from grass.lib.vector import ( - GV_AREA, - GV_BOUNDARY, - GV_CENTROID, - GV_LINE, - GV_LINES, - GV_POINT, - GV_POINTS, - GV_TOPO_PSEUDO, - WITHOUT_Z, - Map_info, - Vect_append_point, - Vect_area_alive, - Vect_area_perimeter, - Vect_break_lines_list, - Vect_cat_set, - Vect_cidx_get_cat_by_index, - Vect_cidx_get_field_number, - Vect_cidx_get_num_cats_by_index, - Vect_cidx_get_num_fields, - Vect_close, - Vect_delete_line, - Vect_destroy_boxlist, - Vect_destroy_cats_struct, - Vect_destroy_line_struct, - Vect_destroy_list, - Vect_field_cat_del, - Vect_get_area_area, - Vect_get_area_boundaries, - Vect_get_area_centroid, - Vect_get_area_points, - Vect_get_centroid_area, - Vect_get_dblink, - Vect_get_field, - Vect_get_finfo_geometry_type, - Vect_get_finfo_topology_info, - Vect_get_line_areas, - Vect_get_line_box, - Vect_get_line_type, - Vect_get_mapset, - Vect_get_name, - Vect_get_num_dblinks, - Vect_get_num_lines, - Vect_get_num_updated_lines, - Vect_get_point_in_area, - Vect_get_updated_line, - Vect_get_updated_line_offset, - Vect_is_3d, - Vect_line_alive, - Vect_line_check_intersection, - Vect_line_length, - Vect_list_append, - Vect_new_boxlist, - Vect_new_cats_struct, - Vect_new_line_struct, - Vect_new_list, - Vect_open_old, - Vect_points_distance, - Vect_read_line, - Vect_reset_cats, - Vect_reset_line, - Vect_reset_updated, - Vect_restore_line, - Vect_rewrite_line, - Vect_select_lines_by_box, - Vect_select_lines_by_polygon, - Vect_set_updated, - Vect_snap_lines_list, - Vect_write_line, - bound_box, -) -from grass.lib.vedit import ( - NO_SNAP, - SNAP, - SNAPVERTEX, - Vedit_add_vertex, - Vedit_bulk_labeling, - Vedit_chtype_lines, - Vedit_connect_lines, - Vedit_copy_lines, - Vedit_delete_area_centroid, - Vedit_delete_lines, - Vedit_flip_lines, - Vedit_merge_lines, - Vedit_move_lines, - Vedit_move_vertex, - Vedit_remove_vertex, - Vedit_select_by_query, - Vedit_snap_line, - Vedit_split_lines, - QUERY_UNKNOWN, - QUERY_LENGTH, - QUERY_DANGLE, -) + +try: + from grass.lib.dbmi import ( + DB_C_TYPE_STRING, + DB_NEXT, + DB_OK, + DB_SEQUENTIAL, + db_append_string, + db_close_database_shutdown_driver, + db_convert_column_value_to_string, + db_execute_immediate, + db_fetch, + db_get_column_name, + db_get_column_sqltype, + db_get_column_value, + db_get_cursor_table, + db_get_string, + db_get_table_column, + db_get_table_number_of_columns, + db_init_handle, + db_init_string, + db_open_database, + db_open_select_cursor, + db_set_handle, + db_set_string, + db_shutdown_driver, + db_sqltype_to_Ctype, + db_start_driver, + db_test_value_isnull, + dbCursor, + dbHandle, + dbString, + ) + from grass.lib.gis import ( + GMAPSET_MAX, + GNAME_MAX, + G_find_vector2, + G_free, + G_name_is_fully_qualified, + ) + from grass.lib.vector import ( + GV_AREA, + GV_BOUNDARY, + GV_CENTROID, + GV_LINE, + GV_LINES, + GV_POINT, + GV_POINTS, + GV_TOPO_PSEUDO, + WITHOUT_Z, + Map_info, + Vect_append_point, + Vect_area_alive, + Vect_area_perimeter, + Vect_break_lines_list, + Vect_cat_set, + Vect_cidx_get_cat_by_index, + Vect_cidx_get_field_number, + Vect_cidx_get_num_cats_by_index, + Vect_cidx_get_num_fields, + Vect_close, + Vect_delete_line, + Vect_destroy_boxlist, + Vect_destroy_cats_struct, + Vect_destroy_line_struct, + Vect_destroy_list, + Vect_field_cat_del, + Vect_get_area_area, + Vect_get_area_boundaries, + Vect_get_area_centroid, + Vect_get_area_points, + Vect_get_centroid_area, + Vect_get_dblink, + Vect_get_field, + Vect_get_finfo_geometry_type, + Vect_get_finfo_topology_info, + Vect_get_line_areas, + Vect_get_line_box, + Vect_get_line_type, + Vect_get_mapset, + Vect_get_name, + Vect_get_num_dblinks, + Vect_get_num_lines, + Vect_get_num_updated_lines, + Vect_get_point_in_area, + Vect_get_updated_line, + Vect_get_updated_line_offset, + Vect_is_3d, + Vect_line_alive, + Vect_line_check_intersection, + Vect_line_length, + Vect_list_append, + Vect_new_boxlist, + Vect_new_cats_struct, + Vect_new_line_struct, + Vect_new_list, + Vect_open_old, + Vect_points_distance, + Vect_read_line, + Vect_reset_cats, + Vect_reset_line, + Vect_reset_updated, + Vect_restore_line, + Vect_rewrite_line, + Vect_select_lines_by_box, + Vect_select_lines_by_polygon, + Vect_set_updated, + Vect_snap_lines_list, + Vect_write_line, + bound_box, + ) + from grass.lib.vedit import ( + NO_SNAP, + SNAP, + SNAPVERTEX, + Vedit_add_vertex, + Vedit_bulk_labeling, + Vedit_chtype_lines, + Vedit_connect_lines, + Vedit_copy_lines, + Vedit_delete_area_centroid, + Vedit_delete_lines, + Vedit_flip_lines, + Vedit_merge_lines, + Vedit_move_lines, + Vedit_move_vertex, + Vedit_remove_vertex, + Vedit_select_by_query, + Vedit_snap_line, + Vedit_split_lines, + QUERY_UNKNOWN, + QUERY_LENGTH, + QUERY_DANGLE, + ) +except (ImportError, OSError, TypeError) as e: + print("wxdigit.py: {}".format(e), file=sys.stderr) from grass.pydispatch.signal import Signal from vdigit.wxdisplay import DisplayDriver, GetLastError -none = None # Python's None for C compatibility - class VDigitError: def __init__(self, parent): @@ -884,7 +886,7 @@ def _getCategories(self, ln_id): :return: None feature does not exist """ if not Vect_line_alive(self.poMapInfo, ln_id): - return none + return None poCats = Vect_new_cats_struct() if Vect_read_line(self.poMapInfo, None, poCats, ln_id) < 0: From 42c11c662ca783f2abd5f2b3a13c5f2f32df16f1 Mon Sep 17 00:00:00 2001 From: Arohan Ajit Date: Fri, 24 Jan 2025 15:21:14 -0500 Subject: [PATCH 5/5] update --- .DS_Store | Bin 0 -> 6148 bytes gui/wxpython/vdigit/main.py | 2 +- gui/wxpython/vdigit/wxdigit.py | 4 ++-- raster/.DS_Store | Bin 0 -> 6148 bytes 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 .DS_Store create mode 100644 raster/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a2120322ac33d503cdcdaff6729e6668364fbdcf GIT binary patch literal 6148 zcmeHLu}T9$5S=xrgrqQ~P2fOlB|jji#9j!NLW~KCka!^`0So26KpQ&+wYIQOu(wF9 zg}-27DF|rHG;(k+%XnZ~!&Qo2kxcrBCt#M5}L?%*(m0aKt;wFL|?PW#XO1 ztL<3k1IcW*juYM__p9R;`APQi2+40w17b))6V#TyWgUa(@B3|ze>uB`tYcbCtd5&aszc2wfO|Gsnw~c`RX`O`1*8J>e(Lgt&gpY rjf~eFgLbOGuPX2b7{kA+ literal 0 HcmV?d00001 diff --git a/gui/wxpython/vdigit/main.py b/gui/wxpython/vdigit/main.py index 852cb4d1ada..c98c496b177 100644 --- a/gui/wxpython/vdigit/main.py +++ b/gui/wxpython/vdigit/main.py @@ -15,7 +15,7 @@ """ try: - from vdigit.wxdigit import IVDigit, GV_LINES, CFUNCTYPE # noqa: F401 + from vdigit.wxdigit import IVDigit, GV_LINES # noqa: F401 haveVDigit = True errorMsg = "" diff --git a/gui/wxpython/vdigit/wxdigit.py b/gui/wxpython/vdigit/wxdigit.py index a58136c23b2..8f486e27005 100644 --- a/gui/wxpython/vdigit/wxdigit.py +++ b/gui/wxpython/vdigit/wxdigit.py @@ -87,7 +87,7 @@ Map_info, Vect_append_point, Vect_area_alive, - Vect_area_perimeter, + Vect_get_area_perimeter, Vect_break_lines_list, Vect_cat_set, Vect_cidx_get_cat_by_index, @@ -1680,7 +1680,7 @@ def GetAreaPerimeter(self, centroid): return -1 Vect_get_area_points(self.poMapInfo, area, self.poPoints) - perimeter = Vect_area_perimeter(self.poPoints) + perimeter = Vect_get_area_perimeter(self.poPoints) return perimeter diff --git a/raster/.DS_Store b/raster/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..034e2f30fa5befb35d2313541b89c5e2ae86de57 GIT binary patch literal 6148 zcmeHKy-veG4EB{u6j&<6z?dgMidYy!6`r6kKz~p>BwR$(Jr96*3toXo;2qdl*_fF5 ze0EEtv{G0AAzSi&7oVN;eTm|jh}>W~jfwh1)Ppj14lryHUT1AcM=iYQ!aYiw&^(*P z!-;Qro8d1qz|U@X7z2Kf6BK^YUpN-%snFoYHW*o8R==G;qg zOr)47R)Sc8I0*$xsM8k1NjU70`X!2$poEjt=ELdEPCFDAcE|mr;7%?Pw9yza2I>s# z$z`AG|JCmPzaC^)#(**KuNZLMbeIlsB(1HD!*Q*Rpx00q_NxTfA((_x3|}tAr_dm< XM?3*0ij^QN5c?4bG}vGa{3rvTUIb&$ literal 0 HcmV?d00001