Import Geant4 10.6.0.beta source tree
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// John Allison 15th February 2019
|
||||
// An artificial scene to reuse G4VScene code to calculate a bounding extent.
|
||||
|
||||
#ifndef G4BOUNDINGEXTENTSCENE_HH
|
||||
#define G4BOUNDINGEXTENTSCENE_HH
|
||||
|
||||
#include "G4PseudoScene.hh"
|
||||
#include "G4VisExtent.hh"
|
||||
|
||||
class G4VModel;
|
||||
|
||||
class G4BoundingExtentScene: public G4PseudoScene {
|
||||
|
||||
public:
|
||||
|
||||
G4BoundingExtentScene (G4VModel* pModel = 0);
|
||||
|
||||
virtual ~G4BoundingExtentScene ();
|
||||
|
||||
const G4VisExtent& GetExtent () const
|
||||
{return fExtent;}
|
||||
const G4VisExtent& GetBoundingExtent () const
|
||||
{return fExtent;}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// The following 2 functions can be used by any code which wishes to
|
||||
// accrue a bounding sphere. Just instantiate a
|
||||
// G4BoundingExtentScene and use AccrueBoundingExtent.
|
||||
|
||||
void ResetBoundingExtent ();
|
||||
void AccrueBoundingExtent (const G4VisExtent&);
|
||||
|
||||
private:
|
||||
|
||||
void ProcessVolume (const G4VSolid& solid);
|
||||
|
||||
G4VModel* fpModel;
|
||||
G4VisExtent fExtent;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// Michael Kelsey 31st January 2019 -- Adapted from new G4MagneticFieldModel
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Model that knows how to draw the electric field.
|
||||
|
||||
#ifndef G4ELECTRICFIELDMODEL_HH
|
||||
#define G4ELECTRICFIELDMODEL_HH
|
||||
|
||||
#include "G4VFieldModel.hh"
|
||||
|
||||
|
||||
class G4ElectricFieldModel: public G4VFieldModel {
|
||||
public: // With description
|
||||
|
||||
// Constructor just passes through to base
|
||||
G4ElectricFieldModel
|
||||
(G4int nDataPointsPerHalfExtent = 3,
|
||||
Representation representation = Representation::fullArrow,
|
||||
G4int arrow3DLineSegmentsPerCircle = 6,
|
||||
const G4VisExtent& extentForField = G4VisExtent(),
|
||||
const std::vector<G4PhysicalVolumesSearchScene::Findings>& pvFindings
|
||||
= std::vector<G4PhysicalVolumesSearchScene::Findings>())
|
||||
: G4VFieldModel
|
||||
("Electric","E", extentForField, pvFindings,
|
||||
nDataPointsPerHalfExtent, representation, arrow3DLineSegmentsPerCircle)
|
||||
{}
|
||||
|
||||
virtual ~G4ElectricFieldModel() {;}
|
||||
|
||||
protected:
|
||||
virtual void GetFieldAtLocation(const G4Field* field,
|
||||
const G4Point3D& position, G4double time,
|
||||
G4Point3D& result) const;
|
||||
// The appropriate output from GetFieldValue should be filled into result.
|
||||
// If (field==0), the function should do nothing; returning without error.
|
||||
|
||||
private:
|
||||
// Private copy contructor and assignment to forbid use...
|
||||
G4ElectricFieldModel(const G4ElectricFieldModel&);
|
||||
G4ElectricFieldModel& operator=(const G4ElectricFieldModel&);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -26,7 +26,8 @@
|
||||
//
|
||||
//
|
||||
//
|
||||
// John Allison 17th August 2013
|
||||
// John Allison 17th August 2013
|
||||
// Michael Kelsey 31st January 2019 -- Move functionality to G4VFieldModel
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
@@ -35,40 +36,38 @@
|
||||
#ifndef G4MAGNETICFIELDMODEL_HH
|
||||
#define G4MAGNETICFIELDMODEL_HH
|
||||
|
||||
#include "G4VModel.hh"
|
||||
#include "G4VFieldModel.hh"
|
||||
|
||||
class G4Colour;
|
||||
class G4Polyhedron;
|
||||
|
||||
class G4MagneticFieldModel: public G4VModel {
|
||||
|
||||
public: // With description
|
||||
|
||||
enum Representation {fullArrow, lightArrow};
|
||||
class G4MagneticFieldModel: public G4VFieldModel {
|
||||
public: // With description
|
||||
|
||||
// Constructor just passes through to base
|
||||
G4MagneticFieldModel
|
||||
(G4int nDataPointsPerHalfScene = 10,
|
||||
(G4int nDataPointsPerHalfExtent = 3,
|
||||
Representation representation = Representation::fullArrow,
|
||||
G4int arrow3DLineSegmentsPerCircle = 6);
|
||||
virtual ~G4MagneticFieldModel ();
|
||||
G4int arrow3DLineSegmentsPerCircle = 6,
|
||||
const G4VisExtent& extentForField = G4VisExtent(),
|
||||
const std::vector<G4PhysicalVolumesSearchScene::Findings>& pvFindings
|
||||
= std::vector<G4PhysicalVolumesSearchScene::Findings>())
|
||||
: G4VFieldModel
|
||||
("Magnetic","B", extentForField, pvFindings,
|
||||
nDataPointsPerHalfExtent, representation, arrow3DLineSegmentsPerCircle)
|
||||
{}
|
||||
|
||||
virtual void DescribeYourselfTo (G4VGraphicsScene&);
|
||||
// The main task of a model is to describe itself to the graphics scene.
|
||||
virtual ~G4MagneticFieldModel() {;}
|
||||
|
||||
protected:
|
||||
virtual void GetFieldAtLocation(const G4Field* field,
|
||||
const G4Point3D& position, G4double time,
|
||||
G4Point3D& result) const;
|
||||
// The appropriate output from GetFieldValue should be filled into result.
|
||||
// If (field==0), the function should do nothing; returning without error.
|
||||
|
||||
private:
|
||||
|
||||
// Private copy contructor and assignment to forbid use...
|
||||
G4MagneticFieldModel (const G4MagneticFieldModel&);
|
||||
G4MagneticFieldModel& operator = (const G4MagneticFieldModel&);
|
||||
|
||||
// No. of data points sampled per maximum half scene extent.
|
||||
// Note that total number of data poinrs sampled can be as high as
|
||||
// (2*n+1)^3, which can get very big very soon.
|
||||
G4int fNDataPointsPerMaxHalfScene;
|
||||
|
||||
Representation fRepresentation;
|
||||
|
||||
G4int fArrow3DLineSegmentsPerCircle;
|
||||
G4MagneticFieldModel(const G4MagneticFieldModel&);
|
||||
G4MagneticFieldModel& operator=(const G4MagneticFieldModel&);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
class G4LogicalVolume;
|
||||
class G4VisAttributes;
|
||||
class G4VSolid;
|
||||
class G4DisplacedSolid;
|
||||
class G4Event;
|
||||
|
||||
class G4ModelingParameters {
|
||||
@@ -57,7 +58,8 @@ public: // With description
|
||||
wf, // Draw edges - no hidden line removal (wireframe).
|
||||
hlr, // Draw edges - hidden lines removed.
|
||||
hsr, // Draw surfaces - hidden surfaces removed.
|
||||
hlhsr // Draw surfaces and edges - hidden removed.
|
||||
hlhsr, // Draw surfaces and edges - hidden removed.
|
||||
cloud // Draw as a cloud of points
|
||||
};
|
||||
|
||||
// enums and nested class for communicating a modification to the vis
|
||||
@@ -70,6 +72,8 @@ public: // With description
|
||||
VASLineWidth,
|
||||
VASForceWireframe,
|
||||
VASForceSolid,
|
||||
VASForceCloud,
|
||||
VASForceNumberOfCloudPoints,
|
||||
VASForceAuxEdgeVisible,
|
||||
VASForceLineSegmentsPerCircle
|
||||
};
|
||||
@@ -157,6 +161,7 @@ public: // With description
|
||||
G4bool IsWarning () const;
|
||||
const G4VisAttributes* GetDefaultVisAttributes () const;
|
||||
DrawingStyle GetDrawingStyle () const;
|
||||
G4int GetNumberOfCloudPoints () const;
|
||||
G4bool IsCulling () const;
|
||||
G4bool IsCullingInvisible () const;
|
||||
G4bool IsDensityCulling () const;
|
||||
@@ -168,8 +173,8 @@ public: // With description
|
||||
G4double GetExplodeFactor () const;
|
||||
const G4Point3D& GetExplodeCentre () const;
|
||||
G4int GetNoOfSides () const;
|
||||
G4VSolid* GetSectionSolid () const;
|
||||
G4VSolid* GetCutawaySolid () const;
|
||||
G4DisplacedSolid* GetSectionSolid () const;
|
||||
G4DisplacedSolid* GetCutawaySolid () const;
|
||||
const G4Event* GetEvent () const;
|
||||
const std::vector<VisAttributesModifier>& GetVisAttributesModifiers() const;
|
||||
|
||||
@@ -177,6 +182,7 @@ public: // With description
|
||||
void SetWarning (G4bool);
|
||||
void SetDefaultVisAttributes (const G4VisAttributes* pDefaultVisAttributes);
|
||||
void SetDrawingStyle (DrawingStyle);
|
||||
void SetNumberOfCloudPoints (G4int);
|
||||
void SetCulling (G4bool);
|
||||
void SetCullingInvisible (G4bool);
|
||||
void SetDensityCulling (G4bool);
|
||||
@@ -187,8 +193,8 @@ public: // With description
|
||||
void SetExplodeFactor (G4double explodeFactor);
|
||||
void SetExplodeCentre (const G4Point3D& explodeCentre);
|
||||
G4int SetNoOfSides (G4int); // Returns actual number set.
|
||||
void SetSectionSolid (G4VSolid* pSectionSolid);
|
||||
void SetCutawaySolid (G4VSolid* pCutawaySolid);
|
||||
void SetSectionSolid (G4DisplacedSolid* pSectionSolid);
|
||||
void SetCutawaySolid (G4DisplacedSolid* pCutawaySolid);
|
||||
void SetEvent (const G4Event* pEvent);
|
||||
void SetVisAttributesModifiers(const std::vector<VisAttributesModifier>&);
|
||||
|
||||
@@ -211,6 +217,8 @@ private:
|
||||
G4bool fWarning; // Print warnings if true.
|
||||
const G4VisAttributes* fpDefaultVisAttributes;
|
||||
DrawingStyle fDrawingStyle; // Drawing style.
|
||||
G4int fNumberOfCloudPoints; // For drawing in cloud style.
|
||||
// <= 0 means use viewer default.
|
||||
G4bool fCulling; // Culling requested.
|
||||
G4bool fCullInvisible; // Cull (don't Draw) invisible objects.
|
||||
G4bool fDensityCulling; // Density culling requested. If so...
|
||||
@@ -221,8 +229,8 @@ private:
|
||||
G4double fExplodeFactor; // Explode along radius by this factor...
|
||||
G4Point3D fExplodeCentre; // ...about this centre.
|
||||
G4int fNoOfSides; // ...if polygon approximates circle.
|
||||
G4VSolid* fpSectionSolid; // For generic section (DCUT).
|
||||
G4VSolid* fpCutawaySolid; // For generic cutaways.
|
||||
G4DisplacedSolid* fpSectionSolid; // For generic section (DCUT).
|
||||
G4DisplacedSolid* fpCutawaySolid; // For generic cutaways.
|
||||
const G4Event* fpEvent; // Event being processed.
|
||||
std::vector<VisAttributesModifier> fVisAttributesModifiers;
|
||||
};
|
||||
|
||||
@@ -43,6 +43,10 @@ G4ModelingParameters::GetDrawingStyle () const {
|
||||
return fDrawingStyle;
|
||||
}
|
||||
|
||||
inline G4int G4ModelingParameters::GetNumberOfCloudPoints () const {
|
||||
return fNumberOfCloudPoints;
|
||||
}
|
||||
|
||||
inline G4bool G4ModelingParameters::IsCulling () const {
|
||||
return fCulling;
|
||||
}
|
||||
@@ -87,10 +91,10 @@ inline G4int G4ModelingParameters::GetNoOfSides () const {
|
||||
return fNoOfSides;
|
||||
}
|
||||
|
||||
inline G4VSolid* G4ModelingParameters::GetSectionSolid () const
|
||||
inline G4DisplacedSolid* G4ModelingParameters::GetSectionSolid () const
|
||||
{return fpSectionSolid;}
|
||||
|
||||
inline G4VSolid* G4ModelingParameters::GetCutawaySolid () const
|
||||
inline G4DisplacedSolid* G4ModelingParameters::GetCutawaySolid () const
|
||||
{return fpCutawaySolid;}
|
||||
|
||||
inline const G4Event* G4ModelingParameters::GetEvent () const
|
||||
@@ -116,6 +120,10 @@ G4ModelingParameters::SetDrawingStyle
|
||||
fDrawingStyle = style;
|
||||
}
|
||||
|
||||
inline void G4ModelingParameters::SetNumberOfCloudPoints (G4int n) {
|
||||
fNumberOfCloudPoints = n;
|
||||
}
|
||||
|
||||
inline void G4ModelingParameters::SetCulling (G4bool value) {
|
||||
fCulling = value;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
// number but also by its position in the geometry hierarchy.
|
||||
//
|
||||
// It is guaranteed that touchables are presented to the scene handler
|
||||
// in top-down hierarchy order, i.e., ancesters first, mothers before
|
||||
// in top-down hierarchy order, i.e., ancestors first, mothers before
|
||||
// daughters, so the scene handler can be assured that, if it is
|
||||
// building its own scene graph tree, a mother, if any, will have
|
||||
// already been encountered and there will already be a node in place
|
||||
@@ -133,9 +133,10 @@ public: // With description
|
||||
|
||||
// Nested struct for encapsulating touchable properties
|
||||
struct TouchableProperties {
|
||||
TouchableProperties(): fpTouchablePV(nullptr) {}
|
||||
TouchableProperties(): fpTouchablePV(nullptr), fCopyNo(0) {}
|
||||
G4ModelingParameters::PVNameCopyNoPath fTouchablePath;
|
||||
G4VPhysicalVolume* fpTouchablePV;
|
||||
G4int fCopyNo;
|
||||
G4Transform3D fTouchableGlobalTransform;
|
||||
std::vector<G4PhysicalVolumeNodeID> fTouchableBaseFullPVPath;
|
||||
};
|
||||
@@ -204,7 +205,7 @@ public: // With description
|
||||
const std::vector<G4PhysicalVolumeNodeID>& GetDrawnPVPath() const
|
||||
{return fDrawnPVPath;}
|
||||
// Path of the current drawn (non-culled) touchable in terms of
|
||||
// drawn (non-culled) ancesters. It is a vector of physical volume
|
||||
// drawn (non-culled) ancestors. It is a vector of physical volume
|
||||
// node identifiers corresponding to the geometry hierarchy actually
|
||||
// selected, i.e., with "culled" volumes NOT included.
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
//
|
||||
// John Allison 5th September 2018, based on G4PhysicalVolumeSearchScene
|
||||
// An artificial scene to find physical volumes. Instead of returning the
|
||||
// first occurence (G4PhysicalVolumeSearchScene) this class (note the extra
|
||||
// 's' in the name of this class) returns a vector of all occurences.
|
||||
// first occurrence (G4PhysicalVolumeSearchScene) this class (note the extra
|
||||
// 's' in the name of this class) returns a vector of all occurrences.
|
||||
// It can match a physical volume name with the required match. The latter can
|
||||
// be of the form "/regexp/", where regexp is a regular expression (see C++
|
||||
// regex), or a plain string, in which case there must be an exact match.
|
||||
@@ -70,6 +70,13 @@ public:
|
||||
, fFoundDepth(foundDepth)
|
||||
, fFoundBasePVPath(foundBasePVPath)
|
||||
, fFoundObjectTransformation(foundObjectTransformation) {}
|
||||
Findings(const G4PhysicalVolumeModel::TouchableProperties& tp)
|
||||
: fpSearchPV(nullptr)
|
||||
, fpFoundPV(tp.fpTouchablePV)
|
||||
, fFoundPVCopyNo(tp.fCopyNo)
|
||||
, fFoundDepth(0)
|
||||
, fFoundBasePVPath(tp.fTouchableBaseFullPVPath)
|
||||
, fFoundObjectTransformation(tp.fTouchableGlobalTransform) {}
|
||||
G4VPhysicalVolume* fpSearchPV; // Searched physical volume.
|
||||
G4VPhysicalVolume* fpFoundPV; // Found physical volume.
|
||||
G4int fFoundPVCopyNo; // Found Copy number.
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Michael Kelsey 31 January 2019
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Abstract base class to implement drawing vector field geometries
|
||||
// (e.g., electric, magnetic or gravity). Implementation extracted
|
||||
// from G4MagneticFieldModel, with field-value access left pure
|
||||
// virtual for implementation by base classes.
|
||||
|
||||
#ifndef G4VFIELDMODEL_HH
|
||||
#define G4VFIELDMODEL_HH
|
||||
|
||||
#include "G4VModel.hh"
|
||||
#include "G4Point3D.hh"
|
||||
#include "G4PhysicalVolumesSearchScene.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class G4Field;
|
||||
|
||||
class G4VFieldModel: public G4VModel {
|
||||
|
||||
public: // With description
|
||||
|
||||
enum Representation {fullArrow, lightArrow};
|
||||
|
||||
G4VFieldModel
|
||||
(const G4String& typeOfField, const G4String& symbol="",
|
||||
const G4VisExtent& extentForField = G4VisExtent(),
|
||||
const std::vector<G4PhysicalVolumesSearchScene::Findings>& pvFindings
|
||||
= std::vector<G4PhysicalVolumesSearchScene::Findings>(),
|
||||
G4int nDataPointsPerHalfScene = 10,
|
||||
Representation representation = Representation::fullArrow,
|
||||
G4int arrow3DLineSegmentsPerCircle = 6);
|
||||
// typeOfField is "Electric" or "Magnetic" etc.
|
||||
// symbol is "E" or "B" etc.
|
||||
|
||||
virtual ~G4VFieldModel();
|
||||
|
||||
virtual void DescribeYourselfTo(G4VGraphicsScene& sceneHandler);
|
||||
// The main task of a model is to describe itself to the graphics scene.
|
||||
// Note: It is in this function that the extent for drawing the filed must
|
||||
// be calcualted. If fExtentForField is null, pick up the extent from
|
||||
// the sceneHandler.
|
||||
|
||||
protected:
|
||||
|
||||
// Subclasses MUST implement this for their particular kind of field
|
||||
virtual void GetFieldAtLocation(const G4Field* field,
|
||||
const G4Point3D& position, G4double time,
|
||||
G4Point3D& result) const = 0;
|
||||
// The appropriate output from GetFieldValue should be filled into result.
|
||||
// If (field==0), the function should do nothing; returning without error.
|
||||
|
||||
private:
|
||||
|
||||
// Private copy contructor and assignment to forbid use...
|
||||
G4VFieldModel(const G4VFieldModel&);
|
||||
G4VFieldModel& operator=(const G4VFieldModel&);
|
||||
|
||||
G4VisExtent fExtentForField;
|
||||
// If null, get extent from scene handler in DescribeYourselfTo.
|
||||
|
||||
std::vector<G4PhysicalVolumesSearchScene::Findings> fPVFindings;
|
||||
// If empty, use fExtentForField alone for sampling and drawing.
|
||||
// If non-empty, use fExtentForField alone for sampling, but only
|
||||
// draw if sampling point is in the specified physical volume(s).
|
||||
|
||||
G4int fNDataPointsPerMaxHalfScene;
|
||||
// No. of data points sampled per maximum half scene.
|
||||
// Note that total number of sampling points can be as high as
|
||||
// (2*n+1)^3, which can get very big. However, fields are usually
|
||||
// confined to only parts of the scene, so this may not be a problem.
|
||||
// Sampling can be further limited with fExtentForField and/or fPVFindings.
|
||||
|
||||
Representation fRepresentation; // Big arrows or just lines
|
||||
G4int fArrow3DLineSegmentsPerCircle;
|
||||
G4String fTypeOfField; // "Electric" or "Magnetic" etc.
|
||||
G4String fArrowPrefix; // For attaching text label to arrows
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -80,6 +80,9 @@ public: // With description
|
||||
const G4VisExtent& GetExtent () const;
|
||||
// Extent of visible objects in local coordinate system.
|
||||
|
||||
const G4VisExtent& GetTransformedExtent () const;
|
||||
// Extent of visible objects in transformed coordinate system.
|
||||
|
||||
const G4String& GetGlobalDescription () const;
|
||||
// A description which does not change and lasts the life of the model.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user