add vtk solids

This commit is contained in:
AndreaRigoni
2026-03-25 21:03:13 +00:00
parent e4a8499104
commit 422113a0e9
17 changed files with 353 additions and 16 deletions

View File

@@ -25,6 +25,8 @@
#include "vtkGeantScene.h"
#include "vtkGeantSolid.h"
#include "vtkBoxSolid.h"
#include "vtkTessellatedSolid.h"
#include "Vtk/vtkViewport.h"
namespace uLib {
@@ -54,8 +56,19 @@ vtkGeantScene::vtkGeantScene(Geant::Scene *scene)
// Only create a puppet if the solid has a valid G4VSolid
if (solid->GetG4Solid()) {
vtkGeantSolid *vtkSolid = new vtkGeantSolid(solid);
m_SolidPuppets.push_back(vtkSolid);
vtkGeantSolid *vtkSolid = nullptr;
if (auto *box = dynamic_cast<Geant::BoxSolid *>(solid)) {
vtkSolid = new vtkBoxSolid(box);
} else if (auto *tess = dynamic_cast<Geant::TessellatedSolid *>(solid)) {
vtkSolid = new vtkTessellatedSolid(tess);
} else {
vtkSolid = new vtkGeantSolid(solid);
vtkSolid->Update();
}
if (vtkSolid) {
m_SolidPuppets.push_back(vtkSolid);
}
}
}
}