public bool ReadProperty(Property prop, XmlNode token) { try { Vector3[] read = new Vector3[Fields.Length]; for (int i = 0; i < read.Length; i++) { string field = Fields[i]; var fieldToken = token[field]; read[i] = Vector3Token.ReadVector3(fieldToken); } Vector3 origin = read[0], direction = read[1]; Ray ray = new Ray(origin, direction); prop.Type = PropertyType.Ray; prop.Value = ray; return(true); } catch { return(false); } }
public void WriteProperty(Property prop, XmlDocument doc, XmlNode node) { Ray ray = prop.CastValue <Ray>(); XmlElement origin = doc.CreateElement("origin"); XmlElement direction = doc.CreateElement("direction"); Vector3Token.WriteVector3(doc, origin, ray.Origin); Vector3Token.WriteVector3(doc, direction, ray.Direction); node.AppendChild(origin); node.AppendChild(direction); }