Я пытаюсь добавить фасет к G4TessellatedSolid из Python.
Я определил класс 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