Import Geant4 11.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2021-12-10 14:46:44 +01:00
committed by Ben Morgan
parent 6399a014b6
commit 80e2389dd8
3932 changed files with 202519 additions and 246221 deletions
@@ -25,66 +25,91 @@
//
// John Allison 6th October 2020
#if defined (G4VIS_BUILD_TOOLSSG_DRIVER) || defined (G4VIS_USE_TOOLSSG)
#ifndef G4TOOLSSGSCENEHANDLER_HH
#define G4TOOLSSGSCENEHANDLER_HH
#include "G4VSceneHandler.hh"
#include "G4VVisCommand.hh"
#include <vector>
namespace tools {namespace sg {class separator;}}
#include <tools/sg/separator>
namespace tools {namespace sg {class base_freetype;}}
namespace tools {namespace sg {class plots;}}
class G4ToolsSGNode;
class G4ToolsSGSceneHandler: public G4VSceneHandler {
typedef G4VSceneHandler parent;
public:
G4ToolsSGSceneHandler(G4VGraphicsSystem& system,const G4String& name);
virtual ~G4ToolsSGSceneHandler();
protected:
//G4ToolsSGSceneHandler(const G4ToolsSGSceneHandler& a_from):parent(a_from){}
G4ToolsSGSceneHandler& operator=(const G4ToolsSGSceneHandler&){return *this;}
public:
void PreAddSolid(const G4Transform3D& objectTransformation,
const G4VisAttributes&);
void PostAddSolid();
void BeginPrimitives2D(const G4Transform3D& objectTransformation);
void EndPrimitives2D();
void BeginPrimitives(const G4Transform3D& objectTransformation);
void EndPrimitives();
virtual void AddPrimitive(const G4Polyline&);
virtual void AddPrimitive(const G4Scale&);
virtual void AddPrimitive(const G4Text&);
virtual void AddPrimitive(const G4Circle&);
virtual void AddPrimitive(const G4Square&);
virtual void AddPrimitive(const G4Polymarker&);
virtual void AddPrimitive(const G4Polyhedron&);
void ClearStore ();
void ClearTransientStore ();
virtual void AddPrimitive(const G4Plotter&);
public:
tools::sg::separator* ToolsSGScene() {return fpToolsSGScene;}
virtual void ClearStore ();
virtual void ClearTransientStore ();
G4ToolsSGSceneHandler(G4VGraphicsSystem& system,const G4String& name);
virtual ~G4ToolsSGSceneHandler();
tools::sg::separator& GetTransient2DObjects() {return fpTransient2DObjects;}
tools::sg::separator& GetPersistent2DObjects() {return fpPersistent2DObjects;}
tools::sg::separator& GetTransient3DObjects() {return fpTransient3DObjects;}
tools::sg::separator& GetPersistent3DObjects() {return fpPersistent3DObjects;}
void TouchPlotters(tools::sg::node&);
protected:
G4ToolsSGSceneHandler(const G4ToolsSGSceneHandler&);
G4ToolsSGSceneHandler& operator=(const G4ToolsSGSceneHandler&){return *this;}
protected:
void CreateSG();
void EstablishBaseNodes();
tools::sg::separator* GetOrCreateNode(); // For next solid or primitive
static G4int fSceneIdCount; // Counter for Qt3D scene handlers.
void SetPlotterHistograms(tools::sg::plots&);
static G4int fSceneIdCount;
tools::sg::separator fpTransient2DObjects;
tools::sg::separator fpPersistent2DObjects;
tools::sg::separator fpTransient3DObjects;
tools::sg::separator fpPersistent3DObjects;
tools::sg::separator* fpToolsSGScene;
tools::sg::separator* fpTransientObjects;
tools::sg::separator* fpPersistentObjects;
std::vector<G4ToolsSGNode*> fpPhysicalVolumeObjects; // Multiple worlds
tools::sg::base_freetype* fFreetypeNode;
using Region_h1 = std::pair<unsigned int,int>;
using Region_h2 = std::pair<unsigned int,int>;
std::vector<Region_h1> fRegionH1s;
std::vector<Region_h2> fRegionH2s;
class Messenger: public G4VVisCommand {
public:
static void Create() {static Messenger s_messenger;}
virtual void SetNewValue(G4UIcommand*,G4String);
private:
Messenger() {
//////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////
print_plotter_params = new G4UIcommand("/vis/tsg/plotter/printParameters", this);
print_plotter_params->SetGuidance("Print available tools::sg::plotter parameters.");
}
virtual ~Messenger() {
delete print_plotter_params;
}
G4UIcommand* print_plotter_params;
};
};
#endif
#endif