Добавление фасета к G4TessellatedSolid - PullRequest
0 голосов
/ 27 января 2019

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

1 Ответ

0 голосов
/ 28 января 2019

Забыл добавить в определение класса для иерархии классов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...