changes to visualization, not finished by now!
[physik/posic.git] / visual / visual.c
index d03903b..3a8f7f8 100644 (file)
@@ -46,9 +46,9 @@ int visual_init(t_visual *v,char *filebase) {
 
        strncpy(v->fb,filebase,128);
        memset(file,0,128+8);
-       sprintf(file,"%s.scr",v->fb);
+       sprintf(file,"%s/visualize.scr",v->fb);
 
-       v->fd=open(file,O_WRONLY|O_CREAT|O_TRUNC);
+       v->fd=open(file,O_WRONLY|O_CREAT|O_EXCL,S_IRUSR|S_IWUSR);
        if(v->fd<0) {
                perror("open visual fd");
                return -1;
@@ -78,8 +78,9 @@ int visual_atoms(t_visual *v,double time,t_atom *atom,int n) {
        dim.y=v->dim.y;
        dim.z=v->dim.z;
 
-       sprintf(file,"%s-%07f.xyz",v->fb,time);
-       fd=open(file,O_WRONLY|O_CREAT|O_TRUNC);
+       //sprintf(file,"%s/visualize_%07.f.xyz",v->fb,time);
+       sprintf(file,"%s/povray_%07.f.in",v->fb,time);
+       fd=open(file,O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR);
        if(fd<0) {
                perror("open visual save file fd");
                return -1;
@@ -87,35 +88,68 @@ int visual_atoms(t_visual *v,double time,t_atom *atom,int n) {
 
        /* script file update */
        dprintf(v->fd,"load xyz %s\n",file);
-       dprintf(v->fd,"spacefill 270\n");
+       dprintf(v->fd,"spacefill 200\n");
        dprintf(v->fd,"rotate x 100\n");
        dprintf(v->fd,"rotate y 10\n");
        dprintf(v->fd,"set ambient 20\n");
        dprintf(v->fd,"set specular on\n");
        dprintf(v->fd,"set boundbox on\n");
        //dprintf(v->fd,"label\n");
-       sprintf(file,"%s-%.15f.ppm",v->fb,time);
+       sprintf(file,"%s/visualize_%07.f.ppm",v->fb,time);
        dprintf(v->fd,"write ppm %s\n",file);
        dprintf(v->fd,"zap\n");
 
        /* write the actual data file */
-       dprintf(fd,"%d\n",(dim.x==0)?n:n+8);
-       dprintf(fd,"atoms at time %.15f\n",time);
+       //dprintf(fd,"%d\n",(dim.x==0)?n:n+8);
+       dprintf(fd,"# [C] %d\n",n);
+       dprintf(fd,"# [T] %07.f\n",time);
+       dprintf(fd,"# [L] <%f,%f,%f>\n",-1.0*dim.x/4.0,
+                                       1.5*dim.y,1.5*dim.z);
        for(i=0;i<n;i++)
-               dprintf(fd,"%s %f %f %f\n",pse[atom[i].element],
-                                          atom[i].r.x,
-                                          atom[i].r.y,
-                                          atom[i].r.z);
+               dprintf(fd,"0.5 %f %f %f\n",atom[i].r.x,
+                                           atom[i].r.y,
+                                           atom[i].r.z);
        if(dim.x) {
-               dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,dim.y/2,dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,dim.y/2,dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,-dim.y/2,dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,dim.y/2,-dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,-dim.y/2,dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,-dim.y/2,-dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,dim.y/2,-dim.z/2);
-               dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,-dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,-dim.y/2,-dim.z/2,
+                       dim.x/2,-dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,-dim.y/2,-dim.z/2,
+                       -dim.x/2,dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       dim.x/2,dim.y/2,-dim.z/2,
+                       dim.x/2,-dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,dim.y/2,-dim.z/2,
+                       dim.x/2,dim.y/2,-dim.z/2);
+
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,-dim.y/2,dim.z/2,
+                       dim.x/2,-dim.y/2,dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,-dim.y/2,dim.z/2,
+                       -dim.x/2,dim.y/2,dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       dim.x/2,dim.y/2,dim.z/2,
+                       dim.x/2,-dim.y/2,dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,dim.y/2,dim.z/2,
+                       dim.x/2,dim.y/2,dim.z/2);
+
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,-dim.y/2,dim.z/2,
+                       -dim.x/2,-dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       -dim.x/2,dim.y/2,dim.z/2,
+                       -dim.x/2,dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       dim.x/2,-dim.y/2,dim.z/2,
+                       dim.x/2,-dim.y/2,-dim.z/2);
+               dprintf(fd,"# [D] %f %f %f %f %f %f\n",
+                       dim.x/2,dim.y/2,dim.z/2,
+                       dim.x/2,dim.y/2,-dim.z/2);
        }
+
        close(fd);
 
        return 0;