...english version of this page |
Organisation des modules Computree¶
La plateforme Computree (v6) est organisée en différents modules, regroupés dans un dépôt de code source svn : http://rdinnovation.onf.fr/svn/computreev6.
Ce dépôt contient les éléments suivants :
- ComputreeGUI, ComputreeGL et QGLViewer : interface graphique standard :
- QGLViewer est une librairie externe utilisée pour créer les vues 3D (viewport) et gérer la caméra.
- ComputreeGL gère le rendu des vues 3D (commandes OpenGL, shaders). Cette librairie prend en charge la conversion du système de coordonnées utilisateurs vers le système de coordonnées de la carte graphique. Gère les systèmes de colorisation dans les vues 3D. Elle fait appel à certaines librairies cœurs pour cela (ctlibclouds, ctlibmodels, ctlibstructure).
- ComputreeGUI créée toutes les fenêtres, menus et autres éléments de l’interface graphique. Cette interface fait appel aux librairies cœurs pour permettre leur utilisation interactive.
- ComputreeBatch : interface batch standard. Cette interface fait appel aux librairies cœurs pour permettre leur utilisation en mode commande.
- Library : librairies cœurs (décrites en détails ci-dessous)
- PluginBase : plugin contenant les fonctionnalités générales (principalement chargements et exports de fichiers, ainsi que des étapes de gestion du flux d’exécution)
Liste des librairies cœurs¶
Une première série de librairie définit les principaux éléments utilisables dans Computree et gère leurs interactions :- ctlibcore : gestion du chargement des plugins et le flux d’exécution de l’arbre des étapes. Inclue le système d’export et import de scripts Computree.
- ctlibplugin : classes mères nécessaires à la création d’un plugin pour Computree (PluginEntry et PluginManager en particulier).
- ctlibstep : classes mère pour les Etapes (CT_AbstractStep en particulier). Implémente tous les mécanismes de fonctionnement des étapes.
- ctlibaction : classes mères pour les Actions interactives. Cette librairie implémente en particulier toute une couche d’interaction avec les vues 3D, 2D ou tabulaires, afin de faciliter la création de nouvelles actions.
- ctlibreader : classes mères pour les Readers.
- ctlibexporter : classes mères pour les Exporters.
- ctlibfilters : classes mères pour les Filtres.
- ctlibmetrics : classes mères pour les Métriques.
- ctlibmodels : gestion du système de modèles de données d’entrée et de sortie, utilisé par les étapes (ainsi que par les readers, exporters, filtres et métriques) pour décrire les structures de données qu’elles utilisent et produisent. Cette librairie est centrale dans les interactions entre les autres librairies cœurs.
- ctlibmodelsextraviews : composant graphique de sélection des résultats d’entrée (interface permettant de visuellement faire des liens entre données recherchées et données disponibles).
- 3rdparty/eigen : intégration en static de la librairie externe Eigen, utilisée pour la gestion des points en particulier.
- ctlibclouds : structures de données pour la gestion des points ainsi que des faces et arêtes de maillages. Gestion du système de coordonnées. Gestion des couleurs et normales.
- ctlibstructure : définitions des classes abstraites définissant les Résultats, Groupes ainsi que les grands types d’Items et d’Attributs de Computree. Contient aussi les classes mères pour les « DrawManager » (outils permettant le paramétrage du dessin 3D des items).
- ctlibstructurewidget : éléments graphiques liés à la sélection d’attributs lors des exports.
- ctlibstructureaddon : implémentation des classes de de Groupes, d’Items (et leurs DrawManagers correspondants) et d’Attributs. Cette librairie (avec ctlibstructure) sont importantes pour le développeur de plugins car elle contient toutes les structures de données utilisables dans les étapes.
- ctliblog : système de log, utilisable dans tous les éléments de Computree pour fournir des feedbacks à l’utilisateur, via des messages dans le log (visibles dans les interfaces graphique et batch).
- ctlibwidget : systèmes de création des boites de dialogue de paramétrage des étapes facilitant le travail de créateur de plugins.
- ctlibio : un certain nombre de readers et exporters d’intérêt.
- ctlibgdal : readers et exporters utilisant la librairie externe GDAL.
- ctliblas : readers et exporters du format standard ASPRS LAS pour les nuages de points Lidar.
- ctlibstepaddon : classes d’étapes permettant de créer des boucles dans les scripts.
- ctlibstdactions : actions fournies en standard (en particulier barre de sélection).
- ctlibmath : un certain nombre de fonctions mathématiques utilisables dans les plugins. En particulier, cette librairie propose une implémentation de la triangulation de Delaunay (2D).
- ctlibpcl : connexion optionnelle à la librairie externe PCL. Cela permet de rendre PCL utilisable dans les plugins. PCL fournit de nombreux algorithmes de traitements de données 3D.