Geant4-11
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes
G4ASCIITreeSceneHandler Class Reference

#include <G4ASCIITreeSceneHandler.hh>

Inheritance diagram for G4ASCIITreeSceneHandler:
G4VTreeSceneHandler G4VSceneHandler G4VGraphicsScene

Public Types

enum  MarkerSizeType { world , screen }
 

Public Member Functions

virtual void AddCompound (const G4Mesh &)
 
virtual void AddCompound (const G4THitsMap< G4double > &)
 
virtual void AddCompound (const G4THitsMap< G4StatDouble > &)
 
virtual void AddCompound (const G4VDigi &)
 
virtual void AddCompound (const G4VHit &)
 
virtual void AddCompound (const G4VTrajectory &)
 
virtual void AddPrimitive (const G4Circle &)
 
virtual void AddPrimitive (const G4Circle &)=0
 
virtual void AddPrimitive (const G4Plotter &)
 
virtual void AddPrimitive (const G4Polyhedron &)
 
virtual void AddPrimitive (const G4Polyhedron &)=0
 
virtual void AddPrimitive (const G4Polyline &)
 
virtual void AddPrimitive (const G4Polyline &)=0
 
virtual void AddPrimitive (const G4Polymarker &)
 
virtual void AddPrimitive (const G4Polymarker &)
 
virtual void AddPrimitive (const G4Square &)
 
virtual void AddPrimitive (const G4Square &)=0
 
virtual void AddPrimitive (const G4Text &)
 
virtual void AddPrimitive (const G4Text &)=0
 
virtual void AddSolid (const G4Box &)
 
virtual void AddSolid (const G4Cons &)
 
virtual void AddSolid (const G4Ellipsoid &)
 
virtual void AddSolid (const G4Orb &)
 
virtual void AddSolid (const G4Para &)
 
virtual void AddSolid (const G4Polycone &)
 
virtual void AddSolid (const G4Polyhedra &)
 
virtual void AddSolid (const G4Sphere &)
 
virtual void AddSolid (const G4TessellatedSolid &)
 
virtual void AddSolid (const G4Torus &)
 
virtual void AddSolid (const G4Trap &)
 
virtual void AddSolid (const G4Trd &)
 
virtual void AddSolid (const G4Tubs &)
 
virtual void AddSolid (const G4VSolid &)
 
template<class T >
void AddSolidT (const T &solid)
 
template<class T >
void AddSolidWithAuxiliaryEdges (const T &solid)
 
void AddViewerToList (G4VViewer *pView)
 
virtual void BeginModeling ()
 
virtual void BeginPrimitives (const G4Transform3D &objectTransformation=G4Transform3D())
 
virtual void BeginPrimitives2D (const G4Transform3D &objectTransformation=G4Transform3D())
 
virtual void ClearStore ()
 
virtual void ClearTransientStore ()
 
G4ModelingParametersCreateModelingParameters ()
 
void DrawEndOfRunModels ()
 
void DrawEvent (const G4Event *)
 
virtual void EndModeling ()
 
virtual void EndPrimitives ()
 
virtual void EndPrimitives2D ()
 
 G4ASCIITreeSceneHandler (G4VGraphicsSystem &system, const G4String &name)
 
G4bool GetAuxEdgeVisible (const G4VisAttributes *)
 
const G4ColourGetColor ()
 
const G4ColourGetColor (const G4Visible &)
 
const G4ColourGetColour ()
 
const G4ColourGetColour (const G4Visible &)
 
G4VViewerGetCurrentViewer () const
 
G4ViewParameters::DrawingStyle GetDrawingStyle (const G4VisAttributes *)
 
virtual const G4VisExtentGetExtent () const
 
G4VGraphicsSystemGetGraphicsSystem () const
 
G4double GetLineWidth (const G4VisAttributes *)
 
G4double GetMarkerDiameter (const G4VMarker &, MarkerSizeType &)
 
G4double GetMarkerRadius (const G4VMarker &, MarkerSizeType &)
 
G4double GetMarkerSize (const G4VMarker &, MarkerSizeType &)
 
G4bool GetMarkForClearingTransientStore () const
 
G4VModelGetModel () const
 
const G4StringGetName () const
 
G4int GetNoOfSides (const G4VisAttributes *)
 
G4int GetNumberOfCloudPoints (const G4VisAttributes *) const
 
const G4Transform3DGetObjectTransformation () const
 
G4SceneGetScene () const
 
G4int GetSceneHandlerId () const
 
const G4ColourGetTextColor (const G4Text &)
 
const G4ColourGetTextColour (const G4Text &)
 
G4bool GetTransientsDrawnThisEvent () const
 
G4bool GetTransientsDrawnThisRun () const
 
G4int GetViewCount () const
 
const G4ViewerListGetViewerList () const
 
G4int IncrementViewCount ()
 
G4bool IsReadyForTransients () const
 
void PostAddSolid ()
 
void PreAddSolid (const G4Transform3D &objectTransformation, const G4VisAttributes &)
 
void RemoveViewerFromList (G4VViewer *pView)
 
void SetCurrentViewer (G4VViewer *)
 
void SetMarkForClearingTransientStore (G4bool)
 
void SetModel (G4VModel *)
 
void SetName (const G4String &)
 
void SetObjectTransformation (const G4Transform3D &)
 
virtual void SetScene (G4Scene *)
 
void SetTransientsDrawnThisEvent (G4bool)
 
void SetTransientsDrawnThisRun (G4bool)
 
G4ViewerListSetViewerList ()
 
virtual ~G4ASCIITreeSceneHandler ()
 

Protected Types

typedef std::set< G4LogicalVolume * >::iterator LVSetIterator
 
typedef G4PhysicalVolumeModel::G4PhysicalVolumeNodeID PVNodeID
 
typedef std::vector< PVNodeIDPVPath
 
typedef std::set< PVPath >::iterator ReplicaSetIterator
 
typedef std::set< PVPath >::reverse_iterator ReplicaSetReverseIterator
 

Protected Member Functions

virtual G4DisplacedSolidCreateCutawaySolid ()
 
virtual G4DisplacedSolidCreateSectionSolid ()
 
void LoadAtts (const G4Visible &, G4AttHolder *)
 
virtual void ProcessScene ()
 
virtual void RequestPrimitives (const G4VSolid &)
 
void WriteHeader (std::ostream &)
 

Protected Attributes

std::set< G4LogicalVolume * > fDrawnLVStore
 
const G4Transform3D fIdentityTransformation
 
G4int fLastCopyNo
 
G4int fLastNonSequentialCopyNo
 
G4String fLastPVName
 
std::set< G4LogicalVolume * > fLVSet
 
G4bool fMarkForClearingTransientStore
 
G4String fName
 
G4int fNestingDepth
 
G4Transform3D fObjectTransformation
 
std::ofstream fOutFile
 
const G4Transform3DfpCurrentObjectTransformation
 
const G4VPhysicalVolumefpLastPV
 
G4VModelfpModel
 
std::ostream * fpOutFile
 
G4bool fProcessing2D
 
G4bool fProcessingSolid
 
G4ScenefpScene
 
G4VViewerfpViewer
 
const G4VisAttributesfpVisAttribs
 
G4bool fReadyForTransients
 
std::set< PVPathfReplicaSet
 
std::ostringstream fRestOfLine
 
const G4int fSceneHandlerId
 
G4VGraphicsSystemfSystem
 
G4bool fTransientsDrawnThisEvent
 
G4bool fTransientsDrawnThisRun
 
G4int fViewCount
 
G4ViewerList fViewerList
 

Static Protected Attributes

static G4int fSceneIdCount = 0
 

Detailed Description

Definition at line 47 of file G4ASCIITreeSceneHandler.hh.

Member Typedef Documentation

◆ LVSetIterator

typedef std::set<G4LogicalVolume*>::iterator G4ASCIITreeSceneHandler::LVSetIterator
protected

Definition at line 72 of file G4ASCIITreeSceneHandler.hh.

◆ PVNodeID

Definition at line 73 of file G4ASCIITreeSceneHandler.hh.

◆ PVPath

typedef std::vector<PVNodeID> G4ASCIITreeSceneHandler::PVPath
protected

Definition at line 74 of file G4ASCIITreeSceneHandler.hh.

◆ ReplicaSetIterator

typedef std::set<PVPath>::iterator G4ASCIITreeSceneHandler::ReplicaSetIterator
protected

Definition at line 76 of file G4ASCIITreeSceneHandler.hh.

◆ ReplicaSetReverseIterator

typedef std::set<PVPath>::reverse_iterator G4ASCIITreeSceneHandler::ReplicaSetReverseIterator
protected

Definition at line 77 of file G4ASCIITreeSceneHandler.hh.

Member Enumeration Documentation

◆ MarkerSizeType

Enumerator
world 
screen 

Definition at line 58 of file G4VSceneHandler.hh.

Constructor & Destructor Documentation

◆ G4ASCIITreeSceneHandler()

G4ASCIITreeSceneHandler::G4ASCIITreeSceneHandler ( G4VGraphicsSystem system,
const G4String name 
)

Definition at line 54 of file G4ASCIITreeSceneHandler.cc.

56 :
58 fpOutFile(0),
59 fpLastPV(0),
60 fLastCopyNo(-99),
62{}
const G4VPhysicalVolume * fpLastPV
G4VTreeSceneHandler(G4VGraphicsSystem &system, const G4String &name)
const char * name(G4int ptype)

◆ ~G4ASCIITreeSceneHandler()

G4ASCIITreeSceneHandler::~G4ASCIITreeSceneHandler ( )
virtual

Definition at line 64 of file G4ASCIITreeSceneHandler.cc.

64{}

Member Function Documentation

◆ AddCompound() [1/6]

void G4VSceneHandler::AddCompound ( const G4Mesh mesh)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4Qt3DSceneHandler, G4VRML2FileSceneHandler, and G4VtkSceneHandler.

Definition at line 426 of file G4VSceneHandler.cc.

427{
429 ed << "There has been an attempt to draw a mesh (a nested parameterisation),"
430 "\nbut it is not implemented by the current graphics driver. Here we simply"
431 "\ndraw the container, \"" << mesh.GetContainerVolume()->GetName() << "\".";
432 G4Exception("G4VSceneHandler::AddCompound(const G4Mesh&)",
433 "visman0107", JustWarning, ed);
434
435 const auto& pv = mesh.GetContainerVolume();
436 const auto& lv = pv->GetLogicalVolume();
437 const auto& solid = lv->GetSolid();
438 const auto& transform = mesh.GetTransform();
439 // Make sure container is visible
440 const auto& saveVisAtts = lv->GetVisAttributes();
441 auto tmpVisAtts = *saveVisAtts;
442 tmpVisAtts.SetVisibility(true);
443 auto colour = saveVisAtts->GetColour();
444 colour.SetAlpha(1.);
445 tmpVisAtts.SetColour(colour);
446 // Draw container
447 PreAddSolid(transform,tmpVisAtts);
448 solid->DescribeYourselfTo(*this);
449 PostAddSolid();
450 // Restore vis attributes
451 lv->SetVisAttributes(saveVisAtts);
452}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
G4VSolid * GetSolid() const
G4VPhysicalVolume * GetContainerVolume() const
Definition: G4Mesh.hh:61
const G4Transform3D & GetTransform() const
Definition: G4Mesh.hh:64
G4LogicalVolume * GetLogicalVolume() const
const G4String & GetName() const
virtual void PreAddSolid(const G4Transform3D &objectTransformation, const G4VisAttributes &)
virtual void PostAddSolid()
G4bool transform(G4String &input, const G4String &type)

