124 REAL OrigMatrix[3][4],
REAL ScaleMatrix[3][4])
135 UnitCell->
x = UnitCell->
y = UnitCell->
z = (
REAL)1.0;
136 CellAngles->
x = CellAngles->
y = CellAngles->
z = (
REAL)90.0*
PI/180.0;
141 OrigMatrix[i][j] = (
REAL)0.0;
142 ScaleMatrix[i][j] = (
REAL)0.0;
144 OrigMatrix[i][i] = (
REAL)1.0;
146 strcpy(spacegroup,
"P");
148 while(((ch=fgetc(fp)) != EOF) && !feof(fp))
158 if(ch==
'A' || ch==
'C' || ch==
'H' || ch==
'O' || ch==
'S')
160 buffer[0] = (char)ch;
164 if(ch==EOF || feof(fp))
167 buffer[i] = (char)ch;
172 if(!strncmp(buffer,
"ATOM ",6) || !strncmp(buffer,
"HETATM",6))
178 ungetc(buffer[i], fp);
183 if(!strncmp(buffer,
"CRYST1",6))
189 ungetc(buffer[i], fp);
193 "%6x%9.3lf%9.3lf%9.3lf%7.2lf%7.2lf%7.2lf%1x%14s",
201 CellAngles->
x *=
PI/180.0;
202 CellAngles->
y *=
PI/180.0;
203 CellAngles->
z *=
PI/180.0;
209 if(!strncmp(buffer,
"ORIGX",5))
215 ungetc(buffer[i], fp);
217 fsscanf(buffer,
"%5x%1d",&record);
221 "%10x%10.6lf%10.6lf%10.6lf%15.5lf",
222 &(OrigMatrix[record][0]),
223 &(OrigMatrix[record][1]),
224 &(OrigMatrix[record][2]),
225 &(OrigMatrix[record][3]));
231 if(!strncmp(buffer,
"SCALE",5))
237 ungetc(buffer[i], fp);
239 fsscanf(buffer,
"%5x%1d",&record);
243 "%10x%10.6lf%10.6lf%10.6lf%15.5lf",
244 &(ScaleMatrix[record][0]),
245 &(ScaleMatrix[record][1]),
246 &(ScaleMatrix[record][2]),
247 &(ScaleMatrix[record][3]));
295 REAL OrigMatrix[3][4],
REAL ScaleMatrix[3][4])
303 UnitCell->
x = UnitCell->
y = UnitCell->
z = (
REAL)1.0;
304 CellAngles->
x = CellAngles->
y = CellAngles->
z = (
REAL)90.0*
PI/180.0;
309 OrigMatrix[i][j] = (
REAL)0.0;
310 ScaleMatrix[i][j] = (
REAL)0.0;
312 OrigMatrix[i][i] = (
REAL)1.0;
314 strcpy(spacegroup,
"P");
324 if(!strncmp(buffer,
"CRYST1",6))
330 "%6x%9.3lf%9.3lf%9.3lf%7.2lf%7.2lf%7.2lf%1x%14s",
338 CellAngles->
x *=
PI/180.0;
339 CellAngles->
y *=
PI/180.0;
340 CellAngles->
z *=
PI/180.0;
344 else if(!strncmp(buffer,
"ORIGX",5))
349 fsscanf(buffer,
"%5x%1d",&record);
352 "%10x%10.6lf%10.6lf%10.6lf%15.5lf",
353 &(OrigMatrix[record][0]),
354 &(OrigMatrix[record][1]),
355 &(OrigMatrix[record][2]),
356 &(OrigMatrix[record][3]));
360 else if(!strncmp(buffer,
"SCALE",5))
365 fsscanf(buffer,
"%5x%1d",&record);
368 "%10x%10.6lf%10.6lf%10.6lf%15.5lf",
369 &(ScaleMatrix[record][0]),
370 &(ScaleMatrix[record][1]),
371 &(ScaleMatrix[record][2]),
372 &(ScaleMatrix[record][3]));
Include file for PDB routines.
int blGetCrystWholePDB(WHOLEPDB *wpdb, VEC3F *UnitCell, VEC3F *CellAngles, char *spacegroup, REAL OrigMatrix[3][4], REAL ScaleMatrix[3][4])
int blGetCrystPDB(FILE *fp, VEC3F *UnitCell, VEC3F *CellAngles, char *spacegroup, REAL OrigMatrix[3][4], REAL ScaleMatrix[3][4])
int fsscanf(char *buffer, char *format,...)
Include file for fsscanf()
System-type variable type definitions.
Type definitions for maths.