00001 00054 #ifndef _VALIST_H_ 00055 #define _VALIST_H_ 00056 00057 /* Generic headers */ 00058 #include "maloc/maloc.h" 00059 #include "apbs/vhal.h" 00060 00061 /* Headers specific to this file */ 00062 #include "apbs/vatom.h" 00063 #include "apbs/vparam.h" 00064 00070 struct sValist { 00071 00072 int number; 00073 double center[3]; 00074 double mincrd[3]; 00075 double maxcrd[3]; 00076 double maxrad; 00077 double charge; 00078 Vatom *atoms; 00079 Vmem *vmem; 00081 }; 00082 00087 typedef struct sValist Valist; 00088 00089 #if !defined(VINLINE_VATOM) 00090 00097 VEXTERNC Vatom* Valist_getAtomList( 00098 Valist *thee 00099 ); 00100 00106 VEXTERNC double Valist_getCenterX( 00107 Valist *thee 00108 ); 00109 00115 VEXTERNC double Valist_getCenterY( 00116 Valist *thee 00117 ); 00118 00124 VEXTERNC double Valist_getCenterZ( 00125 Valist *thee 00126 ); 00127 00133 VEXTERNC int Valist_getNumberAtoms( 00134 Valist *thee 00135 ); 00136 00142 VEXTERNC Vatom* Valist_getAtom( 00143 Valist *thee, 00144 int i 00145 ); 00146 00152 VEXTERNC unsigned long int Valist_memChk( 00153 Valist *thee 00154 ); 00155 00156 #else /* if defined(VINLINE_VATOM) */ 00157 # define Valist_getAtomList(thee) ((thee)->atoms) 00158 # define Valist_getNumberAtoms(thee) ((thee)->number) 00159 # define Valist_getAtom(thee, i) (&((thee)->atoms[i])) 00160 # define Valist_memChk(thee) (Vmem_bytes((thee)->vmem)) 00161 # define Valist_getCenterX(thee) ((thee)->center[0]) 00162 # define Valist_getCenterY(thee) ((thee)->center[1]) 00163 # define Valist_getCenterZ(thee) ((thee)->center[2]) 00164 #endif /* if !defined(VINLINE_VATOM) */ 00165 00171 VEXTERNC Valist* Valist_ctor(); 00172 00178 VEXTERNC Vrc_Codes Valist_ctor2( 00179 Valist *thee 00180 ); 00181 00186 VEXTERNC void Valist_dtor( 00187 Valist **thee 00188 ); 00189 00194 VEXTERNC void Valist_dtor2( 00195 Valist *thee 00196 ); 00197 00209 VEXTERNC Vrc_Codes Valist_readPQR( 00210 Valist *thee, 00211 Vparam *param, 00212 Vio *sock 00213 ); 00214 00224 VEXTERNC Vrc_Codes Valist_readPDB( 00225 Valist *thee, 00226 Vparam *param, 00227 Vio *sock 00228 ); 00229 00239 VEXTERNC Vrc_Codes Valist_readXML( 00240 Valist *thee, 00241 Vparam *param, 00242 Vio *sock 00243 ); 00244 00251 VEXTERNC Vrc_Codes Valist_getStatistics(Valist *thee); 00252 00253 00254 #endif /* ifndef _VALIST_H_ */