mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 10:46:00 +08:00
Changed the parser for InventoryItem deserialization. Moved some utility functions around.
This commit is contained in:
@@ -1558,5 +1558,66 @@ namespace OpenSim.Framework
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
public static UUID ReadUUID(XmlTextReader reader, string name)
|
||||
{
|
||||
UUID id;
|
||||
string idStr;
|
||||
|
||||
reader.ReadStartElement(name);
|
||||
|
||||
if (reader.Name == "Guid")
|
||||
idStr = reader.ReadElementString("Guid");
|
||||
else if (reader.Name == "UUID")
|
||||
idStr = reader.ReadElementString("UUID");
|
||||
else // no leading tag
|
||||
idStr = reader.ReadContentAsString();
|
||||
UUID.TryParse(idStr, out id);
|
||||
reader.ReadEndElement();
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
public static Vector3 ReadVector(XmlTextReader reader, string name)
|
||||
{
|
||||
Vector3 vec;
|
||||
|
||||
reader.ReadStartElement(name);
|
||||
vec.X = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // X or x
|
||||
vec.Y = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Y or y
|
||||
vec.Z = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Z or z
|
||||
reader.ReadEndElement();
|
||||
|
||||
return vec;
|
||||
}
|
||||
|
||||
public static Quaternion ReadQuaternion(XmlTextReader reader, string name)
|
||||
{
|
||||
Quaternion quat = new Quaternion();
|
||||
|
||||
reader.ReadStartElement(name);
|
||||
while (reader.NodeType != XmlNodeType.EndElement)
|
||||
{
|
||||
switch (reader.Name.ToLower())
|
||||
{
|
||||
case "x":
|
||||
quat.X = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
|
||||
break;
|
||||
case "y":
|
||||
quat.Y = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
|
||||
break;
|
||||
case "z":
|
||||
quat.Z = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
|
||||
break;
|
||||
case "w":
|
||||
quat.W = reader.ReadElementContentAsFloat(reader.Name, String.Empty);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
reader.ReadEndElement();
|
||||
|
||||
return quat;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user