Skip to content
Snippets Groups Projects
  • Andrea Dell'Acqua's avatar
    3f73147a
    first set of improvements to GeoModelXML. Added EllipticalTube (note: no... · 3f73147a
    Andrea Dell'Acqua authored
    first set of improvements to GeoModelXML. Added EllipticalTube (note: no visualisation yet) and TwistedTrapezoid.
    Corresponding changes in GmxUtil (.h and .cxx) and in geomodeldtd. A spurious copy of geomodel.dtd was removed.
    
     Changes to be committed:
    
    	modified:   GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/GmxUtil.h
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/MakeEllipticalTube.h
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/MakeTwistedTrap.h
    	modified:   GeoModelTools/GeoModelXML/GeoModelXml/data/geomodel.dtd
    	modified:   GeoModelTools/GeoModelXML/GeoModelXml/src/GmxUtil.cxx
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/src/MakeEllipticalTube.cxx
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/src/MakeTwistedTrap.cxx
    	deleted:    GeoModelTools/GeoModelXML/data/geomodel.dtd
    3f73147a
    History
    first set of improvements to GeoModelXML. Added EllipticalTube (note: no...
    Andrea Dell'Acqua authored
    first set of improvements to GeoModelXML. Added EllipticalTube (note: no visualisation yet) and TwistedTrapezoid.
    Corresponding changes in GmxUtil (.h and .cxx) and in geomodeldtd. A spurious copy of geomodel.dtd was removed.
    
     Changes to be committed:
    
    	modified:   GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/GmxUtil.h
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/MakeEllipticalTube.h
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/MakeTwistedTrap.h
    	modified:   GeoModelTools/GeoModelXML/GeoModelXml/data/geomodel.dtd
    	modified:   GeoModelTools/GeoModelXML/GeoModelXml/src/GmxUtil.cxx
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/src/MakeEllipticalTube.cxx
    	new file:   GeoModelTools/GeoModelXML/GeoModelXml/src/MakeTwistedTrap.cxx
    	deleted:    GeoModelTools/GeoModelXML/data/geomodel.dtd
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
MakeEllipticalTube.cxx 911 B
/*
  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/

#include "GeoModelXml/shape/MakeEllipticalTube.h"
#include <xercesc/dom/DOM.hpp>
#include "GeoModelKernel/RCBase.h"
#include "GeoModelKernel/GeoEllipticalTube.h"
#include "xercesc/util/XMLString.hpp"
#include "GeoModelXml/GmxUtil.h"

using namespace xercesc;

MakeEllipticalTube::MakeEllipticalTube() {}

const RCBase * MakeEllipticalTube::make(const xercesc::DOMElement *element, GmxUtil &gmxUtil) const {
const int nParams = 3; 
char const *parName[nParams] = {"xhalflength", "yhalflength", "zhalflength"};
double p[nParams];
char *toRelease;

    for (int i = 0; i < nParams; ++i) {
        toRelease = XMLString::transcode(element->getAttribute(XMLString::transcode(parName[i])));
        p[i] = gmxUtil.evaluate(toRelease);
        XMLString::release(&toRelease);
    }

    return new GeoEllipticalTube(p[0], p[1], p[2]);
}