void Init::parseDispersion(const pugi::xml_node &node) { cout << "Dispersion:" << endl; string filename = node.child_value("filename"); string filetype = node.child_value("filetype"); SpinWaveDispersion Dispersion; Dispersion.setFilename(filename); SpinWaveDispersion::Options PrintOptions; string temp; bool value; temp = node.child("filetype").child_value("printposition"); value = boost::lexical_cast<bool, std::string>(temp); PrintOptions = SpinWaveDispersion::Options::PrintPosition; cout << "print position: "<< value << endl; Dispersion.setOptions(PrintOptions,value); temp = node.child("filetype").child_value("printfrequency"); value = boost::lexical_cast<bool, std::string>(temp); PrintOptions = SpinWaveDispersion::Options::PrintFrequency; cout << "print frequency: "<< value << endl; Dispersion.setOptions(PrintOptions,value); temp = node.child("filetype").child_value("printintensity"); value = boost::lexical_cast<bool, std::string>(temp); PrintOptions = SpinWaveDispersion::Options::PrintIntensity; cout << "print intensity: "<< value << endl; Dispersion.setOptions(PrintOptions,value); pugi::xml_node lines = node.child("lines"); for (pugi::xml_node group = lines.child("group");group; group = group.next_sibling("group")) { double x0,y0,z0,x1,y1,z1,NumberPoints; NumberPoints = stringToDouble(group.child_value("numberpoints")); x0 = stringToDouble(group.child("firstpoint").child_value("x")); y0 = stringToDouble(group.child("firstpoint").child_value("y")); z0 = stringToDouble(group.child("firstpoint").child_value("z")); x1 = stringToDouble(group.child("lastpoint").child_value("x")); y1 = stringToDouble(group.child("lastpoint").child_value("y")); z1 = stringToDouble(group.child("lastpoint").child_value("z")); cout << x0 << " " << y0 << " " << z0 << " " << x1 << " " << y1 << " " << z1 << endl; PointsAlongLine Line; Line.setFirstPoint(x0,y0,z0); Line.setFinalPoint(x1,y1,z1); Line.setNumberPoints(NumberPoints); Dispersion.setPoints(Line.getPoints()); } Dispersion.setGenie(builder.createElement()); Dispersion.save(); }