77 for(
size_t ii = 0; ii < wl0.length(); ii++ )
79 wl0[ii] = toupper( wl0[ii] );
89 else if( wl0 ==
":PS" )
95 else if( wl0 ==
":ISOT" )
103 else if( wl0 ==
":ELEM" )
111 else if( wl0 ==
":ELEM_FROM_ISOT" )
120 else if( wl0 ==
":MATE" )
129 else if( (wl0 ==
":MIXT") || (wl0 ==
":MIXT_BY_WEIGHT") )
137 else if( wl0 ==
":MIXT_BY_NATOMS" )
145 else if( wl0 ==
":MIXT_BY_VOLUME" )
154 else if( wl0 ==
":MATE_MEE" )
160 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
168 else if( wl0 ==
":MATE_STATE" )
174 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
181 else if( wl0 ==
":MATE_TEMPERATURE" )
187 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
194 else if( wl0 ==
":MATE_PRESSURE" )
200 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
207 else if( wl0 ==
":SOLID" )
213 else if( wl0 ==
":VOLU" )
220 else if( wl0 ==
":PLACE" )
228 else if( wl0 ==
":PLACE_PARAM" )
236 else if( (wl0 ==
":DIV_NDIV") || (wl0 ==
":DIV_WIDTH")
237 || (wl0 ==
":DIV_NDIV_WIDTH") )
245 else if( wl0 ==
":REPL" )
253 else if( wl0 ==
":VOLU_ASSEMBLY" )
260 else if( wl0 ==
":PLACE_ASSEMBLY" )
268 else if( wl0 ==
":ROTM" )
278 else if( wl0 ==
":VIS" )
280 std::vector<G4tgrVolume*> vols =
282 for(
size_t ii = 0; ii < vols.size(); ii++ )
284 vols[ii]->AddVisibility( wl );
289 else if( (wl0 ==
":COLOUR") || (wl0 ==
":COLOR") )
291 std::vector<G4tgrVolume*> vols =
293 for(
size_t ii = 0; ii < vols.size(); ii++ )
295 vols[ii]->AddRGBColour( wl );
300 else if( wl0 ==
":CHECK_OVERLAPS" )
302 std::vector<G4tgrVolume*> vols =
304 for(
size_t ii = 0; ii < vols.size(); ii++ )
306 vols[ii]->AddCheckOverlaps( wl );
324 if( vol->
GetType() ==
"VOLDivision" )
328 "Using 'PLACE' for a volume created by a division !");
virtual G4bool ProcessLine(const std::vector< G4String > &wl)
virtual ~G4tgrLineProcessor()
G4tgrVolume * FindVolume(const G4String &volname)
G4tgrMaterial * FindMaterial(const G4String &name) const
static G4tgrMaterialFactory * GetInstance()
G4tgrElementFromIsotopes * AddElementFromIsotopes(const std::vector< G4String > &wl)
G4tgrElementSimple * AddElementSimple(const std::vector< G4String > &wl)
G4tgrMaterialMixture * AddMaterialMixture(const std::vector< G4String > &wl, const G4String &mixtType)
G4tgrIsotope * AddIsotope(const std::vector< G4String > &wl)
G4tgrMaterialSimple * AddMaterialSimple(const std::vector< G4String > &wl)
void SetState(G4String val)
void SetTemperature(G4double val)
void SetPressure(G4double val)
void SetIonisationMeanExcitationEnergy(G4double mee)
static G4int GetVerboseLevel()
void AddParameterNumber(const std::vector< G4String > &wl, G4bool mustBeNew=0)
void AddParameterString(const std::vector< G4String > &wl, G4bool mustBeNew=0)
static G4tgrParameterMgr * GetInstance()
G4tgrRotationMatrix * AddRotMatrix(const std::vector< G4String > &wl)
static G4tgrRotationMatrixFactory * GetInstance()
static G4String GetString(const G4String &str)
static void DumpVS(const std::vector< G4String > &wl, const char *msg)
static G4double GetDouble(const G4String &str, G4double unitval=1.)
std::vector< G4tgrVolume * > FindVolumes(const G4String &volname, G4bool exists)
G4tgrVolume * FindVolume(const G4String &volname, G4bool exists=false)
void RegisterMe(G4tgrSolid *vol)
G4tgrSolid * CreateSolid(const std::vector< G4String > &wl, G4bool bVOLUtag)
static G4tgrVolumeMgr * GetInstance()
virtual G4tgrPlace * AddPlace(const std::vector< G4String > &wl)
G4tgrPlaceParameterisation * AddPlaceParam(const std::vector< G4String > &wl)
G4tgrPlaceDivRep * AddPlaceReplica(const std::vector< G4String > &wl)
const G4String & GetType() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)