bool gmx_mtop_atomloop_all_next(gmx_mtop_atomloop_all_t aloop, int *at_global,t_atom **atom) { if (aloop == NULL) { gmx_incons("gmx_mtop_atomloop_all_next called without calling gmx_mtop_atomloop_all_init"); } aloop->at_local++; aloop->at_global++; if (aloop->at_local >= aloop->atoms->nr) { aloop->resnr_offset += aloop->atoms->nres; aloop->mol++; aloop->at_local = 0; if (aloop->mol >= aloop->mtop->molblock[aloop->mblock].nmol) { aloop->mblock++; if (aloop->mblock >= aloop->mtop->nmolblock) { gmx_mtop_atomloop_all_destroy(aloop); return FALSE; } aloop->atoms = &aloop->mtop->moltype[aloop->mtop->molblock[aloop->mblock].type].atoms; aloop->mol = 0; } } *at_global = aloop->at_global; *atom = &aloop->atoms->atom[aloop->at_local]; return TRUE; }
gmx_bool gmx_mtop_atomloop_all_next(gmx_mtop_atomloop_all_t aloop, int *at_global,t_atom **atom) { if (aloop == NULL) { gmx_incons("gmx_mtop_atomloop_all_next called without calling gmx_mtop_atomloop_all_init"); } aloop->at_local++; aloop->at_global++; if (aloop->at_local >= aloop->atoms->nr) { if (aloop->atoms->nres <= aloop->mtop->maxres_renum) { /* Single residue molecule, increase the count with one */ aloop->maxresnr += aloop->atoms->nres; } aloop->mol++; aloop->at_local = 0; if (aloop->mol >= aloop->mtop->molblock[aloop->mblock].nmol) { aloop->mblock++; if (aloop->mblock >= aloop->mtop->nmolblock) { gmx_mtop_atomloop_all_destroy(aloop); return FALSE; } aloop->atoms = &aloop->mtop->moltype[aloop->mtop->molblock[aloop->mblock].type].atoms; aloop->mol = 0; } } *at_global = aloop->at_global; *atom = &aloop->atoms->atom[aloop->at_local]; return TRUE; }