Re: Ogre3D

Posté par miloz le 2/2/2008 0:15:24
Bonjour,
Python-Ogre est effectivement ce qu'on appelle un binding; j'ai commencé à en réalisé un pour irrlicht (pyrr) mais j'ai fait une "pause".
Le principe est d'utiliser un générateur de code (souvent swig, qui est un outil magique) pour réaliser l'interface d'un langage interprété avec le code C/C++; python est souvent utilisé car son modèle objet permet de se mapper facilement sur le modèle objet C++.
Généralement, il n'y a aucune doc sur un binding, car en théorie le mapping permet d'utiliser les mêmes noms en python qu'en C++: en théorie on peut donc se démerder avec la doc de l'API C++.
ainsi l'appel instClasse.method(args) C++, se traduira en python en instClasse.method(args), soit la même chose.Si on rentre dans les détails, c'est un peu plus compliqué.
Là ou ça se complique aussi, c'est pour les callbacks et les trucs du style classes virtuelles.

Mais, pas d'illusion, les choses sont pas en pratique plus simple avec un binding qu'avec en C++, car le binding est rarement total, et on cumule les bug des parties C++ et langage interprété

Ceci dit, allez voir mon projet pyrr, même sans le faire tourner, il est intéressant de comparer les codes C++ et python des samples: c'est sur que le code est beaucoup plus simple et lisible en python qu'en C++.

Je me suis inspiré d'un binding java appelé Jirr, il me semble.

@+
PS: je sais pas si pyrr tourne encore, dites moi si vous essayez
https://opensvn.csie.org/traccgi/pyrr

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=12311&post_id=148894