//----------------------------------------------------- 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()); }
//----------------------------------------------- public C2i3DEn2D( C2iComposant3D composant, EFaceVueDynamique face) { m_composant3D = composant; m_faceVisible = face; }
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); } }
//----------------------------------------------------- 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); }
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)); } }
//----------------------------------------------------- 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); } }
//----------------------------------------------------- public abstract void Draw2D( CContextDessinObjetGraphique contexte, EFaceVueDynamique faceVisible, Size sizeReference);
//----------------------------------------------------- public virtual I2iObjetGraphique Get2D(EFaceVueDynamique face) { return(new C2i3DEn2D(this, face)); }