| 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 |
|
} |
| 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, |