int Confo_Back::Recon_Back_WS_One(XYZ *mol,char *cle,int moln,XYZ **output,XYZ pre,XYZ nxt) { if(moln!=1)return -1; XYZ real; double dist; //pre real=pre-mol[0]; dist=pre.distance(mol[0]); real=real/dist; real=real*3.8; case_mol[0]=mol[0]+real; //nxt real=nxt-mol[0]; dist=nxt.distance(mol[0]); real=real/dist; real=real*3.8; case_mol[2]=mol[0]+real; //construct case_mol[1]=mol[0]; case_cle[0]='Q'; if(cle[0]!='R')case_cle[1]=cle[0]; else case_cle[1]='Q'; case_cle[2]='Q'; //build int retv; retv=Recon_Back_WS(case_mol,case_cle,3,case_mcb); if(retv!=1)return retv; //final int j; for(j=0;j<5;j++)output[0][j]=case_mcb[1][j]; //return return 1; }
int Confo_Back::Recon_Back_WS_2nxt(XYZ *mol,char *cle,int moln,XYZ **output,XYZ nxt) { if(moln!=2)return -1; XYZ real; double dist; real=nxt-mol[1]; dist=nxt.distance(mol[1]); real=real/dist; real=real*3.8; real=mol[1]+real; //construct case_mol[0]=mol[0]; case_mol[1]=mol[1]; case_mol[2]=real; if(cle[0]!='R')case_cle[0]=cle[0]; else case_cle[0]='Q'; if(cle[1]!='R')case_cle[1]=cle[1]; else case_cle[1]='Q'; case_cle[2]='Q'; //build int retv; retv=Recon_Back_WS(case_mol,case_cle,3,case_mcb); if(retv!=1)return retv; //final int i,j; for(i=0;i<2;i++)for(j=0;j<5;j++)output[i][j]=case_mcb[i][j]; //return return 1; }