diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h index 7bac7dfa87f5f188905b3dc88479a14ffe3b2968..5bdf2cf62e495f35dcfc2c6e42bf268d5168353a 100644 --- a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h +++ b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h @@ -10,11 +10,14 @@ XERCES_CPP_NAMESPACE_BEGIN class DOMElement; XERCES_CPP_NAMESPACE_END +class GmxUtil; + class AddPlane { public: AddPlane() {}; ~AddPlane() {}; void process(const xercesc::DOMElement *element, double &zPlane, double &rMinPlane, double &rMaxPlane); + GmxUtil* gmxUtil=nullptr; }; diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx index 77eb535070d9fb9f9adc151ac4c6dba28951928a..4ae47791de96cd745c976561802dd0e350198828 100644 --- a/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx +++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx @@ -3,6 +3,7 @@ */ #include "GeoModelXml/shape/AddPlane.h" +#include "GeoModelXml/GmxUtil.h" #include <string> #include <sstream> @@ -13,12 +14,17 @@ using namespace xercesc; void AddPlane::process(const xercesc::DOMElement *element, double &zPlane, double &rMinPlane, double &rMaxPlane) { + if (!gmxUtil) + { + std::cout<<"This is AddPlane::process()!! gmxUtil is 0!!!!!"<<std::endl; + return; + } XMLCh * zplane_tmp = XMLString::transcode("zplane"); - std::istringstream(XMLString::transcode(element->getAttribute(zplane_tmp))) >> zPlane; + zPlane=gmxUtil->evaluate(XMLString::transcode(element->getAttribute(zplane_tmp))); XMLCh * rminplane_tmp = XMLString::transcode("rminplane"); - std::istringstream(XMLString::transcode(element->getAttribute(rminplane_tmp))) >> rMinPlane; + rMinPlane=gmxUtil->evaluate(XMLString::transcode(element->getAttribute(rminplane_tmp))); XMLCh * rmaxplane_tmp = XMLString::transcode("rmaxplane"); - std::istringstream(XMLString::transcode(element->getAttribute(rmaxplane_tmp))) >> rMaxPlane; + rMaxPlane=gmxUtil->evaluate(XMLString::transcode(element->getAttribute(rmaxplane_tmp))); XMLString::release(&zplane_tmp); XMLString::release(&rminplane_tmp); XMLString::release(&rmaxplane_tmp); diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx index 4b98472a34cc87373c5c39110dacd0b6fdb78e25..20e7b88513a6a6738b6e3a5b6593832e6e303337 100644 --- a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx +++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx @@ -31,6 +31,7 @@ char *toRelease; // // Add planes // + if (!gmxUtil.tagHandler.addplane.gmxUtil) gmxUtil.tagHandler.addplane.gmxUtil=&gmxUtil; double zPlane = 0.; double rMinPlane = 0.; double rMaxPlane = 0.; diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx index a73b002c76279d6b03cca1bc818d26c9aa96dd6b..59afebcf1a01daed4f40ee95b629db6b3694702f 100644 --- a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx +++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx @@ -31,6 +31,7 @@ char *toRelease; // // Add planes // + if (!gmxUtil.tagHandler.addplane.gmxUtil) gmxUtil.tagHandler.addplane.gmxUtil=&gmxUtil; double zPlane = 0.; double rMinPlane = 0.; double rMaxPlane = 0.;