Carto

Un article de WikiProg.

Sommaire

Paquets manquants (lablgtk et compagnie)

M.A.J. 2011-10-22

Les paquets manquants sur les nouveaux racks (en l'occurrence lablgtk-devel et lablgl-devel) sont disponibles sur le dépôts des ACUs.

Pour ajouter ces paquets (ou les autres que les ACU ajoutent), il faut suivre la procédure suivante:

  1. taper la commande pkg_installer qui lance une interface graphique
  2. mettre à jour la liste des paquets (via les menus)
  3. chercher les paquets (via l'outil de recherhce) et les installer

Cette procédure ne nécessite pas d'être root sur son rack.

D'autres ajouts seront peut être fait par cette méthode. Vous pouvez aussi installer les deux autres paquets fournit par les ACU (valgrind et vim-X11.)

Cartes pour le projet de Cartographie

Des cartes de références pour le projet de cartographie peuvent être générée à l'aide de mon générateur de cartes.

Le générateur est disponible ici: Media:CarteGenerator.tar.bz2

Le générateur utilise du bruit de perlin, si vous souhaitez ajuster les paramètres allez chercher leur signification sur Internet ...

Compilation et Usage du générateur

Le générateur est en C et en OCaml et compile sur vos racks.

Compilation

> tar xf CarteGenerator.tar.bz2
> cd CarteGenerator
> make
...

Usage

[depuis le répertoire précédant]
> ./genperlin
[devrait afficher une carte et attend une touche]
> ./genperlin -help
Perlin noise map generator:
  -alpha     Alpha parameter
  -beta      Beta parameter
  -octave    Number of octaves
  -save      Output bmp to stdout
  -seed      Initial random seed
  -povcolor  Use color for POVray HF
  -grey      Smooth grey level
  -help      Display this list of options
  --help     Display this list of options
> ./genperlin -save > out.bmp
[affiche l'image générée et sauve le fichier dans out.bmp]

Compilation avec lablGL sur les racks

Comme certains l'ont remarqué, la compilation avec lablGL pose quelques problèmes. Il faut rajouter certaines options de compilation qui ne sont pas forcément nécessaires sur d'autres intallations.

En pratique: assurez d'avoir l'ensemble des modules sur votre ligne de compilation (lablgl.cmxa et lablglut.cmxa) ainsi que les bons chemins (-I +lablGL).

De plus, le linker ne trouvant pas libglut tout seul, il faut un peu ruser (le problème existe aussi en C.) Tout d'abord, il faut créer un lien symbolique du fichier /usr/lib/libglut.so.3 dans votre répertoire de travail (ou tout autre endroit où vous avez les droits d'écriture.) Ensuite, il faut ajouter une option pour indiquer au linker (ld) où chercher cette bibliothèque, pour ça on utilise l'option -ccopt d'ocamlopt. En résumé, vous devrez effectuer les commandes suivantes:

> ln -s /usr/lib/libglut.so.3 libglut.so
> ocamlopt -I +lablGL -ccopt -L. lablgl.cmxa lablglut.cmxa -o votreprog <vos modules>

Si vous désirez mettre libglut.so dans un autre répertoire, vous devrez changer le -L. par -L<votre repertoire>

Autres problèmes de compilation similaires

Il semblerait que glut ne soit pas la seule bibliothèque mal installée, GTKGL a le même problème.

Donc même symptome, même solution: il faut créer un lien symbolique du fichier ".so" :

> ln -s /usr/lib/libgtkgl-2.0.so.1 libgtkgl-2.0.so

De manière générale, lorsque votre programme refuse de compiler sur un problème de bibliothèques (symboles manquants, en général erreurs illisibles venant de "ld"), il faut chercher la bibliothèque correspondante (quelque chose du genre libXXX.so.Y) et faire un lien symbolique dont le nom se termine par .so.

Visualiser des .obj

Il existe de nombreux visualisateur de fichier .obj mais aucun n'est installé sur vos racks. Certains pourront peut être compiler, mais ce n'est pas forcément la solution la plus simple.

J'ai trouvé un petit viewer (sans prétention) qui ne dépend de rien et n'a même pas besoin d'être compilé/installé. Vous le trouverez ici: http://jestermon.weebly.com/pyobjviewer.html

Pour vous en servir, décompressez le fichier .zip quelques part sur votre compte et lancer simplement (depuis le répertoire de décompression) la commande suivante:

> python pyobjviewer.py monFichier.obj
CORRECTION: il semblerait que pyobjviewer ne marche pas sur vos racks

Vous pouvez aussi utiliser blender [1] qui lui aussi ne dépend de presque rien (testé avec succès sur vos racks.) Il faut prendre la version Linux 32bits pour python 2.6.

Construire des interfaces en GTK

Pour construire une interface en GTK vous avez deux possiblités:

  • le faire à la main intégralement
  • utiliser un builder d'interface comme glade ou gazpacho (non installés tous les deux.)

Intallation sur votre rack de gazpacho

Gazpacho est censé être mieux que glade et surtout, étant écrit en python il est relativement simple à installer.

Il vous faut d'abord la lib kiwi [2] (le fichier à récupérer est aussi disponible ici: Media:kiwi-1.9.26.tar.gz.) L'installation peut se faire dans votre home très simplement. Vous devez d'abord choisir un répertoire d'installation (ici nous prendrons ~/pylib) pour la suite suivez ces commandes (on considère que la tarball de kiwi se trouve dans le repertoire courrant):

> mkdir ~/pylib
> tar xf kiwi-1.9.26.tar.gz
> cd kiwi-1.9.26
> python setup.py install --prefix=~/pylib

Pour faire fonctionner des programmes utilisant cette bibliothèque, vous n'aurez plus qu'à définir la variable d'envirronnement PYTHONPATH. Voici la syntaxe pour différents shells, à ajouter au fichier de démarrage correspondant:

# zsh (ou bash ... )
> export PYTHONPATH=~/pylib/lib/python2.6/site-packages
# tcsh
> setenv PYTHONPATH ~/pylib/lib/python2.6/site-packages

Vous pouvez maintenant récupérer Gazpacho ([3] ou Media:gazpacho-0.7.2.tar.gz.) Une fois décompressé, vous trouverez (dans le répertoire correspondant) un sous-répertoire bin contenant l'exécutable gazpacho, il ne vous reste plus qu'à le lancer (depuis un shell en ayant bien pris soin de fixer la variable d'envirronnement comme expliqué juste au-dessus.)

> tar xf gazpacho-0.7.2.tar.gz
> cd gazpacho-0.7.2
> bin/gazpacho
# Enjoy ...
Outils personnels