本文整理汇总了C++中BaseMolecule::setAtomXyz方法的典型用法代码示例。如果您正苦于以下问题:C++ BaseMolecule::setAtomXyz方法的具体用法?C++ BaseMolecule::setAtomXyz怎么用?C++ BaseMolecule::setAtomXyz使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BaseMolecule
的用法示例。
在下文中一共展示了BaseMolecule::setAtomXyz方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: adjustMol
void Metalayout::adjustMol (BaseMolecule& mol, const Vec2f& min, const Vec2f& pos)
{
float scaleFactor = getScaleFactor();
// Compute center points for the data sgroups
QS_DEF(Array<Vec2f>, data_centers);
data_centers.resize(mol.data_sgroups.end());
for (int i = mol.data_sgroups.begin(); i < mol.data_sgroups.end(); i = mol.data_sgroups.next(i))
{
BaseMolecule::DataSGroup &group = mol.data_sgroups[i];
if (!group.relative)
mol.getSGroupAtomsCenterPoint(group, data_centers[i]);
}
for (int i = mol.vertexBegin(); i < mol.vertexEnd(); i = mol.vertexNext(i))
{
Vec2f v;
Vec2f::projectZ(v, mol.getAtomXyz(i));
v.sub(min);
v.scale(scaleFactor);
v.add(pos);
v.y = -v.y;
mol.setAtomXyz(i, v.x, v.y, 0);
}
// Adjust data-sgroup label positions with absolute coordinates
for (int i = mol.data_sgroups.begin(); i < mol.data_sgroups.end(); i = mol.data_sgroups.next(i))
{
BaseMolecule::DataSGroup &group = mol.data_sgroups[i];
if (!group.relative)
{
Vec2f new_center;
mol.getSGroupAtomsCenterPoint(group, new_center);
group.display_pos.add(new_center);
group.display_pos.sub(data_centers[i]);
}
}
}