我正在研究从头开始构建分子的程序。我的意图是使用vtkMolecule
它。然而,虽然很容易通过AppendAtom
方法将原子添加到分子中,但似乎没有去除的功能。
这是我的代码:
int main(int, char *[]) {
vtkSmartPointer<vtkMolecule> molecule =
vtkSmartPointer<vtkMolecule>::New();
molecule->AppendAtom(12, 0.0, 0.0, 0.0);
molecule->AppendAtom(12, 1.0, 1.0, 1.0);
molecule->AppendAtom(12, 2.0, 2.0, 2.0);
molecule->AppendBond(molecule->GetAtom(0), molecule->GetAtom(1), 1);
molecule->AppendBond(molecule->GetAtom(1), molecule->GetAtom(2), 1);
//hypothetical code, I want something like this - remove atom by id:
molecule->RemoveAtom(2)
vtkSmartPointer<vtkMoleculeMapper> moleculeMapper =
vtkSmartPointer<vtkMoleculeMapper>::New();
moleculeMapper->SetInputData(molecule);
//...rendering etc.
}
我在想一些vtkGraph
类似的方法vtkGraph::RemoveVertexInternal
,但它(可能由于某种原因)受到保护,因此不能在子类的子类中使用。
我的问题是:
vtkMolecule
除了用专门的方法创建子类之外,有没有一种简单的方法可以从分子中删除原子?
先感谢您。