add QCanvas Root and viewport pane in gcompose

This commit is contained in:
AndreaRigoni
2026-03-21 15:41:58 +00:00
parent 033fb598c7
commit bbd7493d9f
19 changed files with 721 additions and 61 deletions

View File

@@ -1,5 +1,7 @@
#include <QApplication>
#include "MainWindow.h"
#include "MainPanel.h"
#include "QViewportPane.h"
#include "Math/ContainerBox.h"
#include <HEP/Geant/Scene.h>
@@ -27,19 +29,7 @@ int main(int argc, char** argv) {
std::cout << "Starting gcompose Qt application..." << std::endl;
ContainerBox world_box(Vector3f(1, 1, 1));
world_box.Scale(Vector3f(20_mm, 20_mm, 20_mm));
DetectorChamber d1, d2;
d1.SetSize(Vector3f(1, 1, 1));
d1.SetPosition(Vector3f(0, 0, 0));
d1.Scale(Vector3f(5, 10, 2));
d1.Translate(Vector3f(0, 0, 0));
d2.SetSize(Vector3f(1, 1, 1));
d2.SetPosition(Vector3f(0, 0, 0));
d2.Scale(Vector3f(5, 10, 2));
d2.Translate(Vector3f(0, 0, 10));
world_box.Scale(Vector3f(20_mm, 20_mm, 20_mm));
Geant::Scene scene;
scene.ConstructWorldBox(world_box.GetSize(), "G4_AIR");
@@ -47,17 +37,12 @@ int main(int argc, char** argv) {
// 2. Initialize MainWindow (contains embedded VTK QViewport)
MainWindow window;
Vtk::QViewport* viewport = window.getViewport();
Vtk::vtkDetectorChamber vtk_d1(&d1);
viewport->AddPuppet(vtk_d1);
Vtk::vtkDetectorChamber vtk_d2(&d2);
viewport->AddPuppet(vtk_d2);
MainPanel* panel = window.getPanel();
QViewportPane* pane = panel->getFirstPane();
Vtk::QViewport* viewport = qobject_cast<Vtk::QViewport*>(pane->currentViewport());
Vtk::vtkContainerBox vtk_box(&world_box);
viewport->AddPuppet(vtk_box);
viewport->ZoomAuto();
std::cout << "Geant4 and VTK scenes are ready." << std::endl;