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 G4VisExtentGetExtent () const
 
const G4StringGetName () const
 
G4int GetSceneHandlerId () const
 
G4int GetViewCount () const
 
G4VGraphicsSystemGetGraphicsSystem () const
 
G4SceneGetScene () const
 
const G4ViewerListGetViewerList () const
 
G4VModelGetModel () const
 
G4VViewerGetCurrentViewer () const
 
G4bool GetMarkForClearingTransientStore () const
 
G4bool IsReadyForTransients () const
 
G4bool GetTransientsDrawnThisEvent () const
 
G4bool GetTransientsDrawnThisRun () const
 
const G4Transform3DGetObjectTransformation () const
 
void SetName (const G4String &)
 
void SetCurrentViewer (G4VViewer *)
 
virtual void SetScene (G4Scene *)
 
G4ViewerListSetViewerList ()
 
void SetModel (G4VModel *)
 
void SetMarkForClearingTransientStore (G4bool)
 
void SetTransientsDrawnThisEvent (G4bool)
 
void SetTransientsDrawnThisRun (G4bool)
 
void SetObjectTransformation (const G4Transform3D &)
 
const G4ColourGetColour (const G4Visible &)
 
const G4ColourGetColor (const G4Visible &)
 
const G4ColourGetTextColour (const G4Text &)
 
const G4ColourGetTextColor (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 &)
 
G4ModelingParametersCreateModelingParameters ()
 
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 G4Transform3DfpCurrentObjectTransformation
 
std::set< G4LogicalVolume * > fDrawnLVStore
 
- Protected Attributes inherited from G4VSceneHandler
G4VGraphicsSystemfSystem
 
const G4int fSceneHandlerId
 
G4String fName
 
G4int fViewCount
 
G4ViewerList fViewerList
 
G4VViewerfpViewer
 
G4ScenefpScene
 
G4bool fMarkForClearingTransientStore
 
G4bool fReadyForTransients
 
G4bool fTransientsDrawnThisEvent
 
G4bool fTransientsDrawnThisRun
 
G4bool fProcessingSolid
 
G4bool fProcessing2D
 
G4VModelfpModel
 
G4Transform3D fObjectTransformation
 
G4int fNestingDepth
 
const G4VisAttributesfpVisAttribs
 
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 G4VSolidCreateSectionSolid ()
 
virtual G4VSolidCreateCutawaySolid ()
 
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: