131 lignes
		
	
	
		
			4.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			131 lignes
		
	
	
		
			4.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
| <title>libimage: les df3 de povray</title>
 | |
| <link rel="stylesheet" type="text/css" href="libimage.css">
 | |
| <meta name="generator" content="Vim et huile de phalange">
 | |
| <meta name="keywords" content="libimage, krabulator, operations">
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <a name="top"><h1>libimage / les df3 de povray</h1></a>
 | |
| 
 | |
| <p align=center>
 | |
| <tt>dernière mise à jour: 10 novembre 2013</tt><br>
 | |
| <i>
 | |
| <a href="http://tboudet.free.fr/libimage/img-df3.html">#</a> et
 | |
| <a href="http://la.buvette.org/devel/libimage/img-df3.html">#</a>
 | |
| </i>
 | |
| </p>
 | |
| 
 | |
| <p class="menuhaut">
 | |
| [<a href="libimage.html">libimage</a>]
 | |
| [<a href="img-povhf15.html">height fields</a>]
 | |
| </p>
 | |
| 
 | |
| <p class="explique">
 | |
| The density_file pattern is a 3-D bitmap pattern that occupies a unit
 | |
| cube from location <0,0,0> to <1,1,1> The data file is a raw binary
 | |
| file format created for POV-Ray called df3 format. The syntax provides
 | |
| for the possibility of implementing other formats in the future. This
 | |
| pattern was originally created for use with halo or media but it may
 | |
| be used anywhere any pattern may be used.
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
| Bon, il faut avouer que le code actuel est totalement buggué, que son
 | |
| <small>API</small> est pitoyable, et que je n'y consacre pas autant
 | |
| d'énergie qu'il le faudrait. Vous pouvez quand même aller
 | |
| <a href="/POV/df3.html">voir</a> l'avancement des essais.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2>Primitives</h2>
 | |
| 
 | |
| <p>
 | |
| C'est toujours en cours de mise au point. Les <small>API</small> ne sont
 | |
| pas encore figées. 
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| 
 | |
| <dt>DensityF3Head * Image_df3_alloc(char *nom, int x, int y, int z, int b);
 | |
| <dd>Création d'un objet de type <small>DF3</small>. Les trois paramètres
 | |
|   <tt>x, y & z</tt> sont les dimensions, <tt>b</tt> est le nombre
 | |
|   prévu de bytes par cellule à l'enregistrement dans un fichier. Les
 | |
|  divers autres attributs sont initialisés à une valeur raisonnable.
 | |
|  Chaque cellule est stockée dans un <i>double</i>, avec 1.0 représentant
 | |
|  la valeur maximum.
 | |
| 
 | |
| <dt>int Image_df3_free(DensityF3Head *ptr);
 | |
| <dd>Destruction féroce  d'un objet de type <small>DF3</small>. Si la valeur
 | |
|   de retour n'est pas nulle, c'est catastrophe.
 | |
| 
 | |
| <dt>int Image_df3_put(DensityF3Head *ptr, int x, int y, int z, double dv);</dt>
 | |
| <dd>Dépose une valeur dans le machin. Retourne <small>INVALID_PARAM</small>
 | |
| si les coordonnées xyz sont en dehors du cube. Devrait aussi retourner un
 | |
| errcode si la valeur est en dehors des valeurs légales.</dd>
 | |
| 
 | |
| <dt>int Image_df3_get(DensityF3Head *ptr, int x, int y, int z, double *pdv);</dt>
 | |
| <dd>Lecture d'une valeur dans le machin. Si en dehors du cube,
 | |
| renvoie <small>INVALID_PARAM</small>.</dd>
 | |
| 
 | |
| <dt>int Image_print_DF3head(DensityF3Head *h, char *txt, int flag);
 | |
| <dd>Affichage (plus ou moins) en clair d'un descripteur de DF3. Si la
 | |
|     valeur de retour n'est pas nulle, c'est qu'un problême a peut-être
 | |
|     été détecté.
 | |
| 
 | |
| <dt>int Image_df3f_get_dims(char *fname, int dims[], int display);
 | |
| <dd>Lecture des dimensions d'un fichier df3. L'argument <tt>dims</tt>
 | |
| doit être un <tt>int dims[3]</tt>. Si <tt>display</tt> est différent de
 | |
| zéro, des trucs seront affichés.
 | |
| 
 | |
| <dt>int Image_df3_export(DensityF3Head *ptr, char *fname, int nbbytes);</dt>
 | |
| <dd>Enregistrement des données dans un fichier. Si <tt>nbbytes</tt> est à
 | |
| zéro, c'est la valeur donnée à la création de la structure qui sera
 | |
| utilisée. Sinon, on donne 1, 2 ou 4.
 | |
| </dl>
 | |
| 
 | |
| <h2>Essais divers</h2>
 | |
| 
 | |
| <p>Attention, à ce jour (2 mars 2008), ces fonctions ne travaillent
 | |
| que sur des fichiers à un octet [0..255] par cellule. On peut en
 | |
| fait les classer dans la catégorie <i>bricolages divers</i> pour
 | |
| se rassurer si elles ne fonctionnnent pas.  
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| 
 | |
| <dt>int Image_df3_xper_0(Image_Desc *src, char * fname_df3, int k);
 | |
| <dd>Tentative de fabrication d'un fichier DF3 à partir d'une image en RGB.
 | |
|  Le résultat n'est pas concluant, mais l'idée mérite d'être approfondie.
 | |
| 
 | |
| <dt>int Image_df3_plot_histo(char *fname_df3, char *nomtga, int flag);
 | |
| <dd>Histogramme  linéaire du contenu d'un fichier DF3. Utilité plus que
 | |
|  douteuse. Nous allons essayer da faire mieux.
 | |
| 
 | |
| <dt>int Image_df3f_2_txt(char *nomdf3, char *nomtxt);
 | |
| <dd>Dump d'un fichier df3 dans un fichier texte, à priori <i>parsable</i>
 | |
|  par les outils Unix classiques.
 | |
| 
 | |
| <dt>int
 | |
| Image_df3f_2_povinc(char *nomdf3, char *nominc, char *nomobj, int k, double dv);</dt>
 | |
| <dd>C'est cette fonction qui est actuellement en cours de test dans cette
 | |
| <a href="http://la.buvette.org/POV/ex/df3.html">page</a>, et les résultats
 | |
| semblent prometteurs. Le paramètre <tt>k</tt> contrôle le type du machin
 | |
| qui va servir à matérialiser le contenu de la cellule. Pour le moment,
 | |
| il n'y a que la bouboule.
 | |
| </dd>
 | |
| </dl>
 | |
| 
 | |
| <p>Il existe d'autres fonctions pour traiter les types de données
 | |
|  qu'utilise POVray : les <a href="img-povhf15.html">champs d'altitude</a> pour
 | |
|  le moment.</p>
 | |
| 
 | |
| <hr noshade>
 | |
| <p align=center>[ <a href="http://tboudet.free.fr/cv.html">tTh cherche</a> ]</p>
 | |
| 
 | |
| </body>
 | |
| </html>
 | 
