我正在尝试从Python向G4TessellatedSolid添加一个方面。
我定义了一个MyG4TriangularFacet类,它扩展了G4TriangularFacet,即类定义为
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实现这一目标
答案 0 :(得分:0)
忘记为类层次结构添加到类定义中