10 #include <QDomDocument> 15 string newValue = radValue;
17 if (radValue ==
"TWOPI")
27 if (radValue ==
"HALFPI")
40 string newUnit = radUnit;
42 if (radValue ==
"360" || radValue ==
"180" || radValue ==
"90" )
60 QDomElement ee = solidNode.toElement();
63 if(ee.tagName().toStdString() ==
"box"){
75 dimension = c_x +
"*" + lunits +
" " + c_y +
"*" + lunits +
" " + c_z +
"*" + lunits;
78 if(ee.tagName().toStdString() ==
"cone"){
103 dimension = c_rmin1 +
"*" + lunits +
" " + c_rmax1 +
"*" + lunits +
" " + c_rmin2 +
"*" + lunits +
" "+ c_rmax2 +
"*" + lunits +
" " + c_z +
"*" + lunits +
" " +
104 c_startphi +
"*" + aunits +
" " + c_deltaphi +
"*" + aunits;
107 if(ee.tagName().toStdString() ==
"para"){
130 dimension = c_x +
"*" + lunits +
" " + c_y +
"*" + lunits +
" " + c_z +
"*" + lunits +
" " + c_alpha +
"*" + aunits +
" " + c_theta +
"*" + aunits +
" " + c_phi +
"*" + aunits;
133 if(ee.tagName().toStdString() ==
"sphere"){
158 dimension = c_rmin +
"*" + lunits +
" " + c_rmax +
"*" + lunits +
" " 159 + c_startphi +
"*" + aunits +
" " + c_deltaphi +
"*" + aunits +
" " + c_starttheta +
"*" + aunits +
" " + c_deltatheta +
"*" + aunits;
165 if(ee.tagName().toStdString() ==
"trd"){
181 dimension = c_x1 +
"*" + lunits +
" " + c_y1 +
"*" + lunits +
" " + c_x2 +
"*" + lunits +
" " + c_y2 +
"*" + lunits +
" " + c_z +
"*" + lunits;
184 if(ee.tagName().toStdString() ==
"tube"){
207 dimension =c_rmin +
"*" + lunits +
" " + c_rmax +
"*" + lunits +
" " +c_z +
"*" + lunits +
" " + c_startphi +
"*" + aunits +
" " + c_deltaphi +
"*" + aunits;
212 if(ee.tagName().toStdString() ==
"torus"){
234 dimension = c_rmin +
"*" + lunits +
" " + c_rmax +
"*" + lunits +
" " + c_rtor +
"*" + lunits +
" " + c_startphi +
"*" + aunits +
" " + c_deltaphi +
"*" + aunits;
237 if(ee.tagName().toStdString() ==
"orb"){
244 dimension = c_rmax +
"*" + lunits;
248 if(ee.tagName().toStdString() ==
"hype"){
271 dimension = c_rmin +
"*" + lunits +
" " + c_rmax +
"*" + lunits +
" " + c_inst +
"*" + aunits +
" " + c_outst +
"*" + aunits +
" " + c_z +
"*" + lunits;
274 if(ee.tagName().toStdString() ==
"eltube"){
286 dimension = c_x +
"*" + lunits +
" " + c_y +
"*" + lunits +
" " + c_z +
"*" + lunits;
290 if(ee.tagName().toStdString() ==
"ellipsoid"){
306 dimension = c_ax +
"*" + lunits +
" " + c_by +
"*" + lunits +
" " + c_cz +
"*" + lunits+
" " + c_zcut1 +
"*" + lunits +
" " + c_zcut2 +
"*" + lunits;
313 if(ee.tagName().toStdString() ==
"paraboloid"){
325 dimension = c_rlo +
"*" + lunits +
" " + c_rhi +
"*" + lunits +
" " + c_z +
"*" + lunits;
329 if(ee.tagName().toStdString() ==
"tet"){
341 dimension = c_vertex1 +
", " + c_vertex2 +
", " + c_vertex3 +
", " + c_vertex4;
344 if(ee.tagName().toStdString() ==
"twistedbox"){
362 dimension = c_PhiTwist +
"*" + aunits +
" " + c_x +
"*" + lunits +
" " + c_y +
"*" + lunits +
" " + c_z +
"*" + lunits;
366 if(ee.tagName().toStdString() ==
"twistedtrd"){
388 dimension = c_PhiTwist +
"*" + aunits +
" " + c_x1 +
"*" + lunits +
" " + c_x2 +
"*" + lunits +
" " + c_y1 +
"*" + lunits +
" " + c_y2 +
"*" + lunits +
" " + c_z +
"*" + lunits;
392 if(ee.tagName().toStdString() ==
"twistedtrap"){
426 dimension = c_PhiTwist +
"*" + aunits +
" " + c_z +
"*" + lunits +
" " + c_theta +
"*" + aunits +
" " + c_phi +
"*" + aunits +
" " 427 + c_y1 +
"*" + lunits +
" " + c_y2 +
"*" + lunits +
" " + c_x1 +
"*" + lunits +
" " + c_x2 +
"*" + lunits +
" " 428 + c_x3 +
"*" + lunits +
" " + c_x4 +
"*" + lunits;
432 if(ee.tagName().toStdString() ==
"twistedtubs"){
453 dimension = c_endinnerrad +
"*mm " + c_endouterrad +
"*mm " + c_zlen +
"*mm " +c_phi +
"*deg " + c_twistedangle +
"*deg ";
string assignAttribute(QDomElement e, string attribute, string defaultValue)
string get_dimensions(QDomNode solidNode, map< string, double > gconstantMap)
string rad_to_deg(string radValue)
string stringify(double x)
double resolve_string(string constString, map< string, double > gconstantMap)
string rad_to_deg_u(string radValue, string radUnit)
converts the unit radian to degree if there is radian value.