Voila un résumer de comment est architecturé la partie "Core" de Qasari à programmer et développer, avec l'implémentation technologique. Rappel rapide des outils de développement:
- Langage C++
- Compilateur LLVM
- Build manager Cmake
- Documentation Doxigen
- Plateforme UNIX Like
- Editeur de texte (neo)vim
Liste des modules "CORE"
-
Initialisation du Projet :
- Module d'initialisation du projet : Créez un nouveau projet de CAO, configurez les paramètres initiaux, gérez les fichiers de projet et configurez l'environnement de travail.
-
Gestion des Nanites :
- Module de création de nanites : Permet la création, l'édition et l'organisation des nanites, qui servent d'éléments de base pour la modélisation.
- Module de transformation : Gère les transformations géométriques (translation, rotation, mise à l'échelle) pour les nanites et les objets.
- Module d'interaction avec les nanites : Pour interagir avec les nanites via une interface utilisateur, y compris la sélection, la modification et la suppression.
- Module de cotation automatique : Pour générer automatiquement des cotations sur les dessins à l'aide des nanites.
- Module de loi d'évolution de TRIZ pour gérer l'automatisation des nanites
-
Scripts Personnalisés en Lua :
- Module d'exécution de scripts Lua : Charge, exécute et interagit avec des scripts Lua personnalisés. Fournit une interface pour les scripts Lua pour interagir avec l'ensemble de l'application, y compris le moteur de modélisation et le générateur procédural. Implémentation: LuaBridge comme "Binding C++"
- Permet d'écrire également en mode console CLI des formes complexes et personnalisés
-
Interface Utilisateur :
- Module d'interface utilisateur : Crée et gère l'interface utilisateur de l'application, y compris les panneaux de dessin, les menus, les boîtes de dialogue et les outils de dessin. Implementation: Dear ImGui
- Intégration de Lua dans l'interface utilisateur : Permet aux utilisateurs d'utiliser des scripts Lua directement à partir de l'interface utilisateur.
-
Gestion des Fichiers :
- Module de gestion de fichiers : Gère le chargement, l'enregistrement et la gestion des fichiers de dessins et de projets.
- Gestion de conversion des .STEP amelioré
-
Optimisation et Performance :
- Module d'optimisation de performance : Veille à ce que l'application fonctionne de manière fluide, même avec des dessins complexes.
-
Moteur de Modélisation 2D/3D :
- Moteur de modélisation : Inclut les composants pour la création, la modification et la visualisation de modèles en 2D et en 3D. Gère les objets, les matériaux, les éclairages, les textures, etc. Implementation: Vulkan + GLFW + GLM (vkvg pour le 2D vectoriel)
- Intégration de nanites : Permet l'utilisation des nanites comme composants du moteur de modélisation, permettant la création de modèles complexes.
- Construit comme un moteur de jeu.
-
Génération Procédurale :
- Module de génération procédurale : Permet la création de modèles et de formes géométriques à l'aide d'algorithmes de génération procédurale. Il peut utiliser des scripts personnalisés en Lua pour définir ces algorithmes. Implementation: Boost.Geometry et openFrameworks (OF) (equivalent à processing).
-
Kernel Géométrique :
- Kernel géométrique : Fournit des fonctionnalités essentielles pour le traitement et la manipulation des données géométriques, y compris des opérations de géométrie de base, de modélisation, et de rendu.
- Native utilise la generation procédurale basée sur les automates cellulaires. Implémentation: Libfive
-
Base de Données :
- Module de gestion de base de données : Intègre un système de gestion de base de données pour stocker et gérer des projets, des modèles, des scripts, des métadonnées, et d'autres informations pertinentes. Assurez-vous que la base de données est capable de gérer les opérations CRUD (Create, Read, Update, Delete) et de fournir des fonctionnalités de recherche et de requête. Implémentation: SurrealDB pour de la graph database noSQL.
-
Documentation et Aide :
- Module de documentation : Fournit de l'aide et de la documentation aux utilisateurs, y compris des tutoriels pour l'utilisation des nanites, des scripts Lua, de la génération procédurale, et du kernel géométrique. Implémentation: Doxygen + Wiki + CLI
-
Tests et Débogage :
- Module de tests et de débogage : Facilite les tests unitaires, le débogage, et l'assurance qualité de l'ensemble de l'application.
-
Sauvegarde et Contrôle de Version :
- Module de sauvegarde et de contrôle de version : Gère les versions et la sauvegarde des dessins, des projets, et des données générées par la génération procédurale. Implémentation: Perforce Helix Core pour gérer des .STEP amelioré en binaire.