Merge pull request #19907 from benj5378/getAttribute

Base: make getAttribute template
This commit is contained in:
Chris Hennes
2025-05-12 10:39:55 -05:00
committed by GitHub
64 changed files with 834 additions and 677 deletions

View File

@@ -351,6 +351,6 @@ void Command::Save(Writer& writer) const
void Command::Restore(XMLReader& reader)
{
reader.readElement("Command");
std::string gcode = reader.getAttribute("gcode");
std::string gcode = reader.getAttribute<const char*>("gcode");
setFromGCode(gcode);
}

View File

@@ -507,7 +507,7 @@ void Toolpath::SaveDocFile(Base::Writer& writer) const
void Toolpath::Restore(XMLReader& reader)
{
reader.readElement("Path");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read

View File

@@ -104,19 +104,19 @@ void PropertyPath::Restore(Base::XMLReader& reader)
{
reader.readElement("Path");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
reader.addFile(file.c_str(), this);
}
if (reader.hasAttribute("version")) {
int version = reader.getAttributeAsInteger("version");
int version = reader.getAttribute<long>("version");
if (version >= Toolpath::SchemaVersion) {
reader.readElement("Center");
double x = reader.getAttributeAsFloat("x");
double y = reader.getAttributeAsFloat("y");
double z = reader.getAttributeAsFloat("z");
double x = reader.getAttribute<double>("x");
double y = reader.getAttribute<double>("y");
double z = reader.getAttribute<double>("z");
Base::Vector3d center(x, y, z);
_Path.setCenter(center);
}

View File

@@ -2343,32 +2343,32 @@ void FemMesh::Save(Base::Writer& writer) const
void FemMesh::Restore(Base::XMLReader& reader)
{
reader.readElement("FemMesh");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
reader.addFile(file.c_str(), this);
}
if (reader.hasAttribute("a11")) {
_Mtrx[0][0] = reader.getAttributeAsFloat("a11");
_Mtrx[0][1] = reader.getAttributeAsFloat("a12");
_Mtrx[0][2] = reader.getAttributeAsFloat("a13");
_Mtrx[0][3] = reader.getAttributeAsFloat("a14");
_Mtrx[0][0] = reader.getAttribute<double>("a11");
_Mtrx[0][1] = reader.getAttribute<double>("a12");
_Mtrx[0][2] = reader.getAttribute<double>("a13");
_Mtrx[0][3] = reader.getAttribute<double>("a14");
_Mtrx[1][0] = reader.getAttributeAsFloat("a21");
_Mtrx[1][1] = reader.getAttributeAsFloat("a22");
_Mtrx[1][2] = reader.getAttributeAsFloat("a23");
_Mtrx[1][3] = reader.getAttributeAsFloat("a24");
_Mtrx[1][0] = reader.getAttribute<double>("a21");
_Mtrx[1][1] = reader.getAttribute<double>("a22");
_Mtrx[1][2] = reader.getAttribute<double>("a23");
_Mtrx[1][3] = reader.getAttribute<double>("a24");
_Mtrx[2][0] = reader.getAttributeAsFloat("a31");
_Mtrx[2][1] = reader.getAttributeAsFloat("a32");
_Mtrx[2][2] = reader.getAttributeAsFloat("a33");
_Mtrx[2][3] = reader.getAttributeAsFloat("a34");
_Mtrx[2][0] = reader.getAttribute<double>("a31");
_Mtrx[2][1] = reader.getAttribute<double>("a32");
_Mtrx[2][2] = reader.getAttribute<double>("a33");
_Mtrx[2][3] = reader.getAttribute<double>("a34");
_Mtrx[3][0] = reader.getAttributeAsFloat("a41");
_Mtrx[3][1] = reader.getAttributeAsFloat("a42");
_Mtrx[3][2] = reader.getAttributeAsFloat("a43");
_Mtrx[3][3] = reader.getAttributeAsFloat("a44");
_Mtrx[3][0] = reader.getAttribute<double>("a41");
_Mtrx[3][1] = reader.getAttribute<double>("a42");
_Mtrx[3][2] = reader.getAttribute<double>("a43");
_Mtrx[3][3] = reader.getAttribute<double>("a44");
}
}

View File

@@ -331,7 +331,7 @@ void PropertyPostDataObject::Restore(Base::XMLReader& reader)
return;
}
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
reader.addFile(file.c_str(), this);

View File

@@ -646,7 +646,7 @@ void PropertyDistanceList::Save(Base::Writer& writer) const
void PropertyDistanceList::Restore(Base::XMLReader& reader)
{
reader.readElement("FloatList");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read

View File

@@ -91,7 +91,7 @@ void PropertyMaterial::Restore(Base::XMLReader& reader)
// read my Element
reader.readElement("PropertyMaterial");
// get the value of my Attribute
auto uuid = reader.getAttribute("uuid");
auto uuid = reader.getAttribute<const char*>("uuid");
setValue(*MaterialManager::getManager().getMaterial(QString::fromLatin1(uuid)));
}

View File

@@ -867,29 +867,29 @@ void MeshInput::LoadXML(Base::XMLReader& reader)
// reader.readElement("Mesh");
reader.readElement("Points");
int Cnt = reader.getAttributeAsInteger("Count");
int Cnt = reader.getAttribute<long>("Count");
cPoints.resize(Cnt);
for (int i = 0; i < Cnt; i++) {
reader.readElement("P");
cPoints[i].x = (float)reader.getAttributeAsFloat("x");
cPoints[i].y = (float)reader.getAttributeAsFloat("y");
cPoints[i].z = (float)reader.getAttributeAsFloat("z");
cPoints[i].x = (float)reader.getAttribute<double>("x");
cPoints[i].y = (float)reader.getAttribute<double>("y");
cPoints[i].z = (float)reader.getAttribute<double>("z");
}
reader.readEndElement("Points");
reader.readElement("Faces");
Cnt = reader.getAttributeAsInteger("Count");
Cnt = reader.getAttribute<long>("Count");
cFacets.resize(Cnt);
for (int i = 0; i < Cnt; i++) {
reader.readElement("F");
cFacets[i]._aulPoints[0] = reader.getAttributeAsInteger("p0");
cFacets[i]._aulPoints[1] = reader.getAttributeAsInteger("p1");
cFacets[i]._aulPoints[2] = reader.getAttributeAsInteger("p2");
cFacets[i]._aulNeighbours[0] = reader.getAttributeAsInteger("n0");
cFacets[i]._aulNeighbours[1] = reader.getAttributeAsInteger("n1");
cFacets[i]._aulNeighbours[2] = reader.getAttributeAsInteger("n2");
cFacets[i]._aulPoints[0] = reader.getAttribute<long>("p0");
cFacets[i]._aulPoints[1] = reader.getAttribute<long>("p1");
cFacets[i]._aulPoints[2] = reader.getAttribute<long>("p2");
cFacets[i]._aulNeighbours[0] = reader.getAttribute<long>("n0");
cFacets[i]._aulNeighbours[1] = reader.getAttribute<long>("n1");
cFacets[i]._aulNeighbours[2] = reader.getAttribute<long>("n2");
}
reader.readEndElement("Faces");

View File

