示例#1
0
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }

            int nMode = (int)ModeOperationnel;

            serializer.TraiteInt(ref nMode);
            ModeOperationnel = (EModeOperationnelSchema)nMode;

            return(CResultAErreur.True);
        }
示例#2
0
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }


            result = base.Serialize(serializer);
            if (!result)
            {
                return(result);
            }

            int nX, nY;

            if (nVersion >= 1)
            {
                nX = m_pointOffsetElement1.X;
                nY = m_pointOffsetElement1.Y;
                serializer.TraiteInt(ref nX);
                serializer.TraiteInt(ref nY);
                m_pointOffsetElement1 = new Point(nX, nY);

                nX = m_pointOffsetElement2.X;
                nY = m_pointOffsetElement2.Y;
                serializer.TraiteInt(ref nX);
                serializer.TraiteInt(ref nY);
                m_pointOffsetElement2 = new Point(nX, nY);
            }

            if (nVersion >= 2)
            {
                int nTmp;
                nTmp = m_foreColor.ToArgb();
                serializer.TraiteInt(ref nTmp);
                m_foreColor = Color.FromArgb(nTmp);

                serializer.TraiteInt(ref m_nLineWidth);
            }

            int nNbPts = 0;

            nNbPts = Points.Length;
            serializer.TraiteInt(ref nNbPts);
            switch (serializer.Mode)
            {
            case ModeSerialisation.Ecriture:
                foreach (Point pt in Points)
                {
                    nX = pt.X;
                    nY = pt.Y;
                    serializer.TraiteInt(ref nX);
                    serializer.TraiteInt(ref nY);
                }
                break;

            case ModeSerialisation.Lecture:
                m_listePoints = new List <Point>();
                for (int n = 0; n < nNbPts; n++)
                {
                    nX = 0;
                    nY = 0;
                    serializer.TraiteInt(ref nX);
                    serializer.TraiteInt(ref nY);
                    m_listePoints.Add(new Point(nX, nY));
                }
                break;
            }
            if (nVersion >= 3)
            {
                int nSens = (int)m_sensReseau;
                serializer.TraiteInt(ref nSens);
                m_sensReseau = (ESensAllerRetourLienReseau)nSens;
            }
            if (nVersion >= 4)
            {
                int nMode = (int)m_modeOperationnel;
                serializer.TraiteInt(ref nMode);
                m_modeOperationnel = (EModeOperationnelSchema)nMode;
            }
            if (nVersion >= 5)
            {
                serializer.TraiteBool(ref m_bIsBezier);
            }
            return(result);
        }