Geant4 11.3.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("OGL") // 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 925 of file G4VisManager.cc.

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

◆ BeginDraw2D()

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

Implements G4VVisManager.

Definition at line 960 of file G4VisManager.cc.

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

◆ CreateSceneHandler()

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

Definition at line 1230 of file G4VisManager.cc.

1230 {
1231 if (!fInitialised) Initialise ();
1232 if (fpGraphicsSystem) {
1233 G4VSceneHandler* pSceneHandler =
1234 fpGraphicsSystem -> CreateSceneHandler (name);
1235 if (pSceneHandler) {
1236 fAvailableSceneHandlers.push_back (pSceneHandler);
1237 fpSceneHandler = pSceneHandler; // Make current.
1238 }
1239 else {
1240 if (fVerbosity >= errors) {
1241 G4warn << "ERROR in G4VisManager::CreateSceneHandler during "
1242 << fpGraphicsSystem -> GetName ()
1243 << " scene handler creation.\n No action taken."
1244 << G4endl;
1245 }
1246 }
1247 }
1248 else PrintInvalidPointers ();
1249}
#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 1251 of file G4VisManager.cc.

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

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

Referenced by G4HepRepFileSceneHandler::BeginModeling(), and DispatchToModel().

◆ Disable()

void G4VisManager::Disable ( )

Definition at line 785 of file G4VisManager.cc.

785 {
787 if (fVerbosity >= confirmations) {
788 G4cout <<
789 "G4VisManager::Disable: visualization disabled."
790 "\n The pointer returned by GetConcreteInstance will be zero."
791 "\n Note that it will become enabled after some valid vis commands."
792 << G4endl;
793 }
794 if (fVerbosity >= warnings) {
795 G4int currentTrajectoryType =
797 if (currentTrajectoryType > 0) {
798 G4warn <<
799 "You may wish to disable trajectory production too:"
800 "\n \"/tracking/storeTrajectory 0\""
801 "\nbut don't forget to re-enable with"
802 "\n \"/vis/enable\""
803 "\n \"/tracking/storeTrajectory " << currentTrajectoryType
804 << "\"\n and maybe \"/vis/viewer/rebuild\""
805 << G4endl;
806 }
807 }
808}
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 1496 of file G4VisManager.cc.

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

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

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 1167 of file G4VisManager.cc.

1169 {
1170 if (G4Threading::IsWorkerThread()) return;
1171
1172 // Find corresponding solid.
1173 G4VSolid* pSol = logicalVol.GetSolid ();
1174 Draw (*pSol, attribs, objectTransform);
1175}
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 1045 of file G4VisManager.cc.

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

◆ Draw() [4/12]

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

Implements G4VVisManager.

Definition at line 1051 of file G4VisManager.cc.

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

◆ Draw() [5/12]

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

Implements G4VVisManager.

Definition at line 1057 of file G4VisManager.cc.

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

◆ Draw() [6/12]

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

Implements G4VVisManager.

Definition at line 1063 of file G4VisManager.cc.

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

◆ Draw() [7/12]

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

Implements G4VVisManager.

Definition at line 1069 of file G4VisManager.cc.

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

◆ Draw() [8/12]

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

Implements G4VVisManager.

Definition at line 1124 of file G4VisManager.cc.

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

◆ Draw() [9/12]

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

Implements G4VVisManager.

Definition at line 1111 of file G4VisManager.cc.

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

◆ Draw() [10/12]

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

Implements G4VVisManager.

Definition at line 1196 of file G4VisManager.cc.

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

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

◆ Draw() [12/12]

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

Implements G4VVisManager.

Definition at line 1137 of file G4VisManager.cc.

1137 {
1138 if (G4Threading::IsWorkerThread()) return;
1139
1140 // A trajectory needs a trajectories model to provide G4Atts, etc.
1141 static G4TrajectoriesModel trajectoriesModel;
1142 trajectoriesModel.SetCurrentTrajectory(&traj);
1143 G4RunManager* runManager = G4RunManagerFactory::GetMasterRunManager();
1144 const G4Run* currentRun = runManager->GetCurrentRun();
1145 if (currentRun) {
1146 trajectoriesModel.SetRunID(currentRun->GetRunID());
1147 }
1148 const G4Event* currentEvent =
1150 if (currentEvent) {
1151 trajectoriesModel.SetEventID(currentEvent->GetEventID());
1152 }
1153 if (fIsDrawGroup) {
1154 fpSceneHandler -> SetModel (&trajectoriesModel);
1155 fpSceneHandler -> AddCompound (traj);
1156 fpSceneHandler -> SetModel (0);
1157 } else {
1158 if (IsValidView ()) {
1159 ClearTransientStoreIfMarked();
1160 fpSceneHandler -> SetModel (&trajectoriesModel);
1161 fpSceneHandler -> AddCompound (traj);
1162 fpSceneHandler -> SetModel (0);
1163 }
1164 }
1165}
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 1075 of file G4VisManager.cc.

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

◆ Draw2D() [2/6]

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

Implements G4VVisManager.

Definition at line 1081 of file G4VisManager.cc.

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

◆ Draw2D() [3/6]

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

Implements G4VVisManager.

Definition at line 1087 of file G4VisManager.cc.

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

◆ Draw2D() [4/6]

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

Implements G4VVisManager.

Definition at line 1093 of file G4VisManager.cc.

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

◆ Draw2D() [5/6]

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

Implements G4VVisManager.

Definition at line 1099 of file G4VisManager.cc.

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

◆ Draw2D() [6/6]

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

Implements G4VVisManager.

Definition at line 1105 of file G4VisManager.cc.

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

◆ DrawGeometry()

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

Reimplemented from G4VVisManager.

Definition at line 1218 of file G4VisManager.cc.

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

◆ Enable()

void G4VisManager::Enable ( )

Definition at line 750 of file G4VisManager.cc.

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

◆ EndDraw()

void G4VisManager::EndDraw ( )
virtual

Implements G4VVisManager.

Definition at line 945 of file G4VisManager.cc.

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

◆ EndDraw2D()

void G4VisManager::EndDraw2D ( )
virtual

Implements G4VVisManager.

Definition at line 980 of file G4VisManager.cc.

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

◆ EventReadyForVis()

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

Reimplemented from G4VVisManager.

Definition at line 2120 of file G4VisManager.cc.

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

◆ FilterDigi()

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

Implements G4VVisManager.

Definition at line 1491 of file G4VisManager.cc.

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

◆ FilterHit()

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

Implements G4VVisManager.

Definition at line 1486 of file G4VisManager.cc.

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

◆ FilterTrajectory()

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

Implements G4VVisManager.

Definition at line 1481 of file G4VisManager.cc.

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

Referenced by DispatchToModel().

◆ G4VisSubThread()

G4ThreadFunReturnType G4VisManager::G4VisSubThread ( G4ThreadFunArgType p)
static

Definition at line 1908 of file G4VisManager.cc.

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

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

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

◆ 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 2566 of file G4VisManager.cc.

2566 {
2567 return fVerbosity;
2568}

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::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 2529 of file G4VisManager.cc.

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

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

◆ GetVerbosityValue() [2/2]

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

Definition at line 2558 of file G4VisManager.cc.

2558 {
2559 Verbosity verbosity;
2560 if (intVerbosity < quiet) verbosity = quiet;
2561 else if (intVerbosity > all) verbosity = all;
2562 else verbosity = Verbosity(intVerbosity);
2563 return verbosity;
2564}

◆ GetViewer()

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

Definition at line 2480 of file G4VisManager.cc.

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

◆ GetWaitOnEventQueueFull()

G4bool G4VisManager::GetWaitOnEventQueueFull ( ) const

◆ IgnoreStateChanges()

void G4VisManager::IgnoreStateChanges ( G4bool val)
virtual

Reimplemented from G4VVisManager.

Definition at line 2705 of file G4VisManager.cc.

2706{
2707 fIgnoreStateChanges = val;
2708}

◆ 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 1440 of file G4VisManager.cc.

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

◆ PrintAvailableGraphicsSystems()

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

Definition at line 1730 of file G4VisManager.cc.

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

Referenced by Initialise().

