//! Reads/Writes struct properties from/to a stream
        public override void Serialize(PropertyStream stream)
        {
            base.Serialize(stream);

            stream.SerializeStruct("Src", m_Src);
            stream.SerializeStruct("Dest", m_Dest);
            m_fSpeed = stream.Serialize<float>("Speed");
        }
        //! serializes the entity to/from a PropertyStream
        public override void Serialize(PropertyStream stream)
        {
            base.Serialize(stream);

            m_strTemplatePath = stream.Serialize<string>("TemplatePath");

            if (m_strTemplatePath.Length > 0)
            {
                LoadFromXML(m_strTemplatePath, this);
            }

            // serialize the instance data
            if(GetNumChildren() > 0)
            {
                m_InstanceData.m_Instance = GetChild(0);
                stream.SerializeStruct("InstanceData", m_InstanceData);
            }
        }