本文整理汇总了C++中OBAtom::SetIsotope方法的典型用法代码示例。如果您正苦于以下问题:C++ OBAtom::SetIsotope方法的具体用法?C++ OBAtom::SetIsotope怎么用?C++ OBAtom::SetIsotope使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OBAtom
的用法示例。
在下文中一共展示了OBAtom::SetIsotope方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mol
//.........这里部分代码省略.........
doubleBondMol.BeginModify();
a1 = doubleBondMol.NewAtom();
a1->SetVector(0.0, 0.0, 0.0);
a1->SetAtomicNum(6);
a2 = doubleBondMol.NewAtom();
a2->SetVector(1.6, 0.0, 0.0);
a2->SetAtomicNum(6);
b = doubleBondMol.NewBond();
b->SetBegin(a1);
b->SetEnd(a2);
a1->AddBond(b);
a2->AddBond(b);
doubleBondMol.EndModify();
cout << "ok 9" << endl;
// test AddHydrogens
OBMol testMolH;
testMolH.BeginModify();
OBAtom *testAtom = testMolH.NewAtom();
testAtom->SetVector(0.5f, 0.5f, 0.5f);
testAtom->SetAtomicNum(6);
testAtom->SetImplicitHCount(4);
testMolH.EndModify();
testMolH.AddHydrogens();
if (testMolH.NumAtoms() == 5) {
cout << "ok 10" << endl;
} else {
cout << "not ok 10" << endl;
}
// test AddHydrogens (pr #1665519)
OBMol testMolH2;
OBAtom *testAtom2 = testMolH2.NewAtom();
testAtom2->SetVector(0.5f, 0.5f, 0.5f);
testAtom2->SetAtomicNum(6);
testAtom2->SetImplicitHCount(4);
testMolH2.AddHydrogens();
if (testMolH2.NumAtoms() == 5) {
cout << "ok 11" << endl;
} else {
cout << "not ok 11 # hydrogen additions" << endl;
}
// Attempt to write an empty InChI (PR#2864334)
pFormat = conv.FindFormat("InChI");
if ( pFormat != NULL && conv.SetOutFormat(pFormat))
{
if (conv.Write(&emptyMol))
cout << "ok 12" << endl;
else
cout << "not ok 12 # failed empty InChI" << endl;
}
OBMol testMolFormula;
string formula("C6");
testMolFormula.SetFormula(formula);
if ( testMolFormula.GetFormula() == formula ) {
cout << "ok 13" << endl;
} else {
cout << "not ok 13 # SetFormula "<< endl;
}
// Reset the formula to test for a double delete error
testMolFormula.SetFormula(formula);
// Test molecular formulas with large atomic numbers
OBMol testLgAtNo;
testLgAtNo.BeginModify();
OBAtom *lgAtom = testLgAtNo.NewAtom();
lgAtom->SetAtomicNum(118);
// Undefined atomic numbers should be ignored with an obWarning instead of segfault
lgAtom = testLgAtNo.NewAtom();
lgAtom->SetAtomicNum(200);
lgAtom = testLgAtNo.NewAtom();
lgAtom->SetAtomicNum(1);
lgAtom->SetIsotope(2);
testLgAtNo.EndModify();
if ( testLgAtNo.GetFormula() == "DOg" ) {
cout << "ok 14" << endl;
} else {
cout << "not ok 14" << endl;
}
double dihedral = CalcTorsionAngle(vector3(-1., -1., 0.),
vector3(-1., 0., 0.),
vector3( 1., 0., 0.),
vector3( 1., 1., 0.));
double dihedral_error = fabs(dihedral) - 180.0;
if (fabs(dihedral_error) < 0.001) {
std::cout << "ok 15 " << dihedral_error << std::endl;
} else {
std::cout << "not ok 15 # CalcTorsionAngle " << dihedral << "!= 180.0" << std::endl;
}
cout << "1..15\n"; // total number of tests for Perl's "prove" tool
return(0);
}