◆ PrintAvailableVerbosity()

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

Definition at line 2518 of file G4VisManager.cc.

2519{
2520 os << "Available verbosity options:";
2521 for (std::size_t i = 0; i < VerbosityGuidanceStrings.size(); ++i) {
2522 os << '\n' << VerbosityGuidanceStrings[i];
2523 }
2524 os << "\nCurrent verbosity: " << G4VisManager::VerbosityString(fVerbosity);
2525 os << std::endl;
2526}

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

◆ RegisterEndOfEventUserVisAction()

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

Definition at line 1543 of file G4VisManager.cc.

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

◆ RegisterEndOfRunUserVisAction()

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

Definition at line 1564 of file G4VisManager.cc.

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

◆ RegisterGraphicsSystem()

G4bool G4VisManager::RegisterGraphicsSystem ( G4VGraphicsSystem * pSystem)

Definition at line 830 of file G4VisManager.cc.

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

◆ 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 G4VisCommandSceneAddEventID);
552 RegisterMessenger(new G4VisCommandSceneAddExtent);
553 RegisterMessenger(new G4VisCommandSceneAddElectricField);
554 RegisterMessenger(new G4VisCommandSceneAddFrame);
555 RegisterMessenger(new G4VisCommandSceneAddGPS);
556 RegisterMessenger(new G4VisCommandSceneAddHits);
557 RegisterMessenger(new G4VisCommandSceneAddLine);
558 RegisterMessenger(new G4VisCommandSceneAddLine2D);
559 RegisterMessenger(new G4VisCommandSceneAddLocalAxes);
560 RegisterMessenger(new G4VisCommandSceneAddLogicalVolume);
561 RegisterMessenger(new G4VisCommandSceneAddLogo);
562 RegisterMessenger(new G4VisCommandSceneAddLogo2D);
563 RegisterMessenger(new G4VisCommandSceneAddMagneticField);
564 RegisterMessenger(new G4VisCommandSceneAddPlotter);
565 RegisterMessenger(new G4VisCommandSceneAddPSHits);
566 RegisterMessenger(new G4VisCommandSceneAddScale);
567 RegisterMessenger(new G4VisCommandSceneAddText);
568 RegisterMessenger(new G4VisCommandSceneAddText2D);
569 RegisterMessenger(new G4VisCommandSceneAddTrajectories);
570 RegisterMessenger(new G4VisCommandSceneAddUserAction);
571 RegisterMessenger(new G4VisCommandSceneAddVolume);
572
573 RegisterMessenger(new G4VisCommandPlotterCreate);
574 RegisterMessenger(new G4VisCommandPlotterSetLayout);
575 RegisterMessenger(new G4VisCommandPlotterAddStyle);
576 RegisterMessenger(new G4VisCommandPlotterAddRegionStyle);
577 RegisterMessenger(new G4VisCommandPlotterAddRegionParameter);
578 RegisterMessenger(new G4VisCommandPlotterClear);
579 RegisterMessenger(new G4VisCommandPlotterClearRegion);
580 RegisterMessenger(new G4VisCommandPlotterList);
581 RegisterMessenger(new G4VisCommandPlotterAddRegionH1);
582 RegisterMessenger(new G4VisCommandPlotterAddRegionH2);
583
584 directory = new G4UIdirectory ("/vis/sceneHandler/");
585 directory -> SetGuidance ("Operations on Geant4 scene handlers.");
586 fDirectoryList.push_back (directory);
587 RegisterMessenger(new G4VisCommandSceneHandlerAttach);
588 RegisterMessenger(new G4VisCommandSceneHandlerCreate);
589 RegisterMessenger(new G4VisCommandSceneHandlerList);
590 RegisterMessenger(new G4VisCommandSceneHandlerSelect);
591
592 directory = new G4UIdirectory ("/vis/touchable/");
593 directory -> SetGuidance ("Operations on touchables.");
594 fDirectoryList.push_back (directory);
595 RegisterMessenger(new G4VisCommandsTouchable);
596
597 directory = new G4UIdirectory ("/vis/touchable/set/");
598 directory -> SetGuidance ("Set vis attributes of current touchable.");
599 fDirectoryList.push_back (directory);
600 RegisterMessenger(new G4VisCommandsTouchableSet);
601
602 directory = new G4UIdirectory ("/vis/viewer/");
603 directory -> SetGuidance ("Operations on Geant4 viewers.");
604 fDirectoryList.push_back (directory);
605 RegisterMessenger(new G4VisCommandViewerAddCutawayPlane);
606 RegisterMessenger(new G4VisCommandViewerCentreOn);
607 RegisterMessenger(new G4VisCommandViewerChangeCutawayPlane);
608 RegisterMessenger(new G4VisCommandViewerClear);
609 RegisterMessenger(new G4VisCommandViewerClearCutawayPlanes);
610 RegisterMessenger(new G4VisCommandViewerClearTransients);
611 RegisterMessenger(new G4VisCommandViewerClearVisAttributesModifiers);
612 RegisterMessenger(new G4VisCommandViewerClone);
613 RegisterMessenger(new G4VisCommandViewerColourByDensity);
614 RegisterMessenger(new G4VisCommandViewerCopyViewFrom);
615 RegisterMessenger(new G4VisCommandViewerCreate);
616 RegisterMessenger(new G4VisCommandViewerDolly);
617 RegisterMessenger(new G4VisCommandViewerFlush);
618 RegisterMessenger(new G4VisCommandViewerInterpolate);
619 RegisterMessenger(new G4VisCommandViewerList);
620 RegisterMessenger(new G4VisCommandViewerPan);
621 RegisterMessenger(new G4VisCommandViewerRebuild);
622 RegisterMessenger(new G4VisCommandViewerRefresh);
623 RegisterMessenger(new G4VisCommandViewerReset);
624 RegisterMessenger(new G4VisCommandViewerResetCameraParameters);
625 RegisterMessenger(new G4VisCommandViewerSave);
626 RegisterMessenger(new G4VisCommandViewerScale);
627 RegisterMessenger(new G4VisCommandViewerSelect);
628 RegisterMessenger(new G4VisCommandViewerUpdate);
629 RegisterMessenger(new G4VisCommandViewerZoom);
630
631 directory = new G4UIdirectory ("/vis/viewer/default/");
632 directory -> SetGuidance("Set default values for future viewers.");
633 fDirectoryList.push_back (directory);
634 RegisterMessenger(new G4VisCommandViewerDefaultHiddenEdge);
635 RegisterMessenger(new G4VisCommandViewerDefaultStyle);
636
637 directory = new G4UIdirectory ("/vis/viewer/set/");
638 directory -> SetGuidance ("Set view parameters of current viewer.");
639 fDirectoryList.push_back (directory);
640 RegisterMessenger(new G4VisCommandsViewerSet);
641
642 // *Basic* top level commands were instantiated in the constructor
643 // so that they can be used immediately after instantiation of the
644 // vis manager. Other top level commands, including "compound commands"
645 // (i.e., commands that invoke other commands) are instantiated here.
646
647 RegisterMessenger(new G4VisCommandAbortReviewKeptEvents);
648 RegisterMessenger(new G4VisCommandAbortReviewPlots);
649 RegisterMessenger(new G4VisCommandDrawOnlyToBeKeptEvents);
650 RegisterMessenger(new G4VisCommandDrawTree);
651 RegisterMessenger(new G4VisCommandDrawView);
652 RegisterMessenger(new G4VisCommandDrawLogicalVolume);
653 RegisterMessenger(new G4VisCommandDrawVolume);
654 RegisterMessenger(new G4VisCommandEnable);
656 RegisterMessenger(new G4VisCommandOpen);
657 RegisterMessenger(new G4VisCommandPlot);
658 RegisterMessenger(new G4VisCommandReviewKeptEvents);
659 RegisterMessenger(new G4VisCommandReviewPlots);
660 RegisterMessenger(new G4VisCommandSpecify);
661
662 // List manager commands
663 RegisterMessenger(new G4VisCommandListManagerList< G4VisModelManager<G4VTrajectoryModel> >
664 (fpTrajDrawModelMgr, fpTrajDrawModelMgr->Placement()));
665 RegisterMessenger(new G4VisCommandListManagerSelect< G4VisModelManager<G4VTrajectoryModel> >
666 (fpTrajDrawModelMgr, fpTrajDrawModelMgr->Placement()));
667
668 // Trajectory filter manager commands
669 RegisterMessenger(new G4VisCommandListManagerList< G4VisFilterManager<G4VTrajectory> >
670 (fpTrajFilterMgr, fpTrajFilterMgr->Placement()));
671 RegisterMessenger(new G4VisCommandManagerMode< G4VisFilterManager<G4VTrajectory> >
672 (fpTrajFilterMgr, fpTrajFilterMgr->Placement()));
673
674 // Hit filter manager commands
675 RegisterMessenger(new G4VisCommandListManagerList< G4VisFilterManager<G4VHit> >
676 (fpHitFilterMgr, fpHitFilterMgr->Placement()));
677 RegisterMessenger(new G4VisCommandManagerMode< G4VisFilterManager<G4VHit> >
678 (fpHitFilterMgr, fpHitFilterMgr->Placement()));
679
680 // Digi filter manager commands
681 RegisterMessenger(new G4VisCommandListManagerList< G4VisFilterManager<G4VDigi> >
682 (fpDigiFilterMgr, fpDigiFilterMgr->Placement()));
683 RegisterMessenger(new G4VisCommandManagerMode< G4VisFilterManager<G4VDigi> >
684 (fpDigiFilterMgr, fpDigiFilterMgr->Placement()));
685}
friend class G4VisCommandList

