Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VisCommandSceneAddElectricField Class Reference

#include <G4VisCommandsSceneAdd.hh>

+ Inheritance diagram for G4VisCommandSceneAddElectricField:

Public Member Functions

 G4VisCommandSceneAddElectricField ()
 
virtual ~G4VisCommandSceneAddElectricField ()
 
G4String GetCurrentValue (G4UIcommand *command)
 
void SetNewValue (G4UIcommand *command, G4String newValue)
 
- Public Member Functions inherited from G4VVisCommandScene
 G4VVisCommandScene ()
 
virtual ~G4VVisCommandScene ()
 
- Public Member Functions inherited from G4VVisCommand
 G4VVisCommand ()
 
virtual ~G4VVisCommand ()
 
- Public Member Functions inherited from G4UImessenger
 G4UImessenger ()=default
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
virtual void SetNewValue (G4UIcommand *command, G4String newValue)
 
G4bool operator== (const G4UImessenger &messenger) const
 
G4bool operator!= (const G4UImessenger &messenger) const
 
G4bool CommandsShouldBeInMaster () const
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VVisCommand
static G4VisManagerGetVisManager ()
 
static void SetVisManager (G4VisManager *pVisManager)
 
static const G4ColourGetCurrentTextColour ()
 
- Protected Member Functions inherited from G4VVisCommandScene
G4String CurrentSceneName ()
 
- Protected Member Functions inherited from G4VVisCommand
void SetViewParameters (G4VViewer *viewer, const G4ViewParameters &viewParams)
 
void RefreshIfRequired (G4VViewer *viewer)
 
void InterpolateViews (G4VViewer *currentViewer, std::vector< G4ViewParameters > viewVector, const G4int nInterpolationPoints=50, const G4int waitTimePerPointmilliseconds=20, const G4String exportString="")
 
void InterpolateToNewView (G4VViewer *currentViewer, const G4ViewParameters &oldVP, const G4ViewParameters &newVP, const G4int nInterpolationPoints=50, const G4int waitTimePerPointmilliseconds=20, const G4String exportString="")
 
void Twinkle (G4VViewer *currentViewer, const G4ViewParameters &baseVP, const std::vector< std::vector< G4PhysicalVolumeModel::G4PhysicalVolumeNodeID > > &paths)
 
const G4StringConvertToColourGuidance ()
 
void ConvertToColour (G4Colour &colour, const G4String &redOrString, G4double green, G4double blue, G4double opacity)
 
G4bool ProvideValueOfUnit (const G4String &where, const G4String &unit, const G4String &category, G4double &value)
 
void CopyCameraParameters (G4ViewParameters &target, const G4ViewParameters &from)
 
void CheckSceneAndNotifyHandlers (G4Scene *=nullptr)
 
G4bool CheckView ()
 
void G4VisCommandsSceneAddUnsuccessful (G4VisManager::Verbosity verbosity)
 
void CopyGuidanceFrom (const G4UIcommand *fromCmd, G4UIcommand *toCmd, G4int startLine=0)
 
void CopyParametersFrom (const G4UIcommand *fromCmd, G4UIcommand *toCmd)
 
void DrawExtent (const G4VisExtent &)
 
- Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
 
G4String DtoS (G4double a)
 
G4String BtoS (G4bool b)
 
G4int StoI (const G4String &s)
 
G4long StoL (const G4String &s)
 
G4double StoD (const G4String &s)
 
G4bool StoB (G4String s)
 
void AddUIcommand (G4UIcommand *newCommand)
 
void CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
template<typename T >
T * CreateCommand (const G4String &cname, const G4String &dsc)
 
- Static Protected Member Functions inherited from G4VVisCommand
static G4String ConvertToString (G4double x, G4double y, const char *unitName)
 
static G4bool ConvertToDoublePair (const G4String &paramString, G4double &xval, G4double &yval)
 
- Protected Attributes inherited from G4UImessenger
G4UIdirectorybaseDir = nullptr
 
G4String baseDirName = ""
 
G4bool commandsShouldBeInMaster = false
 
- Static Protected Attributes inherited from G4VVisCommand
static G4VisManagerfpVisManager = nullptr
 
static G4int fCurrentArrow3DLineSegmentsPerCircle = 6
 
static G4Colour fCurrentColour = G4Colour::White()
 
static G4double fCurrentLineWidth = 1.
 
static G4Colour fCurrentTextColour = G4Colour::Blue()
 
static G4Text::Layout fCurrentTextLayout = G4Text::left
 
static G4double fCurrentTextSize = 12.
 
static G4PhysicalVolumeModel::TouchableProperties fCurrentTouchableProperties
 
static G4VisExtent fCurrentExtentForField
 
static std::vector< G4PhysicalVolumesSearchScene::FindingsfCurrrentPVFindingsForField
 
static G4bool fThereWasAViewer = false
 
static G4ViewParameters fExistingVP
 

Detailed Description

Definition at line 175 of file G4VisCommandsSceneAdd.hh.

Constructor & Destructor Documentation

◆ G4VisCommandSceneAddElectricField()

G4VisCommandSceneAddElectricField::G4VisCommandSceneAddElectricField ( )