References G4Exception(), G4Mesh::GetContainerVolume(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetSolid(), G4Mesh::GetTransform(), JustWarning, G4VSceneHandler::PostAddSolid(), G4VSceneHandler::PreAddSolid(), and G4coutFormatters::anonymous_namespace{G4coutFormatters.cc}::transform().

◆ AddCompound() [2/6]

void G4VSceneHandler::AddCompound ( const G4THitsMap< G4double > &  hits)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4VRML2FileSceneHandler, and G4GMocrenFileSceneHandler.

Definition at line 340 of file G4VSceneHandler.cc.

340 {
341 using MeshScoreMap = G4VScoringMesh::MeshScoreMap;
342 //G4cout << "AddCompound: hits: " << &hits << G4endl;
343 G4bool scoreMapHits = false;
345 if (scoringManager) {
346 size_t nMeshes = scoringManager->GetNumberOfMesh();
347 for (size_t iMesh = 0; iMesh < nMeshes; ++iMesh) {
348 G4VScoringMesh* mesh = scoringManager->GetMesh(iMesh);
349 if (mesh && mesh->IsActive()) {
350 MeshScoreMap scoreMap = mesh->GetScoreMap();
351 const G4String& mapNam = const_cast<G4THitsMap<G4double>&>(hits).GetName();
352 for(MeshScoreMap::const_iterator i = scoreMap.begin();
353 i != scoreMap.end(); ++i) {
354 const G4String& scoreMapName = i->first;
355 if (scoreMapName == mapNam) {
356 G4DefaultLinearColorMap colorMap("G4VSceneHandlerColorMap");
357 scoreMapHits = true;
358 mesh->DrawMesh(scoreMapName, &colorMap);
359 }
360 }
361 }
362 }
363 }
364 if (scoreMapHits) {
365 static G4bool first = true;
366 if (first) {
367 first = false;
368 G4cout <<
369 "Scoring map drawn with default parameters."
370 "\n To get gMocren file for gMocren browser:"
371 "\n /vis/open gMocrenFile"
372 "\n /vis/viewer/flush"
373 "\n Many other options available with /score/draw... commands."
374 "\n You might want to \"/vis/viewer/set/autoRefresh false\"."
375 << G4endl;
376 }
377 } else { // Not score map hits. Just call DrawAllHits.
378 // Cast away const because DrawAllHits is non-const!!!!
379 const_cast<G4THitsMap<G4double>&>(hits).DrawAllHits();
380 }
381}
bool G4bool
Definition: G4Types.hh:86
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4VScoringMesh * GetMesh(G4int i) const
size_t GetNumberOfMesh() const
static G4ScoringManager * GetScoringManagerIfExist()
const G4String & GetName() const
G4bool IsActive() const
std::map< G4String, RunScore * > MeshScoreMap
void DrawMesh(const G4String &psName, G4VScoreColorMap *colorMap, G4int axflg=111)
MeshScoreMap GetScoreMap() const

References G4VScoringMesh::DrawMesh(), G4cout, G4endl, G4ScoringManager::GetMesh(), G4VSceneHandler::GetName(), G4ScoringManager::GetNumberOfMesh(), G4VScoringMesh::GetScoreMap(), G4ScoringManager::GetScoringManagerIfExist(), and G4VScoringMesh::IsActive().

◆ AddCompound() [3/6]

void G4VSceneHandler::AddCompound ( const G4THitsMap< G4StatDouble > &  hits)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4VRML2FileSceneHandler, and G4GMocrenFileSceneHandler.

Definition at line 383 of file G4VSceneHandler.cc.

383 {
384 using MeshScoreMap = G4VScoringMesh::MeshScoreMap;
385 //G4cout << "AddCompound: hits: " << &hits << G4endl;
386 G4bool scoreMapHits = false;
388 if (scoringManager) {
389 size_t nMeshes = scoringManager->GetNumberOfMesh();
390 for (size_t iMesh = 0; iMesh < nMeshes; ++iMesh) {
391 G4VScoringMesh* mesh = scoringManager->GetMesh(iMesh);
392 if (mesh && mesh->IsActive()) {
393 MeshScoreMap scoreMap = mesh->GetScoreMap();
394 for(MeshScoreMap::const_iterator i = scoreMap.begin();
395 i != scoreMap.end(); ++i) {
396 const G4String& scoreMapName = i->first;
397 const G4THitsMap<G4StatDouble>* foundHits = i->second;
398 if (foundHits == &hits) {
399 G4DefaultLinearColorMap colorMap("G4VSceneHandlerColorMap");
400 scoreMapHits = true;
401 mesh->DrawMesh(scoreMapName, &colorMap);
402 }
403 }
404 }
405 }
406 }
407 if (scoreMapHits) {
408 static G4bool first = true;
409 if (first) {
410 first = false;
411 G4cout <<
412 "Scoring map drawn with default parameters."
413 "\n To get gMocren file for gMocren browser:"
414 "\n /vis/open gMocrenFile"
415 "\n /vis/viewer/flush"
416 "\n Many other options available with /score/draw... commands."
417 "\n You might want to \"/vis/viewer/set/autoRefresh false\"."
418 << G4endl;
419 }
420 } else { // Not score map hits. Just call DrawAllHits.
421 // Cast away const because DrawAllHits is non-const!!!!
422 const_cast<G4THitsMap<G4StatDouble>&>(hits).DrawAllHits();
423 }
424}

References G4VScoringMesh::DrawMesh(), G4cout, G4endl, G4ScoringManager::GetMesh(), G4ScoringManager::GetNumberOfMesh(), G4VScoringMesh::GetScoreMap(), G4ScoringManager::GetScoringManagerIfExist(), and G4VScoringMesh::IsActive().

◆ AddCompound() [4/6]

void G4VSceneHandler::AddCompound ( const G4VDigi digi)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4VRML2FileSceneHandler, and G4GMocrenFileSceneHandler.

Definition at line 335 of file G4VSceneHandler.cc.

335 {
336 // Cast away const because Draw is non-const!!!!
337 const_cast<G4VDigi&>(digi).Draw();
338}

◆ AddCompound() [5/6]

void G4VSceneHandler::AddCompound ( const G4VHit hit)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4VRML2FileSceneHandler, and G4GMocrenFileSceneHandler.

Definition at line 330 of file G4VSceneHandler.cc.

330 {
331 // Cast away const because Draw is non-const!!!!
332 const_cast<G4VHit&>(hit).Draw();
333}
Definition: G4VHit.hh:48

◆ AddCompound() [6/6]

void G4VSceneHandler::AddCompound ( const G4VTrajectory traj)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4VRML2FileSceneHandler, and G4GMocrenFileSceneHandler.

Definition at line 318 of file G4VSceneHandler.cc.

318 {
319 G4TrajectoriesModel* trajectoriesModel =
320 dynamic_cast<G4TrajectoriesModel*>(fpModel);
321 if (trajectoriesModel)
322 traj.DrawTrajectory();
323 else {
325 ("G4VSceneHandler::AddCompound(const G4VTrajectory&)",
326 "visman0105", FatalException, "Not a G4TrajectoriesModel.");
327 }
328}
@ FatalException
virtual void DrawTrajectory() const

References G4VTrajectory::DrawTrajectory(), FatalException, G4VSceneHandler::fpModel, and G4Exception().

Referenced by G4Qt3DSceneHandler::AddCompound(), G4VtkSceneHandler::AddCompound(), G4HepRepFileSceneHandler::AddCompound(), G4OpenGLSceneHandler::AddCompound(), and G4GMocrenFileSceneHandler::AddCompound().

◆ AddPrimitive() [1/13]

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Circle )
inlinevirtualinherited

Implements G4VSceneHandler.

Definition at line 63 of file G4VTreeSceneHandler.hh.

63{}

◆ AddPrimitive() [2/13]

virtual void G4VSceneHandler::AddPrimitive ( const G4Circle )
virtualinherited

Implements G4VSceneHandler.

◆ AddPrimitive() [3/13]

void G4VSceneHandler::AddPrimitive ( const G4Plotter )
virtualinherited

Reimplemented from G4VSceneHandler.

Definition at line 192 of file G4VSceneHandler.cc.

501 {
502 G4cerr << "WARNING: Plotter not implemented for " << fSystem.GetName() << G4endl;
503 G4cerr << " Open a plotter-aware graphics system or remove plotter with" << G4endl;
504 G4cerr << " /vis/scene/removeModel Plotter" << G4endl;
505}
G4GLOB_DLL std::ostream G4cerr
const G4String & GetName() const
G4VGraphicsSystem & fSystem

◆ AddPrimitive() [4/13]

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Polyhedron )
inlinevirtualinherited

Implements G4VSceneHandler.

Definition at line 65 of file G4VTreeSceneHandler.hh.

65{}

◆ AddPrimitive() [5/13]

virtual void G4VSceneHandler::AddPrimitive ( const G4Polyhedron )
virtualinherited

Implements G4VSceneHandler.

◆ AddPrimitive() [6/13]

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Polyline )
inlinevirtualinherited

Implements G4VSceneHandler.

Definition at line 61 of file G4VTreeSceneHandler.hh.

61{}

◆ AddPrimitive() [7/13]

virtual void G4VSceneHandler::AddPrimitive ( const G4Polyline )
virtualinherited

Implements G4VSceneHandler.

◆ AddPrimitive() [8/13]

void G4VSceneHandler::AddPrimitive ( const G4Polymarker polymarker)
virtualinherited

Reimplemented from G4VSceneHandler.

Definition at line 190 of file G4VSceneHandler.cc.

458 {
459 switch (polymarker.GetMarkerType()) {
460 default:
462 {
463 G4Circle dot (polymarker);
464 dot.SetWorldSize (0.);
465 dot.SetScreenSize (0.1); // Very small circle.
466 for (size_t iPoint = 0; iPoint < polymarker.size (); iPoint++) {
467 dot.SetPosition (polymarker[iPoint]);
468 AddPrimitive (dot);
469 }
470 }
471 break;
473 {
474 G4Circle circle (polymarker); // Default circle
475 for (size_t iPoint = 0; iPoint < polymarker.size (); iPoint++) {
476 circle.SetPosition (polymarker[iPoint]);
477 AddPrimitive (circle);
478 }
479 }
480 break;
482 {
483 G4Square square (polymarker); // Default square
484 for (size_t iPoint = 0; iPoint < polymarker.size (); iPoint++) {
485 square.SetPosition (polymarker[iPoint]);
486 AddPrimitive (square);
487 }
488 }
489 break;
490 }
491}
MarkerType GetMarkerType() const
virtual void AddPrimitive(const G4Polyline &)

◆ AddPrimitive() [9/13]

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Polymarker )
inlinevirtualinherited

Reimplemented from G4VSceneHandler.

Definition at line 66 of file G4VTreeSceneHandler.hh.

66{}

◆ AddPrimitive() [10/13]

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Square )
inlinevirtualinherited

Implements G4VSceneHandler.

Definition at line 64 of file G4VTreeSceneHandler.hh.

64{}

◆ AddPrimitive() [11/13]

virtual void G4VSceneHandler::AddPrimitive ( const G4Square )
virtualinherited

Implements G4VSceneHandler.

◆ AddPrimitive() [12/13]

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Text )
inlinevirtualinherited

Implements G4VSceneHandler.

Definition at line 62 of file G4VTreeSceneHandler.hh.

62{}

◆ AddPrimitive() [13/13]

virtual void G4VSceneHandler::AddPrimitive ( const G4Text )
virtualinherited

Implements G4VSceneHandler.

◆ AddSolid() [1/14]

void G4VSceneHandler::AddSolid ( const G4Box box)
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4DAWNFILESceneHandler, G4GMocrenFileSceneHandler, G4HepRepFileSceneHandler, G4OpenGLSceneHandler, G4VRML2FileSceneHandler, G4VRML2FileSceneHandler, G4DAWNFILESceneHandler, G4GMocrenFileSceneHandler, and G4VtkSceneHandler.

Definition at line 247 of file G4VSceneHandler.cc.

247 {
248 AddSolidT (box);
249 // If your graphics system is sophisticated enough to handle a
250 // particular solid shape as a primitive, in your derived class write a
251 // function to override this.
252 // Your function might look like this...
253 // void G4MySceneHandler::AddSolid (const G4Box& box) {
254 // Get and check applicable vis attributes.
255 // fpVisAttribs = fpViewer->GetApplicableVisAttributes(fpVisAttribs);
256 // Do not draw if not visible.
257 // if (fpVisAttribs->IsVisible()) {
258 // Get parameters of appropriate object, e.g.:
259 // G4double dx = box.GetXHalfLength ();
260 // G4double dy = box.GetYHalfLength ();
261 // G4double dz = box.GetZHalfLength ();
262 // ...
263 // and Draw or Store in your display List.
264}
void AddSolidT(const T &solid)

References G4VSceneHandler::AddSolidT().

Referenced by G4Qt3DSceneHandler::AddCompound(), G4VtkSceneHandler::AddSolid(), G4HepRepFileSceneHandler::AddSolid(), and G4GMocrenFileSceneHandler::AddSolid().

◆ AddSolid() [2/14]

void G4VSceneHandler::AddSolid ( const G4Cons cons)
virtualinherited

◆ AddSolid() [3/14]

void G4VSceneHandler::AddSolid ( const G4Ellipsoid ellipsoid)
virtualinherited

◆ AddSolid() [4/14]

void G4VSceneHandler::AddSolid ( const G4Orb orb)
virtualinherited

◆ AddSolid() [5/14]

void G4VSceneHandler::AddSolid ( const G4Para para)
virtualinherited

◆ AddSolid() [6/14]

void G4VSceneHandler::AddSolid ( const G4Polycone polycone)
virtualinherited

◆ AddSolid() [7/14]

void G4VSceneHandler::AddSolid ( const G4Polyhedra polyhedra)
virtualinherited

◆ AddSolid() [8/14]

void G4VSceneHandler::AddSolid ( const G4Sphere sphere)
virtualinherited

