Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | Static Protected Attributes
G4VTreeSceneHandler Class Reference

#include <G4VTreeSceneHandler.hh>

Inheritance diagram for G4VTreeSceneHandler:
G4VSceneHandler G4VGraphicsScene G4ASCIITreeSceneHandler

Public Member Functions

 G4VTreeSceneHandler (G4VGraphicsSystem &system, const G4String &name)
 
virtual ~G4VTreeSceneHandler ()
 
void PreAddSolid (const G4Transform3D &objectTransformation, const G4VisAttributes &)
 
void PostAddSolid ()
 
virtual void AddPrimitive (const G4Polyline &)
 
virtual void AddPrimitive (const G4Text &)
 
virtual void AddPrimitive (const G4Circle &)
 
virtual void AddPrimitive (const G4Square &)
 
virtual void AddPrimitive (const G4Polyhedron &)
 
virtual void AddPrimitive (const G4Polymarker &)
 
virtual void AddPrimitive (const G4Scale &)
 
virtual void BeginModeling ()
 
virtual void EndModeling ()
 
- Public Member Functions inherited from G4VSceneHandler
 G4VSceneHandler (G4VGraphicsSystem &system, G4int id, const G4String &name="")
 
virtual ~G4VSceneHandler ()
 
virtual void AddSolid (const G4Box &)
 
virtual void AddSolid (const G4Cons &)
 
virtual void AddSolid (const G4Tubs &)
 
virtual void AddSolid (const G4Trd &)
 
virtual void AddSolid (const G4Trap &)
 
virtual void AddSolid (const G4Sphere &)
 
virtual void AddSolid (const G4Para &)
 
virtual void AddSolid (const G4Torus &)
 
virtual void AddSolid (const G4Polycone &)
 
virtual void AddSolid (const G4Polyhedra &)
 
virtual void AddSolid (const G4VSolid &)
 
virtual void AddCompound (const G4VTrajectory &)
 
virtual void AddCompound (const G4VHit &)
 
virtual void AddCompound (const G4VDigi &)
 
virtual void AddCompound (const G4THitsMap< G4double > &)
 
virtual void BeginPrimitives (const G4Transform3D &objectTransformation)
 
virtual void EndPrimitives ()
 
virtual void BeginPrimitives2D (const G4Transform3D &objectTransformation)
 
virtual void EndPrimitives2D ()
 
virtual const G4VisExtent & GetExtent () const
 
const G4String & GetName () const
 
G4int GetSceneHandlerId () const
 
G4int GetViewCount () const
 
G4VGraphicsSystem * GetGraphicsSystem () const
 
G4Scene * GetScene () const
 
const G4ViewerList & GetViewerList () const
 
G4VModel * GetModel () const
 
G4VViewer * GetCurrentViewer () const
 
G4bool GetMarkForClearingTransientStore () const
 
G4bool IsReadyForTransients () const
 
G4bool GetTransientsDrawnThisEvent () const
 
G4bool GetTransientsDrawnThisRun () const
 
const G4Transform3D & GetObjectTransformation () const
 
void SetName (const G4String &)
 
void SetCurrentViewer (G4VViewer *)
 
virtual void SetScene (G4Scene *)
 
G4ViewerList & SetViewerList ()
 
void SetModel (G4VModel *)
 
void SetMarkForClearingTransientStore (G4bool)
 
void SetTransientsDrawnThisEvent (G4bool)
 
void SetTransientsDrawnThisRun (G4bool)
 
void SetObjectTransformation (const G4Transform3D &)
 
const G4Colour & GetColour (const G4Visible &)
 
const G4Colour & GetColor (const G4Visible &)
 
const G4Colour & GetTextColour (const G4Text &)
 
const G4Colour & GetTextColor (const G4Text &)
 
G4double GetLineWidth (const G4VisAttributes *)
 
G4ViewParameters::DrawingStyle GetDrawingStyle (const G4VisAttributes *)
 
G4bool GetAuxEdgeVisible (const G4VisAttributes *)
 
G4int GetNoOfSides (const G4VisAttributes *)
 
G4double GetMarkerSize (const G4VMarker &, MarkerSizeType &)
 
G4double GetMarkerDiameter (const G4VMarker &, MarkerSizeType &)
 
G4double GetMarkerRadius (const G4VMarker &, MarkerSizeType &)
 
G4ModelingParameters * CreateModelingParameters ()
 
void DrawEvent (const G4Event *)
 
void DrawEndOfRunModels ()
 
G4int IncrementViewCount ()
 
virtual void ClearStore ()
 
virtual void ClearTransientStore ()
 
void AddViewerToList (G4VViewer *pView)
 
void RemoveViewerFromList (G4VViewer *pView)
 
- Public Member Functions inherited from G4VGraphicsScene
 G4VGraphicsScene ()
 
virtual ~G4VGraphicsScene ()
 

Protected Attributes

const G4Transform3D * fpCurrentObjectTransformation
 
std::set< G4LogicalVolume * > fDrawnLVStore
 
- Protected Attributes inherited from G4VSceneHandler
G4VGraphicsSystem & fSystem
 
const G4int fSceneHandlerId
 
