68{
69#ifdef G4VERBOSE
71 {
73 }
74#endif
75
77 for( size_t ii = 0; ii < wl0.length(); ii++ )
78 {
79 wl0[ii] = toupper( wl0[ii] );
80 }
81
82
83 if( wl0 == ":P" )
84 {
86
87
88 }
89 else if( wl0 == ":PS" )
90 {
92
93
94 }
95 else if( wl0 == ":ISOT" )
96 {
100
101
102 }
103 else if( wl0 == ":ELEM" )
104 {
108
109
110 }
111 else if( wl0 == ":ELEM_FROM_ISOT" )
112 {
113
117
118
119 }
120 else if( wl0 == ":MATE" )
121 {
122
126
127
128 }
129 else if( (wl0 == ":MIXT") || (wl0 == ":MIXT_BY_WEIGHT") )
130 {
134
135
136 }
137 else if( wl0 == ":MIXT_BY_NATOMS" )
138 {
142
143
144 }
145 else if( wl0 == ":MIXT_BY_VOLUME" )
146 {
150
151
152
153 }
154 else if( wl0 == ":MATE_MEE" )
155 {
158 if( mate == 0 )
159 {
160 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
162 return false;
163 }
165
166
167 }
168 else if( wl0 == ":MATE_STATE" )
169 {
172 if( mate == 0 )
173 {
174 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
176 }
178
179
180 }
181 else if( wl0 == ":MATE_TEMPERATURE" )
182 {
185 if( mate == 0 )
186 {
187 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
189 }
191
192
193 }
194 else if( wl0 == ":MATE_PRESSURE" )
195 {
198 if( mate == 0 )
199 {
200 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
202 }
204
205
206 }
207 else if( wl0 == ":SOLID" )
208 {
210
211
212 }
213 else if( wl0 == ":VOLU" )
214 {
217
218
219 }
220 else if( wl0 == ":PLACE" )
221 {
225
226
227 }
228 else if( wl0 == ":PLACE_PARAM" )
229 {
233
234
235 }
236 else if( (wl0 == ":DIV_NDIV") || (wl0 == ":DIV_WIDTH")
237 || (wl0 == ":DIV_NDIV_WIDTH") )
238 {
239
242
243
244 }
245 else if( wl0 == ":REPL" )
246 {
250
251
252 }
253 else if( wl0 == ":VOLU_ASSEMBLY" )
254 {
257
258
259 }
260 else if( wl0 == ":PLACE_ASSEMBLY" )
261 {
265
266
267 }
268 else if( wl0 == ":ROTM" )
269 {
270
271
275
276
277 }
278 else if( wl0 == ":VIS" )
279 {
280 std::vector<G4tgrVolume*> vols =
282 for( size_t ii = 0; ii < vols.size(); ii++ )
283 {
284 vols[ii]->AddVisibility( wl );
285 }
286
287
288 }
289 else if( (wl0 == ":COLOUR") || (wl0 == ":COLOR") )
290 {
291 std::vector<G4tgrVolume*> vols =
293 for( size_t ii = 0; ii < vols.size(); ii++ )
294 {
295 vols[ii]->AddRGBColour( wl );
296 }
297
298
299 }
300 else if( wl0 == ":CHECK_OVERLAPS" )
301 {
302 std::vector<G4tgrVolume*> vols =
304 for( size_t ii = 0; ii < vols.size(); ii++ )
305 {
306 vols[ii]->AddCheckOverlaps( wl );
307 }
308
309 }
310 else
311 {
312 return 0;
313 }
314
315 return 1;
316}
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)
void RegisterMe(G4tgrSolid *vol)
G4tgrSolid * CreateSolid(const std::vector< G4String > &wl, G4bool bVOLUtag)
virtual G4tgrPlace * AddPlace(const std::vector< G4String > &wl)
G4tgrPlaceParameterisation * AddPlaceParam(const std::vector< G4String > &wl)
G4tgrPlaceDivRep * AddPlaceReplica(const std::vector< G4String > &wl)