0

我正在尝试从 Python 向 G4TessellatedSolid 添加一个方面。

我已经定义了一个扩展 G4TriangularFacet 的类 MyG4TriangularFacet,即类定义是

 class MyG4TriangularFacet  :  public  G4TriangularFacet

并且相关的构造函数是

 MyG4TriangularFacet(G4ThreeVector v0,
                     G4ThreeVector v1,
                     G4ThreeVector v2);

尝试使用它的 python 代码看起来像

 facet = MyG4TriangularFacet(v0g4,v1g4,v2g4)

我尝试将它添加到 G4TessellatedSolid

 tessellate = G4TessellatedSolid()
 tessellate.AddFacet(facet)

但我收到以下错误

 tessellate.AddFacet(facet)

 <class 'Boost.Python.ArgumentError'>: Python argument types in
           G4TessellatedSolid.AddFacet(G4TessellatedSolid,MyG4TriangularFacet)           
 did not match C++ signature:
       AddFacet(G4TessellatedSolid {lvalue}, G4VFacet*)

现在我的印象是 G4TriangularFacet 实现了虚函数 G4VFacet。不是这样吗?

AddFacet 期望将指针传递给 G4VFacet 的问题是什么?不确定如何在 Python 中实现这一目标

4

1 回答 1

0

忘记添加到类层次结构的类定义

于 2019-01-28T17:04:00.080 回答