◆ AddSolid() [9/14]

void G4VSceneHandler::AddSolid ( const G4TessellatedSolid tess)
virtualinherited

◆ AddSolid() [10/14]

void G4VSceneHandler::AddSolid ( const G4Torus torus)
virtualinherited

◆ AddSolid() [11/14]

void G4VSceneHandler::AddSolid ( const G4Trap trap)
virtualinherited

◆ AddSolid() [12/14]

void G4VSceneHandler::AddSolid ( const G4Trd trd)
virtualinherited

◆ AddSolid() [13/14]

void G4VSceneHandler::AddSolid ( const G4Tubs tubs)
virtualinherited

◆ AddSolid() [14/14]

void G4VSceneHandler::AddSolid ( const G4VSolid solid)
virtualinherited

◆ AddSolidT()

template<class T >
void G4VSceneHandler::AddSolidT ( const T &  solid)
inherited

Definition at line 220 of file G4VSceneHandler.cc.

222{
223 // Get and check applicable vis attributes.
225 RequestPrimitives (solid);
226}
G4VViewer * fpViewer
const G4VisAttributes * fpVisAttribs
virtual void RequestPrimitives(const G4VSolid &solid)
const G4VisAttributes * GetApplicableVisAttributes(const G4VisAttributes *) const

References G4VSceneHandler::fpViewer, G4VSceneHandler::fpVisAttribs, G4VViewer::GetApplicableVisAttributes(), and G4VSceneHandler::RequestPrimitives().

Referenced by G4VSceneHandler::AddSolid().

◆ AddSolidWithAuxiliaryEdges()

template<class T >
void G4VSceneHandler::AddSolidWithAuxiliaryEdges ( const T &  solid)
inherited

Definition at line 228 of file G4VSceneHandler.cc.

230{
231 // Get and check applicable vis attributes.
233 // Draw with auxiliary edges unless otherwise specified.
235 // Create a vis atts object for the modified vis atts.
236 // It is static so that we may return a reliable pointer to it.
237 static G4VisAttributes visAttsWithAuxEdges;
238 // Initialise it with the current vis atts and reset the pointer.
239 visAttsWithAuxEdges = *fpVisAttribs;
240 // Force auxiliary edges visible.
241 visAttsWithAuxEdges.SetForceAuxEdgeVisible();
242 fpVisAttribs = &visAttsWithAuxEdges;
243 }
244 RequestPrimitives (solid);
245}
void SetForceAuxEdgeVisible(G4bool=true)
G4bool IsForceAuxEdgeVisible() const

References G4VSceneHandler::fpViewer, G4VSceneHandler::fpVisAttribs, G4VViewer::GetApplicableVisAttributes(), G4VisAttributes::IsForceAuxEdgeVisible(), G4VSceneHandler::RequestPrimitives(), and G4VisAttributes::SetForceAuxEdgeVisible().

Referenced by G4VSceneHandler::AddSolid().

◆ AddViewerToList()

void G4VSceneHandler::AddViewerToList ( G4VViewer pView)
inherited

Definition at line 454 of file G4VSceneHandler.cc.

454 {
455 fViewerList.push_back (pViewer);
456}
G4ViewerList fViewerList

References G4VSceneHandler::fViewerList.

◆ BeginModeling()

void G4ASCIITreeSceneHandler::BeginModeling ( )
virtual

Reimplemented from G4VTreeSceneHandler.

Definition at line 66 of file G4ASCIITreeSceneHandler.cc.

66 {
67
68 G4VTreeSceneHandler::BeginModeling (); // To re-use "culling off" code.
69
70 const G4ASCIITree* pSystem = (G4ASCIITree*)GetGraphicsSystem();
71 const G4String& outFileName = pSystem -> GetOutFileName();
72 if (outFileName == "G4cout") {
74 } else {
75 fOutFile.open (outFileName);
77 }
78
79 static G4bool firstTime = true;
80 if (firstTime) {
81 firstTime = false;
82 G4cout << "G4ASCIITreeSceneHandler::BeginModeling: writing to ";
83 if (outFileName == "G4cout") {
84 G4cout << "G4 standard output (G4cout)";
85 } else {
86 G4cout << "file \"" << outFileName << "\"";
87 }
88 G4cout << G4endl;
89
91 }
92
93 if (outFileName != "G4cout") {
94 WriteHeader (fOutFile); fOutFile << std::endl;
95 }
96}
void WriteHeader(std::ostream &)
G4VGraphicsSystem * GetGraphicsSystem() const
virtual void BeginModeling()

References G4VTreeSceneHandler::BeginModeling(), fOutFile, fpOutFile, G4cout, G4endl, G4VSceneHandler::GetGraphicsSystem(), and WriteHeader().

◆ BeginPrimitives()

void G4VSceneHandler::BeginPrimitives ( const G4Transform3D objectTransformation = G4Transform3D())
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4DAWNFILESceneHandler, G4GMocrenFileSceneHandler, G4OpenGLImmediateSceneHandler, G4OpenGLSceneHandler, G4OpenGLStoredSceneHandler, G4OpenInventorSceneHandler, G4Qt3DSceneHandler, and G4VRML2FileSceneHandler.

Definition at line 160 of file G4VSceneHandler.cc.

161 {
162 //static G4int count = 0;
163 //G4cout << "G4VSceneHandler::BeginPrimitives: " << count++ << G4endl;
165 if (fNestingDepth > 1)
167 ("G4VSceneHandler::BeginPrimitives",
168 "visman0101", FatalException,
169 "Nesting detected. It is illegal to nest Begin/EndPrimitives.");
170 fObjectTransformation = objectTransformation;
171}
G4Transform3D fObjectTransformation

References FatalException, G4VSceneHandler::fNestingDepth, G4VSceneHandler::fObjectTransformation, and G4Exception().

Referenced by G4GMocrenFileSceneHandler::BeginPrimitives(), G4OpenGLSceneHandler::BeginPrimitives(), G4OpenInventorSceneHandler::BeginPrimitives(), G4Qt3DSceneHandler::BeginPrimitives(), and G4VSceneHandler::RequestPrimitives().

◆ BeginPrimitives2D()

void G4VSceneHandler::BeginPrimitives2D ( const G4Transform3D objectTransformation = G4Transform3D())
virtualinherited

Implements G4VGraphicsScene.

Reimplemented in G4HepRepFileSceneHandler, G4OpenGLImmediateSceneHandler, G4OpenGLSceneHandler, G4OpenGLStoredSceneHandler, and G4Qt3DSceneHandler.

Definition at line 184 of file G4VSceneHandler.cc.

185 {
187 if (fNestingDepth > 1)
189 ("G4VSceneHandler::BeginPrimitives2D",
190 "visman0103", FatalException,
191 "Nesting detected. It is illegal to nest Begin/EndPrimitives.");
192 fObjectTransformation = objectTransformation;
193 fProcessing2D = true;
194}

References G4VSceneHandler::fNestingDepth, and G4Exception().

Referenced by G4HepRepFileSceneHandler::BeginPrimitives2D(), G4OpenGLSceneHandler::BeginPrimitives2D(), and G4Qt3DSceneHandler::BeginPrimitives2D().

◆ ClearStore()

void G4VSceneHandler::ClearStore ( )
virtualinherited

◆ ClearTransientStore()

void G4VSceneHandler::ClearTransientStore ( )
virtualinherited

◆ CreateCutawaySolid()

G4DisplacedSolid * G4VSceneHandler::CreateCutawaySolid ( )
protectedvirtualinherited

Reimplemented in G4OpenGLSceneHandler.

Definition at line 904 of file G4VSceneHandler.cc.

905{
906 // To be reviewed.
907 return 0;
908 /*** An alternative way of getting a cutaway is to use
909 Command /vis/scene/add/volume
910 Guidance :
911 Adds a physical volume to current scene, with optional clipping volume.
912 If physical-volume-name is "world" (the default), the top of the
913 main geometry tree (material world) is added. If "worlds", the
914 top of all worlds - material world and parallel worlds, if any - are
915 added. Otherwise a search of all worlds is made, taking the first
916 matching occurrence only. To see a representation of the geometry
917 hierarchy of the worlds, try "/vis/drawTree [worlds]" or one of the
918 driver/browser combinations that have the required functionality, e.g., HepRep.
919 If clip-volume-type is specified, the subsequent parameters are used to
920 to define a clipping volume. For example,
921 "/vis/scene/add/volume ! ! ! -box km 0 1 0 1 0 1" will draw the world
922 with the positive octant cut away. (If the Boolean Processor issues
923 warnings try replacing 0 by 0.000000001 or something.)
924 If clip-volume-type is prepended with '-', the clip-volume is subtracted
925 (cutaway). (This is the default if there is no prepended character.)
926 If '*' is prepended, the intersection of the physical-volume and the
927 clip-volume is made. (You can make a section/DCUT with a thin box, for
928 example).
929 For "box", the parameters are xmin,xmax,ymin,ymax,zmin,zmax.
930 Only "box" is programmed at present.
931 ***/
932}

Referenced by G4VSceneHandler::CreateModelingParameters().

◆ CreateModelingParameters()

G4ModelingParameters * G4VSceneHandler::CreateModelingParameters ( )
inherited

Definition at line 798 of file G4VSceneHandler.cc.

799{
800 // Create modeling parameters from View Parameters...
801 if (!fpViewer) return NULL;
802
803 const G4ViewParameters& vp = fpViewer -> GetViewParameters ();
804
805 // Convert drawing styles...
806 G4ModelingParameters::DrawingStyle modelDrawingStyle =
808 switch (vp.GetDrawingStyle ()) {
809 default:
811 modelDrawingStyle = G4ModelingParameters::wf;
812 break;
814 modelDrawingStyle = G4ModelingParameters::hlr;
815 break;
817 modelDrawingStyle = G4ModelingParameters::hsr;
818 break;
820 modelDrawingStyle = G4ModelingParameters::hlhsr;
821 break;
823 modelDrawingStyle = G4ModelingParameters::cloud;
824 break;
825 }
826
827 // Decide if covered daughters are really to be culled...
828 G4bool reallyCullCovered =
829 vp.IsCullingCovered() // Culling daughters depends also on...
830 && !vp.IsSection () // Sections (DCUT) not requested.
831 && !vp.IsCutaway () // Cutaways not requested.
832 ;
833
834 G4ModelingParameters* pModelingParams = new G4ModelingParameters
836 modelDrawingStyle,
837 vp.IsCulling (),
838 vp.IsCullingInvisible (),
839 vp.IsDensityCulling (),
840 vp.GetVisibleDensity (),
841 reallyCullCovered,
842 vp.GetNoOfSides ()
843 );
844
845 pModelingParams->SetNumberOfCloudPoints(vp.GetNumberOfCloudPoints());
846 pModelingParams->SetWarning
848
849 pModelingParams->SetCBDAlgorithmNumber(vp.GetCBDAlgorithmNumber());
850 pModelingParams->SetCBDParameters(vp.GetCBDParameters());
851
852 pModelingParams->SetExplodeFactor(vp.GetExplodeFactor());
853 pModelingParams->SetExplodeCentre(vp.GetExplodeCentre());
854
855 pModelingParams->SetSectionSolid(CreateSectionSolid());
856 pModelingParams->SetCutawaySolid(CreateCutawaySolid());
857 // The polyhedron objects are deleted in the modeling parameters destructor.
858
860
861 pModelingParams->SetSpecialMeshRendering(vp.IsSpecialMeshRendering());
862 pModelingParams->SetSpecialMeshVolumes(vp.GetSpecialMeshVolumes());
863
864 return pModelingParams;
865}
void SetCBDParameters(const std::vector< G4double > &)
void SetWarning(G4bool)
void SetNumberOfCloudPoints(G4int)
void SetCBDAlgorithmNumber(G4int)
void SetExplodeFactor(G4double explodeFactor)
void SetVisAttributesModifiers(const std::vector< VisAttributesModifier > &)
void SetExplodeCentre(const G4Point3D &explodeCentre)
void SetCutawaySolid(G4DisplacedSolid *pCutawaySolid)
void SetSectionSolid(G4DisplacedSolid *pSectionSolid)
void SetSpecialMeshVolumes(const std::vector< PVNameCopyNo > &)
void SetSpecialMeshRendering(G4bool)
virtual G4DisplacedSolid * CreateSectionSolid()
virtual G4DisplacedSolid * CreateCutawaySolid()
const std::vector< G4ModelingParameters::VisAttributesModifier > & GetVisAttributesModifiers() const
G4int GetNoOfSides() const
G4bool IsSpecialMeshRendering() const
G4double GetExplodeFactor() const
G4int GetNumberOfCloudPoints() const
G4bool IsCutaway() const
G4bool IsSection() const
G4bool IsCulling() const
const std::vector< G4double > & GetCBDParameters() const
G4int GetCBDAlgorithmNumber() const
const std::vector< G4ModelingParameters::PVNameCopyNo > & GetSpecialMeshVolumes() const
G4bool IsCullingInvisible() const
const G4VisAttributes * GetDefaultVisAttributes() const
G4bool IsDensityCulling() const
G4double GetVisibleDensity() const
const G4Point3D & GetExplodeCentre() const
G4bool IsCullingCovered() const
DrawingStyle GetDrawingStyle() const
static Verbosity GetVerbosity()

References G4ViewParameters::cloud, G4ModelingParameters::cloud, G4VSceneHandler::CreateCutawaySolid(), G4VSceneHandler::CreateSectionSolid(), G4VSceneHandler::fpViewer, G4ViewParameters::GetCBDAlgorithmNumber(), G4ViewParameters::GetCBDParameters(), G4ViewParameters::GetDefaultVisAttributes(), G4ViewParameters::GetDrawingStyle(), G4ViewParameters::GetExplodeCentre(), G4ViewParameters::GetExplodeFactor(), G4ViewParameters::GetNoOfSides(), G4ViewParameters::GetNumberOfCloudPoints(), G4ViewParameters::GetSpecialMeshVolumes(), G4VisManager::GetVerbosity(), G4ViewParameters::GetVisAttributesModifiers(), G4ViewParameters::GetVisibleDensity(), G4ViewParameters::hlhsr, G4ModelingParameters::hlhsr, G4ViewParameters::hlr, G4ModelingParameters::hlr, G4ViewParameters::hsr, G4ModelingParameters::hsr, G4ViewParameters::IsCulling(), G4ViewParameters::IsCullingCovered(), G4ViewParameters::IsCullingInvisible(), G4ViewParameters::IsCutaway(), G4ViewParameters::IsDensityCulling(), G4ViewParameters::IsSection(), G4ViewParameters::IsSpecialMeshRendering(), G4ModelingParameters::SetCBDAlgorithmNumber(), G4ModelingParameters::SetCBDParameters(), G4ModelingParameters::SetCutawaySolid(), G4ModelingParameters::SetExplodeCentre(), G4ModelingParameters::SetExplodeFactor(), G4ModelingParameters::SetNumberOfCloudPoints(), G4ModelingParameters::SetSectionSolid(), G4ModelingParameters::SetSpecialMeshRendering(), G4ModelingParameters::SetSpecialMeshVolumes(), G4ModelingParameters::SetVisAttributesModifiers(), G4ModelingParameters::SetWarning(), G4VisManager::warnings, G4ModelingParameters::wf, and G4ViewParameters::wireframe.

Referenced by G4VSceneHandler::DrawEndOfRunModels(), G4VSceneHandler::DrawEvent(), and G4VSceneHandler::ProcessScene().

◆ CreateSectionSolid()

G4DisplacedSolid * G4VSceneHandler::CreateSectionSolid ( )
protectedvirtualinherited

Reimplemented in G4OpenGLSceneHandler.

Definition at line 867 of file G4VSceneHandler.cc.

868{
869 G4DisplacedSolid* sectioner = 0;
870
872 if (vp.IsSection () ) {
873
875 G4double safe = radius + fpScene->GetExtent().GetExtentCentre().mag();
876 G4VSolid* sectionBox =
877 new G4Box("_sectioner", safe, safe, 1.e-5 * radius); // Thin in z-plane...
878 const G4Normal3D originalNormal(0,0,1); // ...so this is original normal.
879
880 const G4Plane3D& sp = vp.GetSectionPlane ();
881 const G4double& a = sp.a();
882 const G4double& b = sp.b();
883 const G4double& c = sp.c();
884 const G4double& d = sp.d();
885 const G4Normal3D newNormal(a,b,c);
886
887 G4Transform3D requiredTransform;
888 // Rotate
889 if (newNormal != originalNormal) {
890 const G4double& angle = std::acos(newNormal.dot(originalNormal));
891 const G4Vector3D& axis = originalNormal.cross(newNormal);
892 requiredTransform = G4Rotate3D(angle, axis);
893 }
894 // Translate
895 requiredTransform = requiredTransform * G4TranslateZ3D(-d);
896
897 sectioner = new G4DisplacedSolid
898 ("_displaced_sectioning_box", sectionBox, requiredTransform);
899 }
900
901 return sectioner;
902}
static const G4double angle[DIMMOTT]
HepGeom::Rotate3D G4Rotate3D
HepGeom::TranslateZ3D G4TranslateZ3D
double G4double
Definition: G4Types.hh:83
Definition: G4Box.hh:56
const G4VisExtent & GetExtent() const
const G4ViewParameters & GetViewParameters() const
const G4Plane3D & GetSectionPlane() const
G4double GetExtentRadius() const
Definition: G4VisExtent.cc:75
const G4Point3D & GetExtentCentre() const
Definition: G4VisExtent.cc:65
BasicVector3D< T > cross(const BasicVector3D< T > &v) const

References angle, HepGeom::BasicVector3D< T >::cross(), HepGeom::BasicVector3D< T >::dot(), G4VSceneHandler::fpScene, G4VSceneHandler::fpViewer, G4Scene::GetExtent(), G4VisExtent::GetExtentCentre(), G4VisExtent::GetExtentRadius(), G4ViewParameters::GetSectionPlane(), G4VViewer::GetViewParameters(), G4ViewParameters::IsSection(), HepGeom::BasicVector3D< T >::mag(), and G4InuclParticleNames::sp.

Referenced by G4VSceneHandler::CreateModelingParameters(), and G4OpenGLSceneHandler::CreateSectionSolid().

◆ DrawEndOfRunModels()

void G4VSceneHandler::DrawEndOfRunModels ( )
inherited

Definition at line 777 of file G4VSceneHandler.cc.

778{
779 const std::vector<G4Scene::Model>& EORModelList =
780 fpScene -> GetEndOfRunModelList ();
781 size_t nModels = EORModelList.size();
782 if (nModels) {
784 pMP->SetEvent(0);
785 for (size_t i = 0; i < nModels; i++) {
786 if (EORModelList[i].fActive) {
787 fpModel = EORModelList[i].fpModel;
788 fpModel -> SetModelingParameters(pMP);
789 fpModel -> DescribeYourselfTo (*this);
790 fpModel -> SetModelingParameters(0);
791 }
792 }
793 fpModel = 0;
794 delete pMP;
795 }
796}
void SetEvent(const G4Event *pEvent)
G4ModelingParameters * CreateModelingParameters()

References G4VSceneHandler::CreateModelingParameters(), G4VSceneHandler::fpModel, G4VSceneHandler::fpScene, and G4ModelingParameters::SetEvent().

Referenced by G4VisManager::EndOfRun(), and G4VSceneHandler::ProcessScene().

◆ DrawEvent()

void G4VSceneHandler::DrawEvent ( const G4Event event)
inherited

Definition at line 756 of file G4VSceneHandler.cc.

757{
758 const std::vector<G4Scene::Model>& EOEModelList =
759 fpScene -> GetEndOfEventModelList ();
760 size_t nModels = EOEModelList.size();
761 if (nModels) {
763 pMP->SetEvent(event);
764 for (size_t i = 0; i < nModels; i++) {
765 if (EOEModelList[i].fActive) {
766 fpModel = EOEModelList[i].fpModel;
767 fpModel -> SetModelingParameters(pMP);
768 fpModel -> DescribeYourselfTo (*this);
769 fpModel -> SetModelingParameters(0);
770 }
771 }
772 fpModel = 0;
773 delete pMP;
774 }
775}

References G4VSceneHandler::CreateModelingParameters(), G4VSceneHandler::fpModel, G4VSceneHandler::fpScene, and G4ModelingParameters::SetEvent().

Referenced by G4VisManager::EndOfEvent(), and G4VSceneHandler::ProcessScene().

◆ EndModeling()

void G4ASCIITreeSceneHandler::EndModeling ( )
virtual

Reimplemented from G4VTreeSceneHandler.

Definition at line 121 of file G4ASCIITreeSceneHandler.cc.

121 {
122 const G4ASCIITree* pSystem = (G4ASCIITree*) GetGraphicsSystem();
123 const G4int verbosity = pSystem->GetVerbosity();
124 const G4int detail = verbosity % 10;
125 const G4String& outFileName = pSystem -> GetOutFileName();
126
127 // Output left over copy number, if any...
130 else *fpOutFile << '-';
132 }
133 // Output outstanding rest of line, if any...
134 if (!fRestOfLine.str().empty()) *fpOutFile << fRestOfLine.str();
135 fRestOfLine.str("");
136 fpLastPV = 0;
137 fLastPVName.clear();
138 fLastCopyNo = -99;
140
141 // This detail to G4cout regardless of outFileName...
142 if (detail >= 4) {
143 G4cout << "Calculating mass(es)..." << G4endl;
144 const std::vector<G4Scene::Model>& models = fpScene->GetRunDurationModelList();
145 std::vector<G4Scene::Model>::const_iterator i;
146 for (i = models.begin(); i != models.end(); ++i) {
147 G4PhysicalVolumeModel* pvModel =
148 dynamic_cast<G4PhysicalVolumeModel*>(i->fpModel);
149 if (pvModel) {
150 const G4ModelingParameters* tempMP =
151 pvModel->GetModelingParameters();
152 G4ModelingParameters mp; // Default - no culling.
153 pvModel->SetModelingParameters (&mp);
154 G4PhysicalVolumeMassScene massScene(pvModel);
155 pvModel->DescribeYourselfTo (massScene);
156 G4double volume = massScene.GetVolume();
157 G4double mass = massScene.GetMass();
158
159 G4cout << "Overall volume of \""
160 << pvModel->GetTopPhysicalVolume()->GetName()
161 << "\":"
162 << pvModel->GetTopPhysicalVolume()->GetCopyNo()
163 << ", is "
164 << G4BestUnit (volume, "Volume")
165 << " and the daughter-included mass";
166 G4int requestedDepth = pvModel->GetRequestedDepth();
167 if (requestedDepth == G4PhysicalVolumeModel::UNLIMITED) {
168 G4cout << " to unlimited depth";
169 } else {
170 G4cout << ", ignoring daughters at depth "
171 << requestedDepth
172 << " and below,";
173 }
174 G4cout << " is " << G4BestUnit (mass, "Mass")
175 << G4endl;
176
177 pvModel->SetModelingParameters (tempMP);
178 }
179 }
180 }
181
182 if (outFileName != "G4cout") {
183 fOutFile.close();
184 G4cout << "Output file \"" << outFileName << "\" closed." << G4endl;
185 }
186 fLVSet.clear();
187 fReplicaSet.clear();
188 G4cout << "G4ASCIITreeSceneHandler::EndModeling" << G4endl;
189 G4VTreeSceneHandler::EndModeling (); // To re-use "culling off" code.
190}
#define G4BestUnit(a, b)
int G4int
Definition: G4Types.hh:85
std::set< G4LogicalVolume * > fLVSet
G4int GetVerbosity() const
Definition: G4ASCIITree.hh:46
void DescribeYourselfTo(G4VGraphicsScene &)
G4VPhysicalVolume * GetTopPhysicalVolume() const
const std::vector< Model > & GetRunDurationModelList() const
const G4ModelingParameters * GetModelingParameters() const
void SetModelingParameters(const G4ModelingParameters *)
virtual G4int GetCopyNo() const =0
virtual void EndModeling()

References G4PhysicalVolumeModel::DescribeYourselfTo(), G4VTreeSceneHandler::EndModeling(), fLastCopyNo, fLastNonSequentialCopyNo, fLastPVName, fLVSet, fOutFile, fpLastPV, fpOutFile, G4VSceneHandler::fpScene, fReplicaSet, fRestOfLine, G4BestUnit, G4cout, G4endl, G4VPhysicalVolume::GetCopyNo(), G4VSceneHandler::GetGraphicsSystem(), G4PhysicalVolumeMassScene::GetMass(), G4VModel::GetModelingParameters(), G4VPhysicalVolume::GetName(), G4PhysicalVolumeModel::GetRequestedDepth(), G4Scene::GetRunDurationModelList(), G4PhysicalVolumeModel::GetTopPhysicalVolume(), G4ASCIITree::GetVerbosity(), G4PhysicalVolumeMassScene::GetVolume(), G4VModel::SetModelingParameters(), and G4PhysicalVolumeModel::UNLIMITED.

◆ EndPrimitives()

void G4VSceneHandler::EndPrimitives ( )
virtualinherited

◆ EndPrimitives2D()

void G4VSceneHandler::EndPrimitives2D ( )
virtualinherited

◆ GetAuxEdgeVisible()

G4bool G4VSceneHandler::GetAuxEdgeVisible ( const G4VisAttributes pVisAttribs)
inherited

Definition at line 1081 of file G4VSceneHandler.cc.

