Skip to content
Snippets Groups Projects
Commit 810db2ed authored by Andrea Dell'Acqua's avatar Andrea Dell'Acqua
Browse files

bug fix in MakeMaterial.cxx.

parent d490a5d4
Branches
Tags
1 merge request!87bug fix in MakeMaterial.cxx.
...@@ -97,32 +97,34 @@ char *toRelease; ...@@ -97,32 +97,34 @@ char *toRelease;
if (gmxUtil.matManager) if (gmxUtil.matManager)
{ {
name=XMLString::transcode(idref); name=XMLString::transcode(idref);
if (!gmxUtil.matManager->isElementDefined(name)) if (!gmxUtil.matManager->isElementDefined(name))
{ {
//std::cout<<"adding element "<<name<<" to the material manager"<<std::endl; GeoElement *temp=(GeoElement *) gmxUtil.tagHandler.element.process(elem, gmxUtil);
GeoElement *temp=(GeoElement *) gmxUtil.tagHandler.element.process(elem, gmxUtil); //gmxUtil.matManager->addElement(temp);
//gmxUtil.matManager->addElement(temp); }
}
geoElem=const_cast<GeoElement*>(gmxUtil.matManager->getElement(name)); geoElem=const_cast<GeoElement*>(gmxUtil.matManager->getElement(name));
XMLString::release(&name); XMLString::release(&name);
} }
else else
{ {
geoElem=(const GeoElement *) gmxUtil.tagHandler.element.process(elem, gmxUtil); geoElem=(const GeoElement *) gmxUtil.tagHandler.element.process(elem, gmxUtil);
} if (!geoElem) std::cout<<"could not retrieve element!!!!!"<<std::endl;
}
fracString = XMLString::transcode(elRef->getAttribute(fraction_tmp)); fracString = XMLString::transcode(elRef->getAttribute(fraction_tmp));
fraction = gmxUtil.evaluate(fracString); fraction = gmxUtil.evaluate(fracString);
XMLString::release(&fracString); XMLString::release(&fracString);
//std::cout << "\t adding element "<<geoElem<<" fraction "<<fraction<<std::endl;
material->add(geoElem, fraction); material->add(geoElem, fraction);
} }
// //
// Add my chemical contents // Add my chemical contents
// //
DOMNodeList *chemRefs = element->getElementsByTagName(chemicalref_tmp); DOMNodeList *chemRefs = element->getElementsByTagName(chemicalref_tmp);
int nChemRefs = chemRefs->getLength(); int nChemRefs = chemRefs->getLength();
for (int i = 0; i < nChemRefs; ++i) { for (int i = 0; i < nChemRefs; ++i) {
DOMElement *chemRef = dynamic_cast<DOMElement *>(chemRefs->item(i)); DOMElement *chemRef = dynamic_cast<DOMElement *>(chemRefs->item(i));
idref = chemRef->getAttribute(ref); idref = chemRef->getAttribute(ref);
...@@ -191,6 +193,8 @@ char *toRelease; ...@@ -191,6 +193,8 @@ char *toRelease;
// //
elRefs = element->getElementsByTagName(materialref_tmp); elRefs = element->getElementsByTagName(materialref_tmp);
nElRefs = elRefs->getLength(); nElRefs = elRefs->getLength();
for (int i = 0; i < nElRefs; ++i) { for (int i = 0; i < nElRefs; ++i) {
DOMElement *elRef = dynamic_cast<DOMElement *>(elRefs->item(i)); DOMElement *elRef = dynamic_cast<DOMElement *>(elRefs->item(i));
idref = elRef->getAttribute(ref); idref = elRef->getAttribute(ref);
...@@ -198,6 +202,8 @@ char *toRelease; ...@@ -198,6 +202,8 @@ char *toRelease;
toRelease = XMLString::transcode(elem->getNodeName()); toRelease = XMLString::transcode(elem->getNodeName());
string nodeName(toRelease); string nodeName(toRelease);
XMLString::release(&toRelease); XMLString::release(&toRelease);
if (nodeName != string("material")) { if (nodeName != string("material")) {
msglog << MSG::FATAL << msglog << MSG::FATAL <<
...@@ -214,8 +220,10 @@ char *toRelease; ...@@ -214,8 +220,10 @@ char *toRelease;
} }
else else
{ {
geoMaterial=(const GeoMaterial *) gmxUtil.tagHandler.element.process(elem, gmxUtil);
} geoMaterial=(const GeoMaterial *) gmxUtil.tagHandler.material.process(elem, gmxUtil);
if (!geoMaterial) std::cout<<"something is wrong!!!!"<<std::endl;
}
fracString = XMLString::transcode(elRef->getAttribute(fraction_tmp)); fracString = XMLString::transcode(elRef->getAttribute(fraction_tmp));
fraction = gmxUtil.evaluate(fracString); fraction = gmxUtil.evaluate(fracString);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment