本文整理汇总了C++中QueryMolecule::getExplicitValence方法的典型用法代码示例。如果您正苦于以下问题:C++ QueryMolecule::getExplicitValence方法的具体用法?C++ QueryMolecule::getExplicitValence怎么用?C++ QueryMolecule::getExplicitValence使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueryMolecule
的用法示例。
在下文中一共展示了QueryMolecule::getExplicitValence方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _fixAtoms
bool MoleculePiSystemsMatcher::_fixAtoms (QueryMolecule &query, const int *mapping)
{
// Fix charges
for (int qv = query.vertexBegin();
qv != query.vertexEnd();
qv = query.vertexNext(qv))
{
int v = mapping[qv];
if (v < 0)
continue; // Such vertex must be ignored
int pi_system_idx = _atom_pi_system_idx[v];
if (pi_system_idx == _NOT_IN_PI_SYSTEM)
continue;
_Pi_System &pi_system = _pi_systems[pi_system_idx];
QueryMolecule::Atom &qatom = query.getAtom(qv);
int pv = pi_system.inv_mapping[v];
int charge = query.getAtomCharge(qv);
if (charge != CHARGE_UNKNOWN)
{
bool ret = pi_system.localizer->fixAtomCharge(pv, charge);
if (!ret)
return false;
}
else if (qatom.hasConstraint(QueryMolecule::ATOM_CHARGE))
throw Error("Unsupported atom charge specified");
int valence = query.getExplicitValence(qv);
if (valence != -1)
{
bool ret = pi_system.localizer->fixAtomConnectivity(pv, valence);
if (!ret)
return false;
}
else if (qatom.hasConstraint(QueryMolecule::ATOM_VALENCE))
throw Error("Unsupported atom charge specified");
}
return true;
}