feat: implement Geant Material class, add object registration, and update PropertyWidget signal handling and read-only state

This commit is contained in:
AndreaRigoni
2026-04-01 11:13:47 +00:00
parent e1bd7eb44f
commit 8e6e332217
10 changed files with 148 additions and 21 deletions

View File

@@ -52,6 +52,7 @@ public:
void SetNistMaterial(const char *name);
void SetMaterial(G4Material *material);
void SetSizeUnit(const char *unit);
// Implementiamo SetParent qui, per tutti.
virtual void SetParent(Solid *parent);
@@ -69,6 +70,14 @@ public:
return m_Logical ? m_Logical->GetName().c_str() : m_Name.c_str();
}
template < typename Ar >
void serialize(Ar &ar, const unsigned int version) {
ar & m_Name;
}
protected:
std::string m_Name;
@@ -89,6 +98,7 @@ public:
virtual const char* GetClassName() const override { return "Geant.TessellatedSolid"; }
TessellatedSolid();
TessellatedSolid(const char *name);
void SetMesh(TriangleMesh &mesh);
uLibGetMacro(Solid, G4TessellatedSolid *)
@@ -116,16 +126,23 @@ public:
virtual const char* GetClassName() const override { return "Geant.BoxSolid"; }
BoxSolid(const char *name = "");
BoxSolid(const char *name, ContainerBox *box);
virtual G4VSolid* GetG4Solid() const override { return (G4VSolid*)m_Solid; }
ContainerBox* GetObject() const { return m_Object; }
ContainerBox* GetObject() const { return m_ContainerBox; }
template < typename Ar >
void serialize(Ar &ar, const unsigned int version) {
ar & boost::serialization::base_object<BaseClass>(*this);
ar & m_ContainerBox;
}
public slots:
void Update();
private:
ContainerBox *m_Object;
ContainerBox *m_ContainerBox;
G4Box *m_Solid;
};