GHCaveDraw
Problématique
Le principal problème de la topographie spéléologique est l'ajustement automatique du dessin d'après la polygonale topo. Les solutions usuelles nécessitent de retoucher le dessin après chaque séance topo, tâche ingrate et très pénible (dans certains cas, encore plus chronophage que le redessin intégral des zones concernées). Des jonctions peuvent apparaître, introduisant des bouclages. La compensation des écarts de fermeture modifie cette polygonale.
La solution actuelle la plus complète, mais aussi la plus difficile à utiliser puisqu'elle nécessite une formation intense, est le système Therion.
Le principe fondamental de GHCaveDraw
L'entité de base de GHCaveDraw sur laquelle s'appuie tout graphisme (point de base d'un texte ou d'un objet, sommet d'une courbe, ligne ou polygone) est le Vertex
Un Vertex est la propriété d'un Groupe et possède une Station de rattachement.
Les coordonnées définitives d'un vertex sont:
Coordonnées de la Station de Rattachement +
Décalage du Groupe +
Décalage propre du Vertex
Notion de scrap
Apparu avec le passage à la librairie BGRABitmap, le scrap est une nouvelle catégorie d'objets. Il s'agit en fait d'un polygone spécial doté d'un attribut de transparence et de couleur.
Dans GHCavedraw, le scrap s'utilise comme un polygone (et il en est un dérivé).
Le scrap appartient à un groupe; il est dessiné avant tous les objets du groupe. Il peut y avoir plusieurs scraps par groupe
Un scrap est généralement délimité par les parois du groupe auquel il appartient. Pour cette raison, des fonctionnalités de génération de scrap depuis une série de courbes ont été implémentées.
Etant donné qu'un scrap est un polygone, il est possible de transformer un scrap en objet polygone et vice-versa
Fonctionnalités actuelles (01/02/2021)
- Un format texte qui est en fait un langage de description librement inspiré du langage de THERION
- Notion de Groupe: un groupe = une galerie ou une portion de réseau, qui peut être masqué ou décalé.
- Feuilles de style pour les différents types d'entités: courbes, lignes, polygones, textes, objets ponctuels.
- Modélisation des courbes par Courbes de Bézier de 3e degré; routines réécrites afin de supporter certains styles: ressauts, surplombs, dont le tracé est asymétrique.
- Editeur graphique intégré WYSIWYG
- Cotation automatique
- Objets ponctuels dynamiques: eg: le dessin d'une faille donne directement son orientation.
- Support des photographies
- Utilitaire d'impression très complet
- Export au format OpenOffice.org avec conservation de la topologie du document (groupes, styles, ...) et utilisation des commandes natives de dessin d'OOo.org
- Export au format SVG avec conservation de la topologie du document et utilisation des commandes natives SVG (path, ...)
- L'utilisation de la librairie graphique pour Lazarus TBGRABitmap, qui inclut la transparence, a permis la notion de "scrap", ce qui gère du même coup la superposition correcte des réseaux
- Génération d’atlas sous forme de dossiers HTML
- Génération d'images haute résolution
- Exportation des scraps aux formats KML et OSM
- Exportation des scraps au format GeoJSON
- Support intégral des coupes développées
Etat actuel d'avancement du projet
Par rapport au cahier des charges défini en 2009, GHCaveDraw est actuellement à 50% d'avancement.
Sources en Lazarus - Free Pascal - Parcourir le dossier
Le dernier binaire qui remplace le précédent
Pour les développeurs de logiciels tiers
Les développeurs de logiciels de topographie trouveront ici les spécifications techniques de la section basepoints d'un fichier GHCaveDraw.
Mises à jour:
01/02/2021:
- Fixation de bugs
- Implémentation complète de la librairie BGRABitmap
- Notion de scrap
- Support des polylignes, en complément des courbes
- Nouveau type de courbes: Paroi incertaine
- Fonctions de réattribution de centerlines aux groupes
- Métafiltre amélioré
- Générateur d'atlas
- Export des scraps au format HTML/Javascript/Leaflet
- Export des scraps au format JSON
- Gestion des groupes: nouveaux attributs, modifications en rafale
- Editeur graphique: Les objets en cours d'édition affichent leurs stations d'accrochage
- Opérations booléennes sur les scraps et les polygones: union, soustraction, intersection, exclusion
06/09/2018:
- Unification de l'interface avec celle de GHTopo et de JavaOpenStreetMap
- Possibilité de générer un scrap depuis les parois
- Détourage de polygones par un scrap
- Nouveau type de paroi: Paroi fracturée (utilisé dans les carrières souterraines
30/06/2016:
- Les polygonales support (fichiers GCP) peuvent être liées au dessin par une opération d'inclusion (directive $INCLUDE_GCP: <nom_polygonale>.gcp à insérer juste avant la section supergroupes)
- Génération de polygones délimités par des courbes (utile pour dessiner les lacs et les zones argileuses)
On en parle dans Spelunca
Spelunca n°141
A découvrir aussi
- PyGHTopo: Le moteur de calcul de GHTopo en Python
- GHConvertisseur: Utilitaires annexes de GHTopo
- GHCaveDraw: Spécifications techniques à l'usage des auteurs de logiciels de topographie
Inscrivez-vous au blog
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 30 autres membres