2 * visual.c - visualization functions
4 * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
10 #include <sys/types.h>
17 #include "../moldyn.h"
18 #include "../math/math.h"
20 int visual_init(t_visual *v,char *filebase) {
24 strncpy(v->fb,filebase,128);
26 sprintf(file,"%s.scr",v->fb);
28 v->fd=open(file,O_WRONLY|O_CREAT|O_TRUNC);
30 perror("open visual fd");
34 memset(&(v->dim),0,sizeof(t_3dvec));
39 int visual_tini(t_visual *v) {
41 if(v->fd) close(v->fd);
46 int visual_atoms(t_visual *v,double time,t_atom *atom,int n) {
78 sprintf(file,"%s-%.15f.xyz",v->fb,time);
79 fd=open(file,O_WRONLY|O_CREAT|O_TRUNC);
81 perror("open visual save file fd");
85 /* script file update */
86 dprintf(v->fd,"load xyz %s\n",file);
87 dprintf(v->fd,"spacefill 300\n");
88 dprintf(v->fd,"rotate x 100\n");
89 dprintf(v->fd,"rotate y 10\n");
90 dprintf(v->fd,"set ambient 20\n");
91 dprintf(v->fd,"set specular on\n");
92 sprintf(file,"%s-%.15f.ppm",v->fb,time);
93 dprintf(v->fd,"write ppm %s\n",file);
94 dprintf(v->fd,"zap\n");
96 /* write the actual data file */
97 dprintf(fd,"%d\n",(dim.x==0)?n:n+8);
98 dprintf(fd,"atoms at time %.15f\n",time);
100 dprintf(fd,"%s %f %f %f\n",pse[atom[i].element],
105 dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,dim.y/2,dim.z/2);
106 dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,dim.y/2,dim.z/2);
107 dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,-dim.y/2,dim.z/2);
108 dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,dim.y/2,-dim.z/2);
109 dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,-dim.y/2,dim.z/2);
110 dprintf(fd,"%s %f %f %f\n",pse[0],dim.x/2,-dim.y/2,-dim.z/2);
111 dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,dim.y/2,-dim.z/2);
112 dprintf(fd,"%s %f %f %f\n",pse[0],-dim.x/2,-dim.y/2,-dim.z/2);