Import Geant4 7.1.0 source tree
This commit is contained in:
@@ -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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user