Definition at line 533 of file G4VisCommandsSceneAdd.cc.

533 {
534 G4bool omitable;
535 fpCommand = new G4UIcommand ("/vis/scene/add/electricField", this);
536 fpCommand -> SetGuidance
537 ("Adds electric field representation to current scene.");
538 fpCommand -> SetGuidance
539 ("The first parameter is no. of data points per half extent. So, possibly, at"
540 "\nmaximum, the number of data points sampled is (2*n+1)^3, which can grow"
541 "\nlarge--be warned!"
542 "\nThe default value is 10, i.e., a 21x21x21 array, i.e., 9,261 sampling points."
543 "\nThat may swamp your view, but usually, a field is limited to a small part of"
544 "\nthe extent, so it's not a problem. But if it is, here are some of the things"
545 "\nyou can do:"
546 "\n- reduce the number of data points per half extent (first parameter);"
547 "\n- specify \"lightArrow\" (second parameter);"
548 "\n- restrict the region sampled with \"/vis/set/extentForField\";"
549 "\n- restrict the drawing to a specific volume with"
550 "\n \"/vis/set/volumeForField\" or \"/vis/touchable/volumeForField\"."
551 "\nNote: you might have to deactivate existing field models with"
552 "\n \"/vis/scene/activateModel Field false\" and re-issue"
553 "\n \"/vis/scene/add/...Field\" command again.");
554 fpCommand -> SetGuidance
555 ("In the arrow representation, the length of the arrow is proportional"
556 "\nto the magnitude of the field and the colour is mapped onto the range"
557 "\nas a fraction of the maximum magnitude: 0->0.5->1 is red->green->blue.");
558 G4UIparameter* parameter;
559 parameter = new G4UIparameter ("nDataPointsPerHalfExtent", 'i', omitable = true);
560 parameter -> SetDefaultValue (10);
561 fpCommand -> SetParameter (parameter);
562 parameter = new G4UIparameter ("representation", 's', omitable = true);
563 parameter -> SetParameterCandidates("fullArrow lightArrow");
564 parameter -> SetDefaultValue ("fullArrow");
565 fpCommand -> SetParameter (parameter);
566}
bool G4bool
Definition: G4Types.hh:86

◆ ~G4VisCommandSceneAddElectricField()

G4VisCommandSceneAddElectricField::~G4VisCommandSceneAddElectricField ( )
virtual

Definition at line 568 of file G4VisCommandsSceneAdd.cc.

568 {
569 delete fpCommand;
570}

Member Function Documentation

◆ GetCurrentValue()

G4String G4VisCommandSceneAddElectricField::GetCurrentValue ( G4UIcommand command)
virtual

Reimplemented from G4UImessenger.

Definition at line 572 of file G4VisCommandsSceneAdd.cc.

572 {
573 return "";
574}

◆ SetNewValue()

void G4VisCommandSceneAddElectricField::SetNewValue ( G4UIcommand command,
G4String  newValue 
)
virtual

Reimplemented from G4UImessenger.

Definition at line 576 of file G4VisCommandsSceneAdd.cc.

577 {
578
580 G4bool warn(verbosity >= G4VisManager::warnings);
581
583 if (!pScene) {
584 if (verbosity >= G4VisManager::errors) {
585 G4warn << "ERROR: No current scene. Please create one." << G4endl;
586 }
587 return;
588 }
589
590 G4int nDataPointsPerHalfExtent;
591 G4String representation;
592 std::istringstream iss(newValue);
593 iss >> nDataPointsPerHalfExtent >> representation;
595 modelRepresentation = G4ElectricFieldModel::fullArrow;
596 if (representation == "lightArrow") {
597 modelRepresentation = G4ElectricFieldModel::lightArrow;
598 }
599 G4VModel* model;
600 model = new G4ElectricFieldModel
601 (nDataPointsPerHalfExtent,modelRepresentation,
605 const G4String& currentSceneName = pScene -> GetName ();
606 G4bool successful = pScene -> AddRunDurationModel (model, warn);
607 if (successful) {
608 if (verbosity >= G4VisManager::confirmations) {
609 G4cout
610 << "Electric field, if any, will be drawn in scene \""
611 << currentSceneName
612 << "\"\n with "
613 << nDataPointsPerHalfExtent
614 << " data points per half extent and with representation \""
615 << representation
616 << '\"'
617 << G4endl;
618 }
619 }
620 else G4VisCommandsSceneAddUnsuccessful(verbosity);
621
623}
#define G4warn
Definition: G4Scene.cc:41
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void G4VisCommandsSceneAddUnsuccessful(G4VisManager::Verbosity verbosity)
void CheckSceneAndNotifyHandlers(G4Scene *=nullptr)
static std::vector< G4PhysicalVolumesSearchScene::Findings > fCurrrentPVFindingsForField
static G4VisManager * fpVisManager
static G4VisExtent fCurrentExtentForField
static G4int fCurrentArrow3DLineSegmentsPerCircle
G4Scene * GetCurrentScene() const
static Verbosity GetVerbosity()

The documentation for this class was generated from the following files: