示例#1
0
        //-----------------------------------------------------
        public virtual IEnumerable <C2iComposant3D> SortChildsFor2D(EFaceVueDynamique face)
        {
            List <C2iComposant3D> lstFils = new List <C2iComposant3D>(m_listeFils);

            lstFils.Sort(delegate(C2iComposant3D a, C2iComposant3D b) { return(a.GetPointForSort2D(face).CompareTo(b.GetPointForSort2D(face))); });
            return(lstFils.AsReadOnly());
        }
示例#2
0
 //-----------------------------------------------
 public C2i3DEn2D(
     C2iComposant3D composant,
     EFaceVueDynamique face)
 {
     m_composant3D = composant;
     m_faceVisible = face;
 }
示例#3
0
        public override void Draw2D(
            sc2i.drawing.CContextDessinObjetGraphique ctx,
            EFaceVueDynamique faceVisible,
            Size sizeReference)
        {
            I2iObjetGraphique rect = Get2D(faceVisible);
            Brush             br   = new SolidBrush(BackColor);

            ctx.Graphic.FillRectangle(br, CUtilRect.Normalise(rect.RectangleAbsolu));
            br.Dispose();

            foreach (C2iComposant3D fils in SortChildsFor2D(faceVisible))
            {
                fils.Draw2D(ctx, faceVisible, sizeReference);
            }
        }
示例#4
0
        //-----------------------------------------------------
        public EFaceVueDynamique ConvertFaceToGlobal(EFaceVueDynamique face)
        {
            C3DSize           vecteur = m_NormalesFace[(int)face];
            CTransformation3D t       = CTransformation3D.Identity;

            PushTransformationChildToGlobal(t);
            vecteur = t.Transforme(vecteur);
            foreach (EFaceVueDynamique faceTest in Enum.GetValues(typeof(EFaceVueDynamique)))
            {
                if (m_NormalesFace[(int)faceTest].Equals(vecteur))
                {
                    return(faceTest);
                }
            }
            return(face);
        }
        public override CResultAErreur Serialize(sc2i.common.C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

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

            int nTmp = (int)m_orientation;

            serializer.TraiteInt(ref nTmp);
            m_orientation = (EGraduationOrientation)nTmp;

            nTmp = (int)m_HorizontalAlignment;
            serializer.TraiteInt(ref nTmp);
            m_HorizontalAlignment = (E3DAlignement)nTmp;

            nTmp = (int)m_VerticalAlignment;
            serializer.TraiteInt(ref nTmp);
            m_VerticalAlignment = (E3DAlignement)nTmp;

            nTmp = (int)DepthAlignment;
            serializer.TraiteInt(ref nTmp);
            m_DepthAlignment = (E3DAlignement)nTmp;

            nTmp = (int)m_faceAlignement;
            serializer.TraiteInt(ref nTmp);
            m_faceAlignement = (EFaceVueDynamique)nTmp;

            if (nVersion > 0)
            {
                string strTmp = AssociatedCoordinatePrefixes;
                serializer.TraiteString(ref strTmp);
                AssociatedCoordinatePrefixes = strTmp;
            }

            return(result);
        }
示例#6
0
文件: C3DSize.cs 项目: ykebaili/Timos
        public Size GetSize2D(EFaceVueDynamique face)
        {
            switch (face)
            {
            default:
            case EFaceVueDynamique.Rear:
            case EFaceVueDynamique.Front:
                return(new Size(With, Height));

            case EFaceVueDynamique.Right:
            case EFaceVueDynamique.Left:
                return(new Size(Depth, Height));

            case EFaceVueDynamique.Bottom:
            case EFaceVueDynamique.Top:
                return(new Size(With, Depth));
            }
        }
示例#7
0
        //-----------------------------------------------------
        public int GetPointForSort2D(EFaceVueDynamique face)
        {
            switch (face)
            {
            case EFaceVueDynamique.Front:
                return(PositionAbsolue.Z + Size.Depth);

            case EFaceVueDynamique.Left:
                return(-PositionAbsolue.X);

            case EFaceVueDynamique.Top:
                return(PositionAbsolue.Y + Size.Height);

            case EFaceVueDynamique.Rear:
                return(PositionAbsolue.Z);

            case EFaceVueDynamique.Right:
                return(Position.X + Size.With);

            case EFaceVueDynamique.Bottom:
                return(PositionAbsolue.Y);
            }
            return(PositionAbsolue.Z);
        }
        //-------------------------------------------
        public override void Draw2D(sc2i.drawing.CContextDessinObjetGraphique contexte, EFaceVueDynamique faceVisible, System.Drawing.Size sizeReference)
        {
            I2iObjetGraphique rect = Get2D(faceVisible);
            Brush             br   = new SolidBrush(BackColor);
            Rectangle         rct  = CUtilRect.Normalise(rect.RectangleAbsolu);

            contexte.Graphic.FillRectangle(br, rct);
            br.Dispose();


            contexte.Graphic.DrawRectangle(Pens.Beige, rct);


            Pen pen = new Pen(Color.Black);

            if (ConvertFaceToLocal(faceVisible) == AlignmentFace)
            {
                if (m_nEspaceGraduations > 0)
                {
                    switch (GraduationOrientation)
                    {
                    case EGraduationOrientation.HorizMinToMax:
                        for (int n = 0; n < rct.Width; n += m_nEspaceGraduations)
                        {
                            contexte.Graphic.DrawLine(pen, rct.Left + n, rct.Top, rct.Left + n, rct.Bottom);
                        }
                        break;

                    case EGraduationOrientation.HorizMaxToMin:
                        for (int n = rct.Width; n > 0; n -= m_nEspaceGraduations)
                        {
                            contexte.Graphic.DrawLine(pen, rct.Left + n, rct.Top, rct.Left + n, rct.Bottom);
                        }
                        break;

                    case EGraduationOrientation.VertMinToMax:
                        for (int n = 0; n < rct.Height; n += m_nEspaceGraduations)
                        {
                            contexte.Graphic.DrawLine(pen, rct.Left, rct.Top + n, rct.Right, rct.Top + n);
                        }
                        break;

                    case EGraduationOrientation.VertMaxToMin:
                        for (int n = Size.Height; n > 0; n -= m_nEspaceGraduations)
                        {
                            contexte.Graphic.DrawLine(pen, rct.Left, rct.Top + n, rct.Right, rct.Top + n);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            pen.Dispose();

            foreach (C2iComposant3D fils in SortChildsFor2D(faceVisible))
            {
                fils.Draw2D(contexte, faceVisible, sizeReference);
            }
        }
        public override void Draw2D(sc2i.drawing.CContextDessinObjetGraphique contexte, EFaceVueDynamique faceVisible, System.Drawing.Size sizeReference)
        {
            I2iObjetGraphique rect = Get2D(faceVisible);
            Brush             br   = new HatchBrush(HatchStyle.Divot, ForeColor, Color.FromArgb(50, BackColor));
            Rectangle         rct  = CUtilRect.Normalise(rect.RectangleAbsolu);

            contexte.Graphic.FillRectangle(br, rct);
            br.Dispose();
            contexte.Graphic.DrawRectangle(Pens.Beige, rct);

            foreach (C2iComposant3D fils in SortChildsFor2D(faceVisible))
            {
                fils.Draw2D(contexte, faceVisible, sizeReference);
            }
        }
示例#10
0
 //-----------------------------------------------------
 public abstract void Draw2D(
     CContextDessinObjetGraphique contexte,
     EFaceVueDynamique faceVisible,
     Size sizeReference);
示例#11
0
 //-----------------------------------------------------
 public virtual I2iObjetGraphique Get2D(EFaceVueDynamique face)
 {
     return(new C2i3DEn2D(this, face));
 }