37#ifndef G4VSCENEHANDLER_HH
38#define G4VSCENEHANDLER_HH
300 template <
class T>
void AddSolidT (
const T& solid);
366 , std::multimap<const G4Material*,const G4ThreeVector>& positionByMaterial
367 , std::map<const G4Material*,NameAndVisAtts>& nameAndVisAttsByMaterial)
370 , fPositionByMaterial(positionByMaterial)
371 , fNameAndVisAttsByMaterial(nameAndVisAttsByMaterial)
376 void ProcessVolume(
const G4VSolid&)
override {
381 std::multimap<const G4Material*,const G4ThreeVector>& fPositionByMaterial;
382 std::map<const G4Material*,NameAndVisAtts>& fNameAndVisAttsByMaterial;
390 , std::multimap<
const G4Material*,std::vector<G4ThreeVector>>& verticesByMaterial
391 , std::map<const G4Material*,NameAndVisAtts>& nameAndVisAttsByMaterial)
394 , fVerticesByMaterial(verticesByMaterial)
395 , fNameAndVisAttsByMaterial(nameAndVisAttsByMaterial)
400 void ProcessVolume(
const G4VSolid&)
override {
405 std::multimap<const G4Material*,std::vector<G4ThreeVector>>& fVerticesByMaterial;
406 std::map<const G4Material*,NameAndVisAtts>& fNameAndVisAttsByMaterial;
470#include "G4VSceneHandler.icc"
CLHEP::Hep3Vector G4ThreeVector
G4Box is a cuboid of given half lengths dx,dy,dz. The Box is centred on the origin with sides paralle...
G4Cons is, in the general case, a Phi segment of a cone, with half-length fDz, inner and outer radii ...
G4DisplacedSolid is a solid that has been shifted from its original frame of reference to a new one....
G4Ellipsoid is an ellipsoidal solid, optionally cut at a given Z.
G4Orb represents a full sphere.
G4Para represents a parallelepiped, essentially a box with half lengths dx,dy,dz 'skewed' so that the...
G4Polycone represents a composed closed shape (PCON) made of cones and cylinders, along the Z axis wi...
G4Polyhedra represents a composed closed polyhedra (PGON) made of planar sizes along the Z axis,...
void AddSolid(const G4Box &solid)
G4Sphere is, in the general case, a section of a spherical shell, between specified phi and theta ang...
G4TessellatedSolid is a solid defined by a number of facets. It is important that the supplied facets...
G4Torus represents a torus or torus segment with curved sides parallel to the z-axis....
G4Trap is a general trapezoid: the faces perpendicular to the Z planes are trapezia,...
G4Trd is a trapezoid with the X and Y dimensions varying along Z.
G4Tubs is a tube or tube segment with curved sides parallel to the Z-axis. The tube has a specified h...
PseudoSceneFor3DRectMeshPositions(G4PhysicalVolumeModel *pvModel, const G4Mesh *pMesh, std::multimap< const G4Material *, const G4ThreeVector > &positionByMaterial, std::map< const G4Material *, NameAndVisAtts > &nameAndVisAttsByMaterial)
PseudoSceneForTetVertices(G4PhysicalVolumeModel *pvModel, const G4Mesh *pMesh, std::multimap< const G4Material *, std::vector< G4ThreeVector > > &verticesByMaterial, std::map< const G4Material *, NameAndVisAtts > &nameAndVisAttsByMaterial)
virtual void BeginModeling()
G4int GetNumberOfCloudPoints(const G4VisAttributes *) const
const G4Colour & GetColor(const G4Visible &)
friend std::ostream & operator<<(std::ostream &os, const G4VSceneHandler &s)
G4int GetNoOfSides(const G4VisAttributes *)
virtual void AddPrimitive(const G4Polyhedron &)=0
void DrawTetMeshAsSurfaces(const G4Mesh &)
virtual void ClearTransientStore()
G4bool GetTransientsDrawnThisEvent() const
void SetTransientsDrawnThisRun(G4bool)
void LoadAtts(const G4Visible &, G4AttHolder *)
void DrawEvent(const G4Event *)
G4ModelingParameters * CreateModelingParameters()
const G4Colour & GetTextColour(const G4Text &)
void SetMarkForClearingTransientStore(G4bool)
const G4Colour & GetTextColor(const G4Text &)
G4VModel * GetModel() const
const G4Colour & GetColour()
G4VGraphicsSystem * GetGraphicsSystem() const
void Draw3DRectMeshAsDots(const G4Mesh &)
virtual void AddPrimitive(const G4Circle &)=0
G4double GetMarkerRadius(const G4VMarker &, MarkerSizeType &)
const G4ViewerList & GetViewerList() const
void AddSolidT(const T &solid)
G4bool IsReadyForTransients() const
G4Scene * GetScene() const
G4Transform3D fObjectTransformation
virtual void EndPrimitives()
G4bool fTransientsDrawnThisEvent
G4VViewer * GetCurrentViewer() const
void AddSolidWithAuxiliaryEdges(const T &solid)
G4int IncrementViewCount()
virtual G4DisplacedSolid * CreateSectionSolid()
virtual void AddPrimitive(const G4Text &)=0
G4ViewerList & SetViewerList()
virtual void EndModeling()
std::map< G4VPhysicalVolume *, G4String > fProblematicVolumes
const G4int fSceneHandlerId
void SetName(const G4String &)
virtual const G4VisExtent & GetExtent() const
G4int GetSceneHandlerId() const
virtual void ProcessScene()
G4double GetMarkerSize(const G4VMarker &, MarkerSizeType &)
void SetObjectTransformation(const G4Transform3D &)
virtual void ProcessTransients()
void SetModel(G4VModel *)
virtual void PreAddSolid(const G4Transform3D &objectTransformation, const G4VisAttributes &)
G4VSceneHandler(G4VGraphicsSystem &system, G4int id, const G4String &name="")
G4bool fTransientsDrawnThisRun
virtual void PostAddSolid()
const G4String & GetName() const
void AddViewerToList(G4VViewer *pView)
void SetTransientsDrawnThisEvent(G4bool)
virtual void EndPrimitives2D()
virtual void SetScene(G4Scene *)
void DrawEndOfRunModels()
G4bool fMarkForClearingTransientStore
const G4Transform3D & GetObjectTransformation() const
const G4VisAttributes * fpVisAttribs
virtual void BeginPrimitives2D(const G4Transform3D &objectTransformation=G4Transform3D())
G4ThreeVector GetPointInBox(const G4ThreeVector &pos, G4double halfX, G4double halfY, G4double halfZ) const
virtual void RequestPrimitives(const G4VSolid &solid)
G4double GetMarkerDiameter(const G4VMarker &, MarkerSizeType &)
virtual void AddPrimitive(const G4Square &)=0
const G4Colour & GetColor()
G4bool fReadyForTransients
G4ViewParameters::DrawingStyle GetDrawingStyle(const G4VisAttributes *)
G4bool GetTransientsDrawnThisRun() const
void RemoveViewerFromList(G4VViewer *pView)
virtual G4DisplacedSolid * CreateCutawaySolid()
void DrawTetMeshAsDots(const G4Mesh &)
virtual void BeginPrimitives(const G4Transform3D &objectTransformation=G4Transform3D())
G4double GetLineWidth(const G4VisAttributes *)
G4ThreeVector GetPointInTet(const std::vector< G4ThreeVector > &vertices) const
G4int GetViewCount() const
G4VGraphicsSystem & fSystem
virtual void AddSolid(const G4Box &)
virtual void ClearStore()
void Draw3DRectMeshAsSurfaces(const G4Mesh &)
void SetCurrentViewer(G4VViewer *)
virtual void AddCompound(const G4VTrajectory &)
virtual ~G4VSceneHandler()
virtual void AddPrimitive(const G4Polyline &)=0
const G4Transform3D fIdentityTransformation
G4bool GetMarkForClearingTransientStore() const
G4bool GetAuxEdgeVisible(const G4VisAttributes *)
void StandardSpecialMeshRendering(const G4Mesh &)
G4VSolid is an abstract base class for solids, physical shapes that can be tracked through....
NameAndVisAtts(const G4String &name="", const G4VisAttributes &visAtts=G4VisAttributes())