1081 {
1082 G4bool isAuxEdgeVisible = fpViewer->GetViewParameters().IsAuxEdgeVisible ();
1083 if (pVisAttribs -> IsForceAuxEdgeVisible()) {
1084 isAuxEdgeVisible = pVisAttribs->IsForcedAuxEdgeVisible();
1085 }
1086 return isAuxEdgeVisible;
1087}
G4bool IsAuxEdgeVisible() const
G4bool IsForcedAuxEdgeVisible() const

References G4VSceneHandler::fpViewer, G4VViewer::GetViewParameters(), G4ViewParameters::IsAuxEdgeVisible(), and G4VisAttributes::IsForcedAuxEdgeVisible().

Referenced by G4OpenGLSceneHandler::AddPrimitive(), and G4OpenInventorSceneHandler::AddProperties().

◆ GetColor() [1/2]

const G4Colour & G4VSceneHandler::GetColor ( )
inherited

◆ GetColor() [2/2]

const G4Colour & G4VSceneHandler::GetColor ( const G4Visible )
inherited

◆ GetColour() [1/2]

const G4Colour & G4VSceneHandler::GetColour ( )
inherited

◆ GetColour() [2/2]

const G4Colour & G4VSceneHandler::GetColour ( const G4Visible visible)
inherited

Definition at line 1000 of file G4VSceneHandler.cc.

1000 {
1001 auto pVA = visible.GetVisAttributes();
1003 return pVA->GetColour();
1004}
const G4Colour & GetColour() const
const G4VisAttributes * GetVisAttributes() const

References G4VSceneHandler::fpViewer, G4VisAttributes::GetColour(), G4ViewParameters::GetDefaultVisAttributes(), G4VViewer::GetViewParameters(), and G4Visible::GetVisAttributes().

◆ GetCurrentViewer()

G4VViewer * G4VSceneHandler::GetCurrentViewer ( ) const
inherited

◆ GetDrawingStyle()

G4ViewParameters::DrawingStyle G4VSceneHandler::GetDrawingStyle ( const G4VisAttributes pVisAttribs)
inherited

Definition at line 1021 of file G4VSceneHandler.cc.

1022 {
1023 // Drawing style is normally determined by the view parameters, but
1024 // it can be overriddden by the ForceDrawingStyle flag in the vis
1025 // attributes.
1027 const G4ViewParameters::DrawingStyle viewerStyle = vp.GetDrawingStyle();
1028 G4ViewParameters::DrawingStyle resultantStyle = viewerStyle;
1029 if (pVisAttribs -> IsForceDrawingStyle ()) {
1031 pVisAttribs -> GetForcedDrawingStyle ();
1032 // This is complicated because if hidden line and surface removal
1033 // has been requested we wish to preserve this sometimes.
1034 switch (forcedStyle) {
1036 switch (viewerStyle) {
1037 case (G4ViewParameters::hlr):
1038 resultantStyle = G4ViewParameters::hlhsr;
1039 break;
1041 resultantStyle = G4ViewParameters::hsr;
1042 break;
1044 resultantStyle = G4ViewParameters::hsr;
1045 break;
1047 case (G4ViewParameters::hsr):
1048 break;
1049 }
1050 break;
1052 resultantStyle = G4ViewParameters::cloud;
1053 break;
1055 default:
1056 // But if forced style is wireframe, do it, because one of its
1057 // main uses is in displaying the consituent solids of a Boolean
1058 // solid and their surfaces overlap with the resulting Booean
1059 // solid, making a mess if hlr is specified.
1060 resultantStyle = G4ViewParameters::wireframe;
1061 break;
1062 }
1063 }
1064 return resultantStyle;
1065}

References G4VisAttributes::cloud, G4ViewParameters::cloud, G4VSceneHandler::fpViewer, G4ViewParameters::GetDrawingStyle(), G4VViewer::GetViewParameters(), G4ViewParameters::hlhsr, G4ViewParameters::hlr, G4ViewParameters::hsr, G4VisAttributes::solid, G4VisAttributes::wireframe, and G4ViewParameters::wireframe.

Referenced by G4OpenGLSceneHandler::AddPrimitive(), G4Qt3DSceneHandler::AddPrimitive(), G4ToolsSGSceneHandler::AddPrimitive(), G4VtkSceneHandler::AddPrimitiveTensorGlyph(), G4OpenInventorSceneHandler::AddProperties(), G4OpenInventorSceneHandler::GeneratePrerequisites(), and G4VSceneHandler::RequestPrimitives().

◆ GetExtent()

const G4VisExtent & G4VSceneHandler::GetExtent ( ) const
virtualinherited

Reimplemented from G4VGraphicsScene.

Definition at line 134 of file G4VSceneHandler.cc.

135{
136 if (fpScene) {
137 return fpScene->GetExtent();
138 } else {
139 static const G4VisExtent defaultExtent = G4VisExtent();
140 return defaultExtent;
141 }
142}

References G4VSceneHandler::fpScene, and G4Scene::GetExtent().

Referenced by G4VtkViewer::SetView().

◆ GetGraphicsSystem()

G4VGraphicsSystem * G4VSceneHandler::GetGraphicsSystem ( ) const
inherited

◆ GetLineWidth()

G4double G4VSceneHandler::GetLineWidth ( const G4VisAttributes pVisAttribs)
inherited

Definition at line 1012 of file G4VSceneHandler.cc.

1013{
1014 G4double lineWidth = pVisAttribs->GetLineWidth();
1015 if (lineWidth < 1.) lineWidth = 1.;
1016 lineWidth *= fpViewer -> GetViewParameters().GetGlobalLineWidthScale();
1017 if (lineWidth < 1.) lineWidth = 1.;
1018 return lineWidth;
1019}
G4double GetLineWidth() const

References G4VSceneHandler::fpViewer, and G4VisAttributes::GetLineWidth().

Referenced by G4OpenGLSceneHandler::AddPrimitive().

◆ GetMarkerDiameter()

G4double G4VSceneHandler::GetMarkerDiameter ( const G4VMarker ,
MarkerSizeType  
)
inherited

◆ GetMarkerRadius()

G4double G4VSceneHandler::GetMarkerRadius ( const G4VMarker ,
MarkerSizeType  
)
inherited

◆ GetMarkerSize()

G4double G4VSceneHandler::GetMarkerSize ( const G4VMarker marker,
G4VSceneHandler::MarkerSizeType markerSizeType 
)
inherited

Definition at line 1089 of file G4VSceneHandler.cc.

1092{
1093 G4bool userSpecified = marker.GetWorldSize() || marker.GetScreenSize();
1094 const G4VMarker& defaultMarker =
1095 fpViewer -> GetViewParameters().GetDefaultMarker();
1096 G4double size = userSpecified ?
1097 marker.GetWorldSize() : defaultMarker.GetWorldSize();
1098 if (size) {
1099 // Draw in world coordinates.
1100 markerSizeType = world;
1101 }
1102 else {
1103 size = userSpecified ?
1104 marker.GetScreenSize() : defaultMarker.GetScreenSize();
1105 // Draw in screen coordinates.
1106 markerSizeType = screen;
1107 }
1108 size *= fpViewer -> GetViewParameters().GetGlobalMarkerScale();
1109 if (markerSizeType == screen && size < 1.) size = 1.;
1110 return size;
1111}
G4double GetScreenSize() const
G4double GetWorldSize() const

References G4VSceneHandler::fpViewer, G4VMarker::GetScreenSize(), G4VMarker::GetWorldSize(), G4VSceneHandler::screen, and G4VSceneHandler::world.

Referenced by G4OpenInventorSceneHandler::AddCircleSquare(), G4Qt3DSceneHandler::AddPrimitive(), G4VtkSceneHandler::AddPrimitive(), G4HepRepFileSceneHandler::AddPrimitive(), G4OpenGLSceneHandler::AddPrimitive(), G4OpenInventorSceneHandler::AddPrimitive(), G4ToolsSGSceneHandler::AddPrimitive(), G4OpenGLQtViewer::DrawText(), G4OpenGLViewer::DrawText(), and G4OpenGLXViewer::DrawText().

◆ GetMarkForClearingTransientStore()

G4bool G4VSceneHandler::GetMarkForClearingTransientStore ( ) const
inherited

◆ GetModel()

G4VModel * G4VSceneHandler::GetModel ( ) const
inherited

◆ GetName()

const G4String & G4VSceneHandler::GetName ( ) const
inherited

◆ GetNoOfSides()

G4int G4VSceneHandler::GetNoOfSides ( const G4VisAttributes pVisAttribs)
inherited

Definition at line 1113 of file G4VSceneHandler.cc.

1114{
1115 // No. of sides (lines segments per circle) is normally determined
1116 // by the view parameters, but it can be overriddden by the
1117 // ForceLineSegmentsPerCircle in the vis attributes.
1118 G4int lineSegmentsPerCircle = fpViewer->GetViewParameters().GetNoOfSides();
1119 if (pVisAttribs) {
1120 if (pVisAttribs->IsForceLineSegmentsPerCircle())
1121 lineSegmentsPerCircle = pVisAttribs->GetForcedLineSegmentsPerCircle();
1122 if (lineSegmentsPerCircle < pVisAttribs->GetMinLineSegmentsPerCircle()) {
1123 lineSegmentsPerCircle = pVisAttribs->GetMinLineSegmentsPerCircle();
1124 G4cout <<
1125 "G4VSceneHandler::GetNoOfSides: attempt to set the"
1126 "\nnumber of line segments per circle < " << lineSegmentsPerCircle
1127 << "; forced to " << pVisAttribs->GetMinLineSegmentsPerCircle() << G4endl;
1128 }
1129 }
1130 return lineSegmentsPerCircle;
1131}
G4bool IsForceLineSegmentsPerCircle() const
G4int GetForcedLineSegmentsPerCircle() const
static G4int GetMinLineSegmentsPerCircle()

References G4VSceneHandler::fpViewer, G4cout, G4endl, G4VisAttributes::GetForcedLineSegmentsPerCircle(), G4VisAttributes::GetMinLineSegmentsPerCircle(), G4ViewParameters::GetNoOfSides(), G4VViewer::GetViewParameters(), and G4VisAttributes::IsForceLineSegmentsPerCircle().

Referenced by G4OpenGLSceneHandler::AddPrimitive(), and G4VSceneHandler::RequestPrimitives().

◆ GetNumberOfCloudPoints()

G4int G4VSceneHandler::GetNumberOfCloudPoints ( const G4VisAttributes pVisAttribs) const
inherited

Definition at line 1067 of file G4VSceneHandler.cc.

1068 {
1069 // Returns no of cloud points from current view parameters, unless the user
1070 // has forced through the vis attributes, thereby over-riding the
1071 // current view parameter.
1072 G4int numberOfCloudPoints = fpViewer->GetViewParameters().GetNumberOfCloudPoints();
1073 if (pVisAttribs -> IsForceDrawingStyle() &&
1074 pVisAttribs -> GetForcedDrawingStyle() == G4VisAttributes::cloud &&
1075 pVisAttribs -> GetForcedNumberOfCloudPoints() > 0) {
1076 numberOfCloudPoints = pVisAttribs -> GetForcedNumberOfCloudPoints();
1077 }
1078 return numberOfCloudPoints;
1079}

References G4VisAttributes::cloud, G4VSceneHandler::fpViewer, G4ViewParameters::GetNumberOfCloudPoints(), and G4VViewer::GetViewParameters().

Referenced by G4VSceneHandler::RequestPrimitives().

◆ GetObjectTransformation()

const G4Transform3D & G4VSceneHandler::GetObjectTransformation ( ) const
inherited

◆ GetScene()

G4Scene * G4VSceneHandler::GetScene ( ) const
inherited

◆ GetSceneHandlerId()

G4int G4VSceneHandler::GetSceneHandlerId ( ) const
inherited

◆ GetTextColor()

const G4Colour & G4VSceneHandler::GetTextColor ( const G4Text )
inherited

◆ GetTextColour()

const G4Colour & G4VSceneHandler::GetTextColour ( const G4Text text)
inherited

◆ GetTransientsDrawnThisEvent()

G4bool G4VSceneHandler::GetTransientsDrawnThisEvent ( ) const
inherited

◆ GetTransientsDrawnThisRun()

G4bool G4VSceneHandler::GetTransientsDrawnThisRun ( ) const
inherited

◆ GetViewCount()

G4int G4VSceneHandler::GetViewCount ( ) const
inherited

◆ GetViewerList()

const G4ViewerList & G4VSceneHandler::GetViewerList ( ) const
inherited

◆ IncrementViewCount()

G4int G4VSceneHandler::IncrementViewCount ( )
inherited

◆ IsReadyForTransients()

G4bool G4VSceneHandler::IsReadyForTransients ( ) const
inherited

