libbubulle/tools
2023-04-27 19:34:58 +02:00
..
.gitignore admin stuff 2023-04-14 13:30:43 +02:00
cube.obj not ready for prime time 2023-04-03 00:52:09 +02:00
edges2cylinders.awk refactoring, first step 2023-04-20 22:33:46 +02:00
essai_faces.c sunday dirty commit 2023-04-09 11:13:56 +02:00
export_evblob.c refactoring of export_evblob in progress 2023-04-26 08:33:05 +02:00
importobj.c repair debug messages 2023-04-24 14:12:15 +02:00
Makefile cosmetic 2023-04-27 19:34:58 +02:00
minimal.obj not ready for prime time 2023-04-03 00:52:09 +02:00
objtrucs.h move a proto declaration to the right place 2023-04-20 22:55:46 +02:00
rdwredges.c refactoring, first step 2023-04-20 22:33:46 +02:00
read_obj.c cosmetic 2023-04-22 18:40:37 +02:00
README.md expliquer... 2023-04-27 05:56:40 +02:00

Importer des fichiers .OBJ

v -1.177934647 -6.833468914 -73.19773865
vn -0.1279897094 -0.4501263499 -0.8837448359
v -0.8008174896 -6.425453663 -73.32041931
vn -0.05844723806 -0.09480132163 -0.993778944

read_obj

Première étape : en lisant les vertices, nous saurons positionner nos bubulles. Ensuite, en explorant les faces, nous pouvons en déduire les arètes (aka: edges).

Et à partir de cette analyse, nous allons générer un fichier binaire contenant les points xyx, et les arêtes pointA-pointB. Le format de ce fichier doit être considéré opaque. il sera généré dans le $PWD en utilisant le basename du fichier .OBJ mais avec l'extension .evblob.

Ce n'est qu'une première étape, d'autres formats de sortie pourront être implémentés.

Attention, mon parser EXIGE des fichiers Unix bien conformés : c'est-à-dire que la dernière ligne du .obj DOIT être terminée par un newline !

export_evblob & bla.awk

Deuxième étape : À partir du fichier .evblob généré à l'étape précédente, nous allons créer (entre autres options ?) un fichier utilisable par Povray. La première option a été la génération des arêtes, nous aurons donc sur stdout six nombres réels: xyz(pointA) et xyz(pointB) :

25.2275466 19.5029792 -25.1227169   35.6406135 19.5029792 0.0166420
35.6406135 19.5029792 0.0166420   0.0881849 19.5029792 -35.5357818
0.0881849 19.5029792 -35.5357818   25.2275466 19.5029792 -25.1227169

Et là, c'est trop facile pour la suite, Unix sait le faire depuis quarante ans. Un petit script Awk fera l'affaire, en toute simplicité.

Bien entendu, la même chose pourrait être faire pour les vertices, ce qui nous remet dans la droite ligne orthodoxe des bubulles.

TODO LIST

  • Songer à un système d'auto-scaler et de recentrage
  • Comment générer un .obj à partir d'une image flottante ?
  • Gérer les arêtes de longueur nulle (degenerated cylinder)
  • Que faire des vertices qui ne sont pas utilisées par des faces ?

rendu final

Quatrième étape : aller vivre à la campagne ?