101 |
|
return false; |
102 |
|
} |
103 |
|
|
104 |
< |
//exact graph matching is a NP complete problem, |
104 |
> |
//exact graph matching is a NP complete problem |
105 |
> |
/** @todo using sparse matrix to store the connectivities*/ |
106 |
|
for (unsigned int i =0 ; i < frag1.size(); ++i) |
107 |
|
{ |
108 |
< |
if (strcmp(mol.GetAtom(frag1[i])->GetType(), mol.GetAtom(frag2[i])->GetType()) ) |
108 |
> |
OBAtom* atom1 = mol.GetAtom(frag1[i]); |
109 |
> |
OBAtom* atom2 = mol.GetAtom(frag2[i]); |
110 |
> |
|
111 |
> |
if (atom1->GetAtomicNum() != atom2->GetAtomicNum()) |
112 |
|
{ |
113 |
|
return false; |
114 |
|
} |
202 |
|
int ai = 0; |
203 |
|
FOR_ATOMS_OF_MOL(atom, *pmol ) { |
204 |
|
os << identLevel1 << "atom[" << ai << "] {\n"; |
205 |
< |
os << identLevel2 << "type = " << "\"" << atom->GetType() << "\"" << ";\n"; |
205 |
> |
os << identLevel2 << "type = " << "\"" << etab.GetSymbol(atom->GetAtomicNum()) << "\"" << ";\n"; |
206 |
|
os << identLevel1 << "}\n"; |
207 |
|
atomMap[&(*atom)] = ai++; |
208 |
|
} |
209 |
+ |
os << "\n"; |
210 |
|
|
211 |
|
//bond |
212 |
|
FOR_BONDS_OF_MOL(bond, *pmol ) { |
251 |
|
} |
252 |
|
*/ |
253 |
|
os << "}\n"; |
254 |
+ |
os << "\n"; |
255 |
+ |
|
256 |
|
} |
257 |
|
|
258 |
+ |
os << "\n"; |
259 |
|
os << "nComponents = " << mols.size() << ";\n"; |
260 |
|
|
261 |
|
for(unsigned int i =0; i < mols.size(); ++i) |
284 |
|
for(vector<int>::iterator i = indices.begin();i != indices.end(); ++i) |
285 |
|
{ |
286 |
|
atom = mol.GetAtom(*i); |
287 |
< |
sprintf(buffer,"%15s%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f", |
288 |
< |
atom->GetType(), |
287 |
> |
sprintf(buffer,"%-10s%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f%-15.5f", |
288 |
> |
etab.GetSymbol(atom->GetAtomicNum()), |
289 |
|
atom->GetX(), atom->GetY(), atom->GetZ(), |
290 |
|
0.0, 0.0, 0.0, |
291 |
|
0.0, 0.0, 0.0, 0.0, |