aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Util.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Util.cs')
-rw-r--r--OpenSim/Framework/Util.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index e8f8e01..101ece4 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1558,5 +1558,66 @@ namespace OpenSim.Framework
1558 return string.Empty; 1558 return string.Empty;
1559 } 1559 }
1560 1560
1561 public static UUID ReadUUID(XmlTextReader reader, string name)
1562 {
1563 UUID id;
1564 string idStr;
1565
1566 reader.ReadStartElement(name);
1567
1568 if (reader.Name == "Guid")
1569 idStr = reader.ReadElementString("Guid");
1570 else if (reader.Name == "UUID")
1571 idStr = reader.ReadElementString("UUID");
1572 else // no leading tag
1573 idStr = reader.ReadContentAsString();
1574 UUID.TryParse(idStr, out id);
1575 reader.ReadEndElement();
1576
1577 return id;
1578 }
1579
1580 public static Vector3 ReadVector(XmlTextReader reader, string name)
1581 {
1582 Vector3 vec;
1583
1584 reader.ReadStartElement(name);
1585 vec.X = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // X or x
1586 vec.Y = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Y or y
1587 vec.Z = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Z or z
1588 reader.ReadEndElement();
1589
1590 return vec;
1591 }
1592
1593 public static Quaternion ReadQuaternion(XmlTextReader reader, string name)
1594 {
1595 Quaternion quat = new Quaternion();
1596
1597 reader.ReadStartElement(name);
1598 while (reader.NodeType != XmlNodeType.EndElement)
1599 {
1600 switch (reader.Name.ToLower())
1601 {
1602 case "x":
1603 quat.X = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
1604 break;
1605 case "y":
1606 quat.Y = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
1607 break;
1608 case "z":
1609 quat.Z = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
1610 break;
1611 case "w":
1612 quat.W = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
1613 break;
1614 }
1615 }
1616
1617 reader.ReadEndElement();
1618
1619 return quat;
1620 }
1621
1561 } 1622 }
1562} 1623}