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

#include <G4VisCommandsSet.hh>

+ Inheritance diagram for G4VisCommandSetVolumeForField:

Public Member Functions

 G4VisCommandSetVolumeForField ()
 
virtual ~G4VisCommandSetVolumeForField ()
 
G4String GetCurrentValue (G4UIcommand *command)
 
void SetNewValue (G4UIcommand *command, G4String newValue)
 
- 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 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 137 of file G4VisCommandsSet.hh.

Constructor & Destructor Documentation

◆ G4VisCommandSetVolumeForField()

G4VisCommandSetVolumeForField::G4VisCommandSetVolumeForField ( )

Definition at line 516 of file G4VisCommandsSet.cc.

517{
518 G4bool omitable;
519 G4UIparameter* parameter;
520 fpCommand = new G4UIcommand("/vis/set/volumeForField", this);
521 fpCommand->SetGuidance
522 ("Sets a volume for \"/vis/scene/add/*Field\" commands.");
523 fpCommand->SetGuidance
524 ("Takes a volume name or a /regular expression/ -- see guidance for"
525 "\n\"/vis/drawVolume\"");
526 parameter = new G4UIparameter ("physical-volume-name", 's', omitable = false);
527 fpCommand -> SetParameter (parameter);
528 parameter = new G4UIparameter ("copy-no", 'i', omitable = true);
529 parameter -> SetGuidance ("If negative, matches any copy no.");
530 parameter -> SetDefaultValue (-1);
531 fpCommand -> SetParameter (parameter);
532 parameter = new G4UIparameter ("draw", 'b', omitable = true);
533 parameter -> SetGuidance ("If true, draw extent of found volumes.");
534 parameter -> SetDefaultValue (false);
535 fpCommand -> SetParameter (parameter);
536}
bool G4bool
Definition: G4Types.hh:86
void SetGuidance(const char *aGuidance)
Definition: G4UIcommand.hh:157

◆ ~G4VisCommandSetVolumeForField()

G4VisCommandSetVolumeForField::~G4VisCommandSetVolumeForField ( )
virtual

Definition at line 538 of file G4VisCommandsSet.cc.

539{
540 delete fpCommand;
541}

Member Function Documentation

◆ GetCurrentValue()

G4String G4VisCommandSetVolumeForField::GetCurrentValue ( G4UIcommand command)
virtual

Reimplemented from G4UImessenger.

Definition at line 543 of file G4VisCommandsSet.cc.

544{
545 return G4String();
546}

◆ SetNewValue()

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

Reimplemented from G4UImessenger.

Definition at line 548 of file G4VisCommandsSet.cc.

549{
551
552 G4String name, drawString;
553 G4int copyNo;
554 std::istringstream is (newValue);
555 is >> name >> copyNo >> drawString;
556 G4bool draw = G4UIcmdWithABool::ConvertToBool(drawString);
557
558 G4TransportationManager* transportationManager =
560 size_t nWorlds = transportationManager->GetNoWorlds();
561 std::vector<G4VPhysicalVolume*>::iterator iterWorld =
562 transportationManager->GetWorldsIterator();
564 G4BoundingExtentScene extentScene;
565 for (size_t i = 0; i < nWorlds; ++i, ++iterWorld) {
566 G4PhysicalVolumeModel searchModel (*iterWorld); // Unlimited depth.
567 G4ModelingParameters mp; // Default - no culling.
568 searchModel.SetModelingParameters (&mp);
569 // Find all instances at any position in the tree
570 G4PhysicalVolumesSearchScene searchScene (&searchModel, name, copyNo);
571 searchModel.DescribeYourselfTo (searchScene); // Initiate search.
572 for (const auto& findings: searchScene.GetFindings()) {
573 fCurrrentPVFindingsForField.push_back(findings);
574 G4VisExtent extent = findings.fpFoundPV->GetLogicalVolume()->GetSolid()->GetExtent();
575 extent.Transform(findings.fFoundObjectTransformation);
576 extentScene.AccrueBoundingExtent(extent);
577 }
578 }
579
580 if (fCurrrentPVFindingsForField.empty()) {
581 if (verbosity >= G4VisManager::errors) {
582 G4warn << "ERROR: Volume \"" << name << "\"";
583 if (copyNo >= 0) {
584 G4warn << ", copy no. " << copyNo << ",";
585 }
586 G4warn << " not found." << G4endl;
587 }
588 return;
589 }
590
591 fCurrentExtentForField = extentScene.GetExtent();
592
594
595 if (verbosity >= G4VisManager::confirmations) {
596 for (const auto& findings: fCurrrentPVFindingsForField) {
597 G4cout
598 << "\"" << findings.fpFoundPV->GetName()
599 << "\", copy no. " << findings.fFoundPVCopyNo
600 << ", found\nin searched volume \""
601 << findings.fpSearchPV->GetName()
602 << "\" at depth " << findings.fFoundDepth
603 << ",\nbase path: \"" << findings.fFoundBasePVPath
604 << "\",\nand has been set as volume for field."
605 << G4endl;
606 }
607 }
608}
#define G4warn
Definition: G4Scene.cc:41
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void AccrueBoundingExtent(const G4VisExtent &)
const G4VisExtent & GetExtent() const
static G4TransportationManager * GetTransportationManager()
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator()
std::size_t GetNoWorlds() const
static G4bool ConvertToBool(const char *st)
Definition: G4UIcommand.cc:549
static std::vector< G4PhysicalVolumesSearchScene::Findings > fCurrrentPVFindingsForField
static G4VisManager * fpVisManager
static G4VisExtent fCurrentExtentForField
void DrawExtent(const G4VisExtent &)
G4VisExtent & Transform(const G4Transform3D &)
Definition: G4VisExtent.cc:102
static Verbosity GetVerbosity()
const char * name(G4int ptype)

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