Import Geant4 7.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 12:11:21 +02:00
parent 516dbf1a58
commit d93e1e39a9
5384 changed files with 125662 additions and 82444 deletions
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VSceneHandler.hh,v 1.22 2004/08/03 15:55:33 johna Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// $Id: G4VSceneHandler.hh,v 1.24 2005/01/27 20:06:07 johna Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// John Allison 19th July 1996.
@@ -38,6 +38,8 @@
#include "globals.hh"
#include <stack>
#include "G4VGraphicsScene.hh"
#include "G4ViewerList.hh"
#include "G4ViewParameters.hh"
@@ -51,6 +53,7 @@ class G4VModel;
class G4VGraphicsSystem;
class G4LogicalVolume;
class G4VPhysicalVolume;
class G4Material;
class G4VSceneHandler: public G4VGraphicsScene {
@@ -66,28 +69,61 @@ public: // With description
virtual ~G4VSceneHandler ();
//////////////////////////////////////////////////////////////
// Functions for adding raw GEANT4 objects, if the graphics system
// can can understand them (optional on the part of the graphics
// system). If your graphics system is sophisticated enough to
// handle a particular solid shape as a primitive, in your derived
// class write a function to override one or more of the following.
// See the implementation of G4VSceneHandler::AddThis (const G4Box& box) for
// more suggestions. If not, please implement the base class
// invocation.
virtual void AddThis (const G4Box&);
virtual void AddThis (const G4Cons&);
virtual void AddThis (const G4Tubs&);
virtual void AddThis (const G4Trd&);
virtual void AddThis (const G4Trap&);
virtual void AddThis (const G4Sphere&);
virtual void AddThis (const G4Para&);
virtual void AddThis (const G4Torus&);
virtual void AddThis (const G4Polycone&);
virtual void AddThis (const G4Polyhedra&);
virtual void AddThis (const G4VSolid&); // For solids not above.
virtual void AddThis (const G4VTrajectory&);
virtual void AddThis (const G4VHit&);
///////////////////////////////////////////////////////////////////
// Methods for adding raw GEANT4 objects to the scene handler. They
// must always be called in the triplet PreAddSolid, AddSolid and
// PostAddSolid. The transformation and visualization attributes
// must be set by the call to PreAddSolid. If your graphics system
// is sophisticated enough to handle a particular solid shape as a
// primitive, in your derived class write a function to override one
// or more of the following. See the implementation of
// G4VSceneHandler::AddSolid (const G4Box& box) for more
// suggestions. If not, please implement the base class invocation.
virtual void PreAddSolid (const G4Transform3D& objectTransformation,
const G4VisAttributes& visAttribs);
// objectTransformation is the transformation in the world
// coordinate system of the object about to be added, and visAttribs
// is its visualization attributes.
// IMPORTANT: invoke this from your polymorphic versions, e.g.:
// void MyXXXSceneHandler::PreAddSolid
// (const G4Transform3D& objectTransformation,
// const G4VisAttributes& visAttribs) {
// G4VSceneHandler::PreAddSolid (objectTransformation, visAttribs);
// ...
// }
virtual void PostAddSolid ();
// IMPORTANT: invoke this from your polymorphic versions, e.g.:
// void MyXXXSceneHandler::PostAddSolid () {
// ...
// G4VSceneHandler::PostAddSolid (objectTransformation, visAttribs);
// }
virtual void AddSolid (const G4Box&);
virtual void AddSolid (const G4Cons&);
virtual void AddSolid (const G4Tubs&);
virtual void AddSolid (const G4Trd&);
virtual void AddSolid (const G4Trap&);
virtual void AddSolid (const G4Sphere&);
virtual void AddSolid (const G4Para&);
virtual void AddSolid (const G4Torus&);
virtual void AddSolid (const G4Polycone&);
virtual void AddSolid (const G4Polyhedra&);
virtual void AddSolid (const G4VSolid&); // For solids not above.
///////////////////////////////////////////////////////////////////
// Methods for adding "compound" GEANT4 objects to the scene
// handler. These methods may either (a) invoke "user code" that
// uses the "user interface", G4VVisManager (see, for example,
// G4VSceneHandler, which for trajectories uses
// G4VTrajectory::DrawTrajectory, via G4TrajectoriesModel in the
// Modeling Category) or (b) invoke AddPrimitives below (between
// calls to Begin/EndPrimitives) or (c) use graphics-system-specific
// code or (d) any combination of the above.
virtual void AddCompound (const G4VTrajectory&);
virtual void AddCompound (const G4VHit&);
///////////////////////////////////////////////////////////////
// Other inherited functions.
@@ -97,26 +133,6 @@ public: // With description
// particular type of model - non-pure, i.e., no requirement to
// implement. See G4PhysicalVolumeModel.hh for details.
virtual void PreAddThis (const G4Transform3D& objectTransformation,
const G4VisAttributes& visAttribs);
// objectTransformation is the transformation in the world
// coordinate system of the object about to be added, and visAttribs
// is its visualization attributes.
// IMPORTANT: invoke this from your polymorphic versions, e.g.:
// void MyXXXSceneHandler::PreAddThis
// (const G4Transform3D& objectTransformation,
// const G4VisAttributes& visAttribs) {
// G4VSceneHandler::PreAddThis (objectTransformation, visAttribs);
// ...
// }
virtual void PostAddThis ();
// IMPORTANT: invoke this from your polymorphic versions, e.g.:
// void MyXXXSceneHandler::PostAddThis () {
// ...
// G4VSceneHandler::PostAddThis (objectTransformation, visAttribs);
// }
//////////////////////////////////////////////////////////////
// Functions for adding primitives.
@@ -248,7 +264,7 @@ public: // With description
protected:
//////////////////////////////////////////////////////////////
// Default routine used by default AddThis ().
// Default routine used by default AddSolid ().
virtual void RequestPrimitives (const G4VSolid& solid);
@@ -269,11 +285,14 @@ protected:
G4bool fReadyForTransients; // I.e., not processing scene.
G4VModel* fpModel; // Current model.
const G4Transform3D* fpObjectTransformation; // Accum'd obj. transfn.
const G4Transform3D* fpObjectTransformation; // Current
// accumulated object transformation.
G4int fNestingDepth; // For Begin/EndPrimitives.
const G4VisAttributes* fpVisAttribs; // Working vis attributes.
G4int fCurrentDepth; // Current depth of geom. hierarchy.
G4VPhysicalVolume* fpCurrentPV; // Current physical volume.
G4LogicalVolume* fpCurrentLV; // Current logical volume.
G4Material* fpCurrentMaterial; // Current material.
private: