Geant4 10.7.0
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 ()
 
 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 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="")
 
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 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 (G4String s)
 
G4long StoL (G4String s)
 
G4double StoD (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 = 0
 
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
 

Detailed Description

Definition at line 175 of file G4VisCommandsSceneAdd.hh.

Constructor & Destructor Documentation

◆ G4VisCommandSceneAddElectricField()

G4VisCommandSceneAddElectricField::G4VisCommandSceneAddElectricField ( )

Definition at line 530 of file G4VisCommandsSceneAdd.cc.

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

◆ ~G4VisCommandSceneAddElectricField()

G4VisCommandSceneAddElectricField::~G4VisCommandSceneAddElectricField ( )
virtual

Definition at line 565 of file G4VisCommandsSceneAdd.cc.

565 {
566 delete fpCommand;
567}

Member Function Documentation

◆ GetCurrentValue()

G4String G4VisCommandSceneAddElectricField::GetCurrentValue ( G4UIcommand command)
virtual

Reimplemented from G4UImessenger.

Definition at line 569 of file G4VisCommandsSceneAdd.cc.

569 {
570 return "";
571}

◆ SetNewValue()

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

Reimplemented from G4UImessenger.

Definition at line 573 of file G4VisCommandsSceneAdd.cc.

574 {
575
577 G4bool warn(verbosity >= G4VisManager::warnings);
578
580 if (!pScene) {
581 if (verbosity >= G4VisManager::errors) {
582 G4cerr << "ERROR: No current scene. Please create one." << G4endl;
583 }
584 return;
585 }
586
587 G4int nDataPointsPerHalfScene;
588 G4String representation;
589 std::istringstream iss(newValue);
590 iss >> nDataPointsPerHalfScene >> representation;
592 modelRepresentation = G4ElectricFieldModel::fullArrow;
593 if (representation == "lightArrow") {
594 modelRepresentation = G4ElectricFieldModel::lightArrow;
595 }
596 G4VModel* model;
597 model = new G4ElectricFieldModel
598 (nDataPointsPerHalfScene,modelRepresentation,
602 const G4String& currentSceneName = pScene -> GetName ();
603 G4bool successful = pScene -> AddRunDurationModel (model, warn);
604 if (successful) {
605 if (verbosity >= G4VisManager::confirmations) {
606 G4cout
607 << "Electric field, if any, will be drawn in scene \""
608 << currentSceneName
609 << "\"\n with "
610 << nDataPointsPerHalfScene
611 << " data points per half scene and with representation \""
612 << representation
613 << '\"'
614 << G4endl;
615 }
616 }
617 else G4VisCommandsSceneAddUnsuccessful(verbosity);
618
620}
int G4int
Definition: G4Types.hh:85
G4GLOB_DLL std::ostream G4cerr
#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: