00001
00002
00003
00004
00021 #ifndef MDIO_TOPO_H
00022 #define MDIO_TOPO_H
00023
00024 #include "adt/array.h"
00025 #include "mdio/file.h"
00026 #include "mdio/param.h"
00027 #include "mdapi/mdtypes.h"
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00037 typedef struct mdio_Topo_t {
00038 mdio_File file;
00039 adt_Array atom;
00040 adt_Array bond;
00041 adt_Array angle;
00042 adt_Array dihed;
00043 adt_Array impr;
00044 adt_Array excl;
00045 char *buffer;
00046 int bufferlen;
00047 } mdio_Topo;
00048
00049
00050
00051
00058 mdio_Topo *mdio_createTopo(void);
00059
00060
00069 void mdio_destroyTopo(mdio_Topo *);
00070
00071
00072
00073
00083 int mdio_readTopo(mdio_Topo *, const char *name);
00084
00085
00106 int mdio_indexParamTopo(mdio_Topo *, mdio_Param *p);
00107
00108
00115 MD_Atom *mdio_getAtomTopo(mdio_Topo *, int *nelems);
00116
00117
00124 MD_Bond *mdio_getBondTopo(mdio_Topo *, int *nelems);
00125
00126
00133 MD_Angle *mdio_getAngleTopo(mdio_Topo *, int *nelems);
00134
00135
00142 MD_Tors *mdio_getDihedTopo(mdio_Topo *, int *nelems);
00143
00144
00151 MD_Tors *mdio_getImprTopo(mdio_Topo *, int *nelems);
00152
00153
00160 MD_Excl *mdio_getExclTopo(mdio_Topo *, int *nelems);
00161
00162
00163
00164
00170 int mdio_initializeTopo(mdio_Topo *);
00171
00172
00178 void mdio_cleanupTopo(mdio_Topo *);
00179
00180 #ifdef __cplusplus
00181 }
00182 #endif
00183
00184 #endif