◆ LoadAtts()

void G4VSceneHandler::LoadAtts ( const G4Visible visible,
G4AttHolder holder 
)
protectedinherited

Definition at line 934 of file G4VSceneHandler.cc.

935{
936 // Load G4Atts from G4VisAttributes, if any...
937 const G4VisAttributes* va = visible.GetVisAttributes();
938 if (va) {
939 const std::map<G4String,G4AttDef>* vaDefs =
940 va->GetAttDefs();
941 if (vaDefs) {
942 holder->AddAtts(visible.GetVisAttributes()->CreateAttValues(), vaDefs);
943 }
944 }
945
946 G4PhysicalVolumeModel* pPVModel =
947 dynamic_cast<G4PhysicalVolumeModel*>(fpModel);
948 if (pPVModel) {
949 // Load G4Atts from G4PhysicalVolumeModel...
950 const std::map<G4String,G4AttDef>* pvDefs = pPVModel->GetAttDefs();
951 if (pvDefs) {
952 holder->AddAtts(pPVModel->CreateCurrentAttValues(), pvDefs);
953 }
954 }
955
956 G4TrajectoriesModel* trajModel = dynamic_cast<G4TrajectoriesModel*>(fpModel);
957 if (trajModel) {
958 // Load G4Atts from trajectory model...
959 const std::map<G4String,G4AttDef>* trajModelDefs = trajModel->GetAttDefs();
960 if (trajModelDefs) {
961 holder->AddAtts(trajModel->CreateCurrentAttValues(), trajModelDefs);
962 }
963 // Load G4Atts from trajectory...
964 const G4VTrajectory* traj = trajModel->GetCurrentTrajectory();
965 if (traj) {
966 const std::map<G4String,G4AttDef>* trajDefs = traj->GetAttDefs();
967 if (trajDefs) {
968 holder->AddAtts(traj->CreateAttValues(), trajDefs);
969 }
970 G4int nPoints = traj->GetPointEntries();
971 for (G4int i = 0; i < nPoints; ++i) {
972 G4VTrajectoryPoint* trajPoint = traj->GetPoint(i);
973 if (trajPoint) {
974 const std::map<G4String,G4AttDef>* pointDefs = trajPoint->GetAttDefs();
975 if (pointDefs) {
976 holder->AddAtts(trajPoint->CreateAttValues(), pointDefs);
977 }
978 }
979 }
980 }
981 }
982
983 G4HitsModel* hitsModel = dynamic_cast<G4HitsModel*>(fpModel);
984 if (hitsModel) {
985 // Load G4Atts from hit...
986 const G4VHit* hit = hitsModel->GetCurrentHit();
987 const std::map<G4String,G4AttDef>* hitsDefs = hit->GetAttDefs();
988 if (hitsDefs) {
989 holder->AddAtts(hit->CreateAttValues(), hitsDefs);
990 }
991 }
992}
void AddAtts(const std::vector< G4AttValue > *values, const std::map< G4String, G4AttDef > *defs)
Definition: G4AttHolder.hh:64
const G4VHit * GetCurrentHit() const
Definition: G4HitsModel.hh:57
std::vector< G4AttValue > * CreateCurrentAttValues() const
const std::map< G4String, G4AttDef > * GetAttDefs() const
const G4VTrajectory * GetCurrentTrajectory() const
std::vector< G4AttValue > * CreateCurrentAttValues() const
const std::map< G4String, G4AttDef > * GetAttDefs() const
virtual std::vector< G4AttValue > * CreateAttValues() const
Definition: G4VHit.hh:64
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
Definition: G4VHit.hh:58
virtual std::vector< G4AttValue > * CreateAttValues() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
virtual G4VTrajectoryPoint * GetPoint(G4int i) const =0
virtual G4int GetPointEntries() const =0
virtual std::vector< G4AttValue > * CreateAttValues() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
const std::map< G4String, G4AttDef > * GetAttDefs() const
const std::vector< G4AttValue > * CreateAttValues() const