G4String fName
 
G4int fViewCount
 
G4ViewerList fViewerList
 
G4VViewer * fpViewer
 
G4Scene * fpScene
 
G4bool fMarkForClearingTransientStore
 
G4bool fReadyForTransients
 
G4bool fTransientsDrawnThisEvent
 
G4bool fTransientsDrawnThisRun
 
G4bool fProcessingSolid
 
G4bool fProcessing2D
 
G4VModel * fpModel
 
G4Transform3D fObjectTransformation
 
G4int fNestingDepth
 
const G4VisAttributes * fpVisAttribs
 
const G4Transform3D fIdentityTransformation
 

Static Protected Attributes

static G4int fSceneIdCount = 0
 

Additional Inherited Members

- Public Types inherited from G4VSceneHandler
enum  MarkerSizeType { world, screen }
 
- Protected Member Functions inherited from G4VSceneHandler
virtual void ProcessScene ()
 
virtual void RequestPrimitives (const G4VSolid &solid)
 
virtual G4VSolid * CreateSectionSolid ()
 
virtual G4VSolid * CreateCutawaySolid ()
 
void LoadAtts (const G4Visible &, G4AttHolder *)
 

Detailed Description

Definition at line 48 of file G4VTreeSceneHandler.hh.

Constructor & Destructor Documentation

G4VTreeSceneHandler::G4VTreeSceneHandler ( G4VGraphicsSystem &  system,
const G4String &  name 
)

Definition at line 44 of file G4VTreeSceneHandler.cc.

45  :
46  G4VSceneHandler(system, fSceneIdCount++, name),
48 {}
G4VSceneHandler(G4VGraphicsSystem &system, G4int id, const G4String &name="")
const G4Transform3D * fpCurrentObjectTransformation
G4VTreeSceneHandler::~G4VTreeSceneHandler ( )
virtual

Definition at line 50 of file G4VTreeSceneHandler.cc.

50 {}

Member Function Documentation

virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Polyline &  )
inlinevirtual

Implements G4VSceneHandler.

Definition at line 61 of file G4VTreeSceneHandler.hh.

61 {}
virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Text &  )
inlinevirtual

Implements G4VSceneHandler.

Definition at line 62 of file G4VTreeSceneHandler.hh.

62 {}
virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Circle &  )
inlinevirtual

Implements G4VSceneHandler.

Definition at line 63 of file G4VTreeSceneHandler.hh.

63 {}
virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Square &  )
inlinevirtual

Implements G4VSceneHandler.

Definition at line 64 of file G4VTreeSceneHandler.hh.

64 {}
virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Polyhedron &  )
inlinevirtual

Implements G4VSceneHandler.

Definition at line 65 of file G4VTreeSceneHandler.hh.

65 {}
virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Polymarker &  )
inlinevirtual

Reimplemented from G4VSceneHandler.

Definition at line 66 of file G4VTreeSceneHandler.hh.

66 {}
virtual void G4VTreeSceneHandler::AddPrimitive ( const G4Scale &  )
inlinevirtual

Reimplemented from G4VSceneHandler.

Definition at line 67 of file G4VTreeSceneHandler.hh.

67 {}
void G4VTreeSceneHandler::BeginModeling ( )
virtual

Reimplemented from G4VSceneHandler.

Reimplemented in G4ASCIITreeSceneHandler.

Definition at line 52 of file G4VTreeSceneHandler.cc.

References G4VSceneHandler::BeginModeling().

Referenced by G4ASCIITreeSceneHandler::BeginModeling().

52  {
53  G4VSceneHandler::BeginModeling(); // Required: see G4VSceneHandler.hh.
54 }
virtual void BeginModeling()
void G4VTreeSceneHandler::EndModeling ( )
virtual

Reimplemented from G4VSceneHandler.

Reimplemented in G4ASCIITreeSceneHandler.

Definition at line 56 of file G4VTreeSceneHandler.cc.

References G4VSceneHandler::EndModeling(), and fDrawnLVStore.

Referenced by G4ASCIITreeSceneHandler::EndModeling().

56  {
57  fDrawnLVStore.clear();
58  G4VSceneHandler::EndModeling(); // Required: see G4VSceneHandler.hh.
59 }
std::set< G4LogicalVolume * > fDrawnLVStore
virtual void EndModeling()
void G4VTreeSceneHandler::PostAddSolid ( )
virtual

Reimplemented from G4VSceneHandler.

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

Reimplemented from G4VSceneHandler.

Definition at line 62 of file G4VTreeSceneHandler.cc.

References G4cout, G4endl, G4PhysicalVolumeModel::GetDrawnPVPath(), and G4VSceneHandler::PreAddSolid().

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

Field Documentation

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

Definition at line 78 of file G4VTreeSceneHandler.hh.

Referenced by EndModeling().

const G4Transform3D* G4VTreeSceneHandler::fpCurrentObjectTransformation
protected

Definition at line 77 of file G4VTreeSceneHandler.hh.

G4int G4VTreeSceneHandler::fSceneIdCount = 0
staticprotected

Definition at line 76 of file G4VTreeSceneHandler.hh.


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