void IXmlSerializable.WriteXml(XmlWriter writer)
        {
            XmlSerializerNamespaces _namespaces = new XmlSerializerNamespaces(new XmlQualifiedName[] { new XmlQualifiedName(/*string.Empty*/) });

            XmlSerializer xml = new XmlSerializer(CalibrateData.GetType());

            writer.WriteStartElement("CalibrateData");
            xml.Serialize(writer, CalibrateData, _namespaces);
            writer.WriteEndElement();

            var temp = PixelToWorld.RawData.ToDArr();

            xml = new XmlSerializer(temp.GetType());
            writer.WriteStartElement("PixelToWorld");
            xml.Serialize(writer, temp, _namespaces);
            writer.WriteEndElement();

            temp = WorldToPixel.RawData.ToDArr();
            xml  = new XmlSerializer(temp.GetType());
            writer.WriteStartElement("WorldToPixel");
            xml.Serialize(writer, temp, _namespaces);
            writer.WriteEndElement();
        }
        void IXmlSerializable.ReadXml(XmlReader reader)
        {
            bool wasEmpty = reader.IsEmptyElement;

            reader.Read();

            if (wasEmpty)
            {
                return;
            }
            while (reader.NodeType != XmlNodeType.EndElement)
            {
                XmlSerializer typeSer = new XmlSerializer(CalibrateData.GetType());
                reader.ReadStartElement("CalibrateData");
                CalibrateData = typeSer.Deserialize(reader) as List <CalibDataPoint>;
                reader.ReadEndElement();

                typeSer = new XmlSerializer(typeof(double[]));
                reader.ReadStartElement("PixelToWorld");
                double[] temp = typeSer.Deserialize(reader) as double[];
                reader.ReadEndElement();
                PixelToWorld = new HHomMat2D(new HTuple(temp));

                typeSer = new XmlSerializer(typeof(double[]));
                reader.ReadStartElement("WorldToPixel");
                temp = typeSer.Deserialize(reader) as double[];
                reader.ReadEndElement();
                WorldToPixel = new HHomMat2D(new HTuple(temp));

                reader.MoveToContent();
            }
            reader.ReadEndElement();


            IsBuiltted = CalibrateData.Count > 2;
        }