예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }