wolfhece.PyVertexvectors
Author: HECE - University of Liege, Pierre Archambeau, Utashi Ciraane Docile Date: 2024
Copyright (c) 2024 University of Liege. All rights reserved.
This script and its content are protected by copyright law. Unauthorized copying or distribution of this file, via any medium, is strictly prohibited.
Module Contents
- class wolfhece.PyVertexvectors.Triangulation(fn='', pts=[], tri=[], idx: str = '', plotted: bool = True, mapviewer=None, need_for_wx: bool = False)[source]
Bases:
wolfhece.drawing_obj.Element_To_Draw
Base class of element to add into WolfMapViewer or another GUI
- get_mask(eps=1e-10)[source]
Teste si la surface de tous les triangles est positive
Retire les triangles problématiques
- saveas(fn='')[source]
- Binary ‘.TRI’ format on disk is, little endian :
int32 for number of points
int32 as 64 ou 32 for float64 or float32
VEC3 (float64 or float32) for points
int32 for number of triangles
VEC3 uint32 for triangles
- plot(sx=None, sy=None, xmin=None, ymin=None, xmax=None, ymax=None, size=None)[source]
Plot data in OpenGL context
- class wolfhece.PyVertexvectors.vectorproperties(lines: list[str] = [], parent: vector = None)[source]
Vector properties
- init_extra()[source]
Init extra properties –> not compatible with VB6, Fortran codes
Useful for Python UI, OpenGL legend, etc.
- set_extra(linesextra: list[float, float, int, float, str, bool] = None)[source]
Set extra properties
- save(f: io.TextIOWrapper)[source]
Save properties to opened file
Pay attention to the order of the lines and the format to be compatible with VB6, Fortran codes
- fill_property(props: wolfhece.PyParams.Wolf_Param = None, updateOGL: bool = True)[source]
Callback for the properties UI
When the ‘Apply’ button is pressed, this function is called
- destroyprop()[source]
Nullify the properties UI
Destroy has been called, so the UI is not visible anymore
- class wolfhece.PyVertexvectors.vector(lines: list = [], is2D=True, name='NoName', parentzone: zone = None, fromshapely=None)[source]
Objet de gestion d’informations vectorielles
Une instance ‘vector’ contient une liste de ‘wolfvertex’
- myvertices: list[wolfhece.PyVertex.wolfvertex][source]
- myprop: vectorproperties[source]
- get_normal_segments() numpy.ndarray [source]
Return the normals of each segment
The normals are oriented to the left
- get_bounds(grid: float = None)[source]
- Return tuple with :
(lower-left corner), (upper-right corner)
If you want [[xmin,xmax],[ymin,ymax]], use get_bounds_xx_yy() instead.
- get_bounds_xx_yy(grid: float = None)[source]
- Return tuple with :
(xmin,xmax), (ymin, ymax)
If you want [[lower-left corner],[upper-right corner]], use get_bounds() instead.
- asshapely_ls3d() shapely.geometry.LineString [source]
Conversion des coordonnées en Linestring Shapely
- asshapely_ls() shapely.geometry.LineString [source]
Conversion des coordonnées en Linestring Shapely
- asshapely_mp() shapely.geometry.MultiPoint [source]
Conversion des coordonnées en Multipoint Shapely
- asnparray()[source]
Conversion des coordonnées en Numpy array – en 2D
return : np.ndarray – shape = (nb_vert,2)
- asnparray3d()[source]
Conversion des coordonnées en Numpy array – en 3D
return : np.ndarray – shape = (nb_vert,3)
- prepare_shapely(prepare_shapely: bool = True)[source]
Conversion Linestring Shapely et rétention de l’objet afin d’éviter de multiples appel par ex. dans une boucle.
- Parameters:
prepare_shapely – Préparation de l’objet Shapely pour une utilisation optimisée - True par défaut - see https://shapely.readthedocs.io/en/stable/reference/shapely.prepare.html
- projectontrace(trace)[source]
Projection du vecteur sur une trace (type ‘vector’)
- Return :
Nouveau vecteur contenant les infos de position sur la trace et d’altitude (s,z)
- parallel_offset(distance=5.0, side='left')[source]
The distance parameter must be a positive float value.
The side parameter may be ‘left’ or ‘right’. Left and right are determined by following the direction of the given geometric points of the LineString.
- intersection(vec2: vector = None, eval_dist=False, norm=False, force_single=False)[source]
Calcul de l’intersection avec un autre vecteur
- Return :
le point d’intersection
la distance (optional) le long de ‘self’
Utilisation de Shapely
- add_vertex(addedvert: list[wolfhece.PyVertex.wolfvertex] | wolfhece.PyVertex.wolfvertex)[source]
Ajout d’un wolfvertex Le compteur est automatqiuement incrémenté
- add_vertices_from_array(xyz: numpy.ndarray)[source]
Ajout de vertices depuis une matrice numpy – shape = (nb_vert,2 ou 3)
- count()[source]
Retroune le nombre de vertices
For compatibility with older version of the code –> use ‘nbvertices’ property instead Must be removed in the future
- close_force()[source]
Force la fermeture du ‘vector’
Commence par vérifier si le premier point possède les mêmes coords que le dernier Si ce n’est pas le cas, on ajoute un wolfvertes
self.closed -> True
- verify_s_ascending()[source]
Vérifie que les points d’un vecteur sont énumérés par distances 2D croissantes
Utile notamment pour le traitement d’interpolation de sections en travers afin d’éviter une triangulation non valable suite à des débords
- insert_nearest_vert(x, y)[source]
Insertion d’un nouveau vertex au plus proche de la coordonnée (x,y) – en 2D
- find_minmax(only_firstlast: bool = False)[source]
Recherche l’extension spatiale du vecteur
- Parameters:
only_firstlast – si True, on ne recherche que les coordonnées du premier et du dernier vertex
- get_subpolygons()[source]
Return a list of polygons from the vector
If the vector has no interior, the list contains the whole vector as a polygon
- plot_legend(sx=None, sy=None, xmin=None, ymin=None, xmax=None, ymax=None, size=None)[source]
Plot OpenGL
Legend is an image texture
- plot_image(sx=None, sy=None, xmin=None, ymin=None, xmax=None, ymax=None, size=None)[source]
plot attached images
- fillgrid(gridto: wolfhece.CpGrid.CpGrid)[source]
Remplissage d’un CpGrid
- updatefromgrid(gridfrom: wolfhece.CpGrid.CpGrid)[source]
Mise à jour depuis un CpGrid
- get_sz(cumul=True)[source]
Calcule et retourne la distance horizontale cumulée ou non de chaque point vis-à-vis du premier point
Utile pour le tracé de sections en travers ou des vérifications de position
- Parameters:
cumul – si True, retourne la distance cumulée 2D. si False, retourne la distance 2D entre chaque point et le premier.
- update_lengths()[source]
- Mise à jour de la longueur
en 2D
en 3D
Retient également les longueurs de chaque segment
- get_segment(s, is3D, adim=True, frombegin=True)[source]
Retrouve le segment associé aux paramètres passés
- _refine2D(ds)[source]
Raffine un vecteur selon un pas ‘ds’
- Return :
Liste Python avec des Point Shapely
- split(ds, new=True)[source]
Création d’un nouveau vecteur sur base du découpage d’un autre et d’un pas spatial à respecter Le nouveau vecteur contient tous les points de l’ancien et des nouveaux sur base d’un découpage 3D
- Parameters:
ds – pas spatial
new – si True, le vecteur est ajouté à la zone parente
- interpolate(s, is3D=True, adim=True, frombegin=True)[source]
Interpolation linéaire à une abscisse curviligne ‘s’ donnée
- Calcul par défaut :
en 3D
en adimensionnel
- substring(s1, s2, is3D=True, adim=True, eps=0.01)[source]
Récupération d’une fraction de vector entre ‘s1’ et ‘s2’ Nom similaire à la même opération dans Shapely mais qui ne gère, elle, que le 2D
- get_values_linked_polygon(linked_arrays: list, getxy=False) dict [source]
Retourne les valeurs contenue dans le polygone
linked_arrays : liste Python d’objet matriciels WolfArray (ou surcharge)
- get_all_values_linked_polygon(linked_arrays, getxy=False) dict [source]
Retourne toutes les valeurs contenue dans le polygone –> utile au moins pour les résultats WOLF2D
linked_arrays : liste Python d’objet matriciels WolfArray (ou surcharge)
- get_all_values_linked_polyline(linked_arrays, getxy=True) dict [source]
Retourne toutes les valeurs sous la polyligne –> utile au moins pour les résultats WOLF2D
linked_arrays : liste Python d’objet matriciels WolfArray (ou surcharge)
- get_values_on_vertices(curarray)[source]
Récupération des valeurs sous les vertices et stockage dans la coordonnée ‘z’
- get_values_linked(linked_arrays: dict, refine=True, filter_null=False)[source]
Récupération des valeurs dans les matrices liées sous les vertices et stockage dans la coordonnée ‘z’ Possibilité de raffiner la discrétisation pour obtenir au moins une valeur par maille
- plot_linked(fig, ax, linked_arrays: dict)[source]
Graphique Matplolib de valeurs dans les matrices liées
- plot_mpl(show=False, forceaspect=True, fig: matplotlib.figure.Figure = None, ax: matplotlib.axes.Axes = None, labels: dict = {})[source]
Graphique Matplolib du vecteur
- deepcopy_vector(name: str = None, parentzone=None) vector [source]
Return a deep copy of the vector.
- set_legend_to_centroid(text: str = '', visible: bool = True)[source]
Positionne la légende au centre du vecteur
- append(other: vector, merge_type: Literal[link, copy] = 'link')[source]
Append a vector to the current one
- cut(s: float, is3D: bool = True, adim: bool = True, frombegin: bool = True)[source]
cut a vector at a given curvilinear abscissa
- select_points_inside(xy: wolfhece.PyVertex.cloud_vertices | numpy.ndarray)[source]
Select the points inside a polygon
- Parameters:
xy – cloud_vertices or np.ndarray with x,y coordinates
- Returns:
list of boolean
- split_cloud(cloud_to_split: wolfhece.PyVertex.cloud_vertices)[source]
Split a cloud of vertices on the vector
- class wolfhece.PyVertexvectors.zone(lines: list[str] = [], name: str = 'NoName', parent: Zones = None, is2D: bool = True, fromshapely: shapely.geometry.LineString | shapely.geometry.Polygon | shapely.geometry.MultiLineString | shapely.geometry.MultiPolygon = None)[source]
Objet de gestion d’informations vectorielles
Une instance ‘zone’ contient une listde de ‘vector’ (segment, ligne, polyligne, polygone…)
- get_vector(keyvector: int | str) vector [source]
Retrouve le vecteur sur base de son nom ou de sa position Si plusieurs vecteurs portent le même nom, seule le premier est retourné
- add_vector(addedvect: vector, index=-99999, forceparent=False, update_struct=False)[source]
Ajout d’une instance ‘vector’
- Parameters:
addedvect – instance ‘vector’ à ajouter
index – position d’insertion
forceparent – True = forcer le parent à être la zone dans lequel le vecteur est ajouté
- count()[source]
Compte le nombre de vecteurs
For compatibility with older versions –> Must be removed in future version
- find_minmax(update=False, only_firstlast: bool = False)[source]
Recherche de l’emprise spatiale de toute la zone
- Parameters:
update – True = mise à jour des valeurs ; False = utilisation des valeurs déjà calculées
only_firstlast – True = recherche uniquement sur les premiers et derniers points de chaque vecteur
- plot(prep: bool = False, sx=None, sy=None, xmin=None, ymin=None, xmax=None, ymax=None, size=None)[source]
Graphique OpenGL
- Parameters:
prep – True = préparation des listes OpenGL ; False = affichage direct
- select_vectors_from_point(x: float, y: float, inside=True)[source]
Sélection du vecteur de la zone sur base d’une coordonnée (x,y) – en 2D
inside : True = le point est contenu ; False = le point le plus proche
- createmultibin(nb=None, nb2=0) Triangulation [source]
Création d’une triangulation sur base des vecteurs Tient compte de l’ordre
:param nb : nombre de points de découpe des vecteurs :param nb2 : nombre de points en perpendiculaire
- return :
instance de ‘Triangulation’
- createmultibin_proj(nb=None, nb2=0) Triangulation [source]
Création d’une triangulation sur base des vecteurs par projection au plus proche du vecteur central Tient compte de l’ordre
:param nb : nombre de points de découpe des vecteurs :param nb2 : nombre de points en perpendiculaire
- return :
instance de ‘Triangulation’
- create_polygon_from_parallel(ds: float, howmanypoly=1) None [source]
Création de polygones depuis des vecteurs parallèles
La zone à traiter ne peut contenir que 3 vecteurs
Une zone de résultat est ajouté à l’objet
ds : desired size/length of the polygon, adjusted on the basis of a number of polygons rounded up to the nearest integer howmanypoly : Number of transversal polygons (1 = one large polygon, 2 = 2 polygons - one left and one right)
- create_sliding_polygon_from_parallel(poly_length: float, ds_sliding: float, farthest_parallel: float, interval_parallel: float = None, intersect=None, howmanypoly=1, eps_offset: float = 0.25)[source]
Create sliding polygons from a support vector.
“poly_length” is the length of the polygons. “ds_sliding” is the sliding length.
If “ds_sliding” is lower than “ds”, the polygons are overlapping. If “ds_sliding” is greater than “ds”, the polygons are separated. If “ds_sliding” is equal to “ds”, the polygons are adjacent.
The zone to be processed can only contain 1 vector. A result zone is added to the object.
The sliding polygons are created on the basis of the left and right parallels of the central vector.
“farthest_parallel” is the farthest parallel. “interval_parallel” is the distance between each parallels. If not defined, it is equal to “farthest_parallel”.
Lateral sides of the polygons are defined by projecting the points/vertices of the support vector onto the parallels, from the nearest to the farthest.
The method first creates the parallels. Then, it intersects the parallels with the constraints defined in the “intersect” zone. The intersection is done with an offset defined by “eps_offset”.
- Parameters:
poly_length – size/length of the polygon, adjusted on the basis of a number of polygons rounded up to the nearest integer
ds_sliding – sliding length
farthest_parallel – position of the parallels
interval_parallel – parallel intervals (internal computation)
intersect – zone class containing constraints
howmanypoly – number of transversal polygons (1 = one large polygon, 2 = 2 polygons - one left and one right)
eps_offset – space width impose to the “intersect”
- get_values_linked_polygons(linked_arrays, stats=True) dict [source]
Récupération des valeurs contenues dans tous les polygones de la zone
Retourne un dictionnaire contenant les valeurs pour chaque polygone
Les valeurs de chaque entrée du dict peuvent contenir une ou plusieurs listes en fonction du retour de la fonction de l’objet matriciel appelé
- get_all_values_linked_polygon(linked_arrays, stats=True, key_idx_names: Literal[idx, OpenGL.GL.name] = 'idx', getxy=False) dict [source]
Récupération des valeurs contenues dans tous les polygones de la zone
Retourne un dictionnaire contenant les valeurs pour chaque polygone
- ATTENTION :
Il est possible de choisir comme clé soit l’index du vecteur dans la zone, soit non nom Si le nom est choisi, cela peut aboutir à une perte d’information car il n’y a pas de certitude que les noms de vecteur soient uniques –> il est nécessaire que l’utilisateur soit conscient de cette possibilité
Les valeurs de chaque entrée du dict peuvent contenir une ou plusieurs listes en fonction du retour de la fonction de l’objet matriciel appelé
- _stats_values(vals: dict)[source]
Compute statistics on values dict resulting from ‘get_values_linked_polygons’
- plot_linked_polygons(fig: matplotlib.figure.Figure, ax: matplotlib.axes.Axes, linked_arrays: dict, linked_vec: dict[str, Zones] = None, linestyle: str = '-', onlymedian: bool = False, withtopography: bool = True, ds: float = None)[source]
Création d’un graphique sur base des polygones
- Chaque polygone se positionnera sur base de la valeur Z de ses vertices
façon conventionnelle de définir une longueur
ceci est normalement fait lors de l’appel à ‘create_polygon_from_parallel’
si les polygones sont créés manuellement, il faut donc prendre soin de fournir l’information adhoc ou alors utiliser l’rgument ‘ds’
ATTENTION : Les coordonnées Z ne sont sauvegardées sur disque que si le fichier est 3D, autrement dit au format ‘.vecz’
- Parameters:
fig – Figure
ax – Axes
linked_arrays – dictionnaire contenant les matrices à lier – les clés sont les labels
linked_vec – dictionnaire contenant les instances Zones à lier – Besoin d’une zone et d’un vecteur ‘trace/trace’ pour convertir les positions en coordonnées curvilignes
linestyle – style de ligne
onlymedian – affiche uniquement la médiane
withtopography – affiche la topographie
ds – pas spatial le long de l’axe
- reset_listogl()[source]
Reset OpenGL lists.
Force deletion of the OpenGL list. If the object is newly plotted, the lists will be recreated.
- class wolfhece.PyVertexvectors.Zones(filename: str | pathlib.Path = '', ox: float = 0.0, oy: float = 0.0, tx: float = 0.0, ty: float = 0.0, parent=None, is2D=True, idx: str = '', plotted: bool = True, mapviewer=None, need_for_wx: bool = False, bbox: shapely.geometry.Polygon = None, find_minmax: bool = True, shared: bool = False, colors: dict = None)[source]
Bases:
wx.dataview.wx.Frame
,wolfhece.drawing_obj.Element_To_Draw
Objet de gestion d’informations vectorielles
Une instance ‘Zones’ contient une liste de ‘zone’
Une instance ‘zone’ contient une listde de ‘vector’ (segment, ligne, polyligne, polygone…)
- force_unique_zone_name()[source]
Check if all zones have a unique id
If not, the id will be set to the index of the zone in the list
- import_shapefile(fn: str, bbox: shapely.geometry.Polygon = None)[source]
Import shapefile by using geopandas
Shapefile == 1 zone
- export_to_shapefile(filename: str)[source]
Export to shapefile.
The first vector of each zone will be exported.
If you want to export all vectors, you have to use “export_shape” of the zone object.
FIXME: Add support of data fields
- import_gdb(fn: str, bbox: shapely.geometry.Polygon = None)[source]
Import gdb by using geopandas and Fiona
- import_gpkg(fn: str, bbox: shapely.geometry.Polygon = None)[source]
Import gdb by using geopandas and Fiona
- colorize_data(colors: dict[str:list[int]], filled: bool = False) None [source]
Colorize zones based on a dictionary of colors
Zone’s name must be the key of the dictionary
- get_zone(keyzone: int | str) zone [source]
Retrouve la zone sur base de son nom ou de sa position Si plusieurs zones portent le même nom, seule la première est retournée
- import_dxf(fn, imported_elts=['POLYLINE', 'LWPOLYLINE', 'LINE'])[source]
Import d’un fichier DXF en tant qu’objets WOLF
- find_nearest_vector(x: float, y: float) vector [source]
Trouve le vecteur le plus proche de la coordonnée (x,y)
- check_plot()[source]
L’objet doit être affiché
Fonction principalement utile pour l’objet WolfMapViewer et le GUI
- uncheck_plot(unload=True)[source]
L’objet ne doit pas être affiché
Fonction principalement utile pour l’objet WolfMapViewer et le GUI
- saveas(filename: str = '')[source]
Sauvegarde sur disque
filename : chemin d’accès potentiellement différent de self.filename
si c’est le cas, self.filename est modifié
- find_minmax(update=False, only_firstlast: bool = False)[source]
Trouve les bornes des vertices pour toutes les zones et tous les vecteurs
:param update : si True, force la MAJ des minmax dans chaque zone; si False, compile les minmax déjà présents :param only_firstlast : si True, ne prend en compte que le premier et le dernier vertex de chaque vecteur
- plot(sx=None, sy=None, xmin=None, ymin=None, xmax=None, ymax=None, size=None)[source]
Dessine les zones
- select_vectors_from_point(x: float, y: float, inside=True)[source]
- Sélection de vecteurs dans chaque zones sur base d’une coordonnée
–> remplit la liste ‘selected_vectors’ de chaque zone
inside : si True, teste si le point est contenu dans le polygone; si False, sélectionne le vecteur le plus proche
- show_properties(parent=None, forceupdate=False)[source]
Affichage des propriétés des zones
- parentsoit une instance ‘WolfMapViewer’, soit une instance ‘Ops_Array’ –> est utile pour transférer la propriété ‘active_vector’ et obtenir diverses informations
si parent est d’un autre type, il faut s’assurer que les options/actions sont consistantes
- showstructure(parent=None, forceupdate=False)[source]
Affichage de la structure des zones
- parentsoit une instance ‘WolfMapViewer’, soit une instance ‘Ops_Array’ –> est utile pour transférer la propriété ‘active_vector’ et obtenir diverses informations
si parent est d’un autre type, il faut s’assurer que les options/actions sont consistantes
- get_xy_from_sz(event: wx.dataview.wx.Event)[source]
- Add vertices and their respectives xy coordinates from s and Z entries in the xls grid:
NB: The coordinates of the initial point s= 0 and one other points should be explicitly given in the xls grid.
- get_xy_from_sz(event: wx.dataview.wx.Event)[source]
- Add vertices and their respectives xy coordinates from s and Z entries in the xls grid:
NB: The coordinates of the initial point s= 0 and one other points should be explicitly given in the xls grid.
- expand_tree(objzone=None)[source]
Développe la structure pour un objet spécifique stocké dans la self.treelist.
L’objet peut être une ‘zone’ ou un ‘vector’ –> see more in ‘fill_structure’.
- Oncapture(event: wx.dataview.wx.MouseEvent)[source]
Ajoute de nouveaux vertices au vecteur courant Fonctionne par clicks souris via le GUI wx de WolfMapViewer
- OnAddPar(event: wx.dataview.wx.MouseEvent)[source]
Ajout d’une parallèle au vecteur courant via le bouton adhoc
- OncaptureandDynapar(event: wx.dataview.wx.MouseEvent)[source]
Ajoute des vertices au vecteur courant et crée des parallèles gauche-droite
- Onsascending(e: wx.dataview.wx.MouseEvent)[source]
S’assure que les points sont ordonnés avec une distance 2D croissante
Retourne un message avec les valeurs modifiées le cas échéant
- Onmodify(event: wx.dataview.wx.MouseEvent)[source]
Permet la modification interactive de vertex dans le vector actif
Premier click : recherche du vertex le plus proche Second click : figer la nouvelle position
–> action active jusqu’à sélectionne une autre action ou touche Entrée
- Ongetvalues(e: wx.dataview.wx.MouseEvent)[source]
Récupère les valeurs dans une matrice
–> soit la matrice courante –> soit la matrice active de l’interface parent
- Ongetvalueslinked(e: wx.dataview.wx.MouseEvent)[source]
Récupération des valeurs sous toutes les matrices liées pour le vecteur actif
Crée une nouvelle zone contenant une copie du vecteur Le nombre de vertices est conservé
- Ongetvalueslinkedandref(e: wx.dataview.wx.MouseEvent)[source]
Récupération des valeurs sous toutes les matrices liées pour le vecteur actif
Crée une nouvelle zone contenant une copie du vecteur.
Le nombre de vertices est adapté pour correspondre au mieux à la matrice de liée et ne pas perdre, si possible, d’information.
- Onsaveimages(event: wx.dataview.wx.MouseEvent)[source]
Enregistrement d’une image pour tous les vecteurs
- Oncreatepolygons(event: wx.dataview.wx.MouseEvent)[source]
Création de polygones depuis des paralèles contenues dans la zone active
- Oncreateslidingpoly(event: wx.dataview.wx.MouseEvent)[source]
Create sliding polygons from a support vector
- Oncreatemultibin(event: wx.dataview.wx.MouseEvent)[source]
Création d’une triangulation sur base de plusieurs vecteurs
- Oncreatemultibin_project(event: wx.dataview.wx.MouseEvent)[source]
Création d’une triangulation sur base de plusieurs vecteurs Les sommets sont recherchés par projection d’un vecteur sur l’autre
- save_images_fromvec(dir='')[source]
Sauvegarde d’images des vecteurs dans un répertoire
FIXME : pas encore vraiment au point
- Onsplit(event: wx.dataview.wx.MouseEvent)[source]
Split le vecteur courant selon un pas spatial déterminé
- Onevaluates(event: wx.dataview.wx.MouseEvent)[source]
Calcule la position curviligne du vecteur courant
Le calcul peut être mené en 2D ou en 3D Remplissage du tableur dans la 5ème colonne
- evaluate_s(vec: vector = None, dialog_box=True)[source]
Calcule la position curviligne du vecteur encodé
Le calcul peut être mené en 2D ou en 3D Remplissage du tableur dans la 5ème colonne
- Oninterpvec(event: wx.dataview.wx.MouseEvent)[source]
Interpole les valeurs Z de l’éditeur sur base des seules valeurs connues, càd autre que vide ou -99999
- OnClickfindactivate_vector(event: wx.dataview.wx.MouseEvent)[source]
Recherche et activation d’un vecteur dans toutes les zones
- OnClickfindactivate_vector2(event: wx.dataview.wx.MouseEvent)[source]
Recherche et activation d’un vecteur dans la zone courante
- get_selected_vectors(all=False)[source]
all = True : Récupération et renvoi des vecteurs sélectionnés dans les zones all = False : Récupération et renvoi du vecteur le plus proche
- verify_activevec()[source]
Vérifie si un vecteur actif est défini, si ‘None’ affiche un message
- Return :
True if self.active_vector is None False otherwise
- verify_activezone()[source]
Vérifie si une zone active est définie, si ‘None’ affiche un message
- Return :
True if self.active_zone is None False otherwise
- OnClickup_vector(event: wx.dataview.wx.MouseEvent)[source]
Remonte le vecteur actif dans la liste de la zone
- OnClickdown_vector(event: wx.dataview.wx.MouseEvent)[source]
Descend le vecteur actif dans la liste de la zone
- OnClickup_zone(event: wx.dataview.wx.MouseEvent)[source]
Remonte la zone active dans la liste de la zones self
- OnClickdown_zone(event: wx.dataview.wx.MouseEvent)[source]
Descend la zone active dans la liste de la zones self
- _edit_all_properties()[source]
Show properties of the zone –> will be applied to all vectors int he zone
- Activate_vector(object: vector)[source]
Mémorise l’objet passé en argument comme vecteur actif
Pousse la même information dans l’objet parent s’il existe
- Activate_zone(object: zone)[source]
Mémorise l’objet passé en argument comme zone active
Pousse la même information dans l’objet parent s’il existe
- OnEditLabel(event: wx.dataview.wx.MouseEvent)[source]
Edition de la clé/label de l’élément actif du treelist
- class wolfhece.PyVertexvectors.Grid(size: float = 1000.0, ox: float = 0.0, oy: float = 0.0, ex: float = 1000.0, ey: float = 1000.0, parent=None)[source]
Bases:
Zones
Grid to draw on the mapviewer.
Contains one zone and 3 vectors (gridx, gridy, contour).
Each gridx and gridy vector contains vertices forming a continuous line. Contour vector contains 4 vertices forming a closed polyline.
Drawing all the elements on the mapviewer allows to draw a grid.
Based on spatial extent and resolution.