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 */
21 static char *pse_name[]={
43 static char *pse_col[]={
65 int visual_init(t_visual *v,char *filebase) {
69 strncpy(v->fb,filebase,128);
71 //sprintf(file,"%s/visualize.scr",v->fb); // obsolete!
74 v->fd=open(file,O_WRONLY|O_CREAT|O_EXCL,S_IRUSR|S_IWUSR);
76 perror("open visual fd");
79 dprintf(v->fd,"set write on\n");
85 int visual_tini(t_visual *v) {
89 dprintf(v->fd,"quit\n");
97 int visual_atoms(t_visual *v,double time,t_atom *atom,int n) {
110 sprintf(file,"%s/atomic_conf_%07.f.xyz",v->fb,time);
111 fd=open(file,O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR);
113 perror("open visual save file fd");
117 /* script file update */
119 dprintf(v->fd,"load xyz %s\n",file);
120 dprintf(v->fd,"spacefill 200\n");
121 dprintf(v->fd,"rotate x 100\n");
122 dprintf(v->fd,"rotate y 10\n");
123 dprintf(v->fd,"set ambient 20\n");
124 dprintf(v->fd,"set specular on\n");
125 dprintf(v->fd,"set boundbox on\n");
126 //dprintf(v->fd,"label\n");
127 sprintf(file,"%s/visualize_%07.f.ppm",v->fb,time);
128 dprintf(v->fd,"write ppm %s\n",file);
129 dprintf(v->fd,"zap\n");
132 /* write the actual data file */
133 //dprintf(fd,"%d\n",(dim.x==0)?n:n+8);
134 dprintf(fd,"# [P] %d %07.f <%f,%f,%f>\n",
135 n,time,help/40.0,help/40.0,-0.8*help);
137 dprintf(fd,"%s %f %f %f %s %f\n",pse_name[atom[i].element],
141 pse_col[atom[i].element],
144 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
145 -dim.x/2,-dim.y/2,-dim.z/2,
146 dim.x/2,-dim.y/2,-dim.z/2);
147 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
148 -dim.x/2,-dim.y/2,-dim.z/2,
149 -dim.x/2,dim.y/2,-dim.z/2);
150 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
151 dim.x/2,dim.y/2,-dim.z/2,
152 dim.x/2,-dim.y/2,-dim.z/2);
153 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
154 -dim.x/2,dim.y/2,-dim.z/2,
155 dim.x/2,dim.y/2,-dim.z/2);
157 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
158 -dim.x/2,-dim.y/2,dim.z/2,
159 dim.x/2,-dim.y/2,dim.z/2);
160 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
161 -dim.x/2,-dim.y/2,dim.z/2,
162 -dim.x/2,dim.y/2,dim.z/2);
163 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
164 dim.x/2,dim.y/2,dim.z/2,
165 dim.x/2,-dim.y/2,dim.z/2);
166 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
167 -dim.x/2,dim.y/2,dim.z/2,
168 dim.x/2,dim.y/2,dim.z/2);
170 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
171 -dim.x/2,-dim.y/2,dim.z/2,
172 -dim.x/2,-dim.y/2,-dim.z/2);
173 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
174 -dim.x/2,dim.y/2,dim.z/2,
175 -dim.x/2,dim.y/2,-dim.z/2);
176 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
177 dim.x/2,-dim.y/2,dim.z/2,
178 dim.x/2,-dim.y/2,-dim.z/2);
179 dprintf(fd,"# [D] %f %f %f %f %f %f\n",
180 dim.x/2,dim.y/2,dim.z/2,
181 dim.x/2,dim.y/2,-dim.z/2);