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 /* the pse, only needed here */
43 int visual_init(t_visual *v,char *filebase) {
47 strncpy(v->fb,filebase,128);
49 sprintf(file,"%s/visualize.scr",v->fb);
51 v->fd=open(file,O_WRONLY|O_CREAT|O_EXCL,S_IRUSR|S_IWUSR);
53 perror("open visual fd");
56 dprintf(v->fd,"set write on\n");
61 int visual_tini(t_visual *v) {
64 dprintf(v->fd,"quit\n");
71 int visual_atoms(t_visual *v,double time,t_atom *atom,int n) {
81 //sprintf(file,"%s/visualize_%07.f.xyz",v->fb,time);
82 sprintf(file,"%s/povray_%07.f.in",v->fb,time);
83 fd=open(file,O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR);
85 perror("open visual save file fd");
89 /* script file update */
90 dprintf(v->fd,"load xyz %s\n",file);
91 dprintf(v->fd,"spacefill 200\n");
92 dprintf(v->fd,"rotate x 100\n");
93 dprintf(v->fd,"rotate y 10\n");
94 dprintf(v->fd,"set ambient 20\n");
95 dprintf(v->fd,"set specular on\n");
96 dprintf(v->fd,"set boundbox on\n");
97 //dprintf(v->fd,"label\n");
98 sprintf(file,"%s/visualize_%07.f.ppm",v->fb,time);
99 dprintf(v->fd,"write ppm %s\n",file);
100 dprintf(v->fd,"zap\n");
102 /* write the actual data file */
103 //dprintf(fd,"%d\n",(dim.x==0)?n:n+8);
104 dprintf(fd,"# [C] %d\n",n);
105 dprintf(fd,"# [T] %07.f\n",time);
106 dprintf(fd,"# [L] <%f,%f,%f>\n",-1.0*dim.x/4.0,
107 1.5*dim.y,1.5*dim.z);
109 dprintf(fd,"0.5 %f %f %f\n",atom[i].r.x,
113 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
114 -dim.x/2,-dim.y/2,-dim.z/2,
115 dim.x/2,-dim.y/2,-dim.z/2);
116 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
117 -dim.x/2,-dim.y/2,-dim.z/2,
118 -dim.x/2,dim.y/2,-dim.z/2);
119 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
120 dim.x/2,dim.y/2,-dim.z/2,
121 dim.x/2,-dim.y/2,-dim.z/2);
122 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
123 -dim.x/2,dim.y/2,-dim.z/2,
124 dim.x/2,dim.y/2,-dim.z/2);
126 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
127 -dim.x/2,-dim.y/2,dim.z/2,
128 dim.x/2,-dim.y/2,dim.z/2);
129 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
130 -dim.x/2,-dim.y/2,dim.z/2,
131 -dim.x/2,dim.y/2,dim.z/2);
132 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
133 dim.x/2,dim.y/2,dim.z/2,
134 dim.x/2,-dim.y/2,dim.z/2);
135 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
136 -dim.x/2,dim.y/2,dim.z/2,
137 dim.x/2,dim.y/2,dim.z/2);
139 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
140 -dim.x/2,-dim.y/2,dim.z/2,
141 -dim.x/2,-dim.y/2,-dim.z/2);
142 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
143 -dim.x/2,dim.y/2,dim.z/2,
144 -dim.x/2,dim.y/2,-dim.z/2);
145 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
146 dim.x/2,-dim.y/2,dim.z/2,
147 dim.x/2,-dim.y/2,-dim.z/2);
148 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
149 dim.x/2,dim.y/2,dim.z/2,
150 dim.x/2,dim.y/2,-dim.z/2);