#include "geometryParaSphere.h" #include #include #include namespace Geometry { GeometryParaSphere::GeometryParaSphere() { _type = GeometryParaCreateSphere; } void GeometryParaSphere::setName(QString name) { _name = name; } QString GeometryParaSphere::getName() { return _name; } void GeometryParaSphere::setRadius(double r) { _radius = r; } double GeometryParaSphere::getRadius() { return _radius; } void GeometryParaSphere::setLocation(double* loc) { for (int i = 0; i < 3; ++i) _location[i] = loc[i]; } void GeometryParaSphere::getLocation(double* loc) { for (int i = 0; i < 3; ++i) loc[i] = _location[i]; } QDomElement& GeometryParaSphere::writeToProjectFile(QDomDocument* doc, QDomElement* parent) { QDomElement element = doc->createElement("Parameter"); //创建子节点 QDomAttr typeattr = doc->createAttribute("Type"); typeattr.setValue(this->typeToString()); element.setAttributeNode(typeattr); QDomAttr nameattr = doc->createAttribute("Name"); nameattr.setValue(_name); element.setAttributeNode(nameattr); QDomElement locationEle = doc->createElement("Location"); QString locstr = QString("%1,%2,%3").arg(_location[0]).arg(_location[1]).arg(_location[2]); QDomText locText = doc->createTextNode(locstr); locationEle.appendChild(locText); element.appendChild(locationEle); QDomElement radiusEle = doc->createElement("Radius"); QString radiusStr = QString("%1").arg(_radius); QDomText rText = doc->createTextNode(radiusStr); radiusEle.appendChild(rText); element.appendChild(radiusEle); parent->appendChild(element); return element; } void GeometryParaSphere::readDataFromProjectFile(QDomElement* e) { _name = e->attribute("Name"); QDomNodeList radiusList = e->elementsByTagName("Radius"); _radius = radiusList.at(0).toElement().text().toDouble(); QDomNodeList locList = e->elementsByTagName("Location"); if (locList.size() != 1) return; QDomElement locele = locList.at(0).toElement(); QString locstr = locele.text(); QStringList locsl = locstr.split(","); if (locsl.size() != 3) return; for (int i = 0; i < 3; ++i) { _location[i] = locsl.at(i).toDouble(); } } }