← retour à la page principale du projet
Pour les futurs développeurs:
Il est à noter que chaque classe ne commence pas par using namespace std; donc il faut taper std:: devant les string, les cout, les endl, etc...
Ne pas oublier d'inclure les librairies évidentes: <string> pour l'utilisation de std::string; iostream pour l'utilisation de std::cout & std::endl.
Par ailleurs, ne pas hésiter à abuser de std::cout & std::endl pour débugger, une alternative serait d'utiliser void Cosme::afficherStatic(std::string texte).
Je conseille évidemment de se servir de KDevelop. Cela fait gagner pas mal de temps. Il faudra alors charger le fichier cosme.kdevelop, & le modifier pour l'adapter à sa propre arborescence.
Il va falloir passer beaucoup de temps de lecture sur http://doc.trolltech.com/3.3/mainclasses.html & http://doc.coin3d.org/Coin/hierarchy.html.
Pour utiliser facilement la zone de Coin du programme (& connaitre la signification des boutons), un petit tour ici s'impose.

À propos du recrutement d'un candidat à la resprise du code:
De très bonnes connaissances en C++ sont requises. Il va falloir relire & assimiler rapidement un code ayant 4 auteurs (Nicolas, Loïc, Sébastien & Gilles). Ce code est séparé en quelques classes, & fait appel aux connaissances généralistes du C++. Il n'y a pas réellement d'algorithme réellement avancé ou très complexe, les makefiles ne sont pas d'une complexité exagérée, mais si le repreneur ne maîtrise pas le langage, il lui sera nécessaire de se familiariser avec ce dernier avant de pouvoir prétendre essayer de comprendre le code.
Il faudra également qu'il connaisse suffisamment l'univers Linux (installation de packages, mode root, utilisation de KDevelop (ou g++), etc...).
Il devra, si ce n'est déjà fait, comprendre les rudiments de Qt (qmake, moc, uic, etc...).
Si la personne a déjà travaillé avec (& maîtrise) Open Inventor ou Coin, c'est la perle rare à ne pas laisser passer! :) Dans ce cas, la structure du programme lui paraitra beaucoup plus limpide, & elle pourra notamment corriger les parties de code utilisant OI que j'éi écrites, qui sont très largement perfectibles.



TODO list:
faire un load basique: lire le fichier, placer l'organe & l'outil à leur position après que l'état initial soit défini, & créer les rings associés
Yannick m'avait fait part de son désir de pouvoir utiliser plusieurs outils à la fois. En effet, Forge le permet. Cependant, par manque de temps, & probablement aussi par manque de compréhension du code à l'époque, cela a été abandonné. J'avais du créer une map (liste des outils), avec une fenêtre spéciale censée charger les outils, & leur associer un nom. Je n'ai pas supprimé cette partie du code. Il est à noter qu'elle ne provoque pas de problème, mais qu'elle est inutile pour l'instant. Elle sera beaucoup plus utile plus tard.
Je pensais qu'il fallait créer une liste d'outils (tool), mais en fait, à chaque outil, il faut associer un sous arbre dont la racine est geometryObjects (& donc recréer pour chaque outil les autres feuilles containTools, tool, etc...). Cela me semble plutôt facile à faire, en incluant tout ceci dans un gros objet. Le reste de l'adaptation (adapter le gros programme à l'utilisation multi objets, & notamment associer chaque ring à un objet précis, & pouvoir sélectionner un objet particulier (une partie de ce code est déjà faite) me semble plus long; prévoir une bonne semaine pour faire tout cela proprement).

Si vous voulez faire du Qt (fenêtres, boutons, etc...), utilisez le Qt Designer. Si c'est pour intégrer directement dans Cosme, alors inspirez-vus du code généré par le Qt Designer. Si c'est pour faire une fenêtre séparée, alors faites directement un .ui que qmake se chargera de convertir en code C++.

Il faudra probablement plus utiliser la barre d'état (statusBar()->message( tr("Cosme ready."), 2000 );) & la zone de log (afficher("meuh\n");) dans les prochaines utilisations, je me suis personnellement trop servi de std::cout...



Petites explications pour le make:
Makefile fait appel à cosme.pro. Ce sont donc 2 fichiers à ne surtout pas supprimer.
Valid XHTML 1.0 Transitional