19#ifndef BDSGEOMETRYFACTORY_H
20#define BDSGEOMETRYFACTORY_H
22#include "BDSGeometryType.hh"
23#include "BDSSDType.hh"
61 const G4String& formatAndFilePath,
62 std::map<G4String, G4Colour*>* colourMapping =
nullptr,
63 G4bool autoColour =
true,
64 G4double suggestedLength = 0,
65 G4double suggestedHorizontalWidth = 0,
66 std::vector<G4String>* namedVacuumVolumes =
nullptr,
67 G4bool makeSensitive =
true,
68 BDSSDType sensitivityType = BDSSDType::energydep,
69 BDSSDType vacuumSensitivityType = BDSSDType::energydepvacuum,
70 G4bool stripOuterVolumeAndMakeAssembly =
false,
71 G4UserLimits* userLimitsToAttachToAllLVs =
nullptr,
72 G4bool dontReloadGeometry =
false);
A loaded piece of externally provided geometry.
Base class for external geometry loading factories.
Interface to external geometry construction.
BDSGeometryExternal * BuildGeometry(G4String componentName, const G4String &formatAndFilePath, std::map< G4String, G4Colour * > *colourMapping=nullptr, G4bool autoColour=true, G4double suggestedLength=0, G4double suggestedHorizontalWidth=0, std::vector< G4String > *namedVacuumVolumes=nullptr, G4bool makeSensitive=true, BDSSDType sensitivityType=BDSSDType::energydep, BDSSDType vacuumSensitivityType=BDSSDType::energydepvacuum, G4bool stripOuterVolumeAndMakeAssembly=false, G4UserLimits *userLimitsToAttachToAllLVs=nullptr, G4bool dontReloadGeometry=false)
static BDSGeometryFactory * Instance()
Singleton accessor.
static BDSGeometryFactory * instance
Singleton instance.
BDSGeometryFactoryBase * gdml
Factory instance.
std::map< std::pair< std::string, std::string >, BDSGeometryExternal * > registry
BDSGeometryFactoryBase * GetAppropriateFactory(BDSGeometryType type)
Get the appropriate geometry factory.
BDSGeometryFactory()
Private accessor as singleton.
std::set< BDSGeometryExternal * > storage
BDSGeometryFactoryBase * sql
Factory instance.
Improve type-safety of native enum data type in C++.