Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VisManager Class Referenceabstract

#include <G4VisManager.hh>

Inheritance diagram for G4VisManager:

Classes

struct  UserVisAction

Public Types

enum  Verbosity {
  quiet , startup , errors , warnings ,
  confirmations , parameters , all
}

Public Member Functions

virtual ~G4VisManager ()
void Initialise ()
void Initialize ()
void RegisterRunDurationUserVisAction (const G4String &name, G4VUserVisAction *, const G4VisExtent &=G4VisExtent())
void RegisterEndOfEventUserVisAction (const G4String &name, G4VUserVisAction *, const G4VisExtent &=G4VisExtent())
void RegisterEndOfRunUserVisAction (const G4String &name, G4VUserVisAction *, const G4VisExtent &=G4VisExtent())
G4bool RegisterGraphicsSystem (G4VGraphicsSystem *)
void RegisterModelFactory (G4TrajDrawModelFactory *factory)
void RegisterModel (G4VTrajectoryModel *model)
void RegisterModelFactory (G4TrajFilterFactory *factory)
void RegisterModel (G4VFilter< G4VTrajectory > *filter)
void RegisterModelFactory (G4HitFilterFactory *factory)
void RegisterModel (G4VFilter< G4VHit > *filter)
void RegisterModelFactory (G4DigiFilterFactory *factory)
void RegisterModel (G4VFilter< G4VDigi > *filter)
void SelectTrajectoryModel (const G4String &model)
void RegisterMessenger (G4UImessenger *messenger)
void Draw (const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4Polyhedron &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4Polyline &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4Polymarker &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4Square &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4Text &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw2D (const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw2D (const G4Polyhedron &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw2D (const G4Polyline &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw2D (const G4Polymarker &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw2D (const G4Square &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw2D (const G4Text &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4VTrajectory &)
void Draw (const G4VHit &)
void Draw (const G4VDigi &)
void Draw (const G4LogicalVolume &, const G4VisAttributes &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4VPhysicalVolume &, const G4VisAttributes &, const G4Transform3D &objectTransformation=G4Transform3D())
void Draw (const G4VSolid &, const G4VisAttributes &, const G4Transform3D &objectTransformation=G4Transform3D())
void DrawGeometry (G4VPhysicalVolume *, const G4Transform3D &t=G4Transform3D())
void BeginDraw (const G4Transform3D &objectTransformation=G4Transform3D())
void EndDraw ()
void BeginDraw2D (const G4Transform3D &objectTransformation=G4Transform3D())
void EndDraw2D ()
void GeometryHasChanged ()
void IgnoreStateChanges (G4bool)
void NotifyHandlers ()
void DispatchToModel (const G4VTrajectory &)
G4bool FilterTrajectory (const G4VTrajectory &)
G4bool FilterHit (const G4VHit &)
G4bool FilterDigi (const G4VDigi &)
virtual void SetUpForAThread ()
virtual void EventReadyForVis (const G4Event *)
void CreateSceneHandler (const G4String &name="")
void CreateViewer (const G4String &name="", const G4String &XGeometry="")
void Enable ()
void Disable ()
G4bool IsEnabled () const
const G4VTrajectoryModelCurrentTrajDrawModel () const
const std::vector< UserVisAction > & GetRunDurationUserVisActions () const
const std::vector< UserVisAction > & GetEndOfEventUserVisActions () const
const std::vector< UserVisAction > & GetEndOfRunUserVisActions () const
const std::map< G4VUserVisAction *, G4VisExtent > & GetUserVisActionExtents () const
G4VGraphicsSystemGetCurrentGraphicsSystem () const
G4SceneGetCurrentScene () const
G4VSceneHandlerGetCurrentSceneHandler () const
G4VViewerGetCurrentViewer () const
const G4GraphicsSystemListGetAvailableGraphicsSystems ()
const G4SceneHandlerListGetAvailableSceneHandlers () const
const G4SceneListGetSceneList () const
G4bool GetTransientsDrawnThisRun () const
G4bool GetTransientsDrawnThisEvent () const
G4bool GetDrawEventOnlyIfToBeKept () const
const G4EventGetRequestedEvent () const
G4int GetNKeepForPostProcessingRequests () const
G4int GetNKeepTheEventRequests () const
G4int GetNKeepRequests () const
G4bool GetReviewingKeptEvents () const
G4bool GetAbortReviewKeptEvents () const
G4bool GetReviewingPlots () const
G4bool GetAbortReviewPlots () const
const G4ViewParametersGetDefaultViewParameters () const
G4int GetMaxEventQueueSize () const
G4bool GetWaitOnEventQueueFull () const
virtual const G4StringGetDefaultGraphicsSystemName ()
const G4StringGetDefaultXGeometryString () const
const G4StringGetDefaultGraphicsSystemBasis () const
const G4StringGetDefaultXGeometryStringBasis () const
void SetCurrentGraphicsSystem (G4VGraphicsSystem *)
void SetCurrentScene (G4Scene *)
void SetCurrentSceneHandler (G4VSceneHandler *)
void SetCurrentViewer (G4VViewer *)
G4SceneHandlerListSetAvailableSceneHandlers ()
G4SceneListSetSceneList ()
void SetVerboseLevel (G4int)
void SetVerboseLevel (const G4String &)
void SetVerboseLevel (Verbosity)
void SetEventRefreshing (G4bool)
void ResetTransientsDrawnFlags ()
void SetTransientsDrawnThisRun (G4bool)
void SetTransientsDrawnThisEvent (G4bool)
void SetDrawEventOnlyIfToBeKept (G4bool)
void SetRequestedEvent (const G4Event *)
void SetReviewingKeptEvents (G4bool)
void SetAbortReviewKeptEvents (G4bool)
void SetReviewingPlots (G4bool)
void SetAbortReviewPlots (G4bool)
void SetDefaultViewParameters (const G4ViewParameters &)
void SetMaxEventQueueSize (G4int)
void SetWaitOnEventQueueFull (G4bool)
void SetDefaultGraphicsSystemName (const G4String &)
void SetDefaultXGeometryString (const G4String &)
void SetDefaultGraphicsSystemBasis (const G4String &)
void SetDefaultXGeometryStringBasis (const G4String &)
G4String ViewerShortName (const G4String &viewerName) const
G4VViewerGetViewer (const G4String &viewerName) const
void PrintAvailableGraphicsSystems (Verbosity, std::ostream &=G4cout) const
Public Member Functions inherited from G4VVisManager
 G4VVisManager ()
virtual ~G4VVisManager ()

Static Public Member Functions

static G4VisManagerGetInstance ()
static G4ThreadFunReturnType G4VisSubThread (G4ThreadFunArgType)
static Verbosity GetVerbosity ()
static Verbosity GetVerbosityValue (const G4String &)
static Verbosity GetVerbosityValue (G4int)
static G4String VerbosityString (Verbosity)
static void PrintAvailableVerbosity (std::ostream &os)
Static Public Member Functions inherited from G4VVisManager
static G4VVisManagerGetConcreteInstance ()

Static Public Attributes

static std::vector< G4StringVerbosityGuidanceStrings

Protected Member Functions

 G4VisManager (const G4String &verbosityString="warnings")
virtual void RegisterGraphicsSystems ()=0
virtual void RegisterModelFactories ()
void RegisterMessengers ()

Protected Attributes

const G4int fVerbose
G4String fDefaultGraphicsSystemName
G4String fDefaultXGeometryString
G4String fDefaultGraphicsSystemBasis
G4String fDefaultXGeometryStringBasis

Static Protected Attributes

static Verbosity fVerbosity = G4VisManager::warnings
Static Protected Attributes inherited from G4VVisManager
static G4VVisManagerfpConcreteInstance = nullptr

Friends

class G4VSceneHandler
class G4VViewer
class G4VisStateDependent
class G4VisCommandList
std::ostream & operator<< (std::ostream &os, const G4VGraphicsSystem &gs)
std::ostream & operator<< (std::ostream &os, const G4VSceneHandler &sh)

Additional Inherited Members

Static Protected Member Functions inherited from G4VVisManager
static void SetConcreteInstance (G4VVisManager *)

Detailed Description

Definition at line 123 of file G4VisManager.hh.

Member Enumeration Documentation

◆ Verbosity

Enumerator
quiet 
startup 
errors 
warnings 
confirmations 
parameters 
all 

Definition at line 137 of file G4VisManager.hh.

137 {
138 quiet, // Nothing is printed.
139 startup, // Startup and endup messages are printed...
140 errors, // ...and errors...
141 warnings, // ...and warnings...
142 confirmations, // ...and confirming messages...
143 parameters, // ...and parameters of scenes and views...
144 all // ...and everything available.
145 };

Constructor & Destructor Documentation

◆ G4VisManager()

G4VisManager::G4VisManager ( const G4String & verbosityString = "warnings")
protected

Definition at line 115 of file G4VisManager.cc.

116: fVerbose (1)
117, fDefaultGraphicsSystemName("TSG") // Override in G4VisExecutive
118, fDefaultXGeometryString ("600x600-0+0") // Override in G4VisExecutive
119, fDefaultGraphicsSystemBasis ("G4VisManager initialisation")
120, fDefaultXGeometryStringBasis("G4VisManager initialisation")
121, fInitialised (false)
122, fpGraphicsSystem (0)
123, fpScene (0)
124, fpSceneHandler (0)
125, fpViewer (0)
126, fpStateDependent (0)
127, fEventRefreshing (false)
128, fTransientsDrawnThisRun (false)
129, fTransientsDrawnThisEvent (false)
130, fNoOfEventsDrawnThisRun (0)
131, fNKeepForPostProcessingRequests (0)
132, fNKeepTheEventRequests (0)
133, fEventKeepingSuspended (false)
134, fDrawEventOnlyIfToBeKept (false)
135, fpRequestedEvent (0)
136, fReviewingKeptEvents (false)
137, fAbortReviewKeptEvents (false)
138, fReviewingPlots (false)
139, fAbortReviewPlots (false)
140, fIsDrawGroup (false)
141, fDrawGroupNestingDepth (0)
142, fIgnoreStateChanges (false)
143, fMaxEventQueueSize (100)
144, fWaitOnEventQueueFull (true)
145// All other objects use default constructors.
146{
147 fpTrajDrawModelMgr = new G4VisModelManager<G4VTrajectoryModel>("/vis/modeling/trajectories");
148 fpTrajFilterMgr = new G4VisFilterManager<G4VTrajectory>("/vis/filtering/trajectories");
149 fpHitFilterMgr = new G4VisFilterManager<G4VHit>("/vis/filtering/hits");
150 fpDigiFilterMgr = new G4VisFilterManager<G4VDigi>("/vis/filtering/digi");
151
153 ("Simple graded message scheme - digit or string (1st character defines):");
155 (" 0) quiet, // Nothing is printed.");
157 (" 1) startup, // Startup and endup messages are printed...");
159 (" 2) errors, // ...and errors...");
161 (" 3) warnings, // ...and warnings...");
163 (" 4) confirmations, // ...and confirming messages...");
165 (" 5) parameters, // ...and parameters of scenes and views...");
167 (" 6) all // ...and everything available.");
168
169 if (fpInstance) {
171 ("G4VisManager::G4VisManager",
172 "visman0001", FatalException,
173 "Attempt to Construct more than one VisManager");
174 }
175
176 fpInstance = this;
178
179 fpStateDependent = new G4VisStateDependent (this);
180 // No need to delete this; G4StateManager does this.
181
182 fVerbosity = GetVerbosityValue(verbosityString);
183 if (fVerbosity >= startup) {
184 G4cout
185 << "Visualization Manager instantiating with verbosity \""
187 << "\"..." << G4endl;
188 }
189
190 // Note: The specific graphics systems must be instantiated in a
191 // higher level library to avoid circular dependencies. Also,
192 // some specifically need additional external libararies that the
193 // user must supply. Therefore we ask the user to implement
194 // RegisterGraphicsSystems() and RegisterModelFactories()
195 // in a subclass. We have to wait for the subclass to instantiate
196 // so RegisterGraphicsSystems() cannot be called from this
197 // constructor; it is called from Initialise(). So we ask the
198 // user:
199 // (a) to write a subclass and implement RegisterGraphicsSystems()
200 // and RegisterModelFactories(). See
201 // visualization/include/G4VisExecutive.hh/icc as an example.
202 // (b) instantiate the subclass.
203 // (c) invoke the Initialise() method of the subclass.
204 // For example:
205 // ...
206 // // Instantiate and initialise Visualization Manager.
207 // G4VisManager* visManager = new G4VisExecutive;
208 // visManager -> SetVerboseLevel (Verbose);
209 // visManager -> Initialise ();
210 // // (Don't forget to delete visManager;)
211 // ...
212
213 // Make top level command directory...
214 // vis commands should *not* be broadcast to workers
215 G4bool propagateToWorkers;
216 auto directory = new G4UIdirectory ("/vis/",propagateToWorkers=false);
217 directory -> SetGuidance ("Visualization commands.");
218 // Request commands in name order
219 directory -> Sort(); // Ordering propagates to sub-directories
220 fDirectoryList.push_back (directory);
221
222 // Instantiate *basic* top level commands so that they can be used
223 // immediately after instantiation of the vis manager. Other top
224 // level and lower level commands are instantiated later in
225 // RegisterMessengers.
226 G4VVisCommand::SetVisManager (this); // Sets shared pointer
227 RegisterMessenger(new G4VisCommandVerbose);
228 RegisterMessenger(new G4VisCommandInitialize);
229}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
bool G4bool
Definition G4Types.hh:86
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static void SetVisManager(G4VisManager *pVisManager)
static void SetConcreteInstance(G4VVisManager *)
G4String fDefaultXGeometryStringBasis
static Verbosity fVerbosity
static std::vector< G4String > VerbosityGuidanceStrings
static G4String VerbosityString(Verbosity)
G4String fDefaultGraphicsSystemBasis
void RegisterMessenger(G4UImessenger *messenger)
G4String fDefaultXGeometryString
G4String fDefaultGraphicsSystemName
friend class G4VisStateDependent
static Verbosity GetVerbosityValue(const G4String &)
const G4int fVerbose

Referenced by G4VisSubThread(), GetInstance(), and operator<<.

◆ ~G4VisManager()

G4VisManager::~G4VisManager ( )
virtual

Definition at line 231 of file G4VisManager.cc.

232{
233 G4UImanager* UImanager = G4UImanager::GetUIpointer();
234 UImanager->SetCoutDestination(nullptr);
235 std::size_t i;
236 for (i = 0; i < fSceneList.size (); ++i) {
237 delete fSceneList[i];
238 }
239 for (i = 0; i < fAvailableSceneHandlers.size (); ++i) {
240 if (fAvailableSceneHandlers[i] != NULL) {
241 delete fAvailableSceneHandlers[i];
242 }
243 }
244 for (i = 0; i < fAvailableGraphicsSystems.size (); ++i) {
245 if (fAvailableGraphicsSystems[i]) {
246 delete fAvailableGraphicsSystems[i];
247 }
248 }
249 if (fVerbosity >= startup) {
250 G4cout << "Graphics systems deleted." << G4endl;
251 G4cout << "Visualization Manager deleting..." << G4endl;
252 }
253 for (i = 0; i < fMessengerList.size (); ++i) {
254 delete fMessengerList[i];
255 }
256 for (i = 0; i < fDirectoryList.size (); ++i) {
257 delete fDirectoryList[i];
258 }
259
260 delete fpDigiFilterMgr;
261 delete fpHitFilterMgr;
262 delete fpTrajFilterMgr;
263 delete fpTrajDrawModelMgr;
264 fpInstance = 0;
265}
void SetCoutDestination(G4UIsession *const value)
static G4UImanager * GetUIpointer()

Member Function Documentation

◆ BeginDraw()

void G4VisManager::BeginDraw ( const G4Transform3D & objectTransformation = G4Transform3D())
virtual

Implements G4VVisManager.

Definition at line 926 of file G4VisManager.cc.

927{
928 if (G4Threading::IsWorkerThread()) return;
929
930 fDrawGroupNestingDepth++;
931 if (fDrawGroupNestingDepth > 1) {
933 ("G4VisManager::BeginDraw",
934 "visman0008", JustWarning,
935 "Nesting detected. It is illegal to nest Begin/EndDraw."
936 "\n Ignored");
937 return;
938 }
939 if (IsValidView ()) {
940 ClearTransientStoreIfMarked();
941 fpSceneHandler -> BeginPrimitives (objectTransform);
942 fIsDrawGroup = true;
943 }
944}
@ JustWarning
G4bool IsWorkerThread()

◆ BeginDraw2D()

void G4VisManager::BeginDraw2D ( const G4Transform3D & objectTransformation = G4Transform3D())
virtual

Implements G4VVisManager.

Definition at line 961 of file G4VisManager.cc.

962{
963 if (G4Threading::IsWorkerThread()) return;
964
965 fDrawGroupNestingDepth++;
966 if (fDrawGroupNestingDepth > 1) {
968 ("G4VisManager::BeginDraw2D",
969 "visman0009", JustWarning,
970 "Nesting detected. It is illegal to nest Begin/EndDraw2D."
971 "\n Ignored");
972 return;
973 }
974 if (IsValidView ()) {
975 ClearTransientStoreIfMarked();
976 fpSceneHandler -> BeginPrimitives2D (objectTransform);
977 fIsDrawGroup = true;
978 }
979}

◆ CreateSceneHandler()

void G4VisManager::CreateSceneHandler ( const G4String & name = "")

Definition at line 1231 of file G4VisManager.cc.

1231 {
1232 if (!fInitialised) Initialise ();
1233 if (fpGraphicsSystem) {
1234 G4VSceneHandler* pSceneHandler =
1235 fpGraphicsSystem -> CreateSceneHandler (name);
1236 if (pSceneHandler) {
1237 fAvailableSceneHandlers.push_back (pSceneHandler);
1238 fpSceneHandler = pSceneHandler; // Make current.
1239 }
1240 else {
1241 if (fVerbosity >= errors) {
1242 G4warn << "ERROR in G4VisManager::CreateSceneHandler during "
1243 << fpGraphicsSystem -> GetName ()
1244 << " scene handler creation.\n No action taken."
1245 << G4endl;
1246 }
1247 }
1248 }
1249 else PrintInvalidPointers ();
1250}
#define G4warn
Definition G4Scene.cc:41
void CreateSceneHandler(const G4String &name="")
friend class G4VSceneHandler

Referenced by CreateSceneHandler().

◆ CreateViewer()

void G4VisManager::CreateViewer ( const G4String & name = "",
const G4String & XGeometry = "" )

Definition at line 1252 of file G4VisManager.cc.

1254{
1255
1256 if (!fInitialised) Initialise ();
1257
1258 if (!fpSceneHandler) {
1259 PrintInvalidPointers ();
1260 return;
1261 }
1262
1263 G4VViewer* p = fpGraphicsSystem -> CreateViewer (*fpSceneHandler, name);
1264
1265 if (!p) {
1266 if (fVerbosity >= errors) {
1267 G4warn << "ERROR in G4VisManager::CreateViewer: null pointer during "
1268 << fpGraphicsSystem -> GetName ()
1269 << " viewer creation.\n No action taken."
1270 << G4endl;
1271 }
1272 return;
1273 }
1274
1275 if (p -> GetViewId() < 0) {
1276 if (fVerbosity >= errors) {
1277 G4warn << "ERROR in G4VisManager::CreateViewer during "
1278 << fpGraphicsSystem -> GetName ()
1279 << " viewer instantiation.\n No action taken."
1280 << G4endl;
1281 }
1282 return;
1283 }
1284
1285 // Viewer is created, now we can set geometry parameters
1286 // Before 12/2008, it was done in G4VViewer.cc but it did not have to be there!
1287
1288 G4ViewParameters initialvp = p -> GetViewParameters();
1289 initialvp.SetXGeometryString(XGeometry); //parse string and store parameters
1290 p -> SetViewParameters(initialvp);
1291 p -> Initialise (); // (Viewer itself may change view parameters further.)
1292 if (p -> GetViewId() < 0) {
1293 if (fVerbosity >= errors) {
1294 G4warn << "ERROR in G4VisManager::CreateViewer during "
1295 << fpGraphicsSystem -> GetName ()
1296 << " viewer initialisation.\n No action taken."
1297 << G4endl;
1298 }
1299 return;
1300 }
1301
1302 fpViewer = p; // Make current.
1303 fpSceneHandler -> AddViewerToList (fpViewer);
1304 fpSceneHandler -> SetCurrentViewer (fpViewer);
1305 if (fVerbosity >= confirmations) {
1306 G4cout << "G4VisManager::CreateViewer: new viewer created."
1307 << G4endl;
1308 }
1309
1310 const G4ViewParameters& vp = fpViewer->GetViewParameters();
1311 if (fVerbosity >= parameters) {
1312 G4cout << " view parameters are:\n " << vp << G4endl;
1313 }
1314
1315 if (vp.IsCulling () && vp.IsCullingInvisible ()) {
1316 static G4bool warned = false;
1317 if (fVerbosity >= confirmations) {
1318 if (!warned) {
1319 G4cout <<
1320 "NOTE: objects with visibility flag set to \"false\""
1321 " will not be drawn!"
1322 "\n \"/vis/viewer/set/culling global false\" to Draw such objects."
1323 "\n Also see other \"/vis/viewer/set\" commands."
1324 << G4endl;
1325 warned = true;
1326 }
1327 }
1328 }
1329 if (vp.IsCullingCovered ()) {
1330 static G4bool warned = false;
1331 if (fVerbosity >= warnings) {
1332 if (!warned) {
1333 G4warn <<
1334 "WARNING: covered objects in solid mode will not be rendered!"
1335 "\n \"/vis/viewer/set/culling coveredDaughters false\" to reverse this."
1336 "\n Also see other \"/vis/viewer/set\" commands."
1337 << G4endl;
1338 warned = true;
1339 }
1340 }
1341 }
1342}
void SetXGeometryString(const G4String &)
G4bool IsCulling() const
G4bool IsCullingInvisible() const
G4bool IsCullingCovered() const
void SetCurrentViewer(G4VViewer *)
friend class G4VViewer
void CreateViewer(const G4String &name="", const G4String &XGeometry="")

Referenced by CreateViewer().

◆ CurrentTrajDrawModel()

const G4VTrajectoryModel * G4VisManager::CurrentTrajDrawModel ( ) const

Definition at line 855 of file G4VisManager.cc.

856{
857 assert (0 != fpTrajDrawModelMgr);
858
859 const G4VTrajectoryModel* model = fpTrajDrawModelMgr->Current();
860
861 if (0 == model) {
862 // No model was registered with the trajectory model manager.
863 // Use G4TrajectoryDrawByCharge as a fallback.
864 fpTrajDrawModelMgr->Register(new G4TrajectoryDrawByCharge("DefaultModel"));
865 if (fVerbosity >= warnings) {
866 G4warn<<"G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model."<<G4endl;
867 G4warn<<"See commands in /vis/modeling/trajectories/ for other options."<<G4endl;
868 }
869 }
870
871 model = fpTrajDrawModelMgr->Current();
872 assert (0 != model); // Should definitely exist now
873
874 return model;
875}

Referenced by DispatchToModel().

◆ Disable()

void G4VisManager::Disable ( )

Definition at line 786 of file G4VisManager.cc.

786 {
788 if (fVerbosity >= confirmations) {
789 G4cout <<
790 "G4VisManager::Disable: visualization disabled."
791 "\n The pointer returned by GetConcreteInstance will be zero."
792 "\n Note that it will become enabled after some valid vis commands."
793 << G4endl;
794 }
795 if (fVerbosity >= warnings) {
796 G4int currentTrajectoryType =
798 if (currentTrajectoryType > 0) {
799 G4warn <<
800 "You may wish to disable trajectory production too:"
801 "\n \"/tracking/storeTrajectory 0\""
802 "\nbut don't forget to re-enable with"
803 "\n \"/vis/enable\""
804 "\n \"/tracking/storeTrajectory " << currentTrajectoryType
805 << "\"\n and maybe \"/vis/viewer/rebuild\""
806 << G4endl;
807 }
808 }
809}
int G4int
Definition G4Types.hh:85
static G4RunManagerKernel * GetRunManagerKernel()
G4TrackingManager * GetTrackingManager() const
G4int GetStoreTrajectory() const

◆ DispatchToModel()

void G4VisManager::DispatchToModel ( const G4VTrajectory & trajectory)
virtual

Implements G4VVisManager.

Definition at line 1497 of file G4VisManager.cc.

1498{
1499 G4bool visible(true);
1500
1501 // See if trajectory passes filter
1502 G4bool passed = FilterTrajectory(trajectory);
1503
1504 if (!passed) {
1505 // Draw invisible trajectory if trajectory failed filter and
1506 // are filtering in soft mode
1507 if (fpTrajFilterMgr->GetMode() == FilterMode::Soft) visible = false;
1508 else {return;}
1509 }
1510
1511 // Go on to draw trajectory
1512 assert (0 != fpTrajDrawModelMgr);
1513
1514 const G4VTrajectoryModel* trajectoryModel = CurrentTrajDrawModel();
1515
1516 assert (0 != trajectoryModel); // Should exist
1517
1518 if (IsValidView()) {
1519 trajectoryModel->Draw(trajectory, visible);
1520 }
1521}
virtual void Draw(const G4VTrajectory &trajectory, const G4bool &visible=true) const =0
const G4VTrajectoryModel * CurrentTrajDrawModel() const
G4bool FilterTrajectory(const G4VTrajectory &)

◆ Draw() [1/12]

void G4VisManager::Draw ( const G4Circle & circle,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1040 of file G4VisManager.cc.

1042{
1043 DrawT (circle, objectTransform);
1044}

Referenced by Draw(), and Draw().

◆ Draw() [2/12]

void G4VisManager::Draw ( const G4LogicalVolume & logicalVol,
const G4VisAttributes & attribs,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1168 of file G4VisManager.cc.

1170 {
1171 if (G4Threading::IsWorkerThread()) return;
1172
1173 // Find corresponding solid.
1174 G4VSolid* pSol = logicalVol.GetSolid ();
1175 Draw (*pSol, attribs, objectTransform);
1176}
G4VSolid * GetSolid() const
void Draw(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())

◆ Draw() [3/12]

void G4VisManager::Draw ( const G4Polyhedron & polyhedron,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1046 of file G4VisManager.cc.

1048{
1049 DrawT (polyhedron, objectTransform);
1050}

◆ Draw() [4/12]

void G4VisManager::Draw ( const G4Polyline & line,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1052 of file G4VisManager.cc.

1054{
1055 DrawT (line, objectTransform);
1056}

◆ Draw() [5/12]

void G4VisManager::Draw ( const G4Polymarker & polymarker,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1058 of file G4VisManager.cc.

1060{
1061 DrawT (polymarker, objectTransform);
1062}

◆ Draw() [6/12]

void G4VisManager::Draw ( const G4Square & square,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1064 of file G4VisManager.cc.

1066{
1067 DrawT (square, objectTransform);
1068}

◆ Draw() [7/12]

void G4VisManager::Draw ( const G4Text & text,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1070 of file G4VisManager.cc.

1072{
1073 DrawT (text, objectTransform);
1074}

◆ Draw() [8/12]

void G4VisManager::Draw ( const G4VDigi & digi)
virtual

Implements G4VVisManager.

Definition at line 1125 of file G4VisManager.cc.

1125 {
1126 if (G4Threading::IsWorkerThread()) return;
1127
1128 if (fIsDrawGroup) {
1129 fpSceneHandler -> AddCompound (digi);
1130 } else {
1131 if (IsValidView ()) {
1132 ClearTransientStoreIfMarked();
1133 fpSceneHandler -> AddCompound (digi);
1134 }
1135 }
1136}

◆ Draw() [9/12]

void G4VisManager::Draw ( const G4VHit & hit)
virtual

Implements G4VVisManager.

Definition at line 1112 of file G4VisManager.cc.

1112 {
1113 if (G4Threading::IsWorkerThread()) return;
1114
1115 if (fIsDrawGroup) {
1116 fpSceneHandler -> AddCompound (hit);
1117 } else {
1118 if (IsValidView ()) {
1119 ClearTransientStoreIfMarked();
1120 fpSceneHandler -> AddCompound (hit);
1121 }
1122 }
1123}

◆ Draw() [10/12]

void G4VisManager::Draw ( const G4VPhysicalVolume & physicalVol,
const G4VisAttributes & attribs,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1197 of file G4VisManager.cc.

1199 {
1200 if (G4Threading::IsWorkerThread()) return;
1201
1202 // Note: It is tempting to use a temporary model here, as for
1203 // trajectories, in order to get at the G4Atts of the physical
1204 // volume. I tried it (JA). But it's not easy to pass the
1205 // vis attributes. Also other aspects of the model seem not to
1206 // be properly set up. So, the idea has been abandoned for the time
1207 // being. The model pointer will be null. So when picking there
1208 // will be no G4Atts from this physical volume.
1209 //
1210 // If this is called from DrawHit, for example, the user may G4Atts to the
1211 // hit and these will be available with "/vis/scene/add/hits".
1212 //
1213 // Find corresponding logical volume and solid.
1214 G4LogicalVolume* pLV = physicalVol.GetLogicalVolume ();
1215 G4VSolid* pSol = pLV -> GetSolid ();
1216 Draw (*pSol, attribs, objectTransform);
1217}
G4LogicalVolume * GetLogicalVolume() const

◆ Draw() [11/12]

void G4VisManager::Draw ( const G4VSolid & solid,
const G4VisAttributes & attribs,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1178 of file G4VisManager.cc.

1180 {
1181 if (G4Threading::IsWorkerThread()) return;
1182
1183 if (fIsDrawGroup) {
1184 fpSceneHandler -> PreAddSolid (objectTransform, attribs);
1185 solid.DescribeYourselfTo (*fpSceneHandler);
1186 fpSceneHandler -> PostAddSolid ();
1187 } else {
1188 if (IsValidView ()) {
1189 ClearTransientStoreIfMarked();
1190 fpSceneHandler -> PreAddSolid (objectTransform, attribs);
1191 solid.DescribeYourselfTo (*fpSceneHandler);
1192 fpSceneHandler -> PostAddSolid ();
1193 }
1194 }
1195}
virtual void DescribeYourselfTo(G4VGraphicsScene &scene) const =0

◆ Draw() [12/12]

void G4VisManager::Draw ( const G4VTrajectory & traj)
virtual

Implements G4VVisManager.

Definition at line 1138 of file G4VisManager.cc.

1138 {
1139 if (G4Threading::IsWorkerThread()) return;
1140
1141 // A trajectory needs a trajectories model to provide G4Atts, etc.
1142 static G4TrajectoriesModel trajectoriesModel;
1143 trajectoriesModel.SetCurrentTrajectory(&traj);
1144 G4RunManager* runManager = G4RunManagerFactory::GetMasterRunManager();
1145 const G4Run* currentRun = runManager->GetCurrentRun();
1146 if (currentRun) {
1147 trajectoriesModel.SetRunID(currentRun->GetRunID());
1148 }
1149 const G4Event* currentEvent =
1151 if (currentEvent) {
1152 trajectoriesModel.SetEventID(currentEvent->GetEventID());
1153 }
1154 if (fIsDrawGroup) {
1155 fpSceneHandler -> SetModel (&trajectoriesModel);
1156 fpSceneHandler -> AddCompound (traj);
1157 fpSceneHandler -> SetModel (0);
1158 } else {
1159 if (IsValidView ()) {
1160 ClearTransientStoreIfMarked();
1161 fpSceneHandler -> SetModel (&trajectoriesModel);
1162 fpSceneHandler -> AddCompound (traj);
1163 fpSceneHandler -> SetModel (0);
1164 }
1165 }
1166}
const G4Event * GetConstCurrentEvent()
static G4EventManager * GetEventManager()
G4int GetEventID() const
Definition G4Event.hh:126
static G4RunManager * GetMasterRunManager()
const G4Run * GetCurrentRun() const
G4int GetRunID() const
Definition G4Run.hh:82
void SetCurrentTrajectory(const G4VTrajectory *pTraj)
void SetEventID(G4int eventID)
void SetRunID(G4int runID)

◆ Draw2D() [1/6]

void G4VisManager::Draw2D ( const G4Circle & circle,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1076 of file G4VisManager.cc.

1078{
1079 DrawT2D (circle, objectTransform);
1080}

◆ Draw2D() [2/6]

void G4VisManager::Draw2D ( const G4Polyhedron & polyhedron,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1082 of file G4VisManager.cc.

1084{
1085 DrawT2D (polyhedron, objectTransform);
1086}

◆ Draw2D() [3/6]

void G4VisManager::Draw2D ( const G4Polyline & line,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1088 of file G4VisManager.cc.

1090{
1091 DrawT2D (line, objectTransform);
1092}

◆ Draw2D() [4/6]

void G4VisManager::Draw2D ( const G4Polymarker & polymarker,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1094 of file G4VisManager.cc.

1096{
1097 DrawT2D (polymarker, objectTransform);
1098}

◆ Draw2D() [5/6]

void G4VisManager::Draw2D ( const G4Square & square,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1100 of file G4VisManager.cc.

1102{
1103 DrawT2D (square, objectTransform);
1104}

◆ Draw2D() [6/6]

void G4VisManager::Draw2D ( const G4Text & text,
const G4Transform3D & objectTransformation = G4Transform3D() )
virtual

Implements G4VVisManager.

Definition at line 1106 of file G4VisManager.cc.

1108{
1109 DrawT2D (text, objectTransform);
1110}

◆ DrawGeometry()

void G4VisManager::DrawGeometry ( G4VPhysicalVolume * v,
const G4Transform3D & t = G4Transform3D() )
virtual

Reimplemented from G4VVisManager.

Definition at line 1219 of file G4VisManager.cc.

1222{
1223 auto modelingParameters = fpSceneHandler->CreateModelingParameters();
1225 const G4bool useFullExtent = true;
1226 G4PhysicalVolumeModel aPVModel(v,depth,t,modelingParameters,useFullExtent);
1227 aPVModel.DescribeYourselfTo(*fpSceneHandler);
1228 delete modelingParameters;
1229}

◆ Enable()

void G4VisManager::Enable ( )

Definition at line 751 of file G4VisManager.cc.

751 {
752 if (IsValidView ()) {
754 if (fVerbosity >= confirmations) {
755 G4cout << "G4VisManager::Enable: visualization enabled." << G4endl;
756 }
757 if (fVerbosity >= warnings) {
758 std::size_t nKeptEvents = 0;
759 const G4Run* run = G4RunManager::GetRunManager()->GetCurrentRun();
760 if (run) nKeptEvents = run->GetNumberOfKeptEvents();
761 G4String isare("are"),plural("s");
762 if (nKeptEvents == 1) {isare = "is"; plural = "";}
763 G4cout <<
764 "There " << isare << ' ' << nKeptEvents << " kept event" << plural << '.'
765 << G4endl;
766 if (nKeptEvents > 0) {
767 G4cout <<
768 " \"/vis/reviewKeptEvents\" to review one by one."
769 "\n To see accumulated, \"/vis/enable\", then \"/vis/viewer/flush\" or \"/vis/viewer/rebuild\"."
770 << G4endl;
771 }
772 PrintListOfPlots();
773 }
774 }
775 else {
776 if (fVerbosity >= warnings) {
777 G4warn <<
778 "G4VisManager::Enable: WARNING: visualization remains disabled for"
779 "\n above reasons. Rectifying with valid vis commands will"
780 "\n automatically enable."
781 << G4endl;
782 }
783 }
784}
static G4RunManager * GetRunManager()
G4int GetNumberOfKeptEvents() const
Definition G4Run.cc:79

◆ EndDraw()

void G4VisManager::EndDraw ( )
virtual

Implements G4VVisManager.

Definition at line 946 of file G4VisManager.cc.

947{
948 if (G4Threading::IsWorkerThread()) return;
949
950 fDrawGroupNestingDepth--;
951 if (fDrawGroupNestingDepth != 0) {
952 if (fDrawGroupNestingDepth < 0) fDrawGroupNestingDepth = 0;
953 return;
954 }
955 if (IsValidView ()) {
956 fpSceneHandler -> EndPrimitives ();
957 }
958 fIsDrawGroup = false;
959}

◆ EndDraw2D()

void G4VisManager::EndDraw2D ( )
virtual

Implements G4VVisManager.

Definition at line 981 of file G4VisManager.cc.

982{
983 if (G4Threading::IsWorkerThread()) return;
984
985 fDrawGroupNestingDepth--;
986 if (fDrawGroupNestingDepth != 0) {
987 if (fDrawGroupNestingDepth < 0) fDrawGroupNestingDepth = 0;
988 return;
989 }
990 if (IsValidView ()) {
991 fpSceneHandler -> EndPrimitives2D ();
992 }
993 fIsDrawGroup = false;
994}

◆ EventReadyForVis()

void G4VisManager::EventReadyForVis ( const G4Event * event)
virtual

Reimplemented from G4VVisManager.

Definition at line 2121 of file G4VisManager.cc.

2124{
2125 if (fIgnoreStateChanges) return;
2126 if (!GetConcreteInstance()) return;
2127 if (!isValidViewForRun) return;
2128 if (isFakeRun) return;
2129
2130 G4AutoLock al(&visEndOfEventMutex);
2131 EndOfEventKernel(event);
2132}
G4TemplateAutoLock< G4Mutex > G4AutoLock
static G4VVisManager * GetConcreteInstance()

◆ FilterDigi()

G4bool G4VisManager::FilterDigi ( const G4VDigi & digi)
virtual

Implements G4VVisManager.

Definition at line 1492 of file G4VisManager.cc.

1493{
1494 return fpDigiFilterMgr->Accept(digi);
1495}

◆ FilterHit()

G4bool G4VisManager::FilterHit ( const G4VHit & hit)
virtual

Implements G4VVisManager.

Definition at line 1487 of file G4VisManager.cc.

1488{
1489 return fpHitFilterMgr->Accept(hit);
1490}

◆ FilterTrajectory()

G4bool G4VisManager::FilterTrajectory ( const G4VTrajectory & trajectory)
virtual

Implements G4VVisManager.

Definition at line 1482 of file G4VisManager.cc.

1483{
1484 return fpTrajFilterMgr->Accept(trajectory);
1485}

Referenced by DispatchToModel().

◆ G4VisSubThread()

G4ThreadFunReturnType G4VisManager::G4VisSubThread ( G4ThreadFunArgType p)
static

Definition at line 1909 of file G4VisManager.cc.

1910{
1911#ifdef G4MULTITHREADED
1912 G4VisManager* pVisManager = (G4VisManager*)p;
1913 G4VSceneHandler* pSceneHandler = pVisManager->GetCurrentSceneHandler();
1914 if (!pSceneHandler) return 0;
1915 G4Scene* pScene = pSceneHandler->GetScene();
1916 if (!pScene) return 0;
1917 G4VViewer* pViewer = pVisManager->GetCurrentViewer();
1918 if (!pViewer) return 0;
1919
1921
1922 // Set up geometry and navigation for a thread
1925 G4Navigator* navigator = G4TransportationManager::GetTransportationManager()
1927 navigator->SetWorldVolume(
1929
1930 pViewer->SwitchToVisSubThread();
1931
1932 while (true) {
1933
1934 G4MUTEXLOCK(&mtVisSubThreadMutex);
1935 std::size_t eventQueueSize = mtVisEventQueue.size();
1936 G4MUTEXUNLOCK(&mtVisSubThreadMutex);
1937 // G4cout << "Event queue size (A): " << eventQueueSize << G4endl;
1938
1939 while (eventQueueSize) {
1940
1941 G4MUTEXLOCK(&mtVisSubThreadMutex);
1942 const G4Event* event = mtVisEventQueue.front();
1943 G4MUTEXUNLOCK(&mtVisSubThreadMutex);
1944
1945 // Here comes the event drawing
1946 pVisManager->SetTransientsDrawnThisEvent(false);
1947 pSceneHandler->SetTransientsDrawnThisEvent(false);
1948
1949 // We are about to draw the event (trajectories, etc.), but first we
1950 // have to clear the previous event(s) if necessary. If this event
1951 // needs to be drawn afresh, e.g., the first event or any event when
1952 // "accumulate" is not requested, the old event has to be cleared.
1953 // We have postponed this so that, for normal viewers like OGL, the
1954 // previous event(s) stay on screen until this new event comes
1955 // along. For a file-writing viewer the geometry has to be drawn.
1956 // See, for example, G4FRSCENEHANDLER::ClearTransientStore.
1957 pVisManager->ClearTransientStoreIfMarked();
1958
1959 // Now draw the event...
1960 pSceneHandler->DrawEvent(event);
1961 ++pVisManager->fNoOfEventsDrawnThisRun;
1962
1963 // Then pop and release event
1964 G4MUTEXLOCK(&mtVisSubThreadMutex);
1965 mtVisEventQueue.pop_front();
1966 pVisManager->EndOfEventCleanup(event);
1967 eventQueueSize = mtVisEventQueue.size();
1968 G4MUTEXUNLOCK(&mtVisSubThreadMutex);
1969 }
1970
1971 G4MUTEXLOCK(&mtVisSubThreadMutex);
1972 G4bool runInProgress = mtRunInProgress;
1973 G4MUTEXUNLOCK(&mtVisSubThreadMutex);
1974 if (!runInProgress) {
1975 // EndOfRun on master thread has signalled end of run. There is
1976 // nothing to draw so...
1977 break;
1978 }
1979
1980 // Run still in progress but nothing to draw, so wait a while.
1981 std::this_thread::sleep_for(std::chrono::milliseconds(100));
1982 }
1983
1984 // Inform viewer that we have finished all sub-thread drawing
1985 pViewer->DoneWithVisSubThread();
1986 pViewer->MovingToMasterThread();
1987#else
1989#endif
1990 return nullptr;
1991}
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
static pool_type * GetPool()
void SetWorldVolume(G4VPhysicalVolume *pWorld)
static G4RunManagerKernel * GetMasterRunManagerKernel()
static pool_type * GetPool()
static G4TransportationManager * GetTransportationManager()
G4Navigator * GetNavigatorForTracking() const
void SetUpForSpecialThread(const G4String &aPrefix)
void DrawEvent(const G4Event *)
G4Scene * GetScene() const
void SetTransientsDrawnThisEvent(G4bool)
virtual void MovingToMasterThread()
Definition G4VViewer.hh:136
virtual void SwitchToVisSubThread()
Definition G4VViewer.hh:130
virtual void DoneWithVisSubThread()
Definition G4VViewer.hh:133
void SetTransientsDrawnThisEvent(G4bool)
G4VViewer * GetCurrentViewer() const
G4VSceneHandler * GetCurrentSceneHandler() const
G4VisManager(const G4String &verbosityString="warnings")
void G4ConsumeParameters(_Args &&...)
Definition templates.hh:177

◆ GeometryHasChanged()

void G4VisManager::GeometryHasChanged ( )
virtual

Implements G4VVisManager.

Definition at line 1344 of file G4VisManager.cc.

1344 {
1345 if (fVerbosity >= confirmations) {
1346 G4cout << "G4VisManager::GeometryHasChanged() called." << G4endl;
1347 }
1348
1349 // Change the world...
1350 G4VPhysicalVolume* pWorld =
1352 -> GetNavigatorForTracking () -> GetWorldVolume ();
1353 if (!pWorld) {
1354 if (fVerbosity >= warnings) {
1355 G4warn << "WARNING: There is no world volume!" << G4endl;
1356 }
1357 }
1358
1359 // Check scenes.
1360 G4SceneList& sceneList = fSceneList;
1361 std::size_t iScene, nScenes = sceneList.size ();
1362 for (iScene = 0; iScene < nScenes; ++iScene) {
1363 G4Scene* pScene = sceneList [iScene];
1364 std::vector<G4Scene::Model>& modelList = pScene -> SetRunDurationModelList ();
1365 if (modelList.size ()) {
1366 G4bool modelInvalid;
1367 do { // Remove, if required, one at a time.
1368 modelInvalid = false;
1369 std::vector<G4Scene::Model>::iterator iterModel;
1370 for (iterModel = modelList.begin();
1371 iterModel != modelList.end();
1372 ++iterModel) {
1373 modelInvalid = !(iterModel->fpModel->Validate(fVerbosity>=warnings));
1374 if (modelInvalid) {
1375 // Model invalid - remove and break.
1376 if (fVerbosity >= warnings) {
1377 G4warn << "WARNING: Model \""
1378 << iterModel->fpModel->GetGlobalDescription ()
1379 << "\" is no longer valid - being removed\n from scene \""
1380 << pScene -> GetName ()
1381 << "\". You may have to re-establish the scene."
1382 << G4endl;
1383 }
1384 modelList.erase (iterModel);
1385 break;
1386 }
1387 }
1388 } while (modelInvalid);
1389
1390 if (modelList.size () == 0) {
1391 if (fVerbosity >= warnings) {
1392 G4warn << "WARNING: No run-duration models left in this scene \""
1393 << pScene -> GetName ()
1394 << "\"."
1395 << G4endl;
1396 }
1397 if (pWorld) {
1398 if (fVerbosity >= warnings) {
1399 G4warn << " Adding current world to \""
1400 << pScene -> GetName ()
1401 << "\"."
1402 << G4endl;
1403 }
1404 pScene->AddRunDurationModel(new G4PhysicalVolumeModel(pWorld),fVerbosity>=warnings);
1405 // (The above includes a re-calculation of the extent.)
1407 ApplyCommand (G4String("/vis/scene/notifyHandlers " + pScene->GetName()));
1408 }
1409 }
1410 else {
1411 pScene->CalculateExtent(); // Recalculate extent
1413 ApplyCommand (G4String("/vis/scene/notifyHandlers " + pScene->GetName()));
1414 }
1415 }
1416 }
1417
1418 // Check the manager's current scene...
1419 if (fpScene && fpScene -> GetRunDurationModelList ().size () == 0) {
1420 if (fVerbosity >= warnings) {
1421 G4warn << "WARNING: The current scene \""
1422 << fpScene -> GetName ()
1423 << "\" has no run duration models."
1424 << "\n Use \"/vis/scene/add/volume\" or create a new scene."
1425 << G4endl;
1426 }
1427 // Clean up
1428 if (fpSceneHandler) {
1429 fpSceneHandler->ClearTransientStore();
1430 fpSceneHandler->ClearStore();
1431 if (fpViewer) {
1432 fpViewer->NeedKernelVisit();
1433 fpViewer->SetView();
1434 fpViewer->ClearView();
1435 fpViewer->FinishView();
1436 }
1437 }
1438 }
1439}
void CalculateExtent()
Definition G4Scene.cc:64
G4bool AddRunDurationModel(G4VModel *, G4bool warn=false)
Definition G4Scene.cc:160
const G4String & GetName() const

◆ GetAbortReviewKeptEvents()

G4bool G4VisManager::GetAbortReviewKeptEvents ( ) const

◆ GetAbortReviewPlots()

G4bool G4VisManager::GetAbortReviewPlots ( ) const

◆ GetAvailableGraphicsSystems()

const G4GraphicsSystemList & G4VisManager::GetAvailableGraphicsSystems ( )

Definition at line 811 of file G4VisManager.cc.

811 {
812 std::size_t nSystems = fAvailableGraphicsSystems.size ();
813 if (nSystems == 0) {
814 if (fVerbosity >= warnings) {
815 G4warn << "G4VisManager::GetAvailableGraphicsSystems: WARNING: no"
816 "\n graphics system available!"
817 "\n 1) Did you have environment variables G4VIS_BUILD_xxxx_DRIVER set"
818 "\n when you compiled/built the visualization code?"
819 "\n 2) Did you instantiate your own Visualization Manager and forget"
820 "\n to implement RegisterGraphicsSystems correctly?"
821 "\n 3) You can register your own graphics system, e.g.,"
822 "\n visManager->RegisterGraphicsSystem(new MyGraphicsSystem);)"
823 "\n after instantiating your vis manager and before"
824 "\n visManager->Initialize()."
825 << G4endl;
826 }
827 }
828 return fAvailableGraphicsSystems;
829}

◆ GetAvailableSceneHandlers()

const G4SceneHandlerList & G4VisManager::GetAvailableSceneHandlers ( ) const

Referenced by operator<<.

◆ GetCurrentGraphicsSystem()

G4VGraphicsSystem * G4VisManager::GetCurrentGraphicsSystem ( ) const

◆ GetCurrentScene()

G4Scene * G4VisManager::GetCurrentScene ( ) const

◆ GetCurrentSceneHandler()

◆ GetCurrentViewer()

◆ GetDefaultGraphicsSystemBasis()

const G4String & G4VisManager::GetDefaultGraphicsSystemBasis ( ) const

◆ GetDefaultGraphicsSystemName()

virtual const G4String & G4VisManager::GetDefaultGraphicsSystemName ( )
virtual

◆ GetDefaultViewParameters()

const G4ViewParameters & G4VisManager::GetDefaultViewParameters ( ) const

◆ GetDefaultXGeometryString()

const G4String & G4VisManager::GetDefaultXGeometryString ( ) const

◆ GetDefaultXGeometryStringBasis()

const G4String & G4VisManager::GetDefaultXGeometryStringBasis ( ) const

◆ GetDrawEventOnlyIfToBeKept()

G4bool G4VisManager::GetDrawEventOnlyIfToBeKept ( ) const

◆ GetEndOfEventUserVisActions()

const std::vector< UserVisAction > & G4VisManager::GetEndOfEventUserVisActions ( ) const

◆ GetEndOfRunUserVisActions()

const std::vector< UserVisAction > & G4VisManager::GetEndOfRunUserVisActions ( ) const

◆ GetInstance()

◆ GetMaxEventQueueSize()

G4int G4VisManager::GetMaxEventQueueSize ( ) const

◆ GetNKeepForPostProcessingRequests()

G4int G4VisManager::GetNKeepForPostProcessingRequests ( ) const

◆ GetNKeepRequests()

G4int G4VisManager::GetNKeepRequests ( ) const

◆ GetNKeepTheEventRequests()

G4int G4VisManager::GetNKeepTheEventRequests ( ) const

◆ GetRequestedEvent()

const G4Event * G4VisManager::GetRequestedEvent ( ) const

◆ GetReviewingKeptEvents()

G4bool G4VisManager::GetReviewingKeptEvents ( ) const

◆ GetReviewingPlots()

G4bool G4VisManager::GetReviewingPlots ( ) const

◆ GetRunDurationUserVisActions()

const std::vector< UserVisAction > & G4VisManager::GetRunDurationUserVisActions ( ) const

◆ GetSceneList()

const G4SceneList & G4VisManager::GetSceneList ( ) const

◆ GetTransientsDrawnThisEvent()

G4bool G4VisManager::GetTransientsDrawnThisEvent ( ) const

◆ GetTransientsDrawnThisRun()

G4bool G4VisManager::GetTransientsDrawnThisRun ( ) const

◆ GetUserVisActionExtents()

const std::map< G4VUserVisAction *, G4VisExtent > & G4VisManager::GetUserVisActionExtents ( ) const

◆ GetVerbosity()

G4VisManager::Verbosity G4VisManager::GetVerbosity ( )
static

Definition at line 2561 of file G4VisManager.cc.

2561 {
2562 return fVerbosity;
2563}

Referenced by G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::BeginPrimitives(), G4DAWNFILESceneHandler::BeginSavingG4Prim(), G4GMocrenFileSceneHandler::BeginSavingGdd(), G4DAWNFILEViewer::ClearView(), G4GMocrenFileViewer::ClearView(), G4VRML2FileViewer::ClearView(), G4VRML2FileSceneHandler::closePort(), G4VRML2FileSceneHandler::connectPort(), G4OpenGLXViewer::CreateGLXContext(), G4OpenGLXViewer::CreateMainWindow(), G4VSceneHandler::CreateModelingParameters(), G4VSceneHandler::Draw3DRectMeshAsDots(), G4VSceneHandler::Draw3DRectMeshAsSurfaces(), G4VSceneHandler::DrawTetMeshAsDots(), G4VSceneHandler::DrawTetMeshAsSurfaces(), G4DAWNFILEViewer::DrawView(), G4GMocrenFileViewer::DrawView(), G4ToolsSGOffscreenViewer::DrawView(), G4VRML2FileViewer::DrawView(), G4GMocrenFileSceneHandler::EndPrimitives(), G4DAWNFILESceneHandler::EndSavingG4Prim(), G4GMocrenFileSceneHandler::EndSavingGdd(), G4VRML2FileViewer::FinishView(), G4DAWNFILESceneHandler::FRBeginModeling(), G4OpenInventorQtViewer::G4OpenInventorQtViewer(), G4OpenInventorWinViewer::G4OpenInventorWinViewer(), G4OpenInventorXtExtendedViewer::G4OpenInventorXtExtendedViewer(), G4OpenInventorXtViewer::G4OpenInventorXtViewer(), G4GMocrenIO::getDetector(), GMocrenDetector::getEdge(), G4GMocrenIO::getShortDoseDist(), GMocrenTrack::getStep(), G4GMocrenIO::getTrack(), G4GMocrenFileSceneHandler::GFBeginModeling(), G4GMocrenFileSceneHandler::GFEndModeling(), G4GMocrenIO::mergeDoseDist(), GMocrenDataPrimitive< T >::operator+(), GMocrenDataPrimitive< T >::operator+=(), operator<<, G4VSceneHandler::ProcessScene(), G4VSceneHandler::ProcessTransients(), G4VSceneHandler::RequestPrimitives(), G4GMocrenIO::retrieveData(), G4GMocrenIO::retrieveData2(), G4GMocrenIO::retrieveData3(), G4GMocrenIO::retrieveData4(), G4DAWNFILEViewer::SendViewParameters(), G4DAWNFILESceneHandler::SetG4PrimFileName(), G4GMocrenFileSceneHandler::SetGddFileName(), G4ToolsSGOffscreenViewer::Messenger::SetNewValue(), G4ToolsSGViewer< SG_SESSION, SG_VIEWER >::Messenger::SetNewValue(), G4DAWNFILEViewer::SetView(), G4GMocrenFileViewer::SetView(), G4DAWNFILEViewer::ShowView(), G4GMocrenFileViewer::ShowView(), G4VRML2FileViewer::ShowView(), G4GMocrenIO::storeData3(), G4DAWNFILESceneHandler::~G4DAWNFILESceneHandler(), G4GMocrenFileSceneHandler::~G4GMocrenFileSceneHandler(), and G4VRML2FileSceneHandler::~G4VRML2FileSceneHandler().

◆ GetVerbosityValue() [1/2]

G4VisManager::Verbosity G4VisManager::GetVerbosityValue ( const G4String & verbosityString)
static

Definition at line 2524 of file G4VisManager.cc.

2524 {
2525 G4String ss = G4StrUtil::to_lower_copy(verbosityString);
2526 Verbosity verbosity;
2527 if (ss[0] == 'q') verbosity = quiet;
2528 else if (ss[0] == 's') verbosity = startup;
2529 else if (ss[0] == 'e') verbosity = errors;
2530 else if (ss[0] == 'w') verbosity = warnings;
2531 else if (ss[0] == 'c') verbosity = confirmations;
2532 else if (ss[0] == 'p') verbosity = parameters;
2533 else if (ss[0] == 'a') verbosity = all;
2534 else {
2535 // Could be an integer
2536 G4int intVerbosity;
2537 std::istringstream is(ss);
2538 is >> intVerbosity;
2539 if (!is) {
2540 G4warn << "ERROR: G4VisManager::GetVerbosityValue: invalid verbosity \""
2541 << verbosityString << "\"\n";
2543 // Return existing verbosity
2544 return fVerbosity;
2545 }
2546 else {
2547 verbosity = GetVerbosityValue(intVerbosity);
2548 }
2549 }
2550 return verbosity;
2551}
static void PrintAvailableVerbosity(std::ostream &os)
G4String to_lower_copy(G4String str)
Return lowercased copy of string.

Referenced by G4VisManager(), GetVerbosityValue(), SetVerboseLevel(), and SetVerboseLevel().

◆ GetVerbosityValue() [2/2]

G4VisManager::Verbosity G4VisManager::GetVerbosityValue ( G4int intVerbosity)
static

Definition at line 2553 of file G4VisManager.cc.

2553 {
2554 Verbosity verbosity;
2555 if (intVerbosity < quiet) verbosity = quiet;
2556 else if (intVerbosity > all) verbosity = all;
2557 else verbosity = Verbosity(intVerbosity);
2558 return verbosity;
2559}

◆ GetViewer()

G4VViewer * G4VisManager::GetViewer ( const G4String & viewerName) const

Definition at line 2475 of file G4VisManager.cc.

2475 {
2476 G4String viewerShortName = ViewerShortName (viewerName);
2477 std::size_t nHandlers = fAvailableSceneHandlers.size ();
2478 std::size_t iHandler, iViewer;
2479 G4VViewer* viewer = 0;
2480 G4bool found = false;
2481 for (iHandler = 0; iHandler < nHandlers; iHandler++) {
2482 G4VSceneHandler* sceneHandler = fAvailableSceneHandlers [iHandler];
2483 const G4ViewerList& viewerList = sceneHandler -> GetViewerList ();
2484 for (iViewer = 0; iViewer < viewerList.size (); iViewer++) {
2485 viewer = viewerList [iViewer];
2486 if (viewerShortName == viewer -> GetShortName ()) {
2487 found = true;
2488 break;
2489 }
2490 }
2491 if (found) break;
2492 }
2493 if (found) return viewer;
2494 else return 0;
2495}
G4String ViewerShortName(const G4String &viewerName) const

◆ GetWaitOnEventQueueFull()

G4bool G4VisManager::GetWaitOnEventQueueFull ( ) const

◆ IgnoreStateChanges()

void G4VisManager::IgnoreStateChanges ( G4bool val)
virtual

Reimplemented from G4VVisManager.

Definition at line 2700 of file G4VisManager.cc.

2701{
2702 fIgnoreStateChanges = val;
2703}

◆ Initialise()

void G4VisManager::Initialise ( )

Definition at line 276 of file G4VisManager.cc.

276 {
277
278 if (fInitialised && fVerbosity >= warnings) {
279 G4warn << "WARNING: G4VisManager::Initialise: already initialised."
280 << G4endl;
281 return;
282 }
283
284 if (fVerbosity >= startup) {
285 G4cout << "Visualization Manager initialising..." << G4endl;
286 }
287
288 if (fVerbosity >= parameters) {
289 G4cout <<
290 "\nYou have instantiated your own Visualization Manager, inheriting"
291 "\n G4VisManager and implementing RegisterGraphicsSystems(), in which"
292 "\n you should, normally, instantiate drivers which do not need"
293 "\n external packages or libraries, and, optionally, drivers under"
294 "\n control of environment variables."
295 "\n Also you should implement RegisterModelFactories()."
296 "\n See visualization/management/include/G4VisExecutive.hh/icc, for example."
297 "\n In your main() you will have something like:"
298 "\n G4VisManager* visManager = new G4VisExecutive;"
299 "\n visManager -> SetVerboseLevel (Verbose);"
300 "\n visManager -> Initialize ();"
301 "\n (Don't forget to delete visManager;)"
302 "\n"
303 << G4endl;
304 }
305
306 if (fVerbosity >= startup) {
307 G4cout << "Registering graphics systems..." << G4endl;
308 }
309
311
312 if (fVerbosity >= startup) {
313 G4cout <<
314 "\nYou have successfully registered the following graphics systems."
315 << G4endl;
317 G4cout << G4endl;
318 }
319
320 // Make command directories for commands instantiated in the
321 // modeling subcategory...
322 G4UIcommand* directory;
323 directory = new G4UIdirectory ("/vis/modeling/");
324 directory -> SetGuidance ("Modeling commands.");
325 fDirectoryList.push_back (directory);
326 directory = new G4UIdirectory ("/vis/modeling/trajectories/");
327 directory -> SetGuidance ("Trajectory model commands.");
328 fDirectoryList.push_back (directory);
329 directory = new G4UIdirectory ("/vis/modeling/trajectories/create/");
330 directory -> SetGuidance ("Create trajectory models and messengers.");
331 fDirectoryList.push_back (directory);
332
333 // Filtering command directory
334 directory = new G4UIdirectory ("/vis/filtering/");
335 directory -> SetGuidance ("Filtering commands.");
336 fDirectoryList.push_back (directory);
337 directory = new G4UIdirectory ("/vis/filtering/trajectories/");
338 directory -> SetGuidance ("Trajectory filtering commands.");
339 fDirectoryList.push_back (directory);
340 directory = new G4UIdirectory ("/vis/filtering/trajectories/create/");
341 directory -> SetGuidance ("Create trajectory filters and messengers.");
342 fDirectoryList.push_back (directory);
343 directory = new G4UIdirectory ("/vis/filtering/hits/");
344 directory -> SetGuidance ("Hit filtering commands.");
345 fDirectoryList.push_back (directory);
346 directory = new G4UIdirectory ("/vis/filtering/hits/create/");
347 directory -> SetGuidance ("Create hit filters and messengers.");
348 fDirectoryList.push_back (directory);
349 directory = new G4UIdirectory ("/vis/filtering/digi/");
350 directory -> SetGuidance ("Digi filtering commands.");
351 fDirectoryList.push_back (directory);
352 directory = new G4UIdirectory ("/vis/filtering/digi/create/");
353 directory -> SetGuidance ("Create digi filters and messengers.");
354 fDirectoryList.push_back (directory);
355
357
358 if (fVerbosity >= startup) {
359 G4cout << "Registering model factories..." << G4endl;
360 }
361
363
364 if (fVerbosity >= startup) {
365 G4cout <<
366 "\nYou have successfully registered the following model factories."
367 << G4endl;
368 PrintAvailableModels (fVerbosity);
369 G4cout << G4endl;
370 }
371
372 if (fVerbosity >= startup) {
373 PrintAvailableUserVisActions (fVerbosity);
374 G4cout << G4endl;
375 }
376
377 InitialiseG4ColourMap();
378
379 if (fVerbosity >= startup) {
380 G4cout <<
381 "Some /vis commands (optionally) take a string to specify colour."
382 "\n\"/vis/list\" to see available colours."
383 << G4endl;
384 }
385
386 fInitialised = true;
387}
void PrintAvailableGraphicsSystems(Verbosity, std::ostream &=G4cout) const
virtual void RegisterGraphicsSystems()=0
virtual void RegisterModelFactories()
void RegisterMessengers()

Referenced by CreateSceneHandler(), and CreateViewer().

◆ Initialize()

void G4VisManager::Initialize ( )

◆ IsEnabled()

G4bool G4VisManager::IsEnabled ( ) const

◆ NotifyHandlers()

void G4VisManager::NotifyHandlers ( )
virtual

Reimplemented from G4VVisManager.

Definition at line 1441 of file G4VisManager.cc.

1441 {
1442
1443 if (fVerbosity >= confirmations) {
1444 G4cout << "G4VisManager::NotifyHandler() called." << G4endl;
1445 }
1446
1447 if (IsValidView()) {
1448
1449 // Check scenes.
1450 G4SceneList& sceneList = fSceneList;
1451 std::size_t iScene, nScenes = sceneList.size ();
1452 for (iScene = 0; iScene < nScenes; ++iScene) {
1453 G4Scene* pScene = sceneList [iScene];
1454 std::vector<G4Scene::Model>& modelList = pScene -> SetRunDurationModelList ();
1455
1456 if (modelList.size ()) {
1457 pScene->CalculateExtent();
1459 ApplyCommand (G4String("/vis/scene/notifyHandlers " + pScene->GetName()));
1460 }
1461 }
1462
1463 // Check the manager's current scene...
1464 if (fpScene && fpScene -> GetRunDurationModelList ().size () == 0) {
1465 if (fVerbosity >= warnings) {
1466 G4warn << "WARNING: The current scene \""
1467 << fpScene -> GetName ()
1468 << "\" has no run duration models."
1469 << "\n Use \"/vis/scene/add/volume\" or create a new scene."
1470 << G4endl;
1471 }
1472 fpSceneHandler->ClearTransientStore();
1473 fpSceneHandler->ClearStore();
1474 fpViewer->NeedKernelVisit();
1475 fpViewer->SetView();
1476 fpViewer->ClearView();
1477 fpViewer->FinishView();
1478 }
1479 }
1480}

◆ PrintAvailableGraphicsSystems()

void G4VisManager::PrintAvailableGraphicsSystems ( Verbosity verbosity,
std::ostream & out = G4cout ) const

Definition at line 1731 of file G4VisManager.cc.

1733{
1734 out << "Registered graphics systems are:\n";
1735 if (fAvailableGraphicsSystems.size ()) {
1736 for (const auto& gs: fAvailableGraphicsSystems) {
1737 const G4String& name = gs->GetName();
1738 const std::vector<G4String>& nicknames = gs->GetNicknames();
1739 if (verbosity >= warnings) {
1740 // Brief output
1741 out << " " << name << " (";
1742 for (std::size_t i = 0; i < nicknames.size(); ++i) {
1743 if (i != 0) {
1744 out << ", ";
1745 }
1746 out << nicknames[i];
1747 }
1748 out << ')';
1749 } else {
1750 // Full output
1751 out << *gs;
1752 }
1753 out << std::endl;
1754 }
1755 out <<
1756 "You may choose a graphics system (driver) with a parameter of"
1757 "\nthe command \"/vis/open\" or \"/vis/sceneHandler/create\","
1758 "\nor you may omit the driver parameter and choose at run time:"
1759 "\n- by argument in the construction of G4VisExecutive;"
1760 "\n- by environment variable \"G4VIS_DEFAULT_DRIVER\";"
1761 "\n- by entry in \"~/.g4session\";"
1762 "\n- by build flags."
1763 "\n- Note: This feature is not allowed in batch mode."
1764 "\nFor further information see \"examples/basic/B1/exampleB1.cc\""
1765 "\nand \"vis.mac\"."
1766 << std::endl;
1767 } else {
1768 out << " NONE!!! None registered - yet! Mmmmm!" << std::endl;
1769 }
1770}
const char * name(G4int ptype)

Referenced by Initialise().

◆ PrintAvailableVerbosity()

void G4VisManager::PrintAvailableVerbosity ( std::ostream & os)
static

Definition at line 2513 of file G4VisManager.cc.

2514{
2515 os << "Available verbosity options:";
2516 for (const auto& VerbosityGuidanceString : VerbosityGuidanceStrings) {
2517 os << '\n' << VerbosityGuidanceString;
2518 }
2519 os << "\nCurrent verbosity: " << G4VisManager::VerbosityString(fVerbosity);
2520 os << std::endl;
2521}

Referenced by GetVerbosityValue(), and G4VisCommandList::SetNewValue().

◆ RegisterEndOfEventUserVisAction()

void G4VisManager::RegisterEndOfEventUserVisAction ( const G4String & name,
G4VUserVisAction * pVisAction,
const G4VisExtent & extent = G4VisExtent() )

Definition at line 1544 of file G4VisManager.cc.

1547 {
1548 fEndOfEventUserVisActions.push_back(UserVisAction(name,pVisAction));
1549 if (extent.GetExtentRadius() > 0.) {
1550 fUserVisActionExtents[pVisAction] = extent;
1551 } else {
1552 if (fVerbosity >= warnings) {
1553 G4warn <<
1554 "WARNING: No extent set for user vis action \"" << name << "\"."
1555 << G4endl;
1556 }
1557 }
1558 if (fVerbosity >= confirmations) {
1559 G4cout
1560 << "End of event user vis action \"" << name << "\" registered"
1561 << G4endl;
1562 }
1563}
G4double GetExtentRadius() const

◆ RegisterEndOfRunUserVisAction()

void G4VisManager::RegisterEndOfRunUserVisAction ( const G4String & name,
G4VUserVisAction * pVisAction,
const G4VisExtent & extent = G4VisExtent() )

Definition at line 1565 of file G4VisManager.cc.

1568 {
1569 fEndOfRunUserVisActions.push_back(UserVisAction(name,pVisAction));
1570 if (extent.GetExtentRadius() > 0.) {
1571 fUserVisActionExtents[pVisAction] = extent;
1572 } else {
1573 if (fVerbosity >= warnings) {
1574 G4warn <<
1575 "WARNING: No extent set for user vis action \"" << name << "\"."
1576 << G4endl;
1577 }
1578 }
1579 if (fVerbosity >= confirmations) {
1580 G4cout
1581 << "End of run user vis action \"" << name << "\" registered"
1582 << G4endl;
1583 }
1584}

◆ RegisterGraphicsSystem()

G4bool G4VisManager::RegisterGraphicsSystem ( G4VGraphicsSystem * pSystem)

Definition at line 831 of file G4VisManager.cc.

831 {
832 G4bool happy = true;
833 if (pSystem) {
834 fAvailableGraphicsSystems.push_back (pSystem);
835 if (fVerbosity >= confirmations) {
836 G4cout << "G4VisManager::RegisterGraphicsSystem: "
837 << pSystem -> GetName ();
838 if (pSystem -> GetNickname () != "") {
839 G4cout << " (" << pSystem -> GetNickname () << ")";
840 }
841 G4cout << " registered." << G4endl;
842 }
843 }
844 else {
845 if (fVerbosity >= errors) {
846 G4warn << "G4VisManager::RegisterGraphicsSystem: null pointer!"
847 << G4endl;
848 }
849 happy=false;
850 }
851 return happy;
852}

◆ RegisterGraphicsSystems()

virtual void G4VisManager::RegisterGraphicsSystems ( )
protectedpure virtual

Referenced by Initialise().

◆ RegisterMessenger()

void G4VisManager::RegisterMessenger ( G4UImessenger * messenger)

Referenced by G4VisManager(), and RegisterMessengers().

◆ RegisterMessengers()

void G4VisManager::RegisterMessengers ( )
protected

Definition at line 483 of file G4VisManager.cc.

483 {
484
485 // Instantiate individual messengers/commands (often - but not
486 // always - one command per messenger).
487
488 G4UIcommand* directory;
489
490 directory = new G4UIdirectory ("/vis/geometry/");
491 directory -> SetGuidance("Operations on vis attributes of Geant4 geometry.");
492 fDirectoryList.push_back (directory);
493 RegisterMessenger(new G4VisCommandGeometryList);
494 RegisterMessenger(new G4VisCommandGeometryRestore);
495
496 directory = new G4UIdirectory ("/vis/geometry/set/");
497 directory -> SetGuidance("Set vis attributes of Geant4 geometry.");
498 fDirectoryList.push_back (directory);
499 RegisterMessenger(new G4VisCommandGeometrySetColour);
500 RegisterMessenger(new G4VisCommandGeometrySetDaughtersInvisible);
501 RegisterMessenger(new G4VisCommandGeometrySetLineStyle);
502 RegisterMessenger(new G4VisCommandGeometrySetLineWidth);
503 RegisterMessenger(new G4VisCommandGeometrySetForceAuxEdgeVisible);
504 RegisterMessenger(new G4VisCommandGeometrySetForceCloud);
505 RegisterMessenger(new G4VisCommandGeometrySetForceLineSegmentsPerCircle);
506 RegisterMessenger(new G4VisCommandGeometrySetForceSolid);
507 RegisterMessenger(new G4VisCommandGeometrySetForceWireframe);
508 RegisterMessenger(new G4VisCommandGeometrySetVisibility);
509
510 directory = new G4UIdirectory ("/vis/multithreading/");
511 directory -> SetGuidance("Commands unique to multithreading mode.");
512 fDirectoryList.push_back (directory);
513 RegisterMessenger(new G4VisCommandMultithreadingActionOnEventQueueFull);
514 RegisterMessenger(new G4VisCommandMultithreadingMaxEventQueueSize);
515
516 directory = new G4UIdirectory ("/vis/set/");
517 directory -> SetGuidance
518 ("Set quantities for use in future commands where appropriate.");
519 fDirectoryList.push_back (directory);
520 RegisterMessenger(new G4VisCommandSetArrow3DLineSegmentsPerCircle);
521 RegisterMessenger(new G4VisCommandSetColour);
522 RegisterMessenger(new G4VisCommandSetExtentForField);
523 RegisterMessenger(new G4VisCommandSetLineWidth);
524 RegisterMessenger(new G4VisCommandSetTextColour);
525 RegisterMessenger(new G4VisCommandSetTextLayout);
526 RegisterMessenger(new G4VisCommandSetTextSize);
527 RegisterMessenger(new G4VisCommandSetTouchable);
528 RegisterMessenger(new G4VisCommandSetVolumeForField);
529
530 directory = new G4UIdirectory ("/vis/scene/");
531 directory -> SetGuidance ("Operations on Geant4 scenes.");
532 fDirectoryList.push_back (directory);
533 RegisterMessenger(new G4VisCommandSceneActivateModel);
534 RegisterMessenger(new G4VisCommandSceneCreate);
535 RegisterMessenger(new G4VisCommandSceneEndOfEventAction);
536 RegisterMessenger(new G4VisCommandSceneEndOfRunAction);
537 RegisterMessenger(new G4VisCommandSceneList);
538 RegisterMessenger(new G4VisCommandSceneNotifyHandlers);
539 RegisterMessenger(new G4VisCommandSceneRemoveModel);
540 RegisterMessenger(new G4VisCommandSceneSelect);
541 RegisterMessenger(new G4VisCommandSceneShowExtents);
542
543 directory = new G4UIdirectory ("/vis/scene/add/");
544 directory -> SetGuidance ("Add model to current scene.");
545 fDirectoryList.push_back (directory);
546 RegisterMessenger(new G4VisCommandSceneAddArrow);
547 RegisterMessenger(new G4VisCommandSceneAddArrow2D);
548 RegisterMessenger(new G4VisCommandSceneAddAxes);
549 RegisterMessenger(new G4VisCommandSceneAddDate);
550 RegisterMessenger(new G4VisCommandSceneAddDigis);
551 RegisterMessenger(new G4VisCommandSceneAddEndOfRunMacro);
552 RegisterMessenger(new G4VisCommandSceneAddEventID);
553 RegisterMessenger(new G4VisCommandSceneAddExtent);
554 RegisterMessenger(new G4VisCommandSceneAddElectricField);
555 RegisterMessenger(new G4VisCommandSceneAddFrame);
556 RegisterMessenger(new G4VisCommandSceneAddGPS);
557 RegisterMessenger(new G4VisCommandSceneAddHits);
558 RegisterMessenger(new G4VisCommandSceneAddLine);
559 RegisterMessenger(new G4VisCommandSceneAddLine2D);
560 RegisterMessenger(new G4VisCommandSceneAddLocalAxes);
561 RegisterMessenger(new G4VisCommandSceneAddLogicalVolume);
562 RegisterMessenger(new G4VisCommandSceneAddLogo);
563 RegisterMessenger(new G4VisCommandSceneAddLogo2D);
564 RegisterMessenger(new G4VisCommandSceneAddMagneticField);
565 RegisterMessenger(new G4VisCommandSceneAddPlotter);
566 RegisterMessenger(new G4VisCommandSceneAddPSHits);
567 RegisterMessenger(new G4VisCommandSceneAddScale);
568 RegisterMessenger(new G4VisCommandSceneAddText);
569 RegisterMessenger(new G4VisCommandSceneAddText2D);
570 RegisterMessenger(new G4VisCommandSceneAddTrajectories);
571 RegisterMessenger(new G4VisCommandSceneAddUserAction);
572 RegisterMessenger(new G4VisCommandSceneAddVolume);
573
574 RegisterMessenger(new G4VisCommandPlotterCreate);
575 RegisterMessenger(new G4VisCommandPlotterSetLayout);
576 RegisterMessenger(new G4VisCommandPlotterAddStyle);
577 RegisterMessenger(new G4VisCommandPlotterAddRegionStyle);
578 RegisterMessenger(new G4VisCommandPlotterAddRegionParameter);
579 RegisterMessenger(new G4VisCommandPlotterClear);
580 RegisterMessenger(new G4VisCommandPlotterClearRegion);
581 RegisterMessenger(new G4VisCommandPlotterList);
582 RegisterMessenger(new G4VisCommandPlotterAddRegionH1);
583 RegisterMessenger(new G4VisCommandPlotterAddRegionH2);
584
585 directory = new G4UIdirectory ("/vis/sceneHandler/");
586 directory -> SetGuidance ("Operations on Geant4 scene handlers.");
587 fDirectoryList.push_back (directory);
588 RegisterMessenger(new G4VisCommandSceneHandlerAttach);
589 RegisterMessenger(new G4VisCommandSceneHandlerCreate);
590 RegisterMessenger(new G4VisCommandSceneHandlerList);
591 RegisterMessenger(new G4VisCommandSceneHandlerSelect);
592
593 directory = new G4UIdirectory ("/vis/touchable/");
594 directory -> SetGuidance ("Operations on touchables.");
595 fDirectoryList.push_back (directory);
596 RegisterMessenger(new G4VisCommandsTouchable);
597
598 directory = new G4UIdirectory ("/vis/touchable/set/");
599 directory -> SetGuidance ("Set vis attributes of current touchable.");
600 fDirectoryList.push_back (directory);
601 RegisterMessenger(new G4VisCommandsTouchableSet);
602
603 directory = new G4UIdirectory ("/vis/viewer/");
604 directory -> SetGuidance ("Operations on Geant4 viewers.");
605 fDirectoryList.push_back (directory);
606 RegisterMessenger(new G4VisCommandViewerAddCutawayPlane);
607 RegisterMessenger(new G4VisCommandViewerCentreOn);
608 RegisterMessenger(new G4VisCommandViewerChangeCutawayPlane);
609 RegisterMessenger(new G4VisCommandViewerClear);
610 RegisterMessenger(new G4VisCommandViewerClearCutawayPlanes);
611 RegisterMessenger(new G4VisCommandViewerClearTransients);
612 RegisterMessenger(new G4VisCommandViewerClearVisAttributesModifiers);
613 RegisterMessenger(new G4VisCommandViewerClone);
614 RegisterMessenger(new G4VisCommandViewerColourByDensity);
615 RegisterMessenger(new G4VisCommandViewerCopyViewFrom);
616 RegisterMessenger(new G4VisCommandViewerCreate);
617 RegisterMessenger(new G4VisCommandViewerDolly);
618 RegisterMessenger(new G4VisCommandViewerFlush);
619 RegisterMessenger(new G4VisCommandViewerInterpolate);
620 RegisterMessenger(new G4VisCommandViewerList);
621 RegisterMessenger(new G4VisCommandViewerPan);
622 RegisterMessenger(new G4VisCommandViewerRebuild);
623 RegisterMessenger(new G4VisCommandViewerRefresh);
624 RegisterMessenger(new G4VisCommandViewerReset);
625 RegisterMessenger(new G4VisCommandViewerResetCameraParameters);
626 RegisterMessenger(new G4VisCommandViewerSave);
627 RegisterMessenger(new G4VisCommandViewerScale);
628 RegisterMessenger(new G4VisCommandViewerSelect);
629 RegisterMessenger(new G4VisCommandViewerUpdate);
630 RegisterMessenger(new G4VisCommandViewerZoom);
631
632 directory = new G4UIdirectory ("/vis/viewer/default/");
633 directory -> SetGuidance("Set default values for future viewers.");
634 fDirectoryList.push_back (directory);
635 RegisterMessenger(new G4VisCommandViewerDefaultHiddenEdge);
636 RegisterMessenger(new G4VisCommandViewerDefaultStyle);
637
638 directory = new G4UIdirectory ("/vis/viewer/set/");
639 directory -> SetGuidance ("Set view parameters of current viewer.");
640 fDirectoryList.push_back (directory);
641 RegisterMessenger(new G4VisCommandsViewerSet);
642
643 // *Basic* top level commands were instantiated in the constructor
644 // so that they can be used immediately after instantiation of the
645 // vis manager. Other top level commands, including "compound commands"
646 // (i.e., commands that invoke other commands) are instantiated here.
647
648 RegisterMessenger(new G4VisCommandAbortReviewKeptEvents);
649 RegisterMessenger(new G4VisCommandAbortReviewPlots);
650 RegisterMessenger(new G4VisCommandDrawOnlyToBeKeptEvents);
651 RegisterMessenger(new G4VisCommandDrawTree);
652 RegisterMessenger(new G4VisCommandDrawView);
653 RegisterMessenger(new G4VisCommandDrawLogicalVolume);
654 RegisterMessenger(new G4VisCommandDrawVolume);
655 RegisterMessenger(new G4VisCommandEnable);
657 RegisterMessenger(new G4VisCommandOpen);
658 RegisterMessenger(new G4VisCommandPlot);
659 RegisterMessenger(new G4VisCommandReviewKeptEvents);
660 RegisterMessenger(new G4VisCommandReviewPlots);
661 RegisterMessenger(new G4VisCommandSpecify);
662
663 // List manager commands
664 RegisterMessenger(new G4VisCommandListManagerList< G4VisModelManager<G4VTrajectoryModel> >
665 (fpTrajDrawModelMgr, fpTrajDrawModelMgr->Placement()));
666 RegisterMessenger(new G4VisCommandListManagerSelect< G4VisModelManager<G4VTrajectoryModel> >
667 (fpTrajDrawModelMgr, fpTrajDrawModelMgr->Placement()));
668
669 // Trajectory filter manager commands
670 RegisterMessenger(new G4VisCommandListManagerList< G4VisFilterManager<G4VTrajectory> >
671 (fpTrajFilterMgr, fpTrajFilterMgr->Placement()));
672 RegisterMessenger(new G4VisCommandManagerMode< G4VisFilterManager<G4VTrajectory> >
673 (fpTrajFilterMgr, fpTrajFilterMgr->Placement()));
674
675 // Hit filter manager commands
676 RegisterMessenger(new G4VisCommandListManagerList< G4VisFilterManager<G4VHit> >
677 (fpHitFilterMgr, fpHitFilterMgr->Placement()));
678 RegisterMessenger(new G4VisCommandManagerMode< G4VisFilterManager<G4VHit> >
679 (fpHitFilterMgr, fpHitFilterMgr->Placement()));
680
681 // Digi filter manager commands
682 RegisterMessenger(new G4VisCommandListManagerList< G4VisFilterManager<G4VDigi> >
683 (fpDigiFilterMgr, fpDigiFilterMgr->Placement()));
684 RegisterMessenger(new G4VisCommandManagerMode< G4VisFilterManager<G4VDigi> >
685 (fpDigiFilterMgr, fpDigiFilterMgr->Placement()));
686}
friend class G4VisCommandList

Referenced by Initialise().

◆ RegisterModel() [1/4]

void G4VisManager::RegisterModel ( G4VFilter< G4VDigi > * filter)

Definition at line 910 of file G4VisManager.cc.

911{
912 fpDigiFilterMgr->Register(model);
913}

◆ RegisterModel() [2/4]

void G4VisManager::RegisterModel ( G4VFilter< G4VHit > * filter)

Definition at line 899 of file G4VisManager.cc.

900{
901 fpHitFilterMgr->Register(model);
902}

◆ RegisterModel() [3/4]

void G4VisManager::RegisterModel ( G4VFilter< G4VTrajectory > * filter)

Definition at line 888 of file G4VisManager.cc.

889{
890 fpTrajFilterMgr->Register(model);
891}

◆ RegisterModel() [4/4]

void G4VisManager::RegisterModel ( G4VTrajectoryModel * model)

Definition at line 877 of file G4VisManager.cc.

878{
879 fpTrajDrawModelMgr->Register(model);
880}

◆ RegisterModelFactories()

void G4VisManager::RegisterModelFactories ( )
protectedvirtual

Definition at line 2683 of file G4VisManager.cc.

2684{
2685 if (fVerbosity >= warnings) {
2686 G4warn<<"G4VisManager: No model factories registered with G4VisManager."<<G4endl;
2687 G4warn<<"G4VisManager::RegisterModelFactories() should be overridden in derived"<<G4endl;
2688 G4warn<<"class. See G4VisExecutive for an example."<<G4endl;
2689 }
2690}

Referenced by Initialise().

◆ RegisterModelFactory() [1/4]

void G4VisManager::RegisterModelFactory ( G4DigiFilterFactory * factory)

Definition at line 916 of file G4VisManager.cc.

917{
918 fpDigiFilterMgr->Register(factory);
919}

◆ RegisterModelFactory() [2/4]

void G4VisManager::RegisterModelFactory ( G4HitFilterFactory * factory)

Definition at line 905 of file G4VisManager.cc.

906{
907 fpHitFilterMgr->Register(factory);
908}

◆ RegisterModelFactory() [3/4]

void G4VisManager::RegisterModelFactory ( G4TrajDrawModelFactory * factory)

Definition at line 883 of file G4VisManager.cc.

884{
885 fpTrajDrawModelMgr->Register(factory);
886}

◆ RegisterModelFactory() [4/4]

void G4VisManager::RegisterModelFactory ( G4TrajFilterFactory * factory)

Definition at line 894 of file G4VisManager.cc.

895{
896 fpTrajFilterMgr->Register(factory);
897}

◆ RegisterRunDurationUserVisAction()

void G4VisManager::RegisterRunDurationUserVisAction ( const G4String & name,
G4VUserVisAction * pVisAction,
const G4VisExtent & extent = G4VisExtent() )

Definition at line 1523 of file G4VisManager.cc.

1526 {
1527 fRunDurationUserVisActions.push_back(UserVisAction(name,pVisAction));
1528 if (extent.GetExtentRadius() > 0.) {
1529 fUserVisActionExtents[pVisAction] = extent;
1530 } else {
1531 if (fVerbosity >= warnings) {
1532 G4warn <<
1533 "WARNING: No extent set for user vis action \"" << name << "\"."
1534 << G4endl;
1535 }
1536 }
1537 if (fVerbosity >= confirmations) {
1538 G4cout
1539 << "Run duration user vis action \"" << name << "\" registered"
1540 << G4endl;
1541 }
1542}

◆ ResetTransientsDrawnFlags()

void G4VisManager::ResetTransientsDrawnFlags ( )

Definition at line 2458 of file G4VisManager.cc.

2459{
2460 fTransientsDrawnThisRun = false;
2461 fTransientsDrawnThisEvent = false;
2463 for (i = fAvailableSceneHandlers.begin();
2464 i != fAvailableSceneHandlers.end(); ++i) {
2465 (*i)->SetTransientsDrawnThisEvent(false);
2466 (*i)->SetTransientsDrawnThisRun(false);
2467 }
2468}
std::vector< G4VSceneHandler * >::const_iterator G4SceneHandlerListConstIterator

Referenced by SetCurrentScene().

◆ SelectTrajectoryModel()

void G4VisManager::SelectTrajectoryModel ( const G4String & model)

Definition at line 921 of file G4VisManager.cc.

922{
923 fpTrajDrawModelMgr->SetCurrent(model);
924}

◆ SetAbortReviewKeptEvents()

void G4VisManager::SetAbortReviewKeptEvents ( G4bool )

◆ SetAbortReviewPlots()

void G4VisManager::SetAbortReviewPlots ( G4bool )

◆ SetAvailableSceneHandlers()

G4SceneHandlerList & G4VisManager::SetAvailableSceneHandlers ( )

◆ SetCurrentGraphicsSystem()

void G4VisManager::SetCurrentGraphicsSystem ( G4VGraphicsSystem * pSystem)

Definition at line 1595 of file G4VisManager.cc.

1595 {
1596 fpGraphicsSystem = pSystem;
1597 if (fVerbosity >= confirmations) {
1598 G4cout << "G4VisManager::SetCurrentGraphicsSystem: system now "
1599 << pSystem -> GetName () << G4endl;
1600 }
1601 // If current scene handler is of same graphics system, leave unchanged.
1602 // Else find the most recent scene handler of same graphics system.
1603 // Or clear pointers.
1604 if (!(fpSceneHandler && fpSceneHandler -> GetGraphicsSystem () == pSystem)) {
1605 const G4SceneHandlerList& sceneHandlerList = fAvailableSceneHandlers;
1606 G4int nSH = (G4int)sceneHandlerList.size (); // No. of scene handlers.
1607 G4int iSH;
1608 for (iSH = nSH - 1; iSH >= 0; iSH--) {
1609 if (sceneHandlerList [iSH] -> GetGraphicsSystem () == pSystem) break;
1610 }
1611 if (iSH >= 0) {
1612 fpSceneHandler = sceneHandlerList [iSH];
1613 if (fVerbosity >= confirmations) {
1614 G4cout << " Scene Handler now "
1615 << fpSceneHandler -> GetName () << G4endl;
1616 }
1617 if (fpScene != fpSceneHandler -> GetScene ()) {
1618 fpScene = fpSceneHandler -> GetScene ();
1619 if (fVerbosity >= confirmations) {
1620 G4cout << " Scene now \""
1621 << fpScene -> GetName () << "\"" << G4endl;
1622 }
1623 }
1624 const G4ViewerList& viewerList = fpSceneHandler -> GetViewerList ();
1625 if (viewerList.size ()) {
1626 fpViewer = viewerList [0];
1627 if (fVerbosity >= confirmations) {
1628 G4cout << " Viewer now " << fpViewer -> GetName () << G4endl;
1629 }
1630 }
1631 else {
1632 fpViewer = 0;
1633 }
1634 }
1635 else {
1636 fpSceneHandler = 0;
1637 fpViewer = 0;
1638 }
1639 }
1640}

◆ SetCurrentScene()

void G4VisManager::SetCurrentScene ( G4Scene * pScene)

Definition at line 1586 of file G4VisManager.cc.

1586 {
1587 if (pScene != fpScene) {
1588 // A change of scene. Therefore reset transients drawn flags. All
1589 // memory of previous transient proceessing thereby erased...
1591 }
1592 fpScene = pScene;
1593}
void ResetTransientsDrawnFlags()

Referenced by G4RayTracerSceneHandler::G4RayTracerSceneHandler().

◆ SetCurrentSceneHandler()

void G4VisManager::SetCurrentSceneHandler ( G4VSceneHandler * pSceneHandler)

Definition at line 1642 of file G4VisManager.cc.

1642 {
1643 fpSceneHandler = pSceneHandler;
1644 if (fVerbosity >= confirmations) {
1645 G4cout << "G4VisManager::SetCurrentSceneHandler: scene handler now \""
1646 << pSceneHandler -> GetName () << "\"" << G4endl;
1647 }
1648 if (fpScene != fpSceneHandler -> GetScene ()) {
1649 fpScene = fpSceneHandler -> GetScene ();
1650 if (fVerbosity >= confirmations) {
1651 G4cout << " Scene now \""
1652 << fpScene -> GetName () << "\"" << G4endl;
1653 }
1654 }
1655 if (fpGraphicsSystem != pSceneHandler -> GetGraphicsSystem ()) {
1656 fpGraphicsSystem = pSceneHandler -> GetGraphicsSystem ();
1657 if (fVerbosity >= confirmations) {
1658 G4cout << " Graphics system now \""
1659 << fpGraphicsSystem -> GetName () << "\"" << G4endl;
1660 }
1661 }
1662 const G4ViewerList& viewerList = fpSceneHandler -> GetViewerList ();
1663 std::size_t nViewers = viewerList.size ();
1664 if (nViewers) {
1665 std::size_t iViewer;
1666 for (iViewer = 0; iViewer < nViewers; ++iViewer) {
1667 if (fpViewer == viewerList [iViewer]) break;
1668 }
1669 if (iViewer >= nViewers) {
1670 fpViewer = viewerList [0];
1671 if (fVerbosity >= confirmations) {
1672 G4cout << " Viewer now \"" << fpViewer -> GetName () << "\""
1673 << G4endl;
1674 }
1675 }
1676 if (!IsValidView ()) {
1677 if (fVerbosity >= warnings) {
1678 G4warn <<
1679 "WARNING: Problem setting scene handler - please report circumstances."
1680 << G4endl;
1681 }
1682 }
1683 }
1684 else {
1685 fpViewer = 0;
1686 if (fVerbosity >= warnings) {
1687 G4warn <<
1688 "WARNING: No viewers for this scene handler - please create one."
1689 << G4endl;
1690 }
1691 }
1692}

◆ SetCurrentViewer()

void G4VisManager::SetCurrentViewer ( G4VViewer * pViewer)

Definition at line 1694 of file G4VisManager.cc.

1694 {
1695 fpViewer = pViewer;
1696 if (fpViewer == nullptr) {
1697 if (fVerbosity >= confirmations) {
1698 G4cout << "G4VisManager::SetCurrentViewer: current viewer pointer zeroed "
1699 << G4endl;
1700 }
1701 return;
1702 }
1703 if (fVerbosity >= confirmations) {
1704 G4cout << "G4VisManager::SetCurrentViewer: viewer now "
1705 << pViewer -> GetName ()
1706 << G4endl;
1707 }
1708 fpSceneHandler = fpViewer -> GetSceneHandler ();
1709 if (!fpSceneHandler) {
1710 if (fVerbosity >= warnings) {
1711 G4warn <<
1712 "WARNING: No scene handler for this viewer - please create one."
1713 << G4endl;
1714 }
1715 return;
1716 }
1717 // JA: I don't think we need this. Setview will be called when needed.
1718 // fpViewer->SetView();
1719 fpSceneHandler -> SetCurrentViewer (pViewer);
1720 fpScene = fpSceneHandler -> GetScene ();
1721 fpGraphicsSystem = fpSceneHandler -> GetGraphicsSystem ();
1722 if (!IsValidView ()) {
1723 if (fVerbosity >= warnings) {
1724 G4warn <<
1725 "WARNING: Problem setting viewer - please report circumstances."
1726 << G4endl;
1727 }
1728 }
1729}

Referenced by CreateViewer(), and SetCurrentViewer().

◆ SetDefaultGraphicsSystemBasis()

void G4VisManager::SetDefaultGraphicsSystemBasis ( const G4String & )

◆ SetDefaultGraphicsSystemName()

void G4VisManager::SetDefaultGraphicsSystemName ( const G4String & )

◆ SetDefaultViewParameters()

void G4VisManager::SetDefaultViewParameters ( const G4ViewParameters & )

◆ SetDefaultXGeometryString()

void G4VisManager::SetDefaultXGeometryString ( const G4String & )

◆ SetDefaultXGeometryStringBasis()

void G4VisManager::SetDefaultXGeometryStringBasis ( const G4String & )

◆ SetDrawEventOnlyIfToBeKept()

void G4VisManager::SetDrawEventOnlyIfToBeKept ( G4bool )

◆ SetEventRefreshing()

void G4VisManager::SetEventRefreshing ( G4bool )

◆ SetMaxEventQueueSize()

void G4VisManager::SetMaxEventQueueSize ( G4int )

◆ SetRequestedEvent()

void G4VisManager::SetRequestedEvent ( const G4Event * )

◆ SetReviewingKeptEvents()

void G4VisManager::SetReviewingKeptEvents ( G4bool )

◆ SetReviewingPlots()

void G4VisManager::SetReviewingPlots ( G4bool )

◆ SetSceneList()

G4SceneList & G4VisManager::SetSceneList ( )

◆ SetTransientsDrawnThisEvent()

void G4VisManager::SetTransientsDrawnThisEvent ( G4bool )

Referenced by G4VisSubThread().

◆ SetTransientsDrawnThisRun()

void G4VisManager::SetTransientsDrawnThisRun ( G4bool )

◆ SetUpForAThread()

void G4VisManager::SetUpForAThread ( )
virtual

Reimplemented from G4VVisManager.

Definition at line 2692 of file G4VisManager.cc.

2693{
2694 // TODO: protect with G4Threading::IsMultithreadedApplication() instead?
2695#ifdef G4MULTITHREADED
2696 new G4VisStateDependent(this);
2697#endif
2698}

◆ SetVerboseLevel() [1/3]

void G4VisManager::SetVerboseLevel ( const G4String & verbosityString)

Definition at line 2569 of file G4VisManager.cc.

2569 {
2570 fVerbosity = GetVerbosityValue(verbosityString);
2571}

◆ SetVerboseLevel() [2/3]

void G4VisManager::SetVerboseLevel ( G4int intVerbosity)

Definition at line 2565 of file G4VisManager.cc.

2565 {
2566 fVerbosity = GetVerbosityValue(intVerbosity);
2567}

◆ SetVerboseLevel() [3/3]

void G4VisManager::SetVerboseLevel ( Verbosity )

◆ SetWaitOnEventQueueFull()

void G4VisManager::SetWaitOnEventQueueFull ( G4bool )

◆ VerbosityString()

G4String G4VisManager::VerbosityString ( Verbosity verbosity)
static

Definition at line 2499 of file G4VisManager.cc.

2499 {
2500 G4String rs;
2501 switch (verbosity) {
2502 case quiet: rs = "quiet (0)"; break;
2503 case startup: rs = "startup (1)"; break;
2504 case errors: rs = "errors (2)"; break;
2505 case warnings: rs = "warnings (3)"; break;
2506 case confirmations: rs = "confirmations (4)"; break;
2507 case parameters: rs = "parameters (5)"; break;
2508 case all: rs = "all (6)"; break;
2509 }
2510 return rs;
2511}

Referenced by G4VisManager(), PrintAvailableVerbosity(), and G4VisCommandVerbose::SetNewValue().

◆ ViewerShortName()

G4String G4VisManager::ViewerShortName ( const G4String & viewerName) const

Definition at line 2470 of file G4VisManager.cc.

2470 {
2471 const G4String& viewerShortName = viewerName.substr(0, viewerName.find (' '));
2472 return G4StrUtil::strip_copy(viewerShortName);
2473}
G4String strip_copy(G4String str, char ch=' ')
Return copy of string with leading and trailing characters removed.

Referenced by GetViewer().

◆ G4VisCommandList

friend class G4VisCommandList
friend

Definition at line 129 of file G4VisManager.hh.

Referenced by G4VisCommandList, and RegisterMessengers().

◆ G4VisStateDependent

friend class G4VisStateDependent
friend

Definition at line 128 of file G4VisManager.hh.

Referenced by G4VisManager(), G4VisStateDependent, and SetUpForAThread().

◆ G4VSceneHandler

◆ G4VViewer

◆ operator<< [1/2]

std::ostream & operator<< ( std::ostream & os,
const G4VGraphicsSystem & gs )
friend

Definition at line 73 of file G4VGraphicsSystem.cc.

74{
75 os << "Graphics System: " << gs.GetName ();
76 os << ", nicknames:"; for (const auto& nickname: gs.GetNicknames())
77 {os << ' ' << nickname;}
78 os << "\n Description: " << gs.GetDescription ();
79 os << "\n Functionality: ";
80 switch (gs.GetFunctionality()) {
82 os << "None";
83 break;
85 os << "nonEuclidian, e.g., tree representation of geometry hierarchy.";
86 break;
88 os << "twoD: Simple 2D, e.g., X (no stored structures).";
89 break;
91 os << "twoDStore: 2D with stored structures.";
92 break;
94 os << "threeD: Passive 3D (with stored structures)";
95 break;
97 os << "threeDInteractive: 3D with mouse control and \"pick\" functionality.";
98 break;
100 os << "virtualReality";
101 break;
103 os << "fileWriter";
104 break;
105 default:
106 os << "unknown";
107 break;
108 }
109
111 const G4SceneHandlerList& scenes = pVMan -> GetAvailableSceneHandlers ();
112 if (pVMan -> GetVerbosity() >= G4VisManager::parameters) {
113 size_t nScenes = scenes.size ();
114 if (nScenes) {
115 G4int nScenesOfThisSystem = 0;
116 for (size_t i = 0; i < nScenes; i++) {
117 if (scenes [i] -> GetGraphicsSystem () == &gs) {
118 nScenesOfThisSystem++;
119 }
120 }
121 if (nScenesOfThisSystem) {
122 os << "\n Its scenes are: ";
123 for (size_t i = 0; i < nScenes; i++) {
124 if (scenes [i] -> GetGraphicsSystem () == &gs) {
125 os << "\n " << *(scenes [i]);
126 }
127 }
128 }
129 else {
130 os << "\n It has no scenes at present.";
131 }
132 }
133 else {
134 os << "\n There are no scenes instantiated at present.";
135 }
136 }
137
138 return os;
139}
const std::vector< G4String > & GetNicknames() const
Functionality GetFunctionality() const
const G4String & GetDescription() const
const G4String & GetName() const
static Verbosity GetVerbosity()
const G4SceneHandlerList & GetAvailableSceneHandlers() const
static G4VisManager * GetInstance()

◆ operator<< [2/2]

std::ostream & operator<< ( std::ostream & os,
const G4VSceneHandler & sh )
friend

Definition at line 1342 of file G4VSceneHandler.cc.

1342 {
1343
1344 os << "Scene handler " << sh.fName << " has "
1345 << sh.fViewerList.size () << " viewer(s):";
1346 for (const auto* i : sh.fViewerList) {
1347 os << "\n " << *i;
1348 }
1349
1350 if (sh.fpScene) {
1351 os << "\n " << *sh.fpScene;
1352 }
1353 else {
1354 os << "\n This scene handler currently has no scene.";
1355 }
1356
1357 return os;
1358}
G4ViewerList fViewerList

Member Data Documentation

◆ fDefaultGraphicsSystemBasis

G4String G4VisManager::fDefaultGraphicsSystemBasis
protected

Definition at line 502 of file G4VisManager.hh.

Referenced by G4VisManager().

◆ fDefaultGraphicsSystemName

G4String G4VisManager::fDefaultGraphicsSystemName
protected

Definition at line 500 of file G4VisManager.hh.

Referenced by G4VisManager().

◆ fDefaultXGeometryString

G4String G4VisManager::fDefaultXGeometryString
protected

Definition at line 501 of file G4VisManager.hh.

Referenced by G4VisManager().

◆ fDefaultXGeometryStringBasis

G4String G4VisManager::fDefaultXGeometryStringBasis
protected

Definition at line 503 of file G4VisManager.hh.

Referenced by G4VisManager().

◆ fVerbose

const G4int G4VisManager::fVerbose
protected

Definition at line 492 of file G4VisManager.hh.

Referenced by G4VisManager().

◆ fVerbosity

◆ VerbosityGuidanceStrings

std::vector< G4String > G4VisManager::VerbosityGuidanceStrings
static

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