@@ -135,7 +135,7 @@ void PropertyNormalList::Save(Base::Writer& writer) const
void PropertyNormalList::Restore(Base::XMLReader& reader)
{
reader.readElement("VectorList");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
@@ -326,7 +326,7 @@ void PropertyCurvatureList::Save(Base::Writer& writer) const
void PropertyCurvatureList::Restore(Base::XMLReader& reader)
{
reader.readElement("CurvatureList");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
@@ -598,7 +598,7 @@ void PropertyMaterial::Restore(Base::XMLReader& reader)
{
reader.readElement("Material");
if (reader.hasAttribute("file")) {
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
@@ -896,7 +896,7 @@ void PropertyMeshKernel::Save(Base::Writer& writer) const
void PropertyMeshKernel::Restore(Base::XMLReader& reader)
{
reader.readElement("Mesh");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (file.empty()) {
// read XML

View File

@@ -87,16 +87,16 @@ App::DocumentObjectExecReturn *Box::execute()
void Box::Restore(Base::XMLReader &reader)
{
reader.readElement("Properties");
int Cnt = reader.getAttributeAsInteger("Count");
int Cnt = reader.getAttribute<long>("Count");
int transientCount = 0;
if(reader.hasAttribute("TransientCount"))
transientCount = reader.getAttributeAsUnsigned("TransientCount");
transientCount = reader.getAttribute<unsigned long>("TransientCount");
for (int i=0;i<transientCount; ++i) {
reader.readElement("_Property");
App::Property* prop = getPropertyByName(reader.getAttribute("name"));
App::Property* prop = getPropertyByName(reader.getAttribute<const char*>("name"));
if(prop && reader.hasAttribute("status"))
prop->setStatusValue(reader.getAttributeAsUnsigned("status"));
prop->setStatusValue(reader.getAttribute<unsigned long>("status"));
}
bool location_xyz = false;
@@ -109,15 +109,15 @@ void Box::Restore(Base::XMLReader &reader)
Axis.setValue(0.0f,0.0f,1.0f);
for (int i=0 ;i<Cnt;i++) {
reader.readElement("Property");
const char* PropName = reader.getAttribute("name");
const char* TypeName = reader.getAttribute("type");
const char* PropName = reader.getAttribute<const char*>("name");
const char* TypeName = reader.getAttribute<const char*>("type");
auto prop = dynamicProps.restore(*this,PropName,TypeName,reader);
if(!prop)
prop = getPropertyByName(PropName);
std::bitset<32> status;
if(reader.hasAttribute("status")) {
status = reader.getAttributeAsUnsigned("status");
status = reader.getAttribute<unsigned long>("status");
if(prop)
prop->setStatusValue(status.to_ulong());
}

View File

@@ -313,11 +313,11 @@ void Geometry::Restore(Base::XMLReader &reader)
if(strcmp(reader.localName(),"GeoExtensions") == 0) { // new format
long count = reader.getAttributeAsInteger("count");
long count = reader.getAttribute<long>("count");
for (long index = 0; index < count; index++) {
reader.readElement("GeoExtension");
const char* TypeName = reader.getAttribute("type");
const char* TypeName = reader.getAttribute<const char*>("type");
Base::Type type = Base::Type::fromName(TypeName);
auto *newExtension = static_cast<GeometryPersistenceExtension *>(type.createInstance());
if (newExtension) {
@@ -334,7 +334,7 @@ void Geometry::Restore(Base::XMLReader &reader)
}
else if(strcmp(reader.localName(),"Construction") == 0) { // legacy
bool construction = (int)reader.getAttributeAsInteger("value") != 0;
bool construction = (int)reader.getAttribute<long>("value") != 0;
// prepare migration
if(!this->hasExtension(GeometryMigrationExtension::getClassTypeId()))
@@ -636,9 +636,9 @@ void GeomPoint::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("GeomPoint");
// get the value of my Attribute
X = reader.getAttributeAsFloat("X");
Y = reader.getAttributeAsFloat("Y");
Z = reader.getAttributeAsFloat("Z");
X = reader.getAttribute<double>("X");
Y = reader.getAttribute<double>("Y");
Z = reader.getAttribute<double>("Z");
// set the read geometry
setPoint(Base::Vector3d(X,Y,Z) );
@@ -1252,17 +1252,17 @@ void GeomBezierCurve::Restore(Base::XMLReader& reader)
reader.readElement("BezierCurve");
// get the value of my attribute
int polescount = reader.getAttributeAsInteger("PolesCount");
int polescount = reader.getAttribute<long>("PolesCount");
TColgp_Array1OfPnt poleArray(1,polescount);
TColStd_Array1OfReal weightArray(1,polescount);
for (int index = 1; index <= polescount; index++) {
reader.readElement("Pole");
double X = reader.getAttributeAsFloat("X");
double Y = reader.getAttributeAsFloat("Y");
double Z = reader.getAttributeAsFloat("Z");
double W = reader.getAttributeAsFloat("Weight");
double X = reader.getAttribute<double>("X");
double Y = reader.getAttribute<double>("Y");
double Z = reader.getAttribute<double>("Z");
double W = reader.getAttribute<double>("Weight");
poleArray.SetValue(index, gp_Pnt(X,Y,Z));
weightArray.SetValue(index, W);
}
@@ -2006,10 +2006,10 @@ void GeomBSplineCurve::Restore(Base::XMLReader& reader)
reader.readElement("BSplineCurve");
// get the value of my attribute
int polescount = reader.getAttributeAsInteger("PolesCount");
int knotscount = reader.getAttributeAsInteger("KnotsCount");
int degree = reader.getAttributeAsInteger("Degree");
bool isperiodic = (bool) reader.getAttributeAsInteger("IsPeriodic");
int polescount = reader.getAttribute<long>("PolesCount");
int knotscount = reader.getAttribute<long>("KnotsCount");
int degree = reader.getAttribute<long>("Degree");
bool isperiodic = reader.getAttribute<bool>("IsPeriodic");
// Handle(Geom_BSplineCurve) spline = new
// Geom_BSplineCurve(occpoles,occweights,occknots,occmults,degree,
@@ -2023,18 +2023,18 @@ void GeomBSplineCurve::Restore(Base::XMLReader& reader)
for (int i = 1; i <= polescount; i++) {
reader.readElement("Pole");
double X = reader.getAttributeAsFloat("X");
double Y = reader.getAttributeAsFloat("Y");
double Z = reader.getAttributeAsFloat("Z");
double W = reader.getAttributeAsFloat("Weight");
double X = reader.getAttribute<double>("X");
double Y = reader.getAttribute<double>("Y");
double Z = reader.getAttribute<double>("Z");
double W = reader.getAttribute<double>("Weight");
p.SetValue(i, gp_Pnt(X,Y,Z));
w.SetValue(i, W);
}
for (int i = 1; i <= knotscount; i++) {
reader.readElement("Knot");
double val = reader.getAttributeAsFloat("Value");
Standard_Integer mult = reader.getAttributeAsInteger("Mult");
double val = reader.getAttribute<double>("Value");
Standard_Integer mult = reader.getAttribute<long>("Mult");
k.SetValue(i, val);
m.SetValue(i, mult);
}
@@ -2746,15 +2746,15 @@ void GeomCircle::Restore(Base::XMLReader& reader)
// read my Element
reader.readElement("Circle");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
if (reader.hasAttribute("AngleXU"))
AngleXU = reader.getAttributeAsFloat("AngleXU");
Radius = reader.getAttributeAsFloat("Radius");
AngleXU = reader.getAttribute<double>("AngleXU");
Radius = reader.getAttribute<double>("Radius");
// set the read geometry
gp_Pnt p1(CenterX,CenterY,CenterZ);
@@ -2996,17 +2996,17 @@ void GeomArcOfCircle::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("ArcOfCircle");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
if (reader.hasAttribute("AngleXU"))
AngleXU = reader.getAttributeAsFloat("AngleXU");
Radius = reader.getAttributeAsFloat("Radius");
StartAngle = reader.getAttributeAsFloat("StartAngle");
EndAngle = reader.getAttributeAsFloat("EndAngle");
AngleXU = reader.getAttribute<double>("AngleXU");
Radius = reader.getAttribute<double>("Radius");
StartAngle = reader.getAttribute<double>("StartAngle");
EndAngle = reader.getAttribute<double>("EndAngle");
// set the read geometry
gp_Pnt p1(CenterX,CenterY,CenterZ);
@@ -3257,18 +3257,18 @@ void GeomEllipse::Restore(Base::XMLReader& reader)
// read my Element
reader.readElement("Ellipse");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
// This is for backwards compatibility
if(reader.hasAttribute("AngleXU"))
AngleXU = reader.getAttributeAsFloat("AngleXU");
AngleXU = reader.getAttribute<double>("AngleXU");
else
AngleXU = 0;
@@ -3545,17 +3545,17 @@ void GeomArcOfEllipse::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("ArcOfEllipse");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
AngleXU = reader.getAttributeAsFloat("AngleXU");
StartAngle = reader.getAttributeAsFloat("StartAngle");
EndAngle = reader.getAttributeAsFloat("EndAngle");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
AngleXU = reader.getAttribute<double>("AngleXU");
StartAngle = reader.getAttribute<double>("StartAngle");
EndAngle = reader.getAttribute<double>("EndAngle");
// set the read geometry
@@ -3724,15 +3724,15 @@ void GeomHyperbola::Restore(Base::XMLReader& reader)
// read my Element
reader.readElement("Hyperbola");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
AngleXU = reader.getAttributeAsFloat("AngleXU");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
AngleXU = reader.getAttribute<double>("AngleXU");
// set the read geometry
gp_Pnt p1(CenterX,CenterY,CenterZ);
@@ -4000,17 +4000,17 @@ void GeomArcOfHyperbola::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("ArcOfHyperbola");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
AngleXU = reader.getAttributeAsFloat("AngleXU");
StartAngle = reader.getAttributeAsFloat("StartAngle");
EndAngle = reader.getAttributeAsFloat("EndAngle");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
AngleXU = reader.getAttribute<double>("AngleXU");
StartAngle = reader.getAttribute<double>("StartAngle");
EndAngle = reader.getAttribute<double>("EndAngle");
// set the read geometry
@@ -4159,14 +4159,14 @@ void GeomParabola::Restore(Base::XMLReader& reader)
// read my Element
reader.readElement("Parabola");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
Focal = reader.getAttributeAsFloat("Focal");
AngleXU = reader.getAttributeAsFloat("AngleXU");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
Focal = reader.getAttribute<double>("Focal");
AngleXU = reader.getAttribute<double>("AngleXU");
// set the read geometry
gp_Pnt p1(CenterX,CenterY,CenterZ);
@@ -4366,16 +4366,16 @@ void GeomArcOfParabola::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("ArcOfParabola");
// get the value of my Attribute
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
CenterZ = reader.getAttributeAsFloat("CenterZ");
NormalX = reader.getAttributeAsFloat("NormalX");
NormalY = reader.getAttributeAsFloat("NormalY");
NormalZ = reader.getAttributeAsFloat("NormalZ");
Focal = reader.getAttributeAsFloat("Focal");
AngleXU = reader.getAttributeAsFloat("AngleXU");
StartAngle = reader.getAttributeAsFloat("StartAngle");
EndAngle = reader.getAttributeAsFloat("EndAngle");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
CenterZ = reader.getAttribute<double>("CenterZ");
NormalX = reader.getAttribute<double>("NormalX");
NormalY = reader.getAttribute<double>("NormalY");
NormalZ = reader.getAttribute<double>("NormalZ");
Focal = reader.getAttribute<double>("Focal");
AngleXU = reader.getAttribute<double>("AngleXU");
StartAngle = reader.getAttribute<double>("StartAngle");
EndAngle = reader.getAttribute<double>("EndAngle");
// set the read geometry
@@ -4508,12 +4508,12 @@ void GeomLine::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("GeomLine");
// get the value of my Attribute
PosX = reader.getAttributeAsFloat("PosX");
PosY = reader.getAttributeAsFloat("PosY");
PosZ = reader.getAttributeAsFloat("PosZ");
DirX = reader.getAttributeAsFloat("DirX");
DirY = reader.getAttributeAsFloat("DirY");
DirZ = reader.getAttributeAsFloat("DirZ");
PosX = reader.getAttribute<double>("PosX");
PosY = reader.getAttribute<double>("PosY");
PosZ = reader.getAttribute<double>("PosZ");
DirX = reader.getAttribute<double>("DirX");
DirY = reader.getAttribute<double>("DirY");
DirZ = reader.getAttribute<double>("DirZ");
// set the read geometry
setLine(Base::Vector3d(PosX,PosY,PosZ),Base::Vector3d(DirX,DirY,DirZ) );
@@ -4665,12 +4665,12 @@ void GeomLineSegment::Restore (Base::XMLReader &reader)
// read my Element
reader.readElement("LineSegment");
// get the value of my Attribute
StartX = reader.getAttributeAsFloat("StartX");
StartY = reader.getAttributeAsFloat("StartY");
StartZ = reader.getAttributeAsFloat("StartZ");
EndX = reader.getAttributeAsFloat("EndX");
EndY = reader.getAttributeAsFloat("EndY");
EndZ = reader.getAttributeAsFloat("EndZ");
StartX = reader.getAttribute<double>("StartX");
StartY = reader.getAttribute<double>("StartY");
StartZ = reader.getAttribute<double>("StartZ");
EndX = reader.getAttribute<double>("EndX");
EndY = reader.getAttribute<double>("EndY");
EndZ = reader.getAttribute<double>("EndZ");
Base::Vector3d start(StartX,StartY,StartZ);
Base::Vector3d end(EndX,EndY,EndZ);

View File

@@ -187,8 +187,8 @@ void Geom2dPoint::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("Geom2dPoint");
// get the value of my Attribute
X = reader.getAttributeAsFloat("X");
Y = reader.getAttributeAsFloat("Y");
X = reader.getAttribute<double>("X");
Y = reader.getAttribute<double>("Y");
// set the read geometry
setPoint(Base::Vector2d(X,Y));
@@ -635,12 +635,12 @@ void Geom2dConic::SaveAxis(Base::Writer& writer, const gp_Ax22d& axis) const
void Geom2dConic::RestoreAxis(Base::XMLReader& reader, gp_Ax22d& axis)
{
double CenterX,CenterY,XdirX,XdirY,YdirX,YdirY;
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
XdirX = reader.getAttributeAsFloat("XAxisX");
XdirY = reader.getAttributeAsFloat("XAxisY");
YdirX = reader.getAttributeAsFloat("YAxisX");
YdirY = reader.getAttributeAsFloat("YAxisY");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
XdirX = reader.getAttribute<double>("XAxisX");
XdirY = reader.getAttribute<double>("XAxisY");
YdirX = reader.getAttribute<double>("YAxisX");
YdirY = reader.getAttribute<double>("YAxisY");
// set the read geometry
gp_Pnt2d p1(CenterX,CenterY);
@@ -763,14 +763,14 @@ void Geom2dArcOfConic::SaveAxis(Base::Writer& writer, const gp_Ax22d& axis, doub
void Geom2dArcOfConic::RestoreAxis(Base::XMLReader& reader, gp_Ax22d& axis, double& u, double &v)
{
double CenterX,CenterY,XdirX,XdirY,YdirX,YdirY;
CenterX = reader.getAttributeAsFloat("CenterX");
CenterY = reader.getAttributeAsFloat("CenterY");
XdirX = reader.getAttributeAsFloat("XAxisX");
XdirY = reader.getAttributeAsFloat("XAxisY");
YdirX = reader.getAttributeAsFloat("YAxisX");
YdirY = reader.getAttributeAsFloat("YAxisY");
u = reader.getAttributeAsFloat("FirstParameter");
v = reader.getAttributeAsFloat("LastParameter");
CenterX = reader.getAttribute<double>("CenterX");
CenterY = reader.getAttribute<double>("CenterY");
XdirX = reader.getAttribute<double>("XAxisX");
XdirY = reader.getAttribute<double>("XAxisY");
YdirX = reader.getAttribute<double>("YAxisX");
YdirY = reader.getAttribute<double>("YAxisY");
u = reader.getAttribute<double>("FirstParameter");
v = reader.getAttribute<double>("LastParameter");
// set the read geometry
gp_Pnt2d p1(CenterX,CenterY);
@@ -863,7 +863,7 @@ void Geom2dCircle::Restore(Base::XMLReader& reader)
reader.readElement("Geom2dCircle");
// get the value of my Attribute
RestoreAxis(reader, axis);
Radius = reader.getAttributeAsFloat("Radius");
Radius = reader.getAttribute<double>("Radius");
try {
GCE2d_MakeCircle mc(axis, Radius);
@@ -1022,7 +1022,7 @@ void Geom2dArcOfCircle::Restore(Base::XMLReader &reader)
reader.readElement("Geom2dArcOfCircle");
// get the value of my Attribute
RestoreAxis(reader, axis, u, v);
Radius = reader.getAttributeAsFloat("Radius");
Radius = reader.getAttribute<double>("Radius");
try {
GCE2d_MakeCircle mc(axis, Radius);
@@ -1182,8 +1182,8 @@ void Geom2dEllipse::Restore(Base::XMLReader& reader)
reader.readElement("Geom2dEllipse");
// get the value of my Attribute
RestoreAxis(reader, axis);
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
try {
GCE2d_MakeEllipse mc(axis, MajorRadius, MinorRadius);
@@ -1357,8 +1357,8 @@ void Geom2dArcOfEllipse::Restore(Base::XMLReader &reader)
reader.readElement("Geom2dArcOfEllipse");
// get the value of my Attribute
RestoreAxis(reader, axis, u, v);
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
try {
GCE2d_MakeEllipse mc(axis, MajorRadius, MinorRadius);
@@ -1484,8 +1484,8 @@ void Geom2dHyperbola::Restore(Base::XMLReader& reader)
reader.readElement("Geom2dHyperbola");
// get the value of my Attribute
RestoreAxis(reader, axis);
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
try {
GCE2d_MakeHyperbola mc(axis, MajorRadius, MinorRadius);
@@ -1615,8 +1615,8 @@ void Geom2dArcOfHyperbola::Restore(Base::XMLReader &reader)
reader.readElement("Geom2dHyperbola");
// get the value of my Attribute
RestoreAxis(reader, axis, u, v);
MajorRadius = reader.getAttributeAsFloat("MajorRadius");
MinorRadius = reader.getAttributeAsFloat("MinorRadius");
MajorRadius = reader.getAttribute<double>("MajorRadius");
MinorRadius = reader.getAttribute<double>("MinorRadius");
try {
GCE2d_MakeHyperbola mc(axis, MajorRadius, MinorRadius);
@@ -1724,7 +1724,7 @@ void Geom2dParabola::Restore(Base::XMLReader& reader)
gp_Ax22d axis;
// get the value of my Attribute
RestoreAxis(reader, axis);
Focal = reader.getAttributeAsFloat("Focal");
Focal = reader.getAttribute<double>("Focal");
try {
GCE2d_MakeParabola mc(axis, Focal);
@@ -1835,7 +1835,7 @@ void Geom2dArcOfParabola::Restore(Base::XMLReader &reader)
reader.readElement("Geom2dParabola");
// get the value of my Attribute
RestoreAxis(reader, axis, u, v);
Focal = reader.getAttributeAsFloat("Focal");
Focal = reader.getAttribute<double>("Focal");
try {
GCE2d_MakeParabola mc(axis, Focal);
@@ -1946,10 +1946,10 @@ void Geom2dLine::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("Geom2dLine");
// get the value of my Attribute
PosX = reader.getAttributeAsFloat("PosX");
PosY = reader.getAttributeAsFloat("PosY");
DirX = reader.getAttributeAsFloat("DirX");
DirY = reader.getAttributeAsFloat("DirY");
PosX = reader.getAttribute<double>("PosX");
PosY = reader.getAttribute<double>("PosY");
DirX = reader.getAttribute<double>("DirX");
DirY = reader.getAttribute<double>("DirY");
gp_Pnt2d pnt(PosX, PosY);
gp_Dir2d dir(DirX, DirY);
@@ -2078,10 +2078,10 @@ void Geom2dLineSegment::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("Geom2dLineSegment");
// get the value of my Attribute
StartX = reader.getAttributeAsFloat("StartX");
StartY = reader.getAttributeAsFloat("StartY");
EndX = reader.getAttributeAsFloat("EndX");
EndY = reader.getAttributeAsFloat("EndY");
StartX = reader.getAttribute<double>("StartX");
StartY = reader.getAttribute<double>("StartY");
EndX = reader.getAttribute<double>("EndX");
EndY = reader.getAttribute<double>("EndY");
gp_Pnt2d p1(StartX, StartY);
gp_Pnt2d p2(EndX, EndY);

View File

@@ -54,7 +54,7 @@ void GeometryDefaultExtension<T>::restoreAttributes(Base::XMLReader &reader)
{
Part::GeometryPersistenceExtension::restoreAttributes(reader);
value = reader.getAttribute("value");
value = reader.getAttribute<const char*>("value");
}
template <typename T>
@@ -100,7 +100,7 @@ void GeometryDefaultExtension<long>::restoreAttributes(Base::XMLReader &reader)
{
Part::GeometryPersistenceExtension::restoreAttributes(reader);
value = reader.getAttributeAsInteger("value");
value = reader.getAttribute<long>("value");
}
// ---------- GeometryStringExtension ----------
@@ -126,7 +126,7 @@ void GeometryDefaultExtension<bool>::restoreAttributes(Base::XMLReader &reader)
{
Part::GeometryPersistenceExtension::restoreAttributes(reader);
value = (bool)reader.getAttributeAsInteger("value");
value = reader.getAttribute<bool>("value");
}
// ---------- GeometryDoubleExtension ----------
@@ -143,7 +143,7 @@ void GeometryDefaultExtension<double>::restoreAttributes(Base::XMLReader &reader
{
Part::GeometryPersistenceExtension::restoreAttributes(reader);
value = reader.getAttributeAsFloat("value");
value = reader.getAttribute<double>("value");
}

View File

@@ -52,7 +52,7 @@ TYPESYSTEM_SOURCE_ABSTRACT(Part::GeometryPersistenceExtension,Part::GeometryExte
void GeometryPersistenceExtension::restoreAttributes(Base::XMLReader &reader)
{
if(reader.hasAttribute("name")) {
std::string name = reader.getAttribute("name");
std::string name = reader.getAttribute<const char*>("name");
setName(name);
}
}

View File

@@ -205,13 +205,13 @@ void PropertyGeometryList::tryRestoreGeometry(Geometry * geom, Base::XMLReader &
{
// Not all geometry classes implement Restore() and throw an exception instead
try {
if (!reader.getAttributeAsInteger("migrated", "0") && reader.hasAttribute("id")) {
if (!reader.getAttribute<long>("migrated", 0) && reader.hasAttribute("id")) {
auto ext = std::make_unique<GeometryMigrationExtension>();
ext->setId(reader.getAttributeAsInteger("id"));
ext->setId(reader.getAttribute<long>("id"));
if(reader.hasAttribute("ref")) {
const char *ref = reader.getAttribute("ref");
int index = reader.getAttributeAsInteger("refIndex", "1");
unsigned long flags = (unsigned long)reader.getAttributeAsUnsigned("flags");
const char *ref = reader.getAttribute<const char*>("ref");
int index = reader.getAttribute<long>("refIndex", 1);
unsigned long flags = (unsigned long)reader.getAttribute<unsigned long>("flags");
ext->setReference(ref, index, flags);
}
geom->setExtension(std::move(ext));
@@ -253,12 +253,12 @@ void PropertyGeometryList::Restore(Base::XMLReader &reader)
reader.clearPartialRestoreObject();
reader.readElement("GeometryList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<Geometry*> values;
values.reserve(count);
for (int i = 0; i < count; i++) {
reader.readElement("Geometry");
const char* TypeName = reader.getAttribute("type");
const char* TypeName = reader.getAttribute<const char*>("type");
Geometry *newG = static_cast<Geometry *>(Base::Type::fromName(TypeName).createInstance());
tryRestoreGeometry(newG, reader);

View File

@@ -327,26 +327,26 @@ void PropertyPartShape::Restore(Base::XMLReader &reader)
_Ver = "?";
bool has_ver = reader.hasAttribute("ElementMap");
if (has_ver)
_Ver = reader.getAttribute("ElementMap");
_Ver = reader.getAttribute<const char*>("ElementMap");
int hasher_idx = static_cast<int>(reader.getAttributeAsInteger("HasherIndex", "-1"));
int save_hasher = static_cast<int>(reader.getAttributeAsInteger("SaveHasher", "0"));
int hasher_idx = reader.getAttribute<int>("HasherIndex", -1);
int save_hasher = reader.getAttribute<int>("SaveHasher", 0);
TopoShape shape;
if (reader.hasAttribute("file")) {
std::string file = reader.getAttribute("file");
std::string file = reader.getAttribute<const char*>("file");
if (!file.empty()) {
// initiate a file read
reader.addFile(file.c_str(), this);
}
}
else if (reader.hasAttribute(("binary")) && reader.getAttributeAsInteger("binary")) {
else if (reader.hasAttribute(("binary")) && reader.getAttribute<long>("binary")) {
TopoShape shape;
shape.importBinary(reader.beginCharStream());
shape = shape.getShape();
}
else if (reader.hasAttribute("brep") && reader.getAttributeAsInteger("brep")) {
else if (reader.hasAttribute("brep") && reader.getAttribute<long>("brep")) {
shape.importBrep(reader.beginCharStream(Base::CharStreamFormat::Raw));
}
@@ -843,7 +843,7 @@ void PropertyFilletEdges::Save (Base::Writer &writer) const
void PropertyFilletEdges::Restore(Base::XMLReader &reader)
{
reader.readElement("FilletEdges");
std::string file (reader.getAttribute("file") );
std::string file (reader.getAttribute<const char*>("file") );
if (!file.empty()) {
// initiate a file read

View File

@@ -212,20 +212,20 @@ void PropertyTopoShapeList::SaveDocFile(Base::Writer& writer) const
void PropertyTopoShapeList::Restore(Base::XMLReader& reader)
{
reader.readElement("ShapeList");
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
m_restorePointers.clear(); // just in case
m_restorePointers.reserve(count);
for (int i = 0; i < count; i++) {
auto newShape = std::make_shared<TopoShape>();
reader.readElement("TopoShape");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
reader.addFile(file.c_str(), this);
}
else if (reader.hasAttribute("binary") && reader.getAttributeAsInteger("binary")) {
else if (reader.hasAttribute("binary") && reader.getAttribute<bool>("binary")) {
newShape->importBinary(reader.beginCharStream());
}
else if (reader.hasAttribute("brep") && reader.getAttributeAsInteger("brep")) {
else if (reader.hasAttribute("brep") && reader.getAttribute<bool>("brep")) {
newShape->importBrep(reader.beginCharStream());
}
m_restorePointers.push_back(newShape);

View File

@@ -1498,7 +1498,7 @@ void ProfileBased::handleChangedPropertyName(Base::XMLReader & reader, const cha
// read my element
reader.readElement("Link");
// get the value of my attribute
std::string name = reader.getAttribute("value");
std::string name = reader.getAttribute<const char*>("value");
if (!name.empty()) {
App::Document* document = getDocument();

View File

@@ -203,14 +203,14 @@ void PointKernel::Restore(Base::XMLReader& reader)
clear();
reader.readElement("Points");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
reader.addFile(file.c_str(), this);
}
if (reader.DocumentSchema > 3) {
std::string Matrix(reader.getAttribute("mtrx"));
std::string Matrix(reader.getAttribute<const char*>("mtrx"));
_Mtrx.fromString(Matrix);
}
}

View File

@@ -137,7 +137,7 @@ void PropertyGreyValueList::Save(Base::Writer& writer) const
void PropertyGreyValueList::Restore(Base::XMLReader& reader)
{
reader.readElement("FloatList");
string file(reader.getAttribute("file"));
string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
@@ -309,7 +309,7 @@ void PropertyNormalList::Save(Base::Writer& writer) const
void PropertyNormalList::Restore(Base::XMLReader& reader)
{
reader.readElement("VectorList");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
@@ -584,7 +584,7 @@ void PropertyCurvatureList::Save(Base::Writer& writer) const
void PropertyCurvatureList::Restore(Base::XMLReader& reader)
{
reader.readElement("CurvatureList");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read

View File

@@ -103,14 +103,14 @@ void PropertyPointKernel::Save(Base::Writer& writer) const
void PropertyPointKernel::Restore(Base::XMLReader& reader)
{
reader.readElement("Points");
std::string file(reader.getAttribute("file"));
std::string file(reader.getAttribute<const char*>("file"));
if (!file.empty()) {
// initiate a file read
reader.addFile(file.c_str(), this);
}
if (reader.DocumentSchema > 3) {
std::string Matrix(reader.getAttribute("mtrx"));
std::string Matrix(reader.getAttribute<const char*>("mtrx"));
Base::Matrix4D mtrx;
mtrx.fromString(Matrix);

View File

@@ -188,32 +188,32 @@ void Robot6Axis::Restore(XMLReader& reader)
// read my Element
reader.readElement("Axis");
// get the value of the placement
Tip = Base::Placement(Base::Vector3d(reader.getAttributeAsFloat("Px"),
reader.getAttributeAsFloat("Py"),
reader.getAttributeAsFloat("Pz")),
Base::Rotation(reader.getAttributeAsFloat("Q0"),
reader.getAttributeAsFloat("Q1"),
reader.getAttributeAsFloat("Q2"),
reader.getAttributeAsFloat("Q3")));
Tip = Base::Placement(Base::Vector3d(reader.getAttribute<double>("Px"),
reader.getAttribute<double>("Py"),
reader.getAttribute<double>("Pz")),
Base::Rotation(reader.getAttribute<double>("Q0"),
reader.getAttribute<double>("Q1"),
reader.getAttribute<double>("Q2"),
reader.getAttribute<double>("Q3")));
Temp.addSegment(Segment(Joint(Joint::RotZ), toFrame(Tip)));
if (reader.hasAttribute("rotDir")) {
Velocity[i] = reader.getAttributeAsFloat("rotDir");
Velocity[i] = reader.getAttribute<double>("rotDir");
}
else {
Velocity[i] = 1.0;
}
// read the axis constraints
Min(i) = Base::toRadians<double>(reader.getAttributeAsFloat("maxAngle"));
Max(i) = Base::toRadians<double>(reader.getAttributeAsFloat("minAngle"));
Min(i) = Base::toRadians<double>(reader.getAttribute<double>("maxAngle"));
Max(i) = Base::toRadians<double>(reader.getAttribute<double>("minAngle"));
if (reader.hasAttribute("AxisVelocity")) {
Velocity[i] = reader.getAttributeAsFloat("AxisVelocity");
Velocity[i] = reader.getAttribute<double>("AxisVelocity");
}
else {
Velocity[i] = 156.0;
}
Actual(i) = reader.getAttributeAsFloat("Pos");
Actual(i) = reader.getAttribute<double>("Pos");
}
Kinematic = Temp;

View File

@@ -335,7 +335,7 @@ void Trajectory::Restore(XMLReader& reader)
// read my element
reader.readElement("Trajectory");
// get the value of my Attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
vpcWaypoints.resize(count);
for (int i = 0; i < count; i++) {

View File

@@ -111,23 +111,23 @@ void Waypoint::Restore(XMLReader& reader)
{
// read my Element
reader.readElement("Waypoint");
Name = reader.getAttribute("name");
Name = reader.getAttribute<const char*>("name");
// get the value of the placement
EndPos = Base::Placement(Base::Vector3d(reader.getAttributeAsFloat("Px"),
reader.getAttributeAsFloat("Py"),
reader.getAttributeAsFloat("Pz")),
Base::Rotation(reader.getAttributeAsFloat("Q0"),
reader.getAttributeAsFloat("Q1"),
reader.getAttributeAsFloat("Q2"),
reader.getAttributeAsFloat("Q3")));
EndPos = Base::Placement(Base::Vector3d(reader.getAttribute<double>("Px"),
reader.getAttribute<double>("Py"),
reader.getAttribute<double>("Pz")),
Base::Rotation(reader.getAttribute<double>("Q0"),
reader.getAttribute<double>("Q1"),
reader.getAttribute<double>("Q2"),
reader.getAttribute<double>("Q3")));
Velocity = (float)reader.getAttributeAsFloat("vel");
Acceleration = (float)reader.getAttributeAsFloat("acc");
Cont = (reader.getAttributeAsInteger("cont") != 0) ? true : false;
Tool = reader.getAttributeAsInteger("tool");
Base = reader.getAttributeAsInteger("base");
Velocity = (float)reader.getAttribute<double>("vel");
Acceleration = (float)reader.getAttribute<double>("acc");
Cont = reader.getAttribute<bool>("cont");
Tool = reader.getAttribute<long>("tool");
Base = reader.getAttribute<long>("base");
std::string type = reader.getAttribute("type");
std::string type = reader.getAttribute<const char*>("type");
if (type == "PTP") {
Type = Waypoint::PTP;
}

View File

@@ -178,20 +178,19 @@ void Constraint::Save(Writer& writer) const
void Constraint::Restore(XMLReader& reader)
{
reader.readElement("Constrain");
Name = reader.getAttribute("Name");
Type = static_cast<ConstraintType>(reader.getAttributeAsInteger("Type"));
Value = reader.getAttributeAsFloat("Value");
First = reader.getAttributeAsInteger("First");
FirstPos = static_cast<PointPos>(reader.getAttributeAsInteger("FirstPos"));
Second = reader.getAttributeAsInteger("Second");
SecondPos = static_cast<PointPos>(reader.getAttributeAsInteger("SecondPos"));
Name = reader.getAttribute<const char*>("Name");
Type = reader.getAttribute<ConstraintType>("Type");
Value = reader.getAttribute<double>("Value");
First = reader.getAttribute<long>("First");
FirstPos = reader.getAttribute<PointPos>("FirstPos");
Second = reader.getAttribute<long>("Second");
SecondPos = reader.getAttribute<PointPos>("SecondPos");
if (this->Type == InternalAlignment) {
AlignmentType = static_cast<InternalAlignmentType>(
reader.getAttributeAsInteger("InternalAlignmentType"));
AlignmentType = reader.getAttribute<InternalAlignmentType>("InternalAlignmentType");
if (reader.hasAttribute("InternalAlignmentIndex")) {
InternalAlignmentIndex = reader.getAttributeAsInteger("InternalAlignmentIndex");
InternalAlignmentIndex = reader.getAttribute<long>("InternalAlignmentIndex");
}
}
else {
@@ -200,29 +199,29 @@ void Constraint::Restore(XMLReader& reader)
// read the third geo group if present
if (reader.hasAttribute("Third")) {
Third = reader.getAttributeAsInteger("Third");
ThirdPos = static_cast<PointPos>(reader.getAttributeAsInteger("ThirdPos"));
Third = reader.getAttribute<long>("Third");
ThirdPos = reader.getAttribute<PointPos>("ThirdPos");
}
// Read the distance a constraint label has been moved
if (reader.hasAttribute("LabelDistance")) {
LabelDistance = (float)reader.getAttributeAsFloat("LabelDistance");
LabelDistance = (float)reader.getAttribute<double>("LabelDistance");
}
if (reader.hasAttribute("LabelPosition")) {
LabelPosition = (float)reader.getAttributeAsFloat("LabelPosition");
LabelPosition = (float)reader.getAttribute<double>("LabelPosition");
}
if (reader.hasAttribute("IsDriving")) {
isDriving = reader.getAttributeAsInteger("IsDriving") ? true : false;
isDriving = reader.getAttribute<bool>("IsDriving");
}
if (reader.hasAttribute("IsInVirtualSpace")) {
isInVirtualSpace = reader.getAttributeAsInteger("IsInVirtualSpace") ? true : false;
isInVirtualSpace = reader.getAttribute<bool>("IsInVirtualSpace");
}
if (reader.hasAttribute("IsActive")) {
isActive = reader.getAttributeAsInteger("IsActive") ? true : false;
isActive = reader.getAttribute<bool>("IsActive");
}
}

View File

@@ -48,9 +48,9 @@ void ExternalGeometryExtension::restoreAttributes(Base::XMLReader& reader)
{
Part::GeometryPersistenceExtension::restoreAttributes(reader);
Ref = reader.getAttribute("Ref", "");
RefIndex = reader.getAttributeAsInteger("RefIndex", "-1");
Flags = FlagType(reader.getAttributeAsUnsigned("Flags", "0"));
Ref = reader.getAttribute<const char*>("Ref", "");
RefIndex = reader.getAttribute<long>("RefIndex", -1);
Flags = FlagType(reader.getAttribute<unsigned long>("Flags", 0));
}
void ExternalGeometryExtension::saveAttributes(Base::Writer& writer) const

View File

@@ -341,7 +341,7 @@ void PropertyConstraintList::Restore(Base::XMLReader& reader)
// read my element
reader.readElement("ConstraintList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<Constraint*> values;
values.reserve(count);

View File

@@ -65,16 +65,15 @@ void SketchGeometryExtension::restoreAttributes(Base::XMLReader& reader)
Part::GeometryPersistenceExtension::restoreAttributes(reader);
if (reader.hasAttribute("id")) {
Id = reader.getAttributeAsInteger("id");
Id = reader.getAttribute<long>("id");
}
InternalGeometryType = static_cast<InternalType::InternalType>(
reader.getAttributeAsInteger("internalGeometryType"));
InternalGeometryType = reader.getAttribute<InternalType::InternalType>("internalGeometryType");
GeometryModeFlags = GeometryModeFlagType(reader.getAttribute("geometryModeFlags"));
GeometryModeFlags = GeometryModeFlagType(reader.getAttribute<const char*>("geometryModeFlags"));
if (reader.hasAttribute("geometryLayer")) {
GeometryLayer = reader.getAttributeAsInteger("geometryLayer");
GeometryLayer = reader.getAttribute<long>("geometryLayer");
}
}

View File

@@ -75,7 +75,7 @@ void PropertyVisualLayerList::Restore(Base::XMLReader& reader)
{
reader.readElement("VisualLayerList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<VisualLayer> layers;
layers.reserve(count);

View File

@@ -65,7 +65,7 @@ void ViewProviderSketchGeometryExtension::restoreAttributes(Base::XMLReader& rea
Part::GeometryPersistenceExtension::restoreAttributes(reader);
if (reader.hasAttribute("visualLayerId")) {
VisualLayerId = reader.getAttributeAsInteger("visualLayerId");
VisualLayerId = reader.getAttribute<long>("visualLayerId");
}
}

View File

@@ -80,9 +80,9 @@ void VisualLayer::Restore(Base::XMLReader& reader)
{
reader.readElement("VisualLayer");
std::string str = reader.getAttribute("visible");
std::string str = reader.getAttribute<const char*>("visible");
visible = (str == "true");
linePattern = reader.getAttributeAsUnsigned("linePattern");
lineWidth = reader.getAttributeAsFloat("lineWidth");
linePattern = reader.getAttribute<unsigned long>("linePattern");
lineWidth = reader.getAttribute<double>("lineWidth");
}

View File

@@ -728,19 +728,27 @@ void Cell::moveAbsolute(CellAddress newAddress)
void Cell::restore(Base::XMLReader& reader, bool checkAlias)
{
const char* style = reader.hasAttribute("style") ? reader.getAttribute("style") : nullptr;
const char* style =
reader.hasAttribute("style") ? reader.getAttribute<const char*>("style") : nullptr;
const char* alignment =
reader.hasAttribute("alignment") ? reader.getAttribute("alignment") : nullptr;
const char* content = reader.hasAttribute("content") ? reader.getAttribute("content") : "";
const char* foregroundColor =
reader.hasAttribute("foregroundColor") ? reader.getAttribute("foregroundColor") : nullptr;
const char* backgroundColor =
reader.hasAttribute("backgroundColor") ? reader.getAttribute("backgroundColor") : nullptr;
const char* displayUnit =
reader.hasAttribute("displayUnit") ? reader.getAttribute("displayUnit") : nullptr;
const char* alias = reader.hasAttribute("alias") ? reader.getAttribute("alias") : nullptr;
const char* rowSpan = reader.hasAttribute("rowSpan") ? reader.getAttribute("rowSpan") : nullptr;
const char* colSpan = reader.hasAttribute("colSpan") ? reader.getAttribute("colSpan") : nullptr;
reader.hasAttribute("alignment") ? reader.getAttribute<const char*>("alignment") : nullptr;
const char* content =
reader.hasAttribute("content") ? reader.getAttribute<const char*>("content") : "";
const char* foregroundColor = reader.hasAttribute("foregroundColor")
? reader.getAttribute<const char*>("foregroundColor")
: nullptr;
const char* backgroundColor = reader.hasAttribute("backgroundColor")
? reader.getAttribute<const char*>("backgroundColor")
: nullptr;
const char* displayUnit = reader.hasAttribute("displayUnit")
? reader.getAttribute<const char*>("displayUnit")
: nullptr;
const char* alias =
reader.hasAttribute("alias") ? reader.getAttribute<const char*>("alias") : nullptr;
const char* rowSpan =
reader.hasAttribute("rowSpan") ? reader.getAttribute<const char*>("rowSpan") : nullptr;
const char* colSpan =
reader.hasAttribute("colSpan") ? reader.getAttribute<const char*>("colSpan") : nullptr;
// Don't trigger multiple updates below; wait until everything is loaded by calling unfreeze()
// below.

View File

@@ -129,11 +129,13 @@ void PropertyColumnWidths::Restore(Base::XMLReader& reader)
// Column info
reader.readElement("ColumnInfo");
Cnt = reader.hasAttribute("Count") ? reader.getAttributeAsInteger("Count") : 0;
Cnt = reader.hasAttribute("Count") ? reader.getAttribute<long>("Count") : 0;
for (int i = 0; i < Cnt; i++) {
reader.readElement("Column");
const char* name = reader.hasAttribute("name") ? reader.getAttribute("name") : nullptr;
const char* width = reader.hasAttribute("width") ? reader.getAttribute("width") : nullptr;
const char* name =
reader.hasAttribute("name") ? reader.getAttribute<const char*>("name") : nullptr;
const char* width =
reader.hasAttribute("width") ? reader.getAttribute<const char*>("width") : nullptr;
try {
if (name && width) {

View File

@@ -122,12 +122,13 @@ void PropertyRowHeights::Restore(Base::XMLReader& reader)
// Row info
reader.readElement("RowInfo");
Cnt = reader.hasAttribute("Count") ? reader.getAttributeAsInteger("Count") : 0;
Cnt = reader.hasAttribute("Count") ? reader.getAttribute<long>("Count") : 0;
for (int i = 0; i < Cnt; i++) {
reader.readElement("Row");
const char* name = reader.hasAttribute("name") ? reader.getAttribute("name") : nullptr;
const char* name =
reader.hasAttribute("name") ? reader.getAttribute<const char*>("name") : nullptr;
const char* height =
reader.hasAttribute("height") ? reader.getAttribute("height") : nullptr;
reader.hasAttribute("height") ? reader.getAttribute<const char*>("height") : nullptr;
try {
if (name && height) {

View File

@@ -423,9 +423,9 @@ void PropertySheet::Restore(Base::XMLReader& reader)
AtomicPropertyChange signaller(*this);
reader.readElement("Cells");
Cnt = reader.getAttributeAsInteger("Count");
Cnt = reader.getAttribute<long>("Count");
if (reader.hasAttribute("xlink") && reader.getAttributeAsInteger("xlink")) {
if (reader.hasAttribute("xlink") && reader.getAttribute<bool>("xlink")) {
PropertyExpressionContainer::Restore(reader);
}
@@ -433,7 +433,7 @@ void PropertySheet::Restore(Base::XMLReader& reader)
reader.readElement("Cell");
const char* strAddress =
reader.hasAttribute("address") ? reader.getAttribute("address") : "";
reader.hasAttribute("address") ? reader.getAttribute<const char*>("address") : "";
try {
CellAddress address(strAddress);
@@ -490,7 +490,7 @@ void PropertySheet::copyCells(Base::Writer& writer, const std::vector<Range>& ra
void PropertySheet::pasteCells(XMLReader& reader, Range dstRange)
{
reader.readElement("Cells");
int rangeCount = reader.getAttributeAsInteger("count");
int rangeCount = reader.getAttribute<long>("count");
if (rangeCount <= 0) {
return;
}
@@ -504,9 +504,9 @@ void PropertySheet::pasteCells(XMLReader& reader, Range dstRange)
AtomicPropertyChange signaller(*this);
for (int ri = 0; ri < rangeCount; ++ri) {
reader.readElement("Range");
CellAddress from(reader.getAttribute("from"));
CellAddress to(reader.getAttribute("to"));
int cellCount = reader.getAttributeAsInteger("count");
CellAddress from(reader.getAttribute<const char*>("from"));
CellAddress to(reader.getAttribute<const char*>("to"));
int cellCount = reader.getAttribute<long>("count");
Range range(from, to);
@@ -533,7 +533,7 @@ void PropertySheet::pasteCells(XMLReader& reader, Range dstRange)
}
for (int ci = 0; ci < cellCount; ++ci) {
reader.readElement("Cell");
CellAddress src(reader.getAttribute("address"));
CellAddress src(reader.getAttribute<const char*>("address"));
if (ci) {
range.next();

View File

@@ -921,60 +921,60 @@ void CenterLine::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("Start");
// get the value of my Attribute
m_start.x = reader.getAttributeAsFloat("X");
m_start.y = reader.getAttributeAsFloat("Y");
m_start.z = reader.getAttributeAsFloat("Z");
m_start.x = reader.getAttribute<double>("X");
m_start.y = reader.getAttribute<double>("Y");
m_start.z = reader.getAttribute<double>("Z");
reader.readElement("End");
m_end.x = reader.getAttributeAsFloat("X");
m_end.y = reader.getAttributeAsFloat("Y");
m_end.z = reader.getAttributeAsFloat("Z");
m_end.x = reader.getAttribute<double>("X");
m_end.y = reader.getAttribute<double>("Y");
m_end.z = reader.getAttribute<double>("Z");
reader.readElement("Mode");
m_mode = static_cast<Mode>(reader.getAttributeAsInteger("value"));
m_mode = reader.getAttribute<Mode>("value");
reader.readElement("HShift");
m_hShift = reader.getAttributeAsFloat("value");
m_hShift = reader.getAttribute<double>("value");
reader.readElement("VShift");
m_vShift = reader.getAttributeAsFloat("value");
m_vShift = reader.getAttribute<double>("value");
reader.readElement("Rotate");
m_rotate = reader.getAttributeAsFloat("value");
m_rotate = reader.getAttribute<double>("value");
reader.readElement("Extend");
m_extendBy = reader.getAttributeAsFloat("value");
m_extendBy = reader.getAttribute<double>("value");
reader.readElement("Type");
m_type = static_cast<Type>(reader.getAttributeAsInteger("value"));
m_type = reader.getAttribute<Type>("value");
reader.readElement("Flip");
m_flip2Line = (bool)reader.getAttributeAsInteger("value")==0?false:true;
m_flip2Line = reader.getAttribute<bool>("value") == 0;
reader.readElement("Faces");
int count = reader.getAttributeAsInteger("FaceCount");
int count = reader.getAttribute<long>("FaceCount");
int i = 0;
for ( ; i < count; i++) {
reader.readElement("Face");
std::string f = reader.getAttribute("value");
std::string f = reader.getAttribute<const char*>("value");
m_faces.push_back(f);
}
reader.readEndElement("Faces");
reader.readElement("Edges");
count = reader.getAttributeAsInteger("EdgeCount");
count = reader.getAttribute<long>("EdgeCount");
i = 0;
for ( ; i < count; i++) {
reader.readElement("Edge");
std::string e = reader.getAttribute("value");
std::string e = reader.getAttribute<const char*>("value");
m_edges.push_back(e);
}
reader.readEndElement("Edges");
reader.readElement("CLPoints");
count = reader.getAttributeAsInteger("CLPointCount");
count = reader.getAttribute<long>("CLPointCount");
i = 0;
for ( ; i < count; i++) {
reader.readElement("CLPoint");
std::string p = reader.getAttribute("value");
std::string p = reader.getAttribute<const char*>("value");
m_verts.push_back(p);
}
reader.readEndElement("CLPoints");
@@ -982,20 +982,20 @@ void CenterLine::Restore(Base::XMLReader &reader)
// style is deprecated in favour of line number, but we still save and restore it
// to avoid problems with old documents.
reader.readElement("Style");
m_format.setStyle(reader.getAttributeAsInteger("value"));
m_format.setStyle(reader.getAttribute<long>("value"));
reader.readElement("Weight");
m_format.setWidth(reader.getAttributeAsFloat("value"));
m_format.setWidth(reader.getAttribute<double>("value"));
reader.readElement("Color");
std::string tempHex = reader.getAttribute("value");
std::string tempHex = reader.getAttribute<const char*>("value");
Base::Color tempColor;
tempColor.fromHexString(tempHex);
m_format.setColor(tempColor);
reader.readElement("Visible");
m_format.setVisible( (int)reader.getAttributeAsInteger("value")==0 ? false : true);
m_format.setVisible(reader.getAttribute<bool>("value"));
//stored geometry
reader.readElement("GeometryType");
GeomType gType = static_cast<GeomType>(reader.getAttributeAsInteger("value"));
GeomType gType = reader.getAttribute<GeomType>("value");
if (gType == GeomType::GENERIC) {
TechDraw::GenericPtr gen = std::make_shared<TechDraw::Generic> ();
gen->Restore(reader);
@@ -1024,7 +1024,7 @@ void CenterLine::Restore(Base::XMLReader &reader)
if(strcmp(reader.localName(),"LineNumber") == 0 ||
strcmp(reader.localName(),"ISOLineNumber") == 0 ) {
// this centerline has an LineNumber attribute
m_format.setLineNumber(reader.getAttributeAsInteger("value"));
m_format.setLineNumber(reader.getAttribute<long>("value"));
} else {
// LineNumber not found.
m_format.setLineNumber(LineFormat::InvalidLine);

View File

@@ -237,19 +237,19 @@ void CosmeticEdge::Restore(Base::XMLReader &reader)
}
// Base::Console().message("CE::Restore - reading elements\n");
reader.readElement("Style");
m_format.setStyle(reader.getAttributeAsInteger("value"));
m_format.setStyle(reader.getAttribute<long>("value"));
reader.readElement("Weight");
m_format.setWidth(reader.getAttributeAsFloat("value"));
m_format.setWidth(reader.getAttribute<double>("value"));
reader.readElement("Color");
std::string tempHex = reader.getAttribute("value");
std::string tempHex = reader.getAttribute<const char*>("value");
Base::Color tempColor;
tempColor.fromHexString(tempHex);
m_format.setColor(tempColor);
reader.readElement("Visible");
m_format.setVisible(reader.getAttributeAsInteger("value") != 0);
m_format.setVisible(reader.getAttribute<long>("value") != 0);
reader.readElement("GeometryType");
GeomType gType = static_cast<GeomType>(reader.getAttributeAsInteger("value"));
GeomType gType = reader.getAttribute<GeomType>("value");
if (gType == GeomType::GENERIC) {
TechDraw::GenericPtr gen = std::make_shared<TechDraw::Generic> ();
@@ -283,7 +283,7 @@ void CosmeticEdge::Restore(Base::XMLReader &reader)
if (reader.readNextElement()) {
if(strcmp(reader.localName(),"LineNumber") == 0 ) {
// this CosmeticEdge has an LineNumber attribute
m_format.setLineNumber(reader.getAttributeAsInteger("value"));
m_format.setLineNumber(reader.getAttribute<long>("value"));
} else {
// LineNumber not found.
// TODO: line number should be set to DashedLineGenerator.fromQtStyle(m_format.m_style)
@@ -391,21 +391,21 @@ void GeomFormat::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("GeomIndex");
// get the value of my Attribute
m_geomIndex = reader.getAttributeAsInteger("value");
m_geomIndex = reader.getAttribute<long>("value");
// style is deprecated in favour of line number, but we still save and restore it
// to avoid problems with old documents.
reader.readElement("Style");
m_format.setStyle(reader.getAttributeAsInteger("value"));
m_format.setStyle(reader.getAttribute<long>("value"));
reader.readElement("Weight");
m_format.setWidth(reader.getAttributeAsFloat("value"));
m_format.setWidth(reader.getAttribute<double>("value"));
reader.readElement("Color");
std::string tempHex = reader.getAttribute("value");
std::string tempHex = reader.getAttribute<const char*>("value");
Base::Color tempColor;
tempColor.fromHexString(tempHex);
m_format.setColor(tempColor);
reader.readElement("Visible");
m_format.setVisible((int)reader.getAttributeAsInteger("value") == 0 ? false : true);
m_format.setVisible(reader.getAttribute<bool>("value"));
// older documents may not have the LineNumber element, so we need to check the
// next entry. if it is a start element, then we check if it is a start element
// for LineNumber.
@@ -414,7 +414,7 @@ void GeomFormat::Restore(Base::XMLReader &reader)
if (reader.readNextElement()) {
if(strcmp(reader.localName(),"LineNumber") == 0 ||
strcmp(reader.localName(),"ISOLineNumber") == 0 ) { // this GeomFormat has an LineNumber attribute
m_format.setLineNumber(reader.getAttributeAsInteger("value"));
m_format.setLineNumber(reader.getAttribute<long>("value"));
} else {
// LineNumber not found.
// TODO: line number should be set to DashedLineGenerator.fromQtStyle(m_format.m_style),

View File

@@ -136,20 +136,20 @@ void CosmeticVertex::Restore(Base::XMLReader &reader)
}
TechDraw::Vertex::Restore(reader);
reader.readElement("PermaPoint");
permaPoint.x = reader.getAttributeAsFloat("X");
permaPoint.y = reader.getAttributeAsFloat("Y");
permaPoint.z = reader.getAttributeAsFloat("Z");
permaPoint.x = reader.getAttribute<double>("X");
permaPoint.y = reader.getAttribute<double>("Y");
permaPoint.z = reader.getAttribute<double>("Z");
reader.readElement("LinkGeom");
linkGeom = reader.getAttributeAsInteger("value");
linkGeom = reader.getAttribute<long>("value");
reader.readElement("Color");
std::string temp = reader.getAttribute("value");
std::string temp = reader.getAttribute<const char*>("value");
color.fromHexString(temp);
reader.readElement("Size");
size = reader.getAttributeAsFloat("value");
size = reader.getAttribute<double>("value");
reader.readElement("Style");
style = reader.getAttributeAsInteger("value");
style = reader.getAttribute<long>("value");
reader.readElement("Visible");
visible = (int)reader.getAttributeAsInteger("value")==0?false:true;
visible = reader.getAttribute<bool>("value");
Tag::Restore(reader);
}

View File

@@ -260,25 +260,25 @@ void BaseGeom::Save(Base::Writer &writer) const
void BaseGeom::Restore(Base::XMLReader &reader)
{
reader.readElement("GeomType");
geomType = static_cast<GeomType>(reader.getAttributeAsInteger("value"));
geomType = reader.getAttribute<GeomType>("value");
reader.readElement("ExtractType");
extractType = static_cast<ExtractionType>(reader.getAttributeAsInteger("value"));
extractType = reader.getAttribute<ExtractionType>("value");
reader.readElement("EdgeClass");
classOfEdge = static_cast<EdgeClass>(reader.getAttributeAsInteger("value"));
classOfEdge = reader.getAttribute<EdgeClass>("value");
reader.readElement("HLRVisible");
hlrVisible = reader.getAttributeAsInteger("value") != 0;
hlrVisible = reader.getAttribute<bool>("value");
reader.readElement("Reversed");
reversed = reader.getAttributeAsInteger("value") != 0;
reversed = reader.getAttribute<bool>("value");
reader.readElement("Ref3D");
ref3D = reader.getAttributeAsInteger("value");
ref3D = reader.getAttribute<long>("value");
reader.readElement("Cosmetic");
cosmetic = reader.getAttributeAsInteger("value") != 0;
cosmetic = reader.getAttribute<bool>("value");
reader.readElement("Source");
m_source = static_cast<SourceType>(reader.getAttributeAsInteger("value"));
m_source = reader.getAttribute<SourceType>("value");
reader.readElement("SourceIndex");
m_sourceIndex = reader.getAttributeAsInteger("value");
m_sourceIndex = reader.getAttribute<long>("value");
reader.readElement("CosmeticTag");
cosmeticTag = reader.getAttribute("value");
cosmeticTag = reader.getAttribute<const char*>("value");
}
std::vector<Base::Vector3d> BaseGeom::findEndPoints()
@@ -768,12 +768,12 @@ void Circle::Restore(Base::XMLReader &reader)
// read my Element
reader.readElement("Center");
// get the value of my Attribute
center.x = reader.getAttributeAsFloat("X");
center.y = reader.getAttributeAsFloat("Y");
center.z = reader.getAttributeAsFloat("Z");
center.x = reader.getAttribute<double>("X");
center.y = reader.getAttribute<double>("Y");
center.z = reader.getAttribute<double>("Z");
reader.readElement("Radius");
radius = reader.getAttributeAsFloat("value");
radius = reader.getAttribute<double>("value");
}
AOC::AOC(const TopoDS_Edge &e) : Circle(e)
@@ -979,26 +979,26 @@ void AOC::Restore(Base::XMLReader &reader)
{
Circle::Restore(reader);
reader.readElement("Start");
startPnt.x = reader.getAttributeAsFloat("X");
startPnt.y = reader.getAttributeAsFloat("Y");
startPnt.z = reader.getAttributeAsFloat("Z");
startPnt.x = reader.getAttribute<double>("X");
startPnt.y = reader.getAttribute<double>("Y");
startPnt.z = reader.getAttribute<double>("Z");
reader.readElement("End");
endPnt.x = reader.getAttributeAsFloat("X");
endPnt.y = reader.getAttributeAsFloat("Y");
endPnt.z = reader.getAttributeAsFloat("Z");
endPnt.x = reader.getAttribute<double>("X");
endPnt.y = reader.getAttribute<double>("Y");
endPnt.z = reader.getAttribute<double>("Z");
reader.readElement("Middle");
midPnt.x = reader.getAttributeAsFloat("X");
midPnt.y = reader.getAttributeAsFloat("Y");
midPnt.z = reader.getAttributeAsFloat("Z");
midPnt.x = reader.getAttribute<double>("X");
midPnt.y = reader.getAttribute<double>("Y");
midPnt.z = reader.getAttribute<double>("Z");
reader.readElement("StartAngle");
startAngle = reader.getAttributeAsFloat("value");
startAngle = reader.getAttribute<double>("value");
reader.readElement("EndAngle");
endAngle = reader.getAttributeAsFloat("value");
endAngle = reader.getAttribute<double>("value");
reader.readElement("Clockwise");
cw = (int)reader.getAttributeAsInteger("value")==0?false:true;
cw = reader.getAttribute<bool>("value");
reader.readElement("Large");
largeArc = (int)reader.getAttributeAsInteger("value")==0?false:true;
largeArc = reader.getAttribute<bool>("value");
}
//! Generic is a multiline
@@ -1072,14 +1072,14 @@ void Generic::Restore(Base::XMLReader &reader)
{
BaseGeom::Restore(reader);
reader.readElement("Points");
int stop = reader.getAttributeAsInteger("PointsCount");
int stop = reader.getAttribute<long>("PointsCount");
int i = 0;
for ( ; i < stop; i++) {
reader.readElement("Point");
Base::Vector3d p;
p.x = reader.getAttributeAsFloat("X");
p.y = reader.getAttributeAsFloat("Y");
p.z = reader.getAttributeAsFloat("Z");
p.x = reader.getAttribute<double>("X");
p.y = reader.getAttribute<double>("Y");
p.z = reader.getAttribute<double>("Z");
points.push_back(p);
}
reader.readEndElement("Points");
@@ -1341,28 +1341,28 @@ void Vertex::Save(Base::Writer &writer) const
void Vertex::Restore(Base::XMLReader &reader)
{
reader.readElement("Point");
pnt.x = reader.getAttributeAsFloat("X");
pnt.y = reader.getAttributeAsFloat("Y");
pnt.z = reader.getAttributeAsFloat("Z");
pnt.x = reader.getAttribute<double>("X");
pnt.y = reader.getAttribute<double>("Y");
pnt.z = reader.getAttribute<double>("Z");
reader.readElement("Extract");
extractType = static_cast<ExtractionType>(reader.getAttributeAsInteger("value"));
extractType = reader.getAttribute<ExtractionType>("value");
// reader.readElement("Visible");
// hlrVisible = (bool)reader.getAttributeAsInteger("value")==0?false:true;
// hlrVisible = reader.getAttribute<bool>("value");
reader.readElement("Ref3D");
ref3D = reader.getAttributeAsInteger("value");
ref3D = reader.getAttribute<long>("value");
reader.readElement("IsCenter");
hlrVisible = reader.getAttributeAsInteger("value") != 0;
hlrVisible = reader.getAttribute<bool>("value");
reader.readElement("Cosmetic");
cosmetic = reader.getAttributeAsInteger("value") != 0;
cosmetic = reader.getAttribute<bool>("value");
reader.readElement("CosmeticLink");
cosmeticLink = reader.getAttributeAsInteger("value");
cosmeticLink = reader.getAttribute<long>("value");
reader.readElement("CosmeticTag");
cosmeticTag = reader.getAttribute("value");
cosmeticTag = reader.getAttribute<const char*>("value");
//will restore read to eof looking for "Reference" in old docs?? YES!!
// reader.readElement("Reference");
// m_reference = (bool)reader.getAttributeAsInteger("value")==0?false:true;
// m_reference = reader.getAttribute<bool>("value");
Tag::Restore(reader, "VertexTag");

View File

@@ -147,12 +147,12 @@ void PropertyCenterLineList::Restore(Base::XMLReader &reader)
reader.clearPartialRestoreObject();
reader.readElement("CenterLineList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<CenterLine*> values;
values.reserve(count);
for (int i = 0; i < count; i++) {
reader.readElement("CenterLine");
const char* TypeName = reader.getAttribute("type");
const char* TypeName = reader.getAttribute<const char*>("type");
CenterLine *newG = static_cast<CenterLine *>(Base::Type::fromName(TypeName).createInstance());
newG->Restore(reader);

View File

@@ -151,12 +151,12 @@ void PropertyCosmeticEdgeList::Restore(Base::XMLReader &reader)
reader.clearPartialRestoreObject();
reader.readElement("CosmeticEdgeList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<CosmeticEdge*> values;
values.reserve(count);
for (int i = 0; i < count; i++) {
reader.readElement("CosmeticEdge");
const char* TypeName = reader.getAttribute("type");
const char* TypeName = reader.getAttribute<const char*>("type");
CosmeticEdge *newG = static_cast<CosmeticEdge *>(Base::Type::fromName(TypeName).createInstance());
newG->Restore(reader);

View File

@@ -149,12 +149,12 @@ void PropertyCosmeticVertexList::Restore(Base::XMLReader &reader)
reader.clearPartialRestoreObject();
reader.readElement("CosmeticVertexList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<CosmeticVertex*> values;
values.reserve(count);
for (int i = 0; i < count; i++) {
reader.readElement("CosmeticVertex");
const char* TypeName = reader.getAttribute("type");
const char* TypeName = reader.getAttribute<const char*>("type");
CosmeticVertex *newG = static_cast<CosmeticVertex *>(Base::Type::fromName(TypeName).createInstance());
newG->Restore(reader);

View File

@@ -161,12 +161,12 @@ void PropertyGeomFormatList::Restore(Base::XMLReader &reader)
reader.clearPartialRestoreObject();
reader.readElement("GeomFormatList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<GeomFormat*> values;
values.reserve(count);
for (int i = 0; i < count; i++) {
reader.readElement("GeomFormat");
const char* TypeName = reader.getAttribute("type");
const char* TypeName = reader.getAttribute<const char*>("type");
GeomFormat *newG = static_cast<GeomFormat *>(Base::Type::fromName(TypeName).createInstance());
newG->Restore(reader);

View File

@@ -86,7 +86,7 @@ void Tag::Restore(Base::XMLReader& reader, std::string_view elementName)
{
// Setting elementName is only for backwards compatibility!
reader.readElement(elementName.data());
std::string temp = reader.getAttribute("value");
std::string temp = reader.getAttribute<const char*>("value");
boost::uuids::string_generator gen;
boost::uuids::uuid u1 = gen(temp);
tag = u1;