Referenced by Initialise().

◆ RegisterModel() [1/4]

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

Definition at line 909 of file G4VisManager.cc.

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

◆ RegisterModel() [2/4]

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

Definition at line 898 of file G4VisManager.cc.

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

◆ RegisterModel() [3/4]

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

Definition at line 887 of file G4VisManager.cc.

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

◆ RegisterModel() [4/4]

void G4VisManager::RegisterModel ( G4VTrajectoryModel * model)

Definition at line 876 of file G4VisManager.cc.

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

◆ RegisterModelFactories()

void G4VisManager::RegisterModelFactories ( )
protectedvirtual

Definition at line 2688 of file G4VisManager.cc.

2689{
2690 if (fVerbosity >= warnings) {
2691 G4warn<<"G4VisManager: No model factories registered with G4VisManager."<<G4endl;
2692 G4warn<<"G4VisManager::RegisterModelFactories() should be overridden in derived"<<G4endl;
2693 G4warn<<"class. See G4VisExecutive for an example."<<G4endl;
2694 }
2695}

Referenced by Initialise().

◆ RegisterModelFactory() [1/4]

void G4VisManager::RegisterModelFactory ( G4DigiFilterFactory * factory)

Definition at line 915 of file G4VisManager.cc.

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

◆ RegisterModelFactory() [2/4]

void G4VisManager::RegisterModelFactory ( G4HitFilterFactory * factory)

Definition at line 904 of file G4VisManager.cc.

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

◆ RegisterModelFactory() [3/4]

void G4VisManager::RegisterModelFactory ( G4TrajDrawModelFactory * factory)

Definition at line 882 of file G4VisManager.cc.

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

◆ RegisterModelFactory() [4/4]

void G4VisManager::RegisterModelFactory ( G4TrajFilterFactory * factory)

Definition at line 893 of file G4VisManager.cc.

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

◆ RegisterRunDurationUserVisAction()

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

Definition at line 1522 of file G4VisManager.cc.

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

◆ ResetTransientsDrawnFlags()

void G4VisManager::ResetTransientsDrawnFlags ( )

Definition at line 2463 of file G4VisManager.cc.

2464{
2465 fTransientsDrawnThisRun = false;
2466 fTransientsDrawnThisEvent = false;
2468 for (i = fAvailableSceneHandlers.begin();
2469 i != fAvailableSceneHandlers.end(); ++i) {
2470 (*i)->SetTransientsDrawnThisEvent(false);
2471 (*i)->SetTransientsDrawnThisRun(false);
2472 }
2473}
std::vector< G4VSceneHandler * >::const_iterator G4SceneHandlerListConstIterator

Referenced by SetCurrentScene().

◆ SelectTrajectoryModel()

void G4VisManager::SelectTrajectoryModel ( const G4String & model)

Definition at line 920 of file G4VisManager.cc.

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

◆ SetAbortReviewKeptEvents()

void G4VisManager::SetAbortReviewKeptEvents ( G4bool )

◆ SetAbortReviewPlots()

void G4VisManager::SetAbortReviewPlots ( G4bool )

◆ SetAvailableSceneHandlers()

G4SceneHandlerList & G4VisManager::SetAvailableSceneHandlers ( )

◆ SetCurrentGraphicsSystem()

void G4VisManager::SetCurrentGraphicsSystem ( G4VGraphicsSystem * pSystem)

Definition at line 1594 of file G4VisManager.cc.

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

◆ SetCurrentScene()

void G4VisManager::SetCurrentScene ( G4Scene * pScene)

Definition at line 1585 of file G4VisManager.cc.

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

Referenced by G4RayTracerSceneHandler::G4RayTracerSceneHandler().

◆ SetCurrentSceneHandler()

void G4VisManager::SetCurrentSceneHandler ( G4VSceneHandler * pSceneHandler)

Definition at line 1641 of file G4VisManager.cc.

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

◆ SetCurrentViewer()

void G4VisManager::SetCurrentViewer ( G4VViewer * pViewer)

Definition at line 1693 of file G4VisManager.cc.

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

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 2697 of file G4VisManager.cc.

2698{
2699 // TODO: protect with G4Threading::IsMultithreadedApplication() instead?
2700#ifdef G4MULTITHREADED
2701 new G4VisStateDependent(this);
2702#endif
2703}

◆ SetVerboseLevel() [1/3]

void G4VisManager::SetVerboseLevel ( const G4String & verbosityString)

Definition at line 2574 of file G4VisManager.cc.

2574 {
2575 fVerbosity = GetVerbosityValue(verbosityString);
2576}

◆ SetVerboseLevel() [2/3]

void G4VisManager::SetVerboseLevel ( G4int intVerbosity)

Definition at line 2570 of file G4VisManager.cc.

2570 {
2571 fVerbosity = GetVerbosityValue(intVerbosity);
2572}

◆ SetVerboseLevel() [3/3]

void G4VisManager::SetVerboseLevel ( Verbosity )

◆ SetWaitOnEventQueueFull()

void G4VisManager::SetWaitOnEventQueueFull ( G4bool )

◆ VerbosityString()

G4String G4VisManager::VerbosityString ( Verbosity verbosity)
static

Definition at line 2504 of file G4VisManager.cc.

2504 {
2505 G4String rs;
2506 switch (verbosity) {
2507 case quiet: rs = "quiet (0)"; break;
2508 case startup: rs = "startup (1)"; break;
2509 case errors: rs = "errors (2)"; break;
2510 case warnings: rs = "warnings (3)"; break;
2511 case confirmations: rs = "confirmations (4)"; break;
2512 case parameters: rs = "parameters (5)"; break;
2513 case all: rs = "all (6)"; break;
2514 }
2515 return rs;
2516}

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

◆ ViewerShortName()

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

Definition at line 2475 of file G4VisManager.cc.

2475 {
2476 const G4String& viewerShortName = viewerName.substr(0, viewerName.find (' '));
2477 return G4StrUtil::strip_copy(viewerShortName);
2478}

Referenced by GetViewer().

Friends And Related Symbol Documentation

◆ 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 1307 of file G4VSceneHandler.cc.

1307 {
1308
1309 os << "Scene handler " << sh.fName << " has "
1310 << sh.fViewerList.size () << " viewer(s):";
1311 for (std::size_t i = 0; i < sh.fViewerList.size (); ++i) {
1312 os << "\n " << *(sh.fViewerList [i]);
1313 }
1314
1315 if (sh.fpScene) {
1316 os << "\n " << *sh.fpScene;
1317 }
1318 else {
1319 os << "\n This scene handler currently has no scene.";
1320 }
1321
1322 return os;
1323}
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: