Import Geant4 3.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:10:37 +02:00
parent 137e303ecc
commit 36c080dca6
3464 changed files with 119310 additions and 52696 deletions
@@ -0,0 +1,319 @@
To add a graphics system implement 3 new classes:
class G4XXX: public G4VGraphicsSystem
class G4XXXSceneHandler: public G4VSceneHandler
class G4XXXViewer: virtual public G4VViewer
Introduce two new environment variables G4VIS_BUILD_XXX_DRIVER and GG4VIS_USE_XXX and make the attached modifications to:
source/visualization/management/include/MyVisManager.cc
(similarly all examples vis managers)
source/visualization/management/src/G4VisManager.cc
config/G4VIS_BUILD.gmk
config/G4VIS_USE.gmk
===================================================================
include/G4XXX.hh
===================================================================
#ifndef G4XXX_HH
#define G4XXX_HH
#include "G4VGraphicsSystem.hh"
class G4XXX: public G4VGraphicsSystem {
public:
G4XXX ();
virtual ~G4XXX ();
G4VSceneHandler* CreateSceneHandler (const G4String& name = "");
G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = "");
};
#include "G4XXX.hh"
#include "G4XXXSceneHandler.hh"
#include "G4XXXViewer.hh"
#endif
===================================================================
===================================================================
include/G4XXXSceneHandler.hh
===================================================================
#ifndef G4XXXSCENEHANDLER_HH
#define G4XXXSCENEHANDLER_HH
#include "G4VSceneHandler.hh"
#include "G4Box.hh"
#include "G4Cons.hh"
#include "G4Tubs.hh"
#include "G4Trd.hh"
#include "G4Trap.hh"
#include "G4Sphere.hh"
#include "G4Para.hh"
#include "G4Torus.hh"
#include "G4Polycone.hh"
#include "G4Polyhedra.hh"
class G4VPhysicalVolume;
class G4LogicalVolume;
class G4XXXSceneHandler: public G4VSceneHandler {
public:
G4XXXSceneHandler(G4VGraphicsSystem& system,
const G4String& name);
virtual ~G4XXXSceneHandler ();
void AddThis (const G4Box& s) {Dump (s);}
void AddThis (const G4Cons & s) {Dump (s);}
void AddThis (const G4Tubs& s) {Dump (s);}
void AddThis (const G4Trd& s) {Dump (s);}
void AddThis (const G4Trap& s) {Dump (s);}
void AddThis (const G4Sphere& s) {Dump (s);}
void AddThis (const G4Para& s) {Dump (s);}
void AddThis (const G4Torus& s) {Dump (s);}
void AddThis (const G4Polycone& s) {Dump (s);}
void AddThis (const G4Polyhedra& s) {Dump (s);}
void AddThis (const G4VSolid& s) {Dump (s);}
void PreAddThis (const G4Transform3D& objectTransformation,
const G4VisAttributes&);
void PostAddThis ();
void EstablishSpecials (G4PhysicalVolumeModel&);
G4int GetFoundDepth () const;
G4VPhysicalVolume* GetFoundVolume () const;
const G4Transform3D& GetFoundTransformation () const;
////////////////////////////////////////////////////////////////
// Functions not used but required by the abstract interface.
virtual void BeginPrimitives (const G4Transform3D& objectTransformation) {}
virtual void EndPrimitives () {}
virtual void AddPrimitive (const G4Polyline&) {}
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&) {}
virtual void AddPrimitive (const G4NURBS&) {}
static G4int GetSceneCount();
protected:
void Dump (const G4VSolid&);
static G4int fSceneIdCount; // Counter for Tree scene handlers.
static G4int fSceneCount; // No. of extanct scene handlers.
G4int fCurrentDepth; // Current depth of geom. hierarchy.
G4VPhysicalVolume* fpCurrentPV; // Current physical volume.
G4LogicalVolume* fpCurrentLV; // Current logical volume.
const G4Transform3D* fpCurrentObjectTransformation;
};
#include "G4XXXSceneHandler.icc"
#endif
===================================================================
===================================================================
include/G4XXXViewer.hh
===================================================================
#ifndef G4XXXVIEWER_HH
#define G4XXXVIEWER_HH
#include "G4VViewer.hh"
class G4XXXViewer: virtual public G4VViewer {
public:
G4XXXViewer(G4VSceneHandler&,const G4String& name);
virtual ~G4XXXViewer();
void SetView();
void ClearView();
void DrawView();
private:
G4int fFileCount;
};
#endif
===================================================================
===================================================================
src/G4XXX.cc
===================================================================
G4XXX::G4XXX ():
G4VGraphicsSystem ("Full Name",
"Nickname",
"A description - could run to many lines - "
"\n advantages, disadvantages, etc.",
G4VGraphicsSystem::<type>) // See enum.
{}
G4XXX::~G4XXX () {}
G4VSceneHandler* G4XXX::CreateSceneHandler (const G4String& name) {
G4VSceneHandler* pScene = new G4XXXSceneHandler (*this, name);
G4cout << G4XXXSceneHandler::GetSceneCount ()
<< ' ' << fName << " scene handlers extanct." << G4endl;
return pScene;
}
G4VViewer* G4XXX::CreateViewer (G4VSceneHandler& scene,
const G4String& name) {
G4VViewer* pView =
new G4XXXViewer ((G4XXXSceneHandler&) scene, name);
if (pView) {
if (pView -> GetViewId () < 0) {
G4cerr << "G4XXX::CreateViewer: error flagged by negative"
" view id in G4XXXViewer creation."
"\n Destroying view and returning null pointer."
<< G4endl;
delete pView;
pView = 0;
}
}
else {
G4cerr << "G4XXX::CreateViewer: null pointer on"
" new G4XXXViewer." << G4endl;
}
return pView;
}
===================================================================
===================================================================
src/G4XXXSceneHandler.cc
===================================================================
#include "G4XXXSceneHandler.hh"
#include "G4VSolid.hh"
#include "G4PhysicalVolumeModel.hh"
#include "G4VPhysicalVolume.hh"
#include "G4LogicalVolume.hh"
G4int G4XXXSceneHandler::fSceneIdCount = 0;
// Counter for XXX scene handlers.
G4int G4XXXSceneHandler::fSceneCount = 0;
// No. of extanct scene handlers.
G4XXXSceneHandler::G4XXXSceneHandler(G4VGraphicsSystem& system,
const G4String& name):
G4VSceneHandler(system, fSceneIdCount++, name),
fCurrentDepth (0),
fpCurrentPV (0),
fpCurrentLV (0),
fpCurrentObjectTransformation (0)
{
fSceneCount++;
}
G4XXXSceneHandler::~G4XXXSceneHandler () {}
void G4XXXSceneHandler::EstablishSpecials
(G4PhysicalVolumeModel& pvModel) {
pvModel.DefinePointersToWorkingSpace (&fCurrentDepth,
&fpCurrentPV,
&fpCurrentLV);
}
void G4XXXSceneHandler::Dump (const G4VSolid& solid) {
for (G4int i = 0; i < fCurrentDepth; i++ ) G4cout << " ";
G4cout << "\"" << fpCurrentPV -> GetName ()
<< "\", copy no. " << fpCurrentPV -> GetCopyNo ()
<< G4endl;
return;
}
===================================================================
===================================================================
src/G4XXXViewer.cc
===================================================================
#include "G4XXXViewer.hh"
#include "G4ios.hh"
#include "g4std/strstream"
#include "G4VSceneHandler.hh"
G4XXXViewer::G4XXXViewer
(G4VSceneHandler& sceneHandler, const G4String& name):
G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name) {}
G4XXXViewer::~G4XXXViewer() {}
void G4XXXViewer::SetView() {}
void G4XXXViewer::ClearView() {}
void G4XXXViewer::DrawView() {
NeedKernelVisit (); // Always need to visit G4 kernel.
ProcessView ();
}
===================================================================
Index: source/visualization/management/include/MyVisManager.cc
===================================================================
RCS file: /afs/cern.ch/sw/geant4/cvs/geant4/source/visualization/management/include/MyVisManager.cc,v
retrieving revision 1.5
diff -r1.5 MyVisManager.cc
67a68,71
> #ifdef G4VIS_USE_XXX
> #include "G4XXX.hh"
> #endif
>
119a124,127
> #endif
>
> #ifdef G4VIS_USE_XXX
> RegisterGraphicsSystem (new G4XXX);
===================================================================
Index: source/visualization/management/src/G4VisManager.cc
===================================================================
RCS file: /afs/cern.ch/sw/geant4/cvs/geant4/source/visualization/management/src/G4VisManager.cc,v
retrieving revision 1.21
diff -r1.21 G4VisManager.cc
142a143,145
> #ifdef G4VIS_BUILD_XXX_DRIVER
> "\n G4VIS_USE_XXX"
> #endif
877a881,883
> #ifdef G4VIS_BUILD_XXX_DRIVER
> << "\n Brief description)"
> #endif
1099a1106,1118
> G4VGraphicsSystem::noFunctionality) {}
>
> #endif
>
> #ifndef G4VIS_BUILD_XXX_DRIVER
>
> class G4XXX: public G4VGraphicsSystem {
> public:
> G4XXX ();
> };
> G4XXX::G4XXX ():
> G4VGraphicsSystem ("Full name",
> "Mick name",
===================================================================
Index: config/G4VIS_BUILD.gmk
===================================================================
RCS file: /afs/cern.ch/sw/geant4/cvs/geant4/config/G4VIS_BUILD.gmk,v
retrieving revision 1.3
diff -r1.3 G4VIS_BUILD.gmk
80a81,85
> ifdef G4VIS_BUILD_XXX_DRIVER
> G4VIS_BUILD = 1
> CPPFLAGS += -DG4VIS_BUILD_XXX_DRIVER
> endif
>
===================================================================
Index: config/G4VIS_USE.gmk
===================================================================
RCS file: /afs/cern.ch/sw/geant4/cvs/geant4/config/G4VIS_USE.gmk,v
retrieving revision 1.3
diff -r1.3 G4VIS_USE.gmk
93a94,100
> ifdef G4VIS_USE_XXX
> G4VIS_USE = 1
> CPPFLAGS += -DG4VIS_USE_XXX
> CPPFLAGS += -I$(G4BASE)/visualization/XXX/include
> VISLIBS += -lG4Tree
> endif
>