References G4AttHolder::AddAtts(), G4VHit::CreateAttValues(), G4VisAttributes::CreateAttValues(), G4VTrajectory::CreateAttValues(), G4VTrajectoryPoint::CreateAttValues(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4TrajectoriesModel::CreateCurrentAttValues(), G4VSceneHandler::fpModel, G4VHit::GetAttDefs(), G4VisAttributes::GetAttDefs(), G4VTrajectory::GetAttDefs(), G4VTrajectoryPoint::GetAttDefs(), G4PhysicalVolumeModel::GetAttDefs(), G4TrajectoriesModel::GetAttDefs(), G4HitsModel::GetCurrentHit(), G4TrajectoriesModel::GetCurrentTrajectory(), G4VTrajectory::GetPoint(), G4VTrajectory::GetPointEntries(), and G4Visible::GetVisAttributes().

Referenced by G4OpenInventorSceneHandler::AddCircleSquare(), G4OpenInventorSceneHandler::AddPrimitive(), G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(), and G4OpenGLStoredSceneHandler::AddPrimitivePreambleInternal().

◆ PostAddSolid()

void G4VTreeSceneHandler::PostAddSolid ( )
virtualinherited

Reimplemented from G4VSceneHandler.

◆ PreAddSolid()

void G4VTreeSceneHandler::PreAddSolid ( const G4Transform3D objectTransformation,
const G4VisAttributes visAttribs 
)
virtualinherited

Reimplemented from G4VSceneHandler.

Definition at line 60 of file G4VTreeSceneHandler.cc.

62{
63 G4VSceneHandler::PreAddSolid (objectTransformation, visAttribs);
64
65 G4PhysicalVolumeModel* pPVModel =
66 dynamic_cast<G4PhysicalVolumeModel*>(fpModel);
67 if (!pPVModel) return; // Not from a G4PhysicalVolumeModel.
68
69 // This call comes from a G4PhysicalVolumeModel, drawnPVPath is
70 // the path of the current drawn (non-culled) volume in terms of
71 // drawn (non-culled) ancestors. Each node is identified by a
72 // PVNodeID object, which is a physical volume and copy number. It
73 // is a vector of PVNodeIDs corresponding to the geometry hierarchy
74 // actually selected, i.e., not culled.
76 typedef std::vector<PVNodeID> PVPath;
77 const PVPath& drawnPVPath = pPVModel->GetDrawnPVPath();
78 //G4int currentDepth = pPVModel->GetCurrentDepth();
79 //G4VPhysicalVolume* pCurrentPV = pPVModel->GetCurrentPV();
80 //G4LogicalVolume* pCurrentLV = pPVModel->GetCurrentLV();
81 //G4Material* pCurrentMaterial = pPVModel->GetCurrentMaterial();
82
83 // Actually, it is enough to store the logical volume of current
84 // physical volume...
85 fDrawnLVStore.insert
86 (drawnPVPath.back().GetPhysicalVolume()->GetLogicalVolume());
87
88 // Find mother. ri points to drawn mother, if any.
89 PVPath::const_reverse_iterator ri = ++drawnPVPath.rbegin();
90 if (ri != drawnPVPath.rend()) {
91 // This volume has a mother.
92 G4LogicalVolume* drawnMotherLV =
93 ri->GetPhysicalVolume()->GetLogicalVolume();
94 if (fDrawnLVStore.find(drawnMotherLV) != fDrawnLVStore.end()) {
95 // Mother previously encountered. Add this volume to
96 // appropriate node in scene graph tree.
97 // ...
98 } else {
99 // Mother not previously encountered. Shouldn't happen, since
100 // G4PhysicalVolumeModel sends volumes as it encounters them,
101 // i.e., mothers before daughters, in its descent of the
102 // geometry tree. Error!
103 G4cerr << "ERROR: G4VTreeSceneHandler::PreAddSolid: Mother "
104 << ri->GetPhysicalVolume()->GetName()
105 << ':' << ri->GetCopyNo()
106 << " not previously encountered."
107 "\nShouldn't happen! Please report to visualization coordinator."
108 << G4endl;
109 // Continue anyway. Add to root of scene graph tree.
110 // ...
111 }
112 } else {
113 // This volume has no mother. Must be a top level un-culled
114 // volume. Add to root of scene graph tree.
115 // ...
116 }
117}
const std::vector< G4PhysicalVolumeNodeID > & GetDrawnPVPath() const
std::set< G4LogicalVolume * > fDrawnLVStore

References G4VTreeSceneHandler::fDrawnLVStore, G4VSceneHandler::fpModel, G4cerr, G4endl, G4PhysicalVolumeModel::GetDrawnPVPath(), and G4VSceneHandler::PreAddSolid().

◆ ProcessScene()

void G4VSceneHandler::ProcessScene ( )
protectedvirtualinherited

Reimplemented in G4OpenGLSceneHandler.

Definition at line 612 of file G4VSceneHandler.cc.

613{
614 // Assumes graphics database store has already been cleared if
615 // relevant for the particular scene handler.
616
617 if(!fpScene)
618 return;
619
621 {
622 G4Exception("G4VSceneHandler::ProcessScene", "visman0106", JustWarning,
623 "The scene has no extent.");
624 }
625
627
628 if(!visManager->GetConcreteInstance())
629 return;
630
631 G4VisManager::Verbosity verbosity = visManager->GetVerbosity();
632
633 fReadyForTransients = false;
634
635 // Reset fMarkForClearingTransientStore. (Leaving
636 // fMarkForClearingTransientStore true causes problems with
637 // recomputing transients below.) Restore it again at end...
638 G4bool tmpMarkForClearingTransientStore = fMarkForClearingTransientStore;
640
641 // Traverse geometry tree and send drawing primitives to window(s).
642
643 const std::vector<G4Scene::Model>& runDurationModelList =
645
646 if(runDurationModelList.size())
647 {
648 if(verbosity >= G4VisManager::confirmations)
649 {
650 G4cout << "Traversing scene data..." << G4endl;
651 }
652
654
655 // Create modeling parameters from view parameters...
657
658 for(size_t i = 0; i < runDurationModelList.size(); i++)
659 {
660 if(runDurationModelList[i].fActive)
661 {
662 fpModel = runDurationModelList[i].fpModel;
665 // To see the extents of each model represented as wireframe boxes,
666 // uncomment the next line and DrawExtent in namespace above
667 // DrawExtent(fpModel);
669 }
670 }
671
672 fpModel = 0;
673 delete pMP;
674
675 EndModeling();
676 }
677
678 fReadyForTransients = true;
679
680 // Refresh event from end-of-event model list.
681 // Allow only in Idle or GeomClosed state...
683 G4ApplicationState state = stateManager->GetCurrentState();
684 if(state == G4State_Idle || state == G4State_GeomClosed)
685 {
686 visManager->SetEventRefreshing(true);
687
688 if(visManager->GetRequestedEvent())
689 {
690 DrawEvent(visManager->GetRequestedEvent());
691 }
692 else
693 {
695 if(runManager)
696 {
697 const G4Run* run = runManager->GetCurrentRun();
698 const std::vector<const G4Event*>* events =
699 run ? run->GetEventVector() : 0;
700 size_t nKeptEvents = 0;
701 if(events)
702 nKeptEvents = events->size();
703 if(nKeptEvents)
704 {
706 {
707 if(verbosity >= G4VisManager::confirmations)
708 {
709 G4cout << "Refreshing event..." << G4endl;
710 }
711 const G4Event* event = 0;
712 if(events && events->size())
713 event = events->back();
714 if(event)
715 DrawEvent(event);
716 }
717 else
718 { // Accumulating events.
719
720 if(verbosity >= G4VisManager::confirmations)
721 {
722 G4cout << "Refreshing events in run..." << G4endl;
723 }
724 for(const auto& event : *events)
725 {
726 if(event)
727 DrawEvent(event);
728 }
729
731 {
732 if(verbosity >= G4VisManager::warnings)
733 {
734 G4cout << "WARNING: Cannot refresh events accumulated over more"
735 "\n than one runs. Refreshed just the last run."
736 << G4endl;
737 }
738 }
739 }
740 }
741 }
742 }
743 visManager->SetEventRefreshing(false);
744 }
745
746 // Refresh end-of-run model list.
747 // Allow only in Idle or GeomClosed state...
748 if(state == G4State_Idle || state == G4State_GeomClosed)
749 {
751 }
752
753 fMarkForClearingTransientStore = tmpMarkForClearingTransientStore;
754}
G4ApplicationState
@ G4State_Idle
@ G4State_GeomClosed
static G4RunManager * GetMasterRunManager()
const G4Run * GetCurrentRun() const
Definition: G4Run.hh:49
G4bool GetRefreshAtEndOfEvent() const
G4bool GetRefreshAtEndOfRun() const
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()
virtual void DescribeYourselfTo(G4VGraphicsScene &)=0
virtual void BeginModeling()
void DrawEvent(const G4Event *)
virtual void EndModeling()
G4bool fMarkForClearingTransientStore
static G4VVisManager * GetConcreteInstance()
static const G4VisExtent & GetNullExtent()
Definition: G4VisExtent.cc:60
void SetEventRefreshing(G4bool)
const G4Event * GetRequestedEvent() const
static G4VisManager * GetInstance()
Definition: run.py:1

References G4VSceneHandler::BeginModeling(), G4VisManager::confirmations, G4VSceneHandler::CreateModelingParameters(), G4VModel::DescribeYourselfTo(), G4VSceneHandler::DrawEndOfRunModels(), G4VSceneHandler::DrawEvent(), G4VSceneHandler::EndModeling(), G4VSceneHandler::fMarkForClearingTransientStore, G4VSceneHandler::fpModel, G4VSceneHandler::fpScene, G4VSceneHandler::fReadyForTransients, G4cout, G4endl, G4Exception(), G4State_GeomClosed, G4State_Idle, G4VVisManager::GetConcreteInstance(), G4RunManager::GetCurrentRun(), G4StateManager::GetCurrentState(), G4Scene::GetExtent(), G4VisManager::GetInstance(), G4RunManagerFactory::GetMasterRunManager(), G4VisExtent::GetNullExtent(), G4Scene::GetRefreshAtEndOfEvent(), G4Scene::GetRefreshAtEndOfRun(), G4VisManager::GetRequestedEvent(), G4Scene::GetRunDurationModelList(), G4StateManager::GetStateManager(), G4VisManager::GetVerbosity(), JustWarning, G4VisManager::SetEventRefreshing(), G4VModel::SetModelingParameters(), and G4VisManager::warnings.

Referenced by G4OpenGLSceneHandler::ProcessScene(), and G4VViewer::ProcessView().

◆ RemoveViewerFromList()

void G4VSceneHandler::RemoveViewerFromList ( G4VViewer pView)
inherited

Definition at line 493 of file G4VSceneHandler.cc.

493 {
494 fViewerList.remove(pViewer); // Does nothing if already removed
495 // And reset current viewer
496 auto visManager = G4VisManager::GetInstance();
497 visManager->SetCurrentViewer(nullptr);
498}
void remove(G4VViewer *)
Definition: G4ViewerList.cc:30

References G4VSceneHandler::fViewerList, G4VisManager::GetInstance(), and G4ViewerList::remove().

Referenced by G4VViewer::~G4VViewer().

◆ RequestPrimitives()

void G4ASCIITreeSceneHandler::RequestPrimitives ( const G4VSolid solid)
protectedvirtual

Reimplemented from G4VSceneHandler.

Definition at line 192 of file G4ASCIITreeSceneHandler.cc.

192 {
193
194 G4PhysicalVolumeModel* pPVModel =
195 dynamic_cast<G4PhysicalVolumeModel*>(fpModel);
196 if (!pPVModel) return; // Not from a G4PhysicalVolumeModel.
197
198 // This call comes from a G4PhysicalVolumeModel. drawnPVPath is
199 // the path of the current drawn (non-culled) volume in terms of
200 // drawn (non-culled) ancestors. Each node is identified by a
201 // PVNodeID object, which is a physical volume and copy number. It
202 // is a vector of PVNodeIDs corresponding to the geometry hierarchy
203 // actually selected, i.e., not culled.
204 // The following typedef's already set in header file...
205 //typedef G4PhysicalVolumeModel::G4PhysicalVolumeNodeID PVNodeID;
206 //typedef std::vector<PVNodeID> PVPath;
207 const PVPath& drawnPVPath = pPVModel->GetDrawnPVPath();
208 //G4int currentDepth = pPVModel->GetCurrentDepth();
209 G4VPhysicalVolume* pCurrentPV = pPVModel->GetCurrentPV();
210 const G4String& currentPVName = pCurrentPV->GetName();
211 const G4int currentCopyNo = pCurrentPV->GetCopyNo();
212 G4LogicalVolume* pCurrentLV = pPVModel->GetCurrentLV();
213 G4Material* pCurrentMaterial = pPVModel->GetCurrentMaterial();
214
216 G4int verbosity = pSystem->GetVerbosity();
217 G4int detail = verbosity % 10;
218
219 // If verbosity < 10 suppress unnecessary repeated printing.
220 // Repeated simple replicas can always be suppressed.
221 // Paramaterisations can only be suppressed if verbosity < 3, since their
222 // size, density, etc., are in principle different.
223 const G4bool isParameterised = pCurrentPV->GetParameterisation();
224 const G4bool isSimpleReplica = pCurrentPV->IsReplicated() && !isParameterised;
225 const G4bool isAmenableToSupression =
226 (verbosity < 10 && isSimpleReplica) || (verbosity < 3 && isParameterised);
227 if (isAmenableToSupression) {
228 // See if this has been found before with same mother LV...
229 PVPath::const_reverse_iterator thisID = drawnPVPath.rbegin();
230 PVPath::const_reverse_iterator motherID = ++drawnPVPath.rbegin();
231 G4bool ignore = false;
232 for (ReplicaSetIterator i = fReplicaSet.begin(); i != fReplicaSet.end();
233 ++i) {
234 if (i->back().GetPhysicalVolume()->GetLogicalVolume() ==
235 thisID->GetPhysicalVolume()->GetLogicalVolume()) {
236 // For each one previously found (if more than one, they must
237 // have different mothers)...
238 // To avoid compilation errors on VC++ .Net 7.1...
239 // Previously:
240 // PVNodeID previousMotherID = ++(i->rbegin());
241 // (Should that have been: PVNodeID::const_iterator previousMotherID?)
242 // Replace
243 // previousMotherID == i->rend()
244 // by
245 // i->size() <= 1
246 // Replace
247 // previousMotherID != i->rend()
248 // by
249 // i->size() > 1
250 // Replace
251 // previousMotherID->
252 // by
253 // (*i)[i->size() - 2].
254 if (motherID == drawnPVPath.rend() &&
255 i->size() <= 1)
256 ignore = true; // Both have no mother.
257 if (motherID != drawnPVPath.rend() &&
258 i->size() > 1 &&
259 motherID->GetPhysicalVolume()->GetLogicalVolume() ==
260 (*i)[i->size() - 2].GetPhysicalVolume()->GetLogicalVolume())
261 ignore = true; // Same mother LV...
262 }
263 }
264 if (ignore) {
265 pPVModel->CurtailDescent();
266 return;
267 }
268 }
269
270 // Now suppress printing for volumes with the same name but different
271 // copy number - but not if they are parameterisations that have not been
272 // taken out above (those that are "amenable to suppression" will have been
273 // taken out).
274 if (verbosity < 10 && !isParameterised &&
275 currentPVName == fLastPVName &&
276 currentCopyNo != fLastCopyNo) {
277 // Check...
278 if (isAmenableToSupression) {
279 G4Exception("G4ASCIITreeSceneHandler::RequestPrimitives",
280 "vistree0001",
282 "Volume amenable to suppressed printing unexpected");
283 }
284 // Check mothers are identical...
285 else if (pCurrentLV == (fpLastPV? fpLastPV->GetLogicalVolume(): 0)) {
286 if (currentCopyNo != fLastCopyNo + 1) {
287 // Non-sequential copy number...
288 *fpOutFile << ',' << currentCopyNo;
289 fLastNonSequentialCopyNo = currentCopyNo;
290 }
291 fLastCopyNo = currentCopyNo;
292 pPVModel->CurtailDescent();
293 return;
294 }
295 }
296 fpLastPV = pCurrentPV;
297
298 // High verbosity or a new or otherwise non-amenable volume...
299 // Output copy number, if any, from previous invocation...
302 else *fpOutFile << '-';
304 }
305 // Output rest of line, if any, from previous invocation...
306 if (!fRestOfLine.str().empty()) *fpOutFile << fRestOfLine.str();
307 fRestOfLine.str("");
308 fLastPVName = currentPVName;
309 fLastCopyNo = currentCopyNo;
310 fLastNonSequentialCopyNo = currentCopyNo;
311 // Start next line...
312 // Indent according to drawn path depth...
313 for (size_t i = 0; i < drawnPVPath.size(); i++ ) *fpOutFile << " ";
314 *fpOutFile << "\"" << currentPVName
315 << "\":" << currentCopyNo;
316
317 if (pCurrentPV->IsReplicated()) {
318 if (verbosity < 10) {
319 // Add printing for replicas (when replicas are ignored)...
320 EAxis axis;
321 G4int nReplicas;
322 G4double width;
323 G4double offset;
324 G4bool consuming;
325 pCurrentPV->GetReplicationData(axis,nReplicas,width,offset,consuming);
326 G4VPVParameterisation* pP = pCurrentPV->GetParameterisation();
327 if (pP) {
328 if (detail < 3) {
329 fReplicaSet.insert(drawnPVPath);
330 if (nReplicas > 2) fRestOfLine << '-';
331 else fRestOfLine << ',';
332 fRestOfLine << nReplicas - 1
333 << " (" << nReplicas << " parametrised volumes)";
334 }
335 }
336 else {
337 fReplicaSet.insert(drawnPVPath);
338 if (nReplicas > 2) fRestOfLine << '-';
339 else fRestOfLine << ',';
340 fRestOfLine << nReplicas - 1
341 << " (" << nReplicas << " replicas)";
342 }
343 }
344 } else {
345 if (fLVSet.find(pCurrentLV) != fLVSet.end()) {
346 if (verbosity < 10) {
347 // Add printing for repeated LV (if it has daughters)...
348 if (pCurrentLV->GetNoDaughters()) fRestOfLine << " (repeated LV)";
349 // ...and curtail descent.
350 pPVModel->CurtailDescent();
351 }
352 }
353 }
354
355 if (detail >= 1) {
356 fRestOfLine << " / \""
357 << pCurrentLV->GetName() << "\"";
358 G4VSensitiveDetector* sd = pCurrentLV->GetSensitiveDetector();
359 if (sd) {
360 fRestOfLine << " (SD=\"" << sd->GetName() << "\"";
361 G4VReadOutGeometry* roGeom = sd->GetROgeometry();
362 if (roGeom) {
363 fRestOfLine << ",RO=\"" << roGeom->GetName() << "\"";
364 }
365 fRestOfLine << ")";
366 }
367 }
368
369 if (detail >= 2) {
370 fRestOfLine << " / \""
371 << solid.GetName()
372 << "\"("
373 << solid.GetEntityType() << ")";
374 }
375
376 if (detail >= 3) {
377 fRestOfLine << ", "
378 << G4BestUnit(((G4VSolid&)solid).GetCubicVolume(),"Volume")
379 << ", ";
380 if (pCurrentMaterial) {
382 << G4BestUnit(pCurrentMaterial->GetDensity(), "Volumic Mass")
383 << " (" << pCurrentMaterial->GetName() << ")";
384 } else {
385 fRestOfLine << "(No material)";
386 }
387 }
388
389 if (detail >= 5) {
390 if (pCurrentMaterial) {
391 G4Material* pMaterial = const_cast<G4Material*>(pCurrentMaterial);
392 // ...and find daughter-subtracted mass...
393 G4double daughter_subtracted_mass = pCurrentLV->GetMass
394 (pCurrentPV->IsParameterised(), // Force if parametrised.
395 false, // Do not propagate - calculate for this volume minus
396 // volume of daughters.
397 pMaterial);
398 G4double daughter_subtracted_volume =
399 daughter_subtracted_mass / pCurrentMaterial->GetDensity();
400 fRestOfLine << ", "
401 << G4BestUnit(daughter_subtracted_volume,"Volume")
402 << ", "
403 << G4BestUnit(daughter_subtracted_mass,"Mass");
404 }
405 }
406
407 if (detail >= 6) {
408 std::vector<G4AttValue>* attValues = pPVModel->CreateCurrentAttValues();
409 const std::map<G4String,G4AttDef>* attDefs = pPVModel->GetAttDefs();
410 fRestOfLine << '\n' << G4AttCheck(attValues, attDefs);
411 delete attValues;
412 }
413
414 if (detail >= 7) {
415 G4Polyhedron* polyhedron = solid.GetPolyhedron();
416 fRestOfLine << "\nLocal polyhedron coordinates:\n" << *polyhedron;
417 const G4Transform3D& transform = pPVModel->GetCurrentTransform();
418 polyhedron->Transform(transform);
419 fRestOfLine << "\nGlobal polyhedron coordinates:\n" << *polyhedron;
420 }
421
422 if (fLVSet.find(pCurrentLV) == fLVSet.end()) {
423 fLVSet.insert(pCurrentLV); // Record new logical volume.
424 }
425
426 fRestOfLine << std::endl;
427
428 return;
429}
std::vector< PVNodeID > PVPath
std::set< PVPath >::iterator ReplicaSetIterator
G4double GetMass(G4bool forced=false, G4bool propagate=true, G4Material *parMaterial=nullptr)
G4VSensitiveDetector * GetSensitiveDetector() const
size_t GetNoDaughters() const
const G4String & GetName() const
G4double GetDensity() const
Definition: G4Material.hh:176
const G4String & GetName() const
Definition: G4Material.hh:173
const G4Transform3D & GetCurrentTransform() const
G4VPhysicalVolume * GetCurrentPV() const
G4LogicalVolume * GetCurrentLV() const
G4Material * GetCurrentMaterial() const
virtual G4bool IsReplicated() const =0
virtual void GetReplicationData(EAxis &axis, G4int &nReplicas, G4double &width, G4double &offset, G4bool &consuming) const =0
virtual G4VPVParameterisation * GetParameterisation() const =0
virtual G4bool IsParameterised() const =0
G4String GetName() const
G4VReadOutGeometry * GetROgeometry() const
G4String GetName() const
virtual G4Polyhedron * GetPolyhedron() const
Definition: G4VSolid.cc:705
virtual G4GeometryType GetEntityType() const =0
EAxis
Definition: geomdefs.hh:54

References G4PhysicalVolumeModel::CreateCurrentAttValues(), G4PhysicalVolumeModel::CurtailDescent(), fLastCopyNo, fLastNonSequentialCopyNo, fLastPVName, fLVSet, fpLastPV, G4VSceneHandler::fpModel, fpOutFile, fReplicaSet, fRestOfLine, G4BestUnit, G4Exception(), G4PhysicalVolumeModel::GetAttDefs(), G4VPhysicalVolume::GetCopyNo(), G4PhysicalVolumeModel::GetCurrentLV(), G4PhysicalVolumeModel::GetCurrentMaterial(), G4PhysicalVolumeModel::GetCurrentPV(), G4PhysicalVolumeModel::GetCurrentTransform(), G4Material::GetDensity(), G4PhysicalVolumeModel::GetDrawnPVPath(), G4VSolid::GetEntityType(), G4VSceneHandler::GetGraphicsSystem(), G4VPhysicalVolume::GetLogicalVolume(), G4LogicalVolume::GetMass(), G4VReadOutGeometry::GetName(), G4VSensitiveDetector::GetName(), G4LogicalVolume::GetName(), G4VPhysicalVolume::GetName(), G4VSolid::GetName(), G4Material::GetName(), G4LogicalVolume::GetNoDaughters(), G4VPhysicalVolume::GetParameterisation(), G4VSolid::GetPolyhedron(), G4VPhysicalVolume::GetReplicationData(), G4VSensitiveDetector::GetROgeometry(), G4LogicalVolume::GetSensitiveDetector(), G4ASCIITree::GetVerbosity(), G4VPhysicalVolume::IsParameterised(), G4VPhysicalVolume::IsReplicated(), JustWarning, HepPolyhedron::Transform(), and G4coutFormatters::anonymous_namespace{G4coutFormatters.cc}::transform().

◆ SetCurrentViewer()

void G4VSceneHandler::SetCurrentViewer ( G4VViewer )
inherited

◆ SetMarkForClearingTransientStore()

void G4VSceneHandler::SetMarkForClearingTransientStore ( G4bool  )
inherited

◆ SetModel()

void G4VSceneHandler::SetModel ( G4VModel )
inherited

◆ SetName()

void G4VSceneHandler::SetName ( const G4String )
inherited

◆ SetObjectTransformation()

void G4VSceneHandler::SetObjectTransformation ( const G4Transform3D )
inherited

◆ SetScene()

void G4VSceneHandler::SetScene ( G4Scene pScene)
virtualinherited

Reimplemented in G4OpenGLStoredQtSceneHandler.

Definition at line 507 of file G4VSceneHandler.cc.

507 {
508 fpScene = pScene;
509 // Notify all viewers that a kernel visit is required.
511 for (i = fViewerList.begin(); i != fViewerList.end(); i++) {
512 (*i) -> SetNeedKernelVisit (true);
513 }
514}
std::vector< G4VViewer * >::iterator G4ViewerListIterator
Definition: G4ViewerList.hh:42

References G4VSceneHandler::fpScene, and G4VSceneHandler::fViewerList.

Referenced by G4OpenGLStoredQtSceneHandler::SetScene().

◆ SetTransientsDrawnThisEvent()

void G4VSceneHandler::SetTransientsDrawnThisEvent ( G4bool  )
inherited

◆ SetTransientsDrawnThisRun()

void G4VSceneHandler::SetTransientsDrawnThisRun ( G4bool  )
inherited

◆ SetViewerList()

G4ViewerList & G4VSceneHandler::SetViewerList ( )
inherited

◆ WriteHeader()

void G4ASCIITreeSceneHandler::WriteHeader ( std::ostream &  os)
protected

Definition at line 98 of file G4ASCIITreeSceneHandler.cc.

99{
100 const G4ASCIITree* pSystem = (G4ASCIITree*)GetGraphicsSystem();
101 const G4int verbosity = pSystem->GetVerbosity();
102 const G4int detail = verbosity % 10;
103 os << "# Set verbosity with \"/vis/ASCIITree/verbose <verbosity>\":";
104 for (size_t i = 0;
107 }
108 os << "\n# Now printing with verbosity " << verbosity;
109 os << "\n# Format is: PV:n";
110 if (detail >= 1) os << " / LV (SD,RO)";
111 if (detail >= 2) os << " / Solid(type)";
112 if (detail >= 3) os << ", volume, density";
113 if (detail >= 5) os << ", daughter-subtracted volume and mass";
114 if (detail >= 6) os << ", physical volume dump";
115 if (detail >= 7) os << ", polyhedron dump";
116 os <<
117 "\n# Abbreviations: PV = Physical Volume, LV = Logical Volume,"
118 "\n# SD = Sensitive Detector, RO = Read Out Geometry.";
119}
static std::vector< G4String > fVerbosityGuidance

References G4ASCIITreeMessenger::fVerbosityGuidance, G4VSceneHandler::GetGraphicsSystem(), and G4ASCIITree::GetVerbosity().

Referenced by BeginModeling().

Field Documentation

◆ fDrawnLVStore

std::set<G4LogicalVolume*> G4VTreeSceneHandler::fDrawnLVStore
protectedinherited

◆ fIdentityTransformation

const G4Transform3D G4VSceneHandler::fIdentityTransformation
protectedinherited

Definition at line 364 of file G4VSceneHandler.hh.

◆ fLastCopyNo

G4int G4ASCIITreeSceneHandler::fLastCopyNo
protected

Definition at line 68 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fLastNonSequentialCopyNo

G4int G4ASCIITreeSceneHandler::fLastNonSequentialCopyNo
protected

Definition at line 69 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fLastPVName

G4String G4ASCIITreeSceneHandler::fLastPVName
protected

Definition at line 67 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fLVSet

std::set<G4LogicalVolume*> G4ASCIITreeSceneHandler::fLVSet
protected

Definition at line 71 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fMarkForClearingTransientStore

G4bool G4VSceneHandler::fMarkForClearingTransientStore
protectedinherited

Definition at line 352 of file G4VSceneHandler.hh.

Referenced by G4VSceneHandler::ProcessScene().

◆ fName

G4String G4VSceneHandler::fName
protectedinherited

Definition at line 347 of file G4VSceneHandler.hh.

◆ fNestingDepth

G4int G4VSceneHandler::fNestingDepth
protectedinherited

◆ fObjectTransformation

G4Transform3D G4VSceneHandler::fObjectTransformation
protectedinherited

◆ fOutFile

std::ofstream G4ASCIITreeSceneHandler::fOutFile
protected

Definition at line 62 of file G4ASCIITreeSceneHandler.hh.

Referenced by BeginModeling(), and EndModeling().

◆ fpCurrentObjectTransformation

const G4Transform3D* G4VTreeSceneHandler::fpCurrentObjectTransformation
protectedinherited

Definition at line 76 of file G4VTreeSceneHandler.hh.

◆ fpLastPV

const G4VPhysicalVolume* G4ASCIITreeSceneHandler::fpLastPV
protected

Definition at line 66 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fpModel

G4VModel* G4VSceneHandler::fpModel
protectedinherited

◆ fpOutFile

std::ostream* G4ASCIITreeSceneHandler::fpOutFile
protected

Definition at line 61 of file G4ASCIITreeSceneHandler.hh.

Referenced by BeginModeling(), EndModeling(), and RequestPrimitives().

◆ fProcessing2D

G4bool G4VSceneHandler::fProcessing2D
protectedinherited

◆ fProcessingSolid

G4bool G4VSceneHandler::fProcessingSolid
protectedinherited

◆ fpScene

G4Scene* G4VSceneHandler::fpScene
protectedinherited

◆ fpViewer

G4VViewer* G4VSceneHandler::fpViewer
protectedinherited

Definition at line 350 of file G4VSceneHandler.hh.

Referenced by G4OpenInventorSceneHandler::AddCircleSquare(), G4VtkSceneHandler::AddCompound(), G4HepRepFileSceneHandler::AddHepRepInstance(), G4ToolsSGSceneHandler::AddPrimitive(), G4OpenGLSceneHandler::AddPrimitive(), G4Qt3DSceneHandler::AddPrimitive(), G4VtkSceneHandler::AddPrimitive(), G4OpenInventorSceneHandler::AddPrimitive(), G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(), G4OpenGLStoredSceneHandler::AddPrimitivePreambleInternal(), G4VtkSceneHandler::AddPrimitiveTensorGlyph(), G4OpenInventorSceneHandler::AddProperties(), G4HepRepFileSceneHandler::AddSolid(), G4VSceneHandler::AddSolidT(), G4VSceneHandler::AddSolidWithAuxiliaryEdges(), G4OpenInventorSceneHandler::AddTransform(), G4OpenGLImmediateSceneHandler::BeginPrimitives2D(), G4OpenGLStoredQtSceneHandler::ClearStore(), G4GMocrenFileSceneHandler::ClearTransientStore(), G4HepRepFileSceneHandler::ClearTransientStore(), G4OpenGLImmediateSceneHandler::ClearTransientStore(), G4OpenGLStoredQtSceneHandler::ClearTransientStore(), G4OpenGLStoredSceneHandler::ClearTransientStore(), G4VSceneHandler::CreateModelingParameters(), G4VSceneHandler::CreateSectionSolid(), G4OpenGLStoredSceneHandler::EndModeling(), G4OpenGLStoredQtSceneHandler::ExtraPOProcessing(), G4OpenInventorSceneHandler::GeneratePrerequisites(), G4VSceneHandler::GetAuxEdgeVisible(), G4VSceneHandler::GetColour(), G4VSceneHandler::GetDrawingStyle(), G4VSceneHandler::GetLineWidth(), G4VSceneHandler::GetMarkerSize(), G4VSceneHandler::GetNoOfSides(), G4VSceneHandler::GetNumberOfCloudPoints(), G4VSceneHandler::GetTextColour(), G4GMocrenFileSceneHandler::IsVisible(), G4VSceneHandler::RequestPrimitives(), and G4OpenGLStoredQtSceneHandler::SetScene().

◆ fpVisAttribs

const G4VisAttributes* G4VSceneHandler::fpVisAttribs
protectedinherited

◆ fReadyForTransients

G4bool G4VSceneHandler::fReadyForTransients
protectedinherited

◆ fReplicaSet

std::set<PVPath> G4ASCIITreeSceneHandler::fReplicaSet
protected

Definition at line 75 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fRestOfLine

std::ostringstream G4ASCIITreeSceneHandler::fRestOfLine
protected

Definition at line 63 of file G4ASCIITreeSceneHandler.hh.

Referenced by EndModeling(), and RequestPrimitives().

◆ fSceneHandlerId

const G4int G4VSceneHandler::fSceneHandlerId
protectedinherited

Definition at line 346 of file G4VSceneHandler.hh.

◆ fSceneIdCount

G4int G4VTreeSceneHandler::fSceneIdCount = 0
staticprotectedinherited

Definition at line 75 of file G4VTreeSceneHandler.hh.

◆ fSystem

G4VGraphicsSystem& G4VSceneHandler::fSystem
protectedinherited

Definition at line 345 of file G4VSceneHandler.hh.

Referenced by G4VSceneHandler::AddPrimitive().

◆ fTransientsDrawnThisEvent

G4bool G4VSceneHandler::fTransientsDrawnThisEvent
protectedinherited

◆ fTransientsDrawnThisRun

G4bool G4VSceneHandler::fTransientsDrawnThisRun
protectedinherited

◆ fViewCount

G4int G4VSceneHandler::fViewCount
protectedinherited

Definition at line 348 of file G4VSceneHandler.hh.

◆ fViewerList

G4ViewerList G4VSceneHandler::fViewerList
protectedinherited

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