20 000 lignes de C/C++, portable BMRT Bibliothèque de Maillage Réglé Tridimensionnel par yves.demur@m4am.net téléchargement sur http://yves.demur.free.fr/bmrt 20 000 lignes de C/C++, portable 220 Ko de sources compressés, comprenant la documentation et les exemples d'apprentissage Outil économique utilisable comme mailleur isolé ou comme composant logiciel Besoin d'un éditeur de texte, d'un compilateur C, des libc et libm et d'un visualiseur PostScript
Ces images d'un maillage sont issues du même fichier PostScript engendré par BMRT Le point de vue a été simplement changé en modifiant les angles de vue de l'observateur dans le fichier PostScript
Exemples de lignes d'utilisation <type> <variable> = <fonction> ( <argument>, <argument>, ...) <macro>; #include "bmrt.h" L g1ad4 = g1co2n(NULL, nad1, nafd, 3, 0, 0.) EL; L g2a5 = g2l4g1(g1ap5, g1ah1, g1ad5, g1ag1) EL; V p1 = poprdc(poicoo(-20., 0., 0.), vy, ca1pr) EL; V pad1 = poprco(p1, ca1pr, NULL) EL; R rfin = repo2v(poicoo(0., 0., -1325.), veccom(0., 0., -1.), veccom(-1., 0., 0.)) EL; selcou(VERT) EL; C c34a = spia2p(ce34a, oz, n3a->p, n4a->p) EL; selset(1) EL; L g3_1 = g3l6g2(g1, g6, g3, g4, g5, g2) EL; // positionnement final (void)oprerr(-1, NULL, r_fin, 1., 1., 1., r_ini) EL; opnlis(l_ide, oprerr) EL;
Sources d'informations bmrtxxxx.tar.gz : livraison des sources, à décompresser Alire.txt : premières informations, à consulter en priorité Faq.txt : foire aux questions bmrt.h : déclaration des prototypes des fonctions de la bibliothèque, avec les explications sur leur utilisation I-DEAS.txt : explications sur le format du fichier universel I-DEAS engendré par BMRT test*/* : fichiers d'exemples
Structures de données Entités mathématiques : nombres entiers et réels vecteurs (pour calculs d'épures) matrices (pour opérations de transformation) repères (pour définir des références commodes) Entités géométriques : points courbes théoriques (pour projections de points/noeuds) surfaces théoriques (pour projections de points/noeuds) Entités maillage : noeuds grilles (tableaux d'adresses de noeuds à 0, 1, 2 ou 3 dimensions) listes (regroupement de grilles en structures arborescentes)
Sorties Messages : informations d'exécution et messages d'erreurs facilite la recherche de l'origine d'une erreur d'exécution Graphiques : fichiers PostScript « 3D », deux fichiers paramètres modifiables pour changer le point de vue et la visibilité de groupes graphiques Maillages : fichiers universels I-DEAS standard incontournable Listings : informations sur les entités créées dans BMRT facilite la mise au point
Principes Robustesse et simplicité refus d'outils à résultat aléatoire pas de notion de tolérance traitement de toutes les erreurs détectables traçage des fonctions actives lors d'une erreur vérifications systématiques Souplesse accès aux sources, utilisation du C/C++ et accès à tous ses moyens plusieurs solutions à un besoin Légèreté et faible coût besoin de compilateur C++ avec libc et libm, de visualiseur PostScript Intégrabilité écrit en C, sources adaptables
Conclusion Outil économique pas de licences si utilisation de produits GNU puissance machine et espace disque nécessaires réduits ... mais investissement dans l'apprentissage (facilité par les exemples) Profil d'utilisateur : compétences en géométrie, vision 3D connaissance du maillage réglé notions de programmation en langage C créativité pour combiner les outils Méthode de travail : définition des schémas de découpage (nécessité du maillage réglé) repérage et nommage des paramètres, des entités et des sous ensembles écriture d'une partie du source, exécution, visualisation de vérification ajout d'une partie du source, exécution, visualisation de vérification ... ... modification de paramètres quand le maillage est au point