void Waypoint::Restore(XMLReader &reader) { // read my Element reader.readElement("Waypoint"); Name = reader.getAttribute("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"))); Velocity = (float) reader.getAttributeAsFloat("vel"); Accelaration = (float) reader.getAttributeAsFloat("acc"); Cont = (reader.getAttributeAsInteger("cont") != 0)?true:false; Tool = reader.getAttributeAsInteger("tool"); Base = reader.getAttributeAsInteger("base"); std::string type = reader.getAttribute("type"); if(type=="PTP") Type = Waypoint::PTP; else if(type=="LIN") Type = Waypoint::LINE; else if(type=="CIRC") Type = Waypoint::CIRC; else if(type=="WAIT") Type = Waypoint::WAIT; else Type = Waypoint::UNDEF; }
void Constraint::Restore(XMLReader &reader) { reader.readElement("Constrain"); Name = reader.getAttribute("Name"); Type = (ConstraintType) reader.getAttributeAsInteger("Type"); Value = reader.getAttributeAsFloat("Value"); First = reader.getAttributeAsInteger("First"); FirstPos = (PointPos) reader.getAttributeAsInteger("FirstPos"); Second = reader.getAttributeAsInteger("Second"); SecondPos = (PointPos) reader.getAttributeAsInteger("SecondPos"); if(this->Type==InternalAlignment) { AlignmentType = (InternalAlignmentType) reader.getAttributeAsInteger("InternalAlignmentType"); if (reader.hasAttribute("InternalAlignmentIndex")) InternalAlignmentIndex = reader.getAttributeAsInteger("InternalAlignmentIndex"); } else { AlignmentType = Undef; } // read the third geo group if present if (reader.hasAttribute("Third")) { Third = reader.getAttributeAsInteger("Third"); ThirdPos = (PointPos) reader.getAttributeAsInteger("ThirdPos"); } // Read the distance a constraint label has been moved if (reader.hasAttribute("LabelDistance")) LabelDistance = (float)reader.getAttributeAsFloat("LabelDistance"); if (reader.hasAttribute("LabelPosition")) LabelPosition = (float)reader.getAttributeAsFloat("LabelPosition"); if (reader.hasAttribute("IsDriving")) isDriving = reader.getAttributeAsInteger("IsDriving") ? true : false; if (reader.hasAttribute("IsInVirtualSpace")) isInVirtualSpace = reader.getAttributeAsInteger("IsInVirtualSpace") ? true : false; }
void Command::Restore(XMLReader &reader) { reader.readElement("Command"); std::string gcode = reader.getAttribute("gcode"); setFromGCode(gcode); }