1
/* Copyright (C) 2000 Damir Zucic */
3
/*=============================================================================
8
Assign atomic and van der Waals radius to each atom. Generic radii
9
are assigned to unrecognized atoms.
12
(1) Pointer to MolComplexS structure.
13
(2) Pointer to ConfigS structure.
16
(1) Atomic radius and van der Waals radius assigned to each atom.
20
(1) Positive if there are some atoms.
21
(2) Zero if there are no atoms.
23
========includes:============================================================*/
30
#include <X11/Xutil.h>
32
#include <X11/Xatom.h>
37
/*======assign two radii to each atom:=======================================*/
39
int AssignRadii_ (MolComplexS *mol_complexSP, ConfigS *configSP)
44
/* Return zero if there are no atoms in this macromolecular complex: */
45
atomsN = mol_complexSP->atomsN;
46
if (atomsN == 0) return 0;
48
/* Scan the macromolecular complex: */
49
for (atomI = 0; atomI < atomsN; atomI++)
51
/** Pointer to the current atom: **/
52
curr_atomSP = mol_complexSP->atomSP + atomI;
54
/** Check the chemical symbol and assign radii: **/
55
if (strcmp (curr_atomSP->raw_atomS.chemical_symbolA, " H") == 0)
57
curr_atomSP->raw_atomS.radius = configSP->H_radius;
58
curr_atomSP->raw_atomS.van_der_Waals_radius =
59
configSP->H_van_der_Waals_radius;
61
else if (strcmp (curr_atomSP->raw_atomS.chemical_symbolA, " C") == 0)
63
curr_atomSP->raw_atomS.radius = configSP->C_radius;
64
curr_atomSP->raw_atomS.van_der_Waals_radius =
65
configSP->C_van_der_Waals_radius;
67
else if (strcmp (curr_atomSP->raw_atomS.chemical_symbolA, " N") == 0)
69
curr_atomSP->raw_atomS.radius = configSP->N_radius;
70
curr_atomSP->raw_atomS.van_der_Waals_radius =
71
configSP->N_van_der_Waals_radius;
73
else if (strcmp (curr_atomSP->raw_atomS.chemical_symbolA, " O") == 0)
75
curr_atomSP->raw_atomS.radius = configSP->O_radius;
76
curr_atomSP->raw_atomS.van_der_Waals_radius =
77
configSP->O_van_der_Waals_radius;
79
else if (strcmp (curr_atomSP->raw_atomS.chemical_symbolA, " S") == 0)
81
curr_atomSP->raw_atomS.radius = configSP->S_radius;
82
curr_atomSP->raw_atomS.van_der_Waals_radius =
83
configSP->S_van_der_Waals_radius;
85
else if (strcmp (curr_atomSP->raw_atomS.chemical_symbolA, " P") == 0)
87
curr_atomSP->raw_atomS.radius = configSP->P_radius;
88
curr_atomSP->raw_atomS.van_der_Waals_radius =
89
configSP->P_van_der_Waals_radius;
93
curr_atomSP->raw_atomS.radius = configSP->generic_radius;
94
curr_atomSP->raw_atomS.van_der_Waals_radius =
95
configSP->generic_van_der_Waals_radius;
99
/* Return positive value if this point is reached: */
103
/*===========================================================================*/