//---------------------------------------------- public bool AddFilsWithIndex(C2iComposant3D composant, int nIndex) { CGraduateCoordinate coord = new CGraduateCoordinate(composant); coord.Position = nIndex; composant.LocationInParent = coord; AddFils(composant); return(true); }
protected override void MyRepositionneChilds() { int nCoordMin = 0; List <C2iComposant3D> lst = new List <C2iComposant3D>(Childs); EOrientationAxe axe = GetAxeAlignement(); lst.Sort(delegate(C2iComposant3D c1, C2iComposant3D c2) { CPositionneurDansParentAutoFill p1 = new CPositionneurDansParentAutoFill(c1, axe); CPositionneurDansParentAutoFill p2 = new CPositionneurDansParentAutoFill(c2, axe); switch (GraduationOrientation) { case EGraduationOrientation.HorizMinToMax: case EGraduationOrientation.VertMinToMax: return(p1.ValeurAxe.CompareTo(p2.ValeurAxe)); case EGraduationOrientation.VertMaxToMin: case EGraduationOrientation.HorizMaxToMin: return(p2.ValeurAxe.CompareTo(p1.ValeurAxe)); } return(0); } ); int nTaille = new CPositionneurDansParentAutoFill(this, axe).TailleOccupee; foreach (C2iComposant3D fils in lst) { CPositionneurDansParentAutoFill p = new CPositionneurDansParentAutoFill(fils, axe); int nPos = 0; switch (GraduationOrientation) { case EGraduationOrientation.HorizMinToMax: case EGraduationOrientation.VertMinToMax: nPos = (int)(p.ValeurAxe / m_nEspaceGraduations); break; case EGraduationOrientation.HorizMaxToMin: case EGraduationOrientation.VertMaxToMin: nPos = (int)((nTaille - p.ValeurAxe) / m_nEspaceGraduations); break; } if (nPos < nCoordMin) { nPos = nCoordMin; } AjustePosition(fils, nPos); CGraduateCoordinate coord = new CGraduateCoordinate(fils); coord.Position = nPos; fils.LocationInParent = coord; nCoordMin = 0;// nPos + Math.Max(1, ((int)(p.TailleOccupee / m_nEspaceGraduations)) + 1); } }
public override CEmplacementDansParent GetNewEmplacementForChild(C2iComposant3D composantFils) { CGraduateCoordinate coord = new CGraduateCoordinate(composantFils); return(coord); }
protected override void MyRepositionneChilds() { List <C2iComposant3D> lst = GetChildsTries(); int nPos = 0; int nIndex = 0; EOrientationAxe axe = GetAxeAlignement(); int nTailleTotale = new CPositionneurDansParentAutoFill(this, axe).TailleOccupee; foreach (C2iComposant3D fils in lst) { int nX = fils.Position.X; int nY = fils.Position.Y; int nZ = fils.Position.Z; switch (HorizontalAlignment) { case E3DAlignement.Min: nX = 0; break; case E3DAlignement.Max: nX = Size.With - fils.Size.With; break; case E3DAlignement.Center: nX = (Size.With - fils.Size.With) / 2; break; } switch (VerticalAlignment) { case E3DAlignement.Min: nY = 0; break; case E3DAlignement.Max: nY = Size.Height - fils.Size.Height; break; case E3DAlignement.Center: nY = (Size.Height - fils.Size.Height) / 2; break; } switch (DepthAlignment) { case E3DAlignement.Min: nZ = 0; break; case E3DAlignement.Max: nZ = Size.Depth - fils.Size.Depth; break; case E3DAlignement.Center: nZ = (Size.Depth - fils.Size.Depth) / 2; break; } fils.Position = new C3DPoint(nX, nY, nZ); CPositionneurDansParentAutoFill p = new CPositionneurDansParentAutoFill(fils, axe); switch (FillOrientation) { case EGraduationOrientation.HorizMinToMax: case EGraduationOrientation.VertMinToMax: p.ValeurAxe = nPos; nPos += p.TailleOccupee; break; case EGraduationOrientation.HorizMaxToMin: case EGraduationOrientation.VertMaxToMin: p.ValeurAxe = nTailleTotale - nPos; nPos += p.TailleOccupee; break; default: break; } CGraduateCoordinate coord = new CGraduateCoordinate(); coord.Position = nIndex; coord.ComposantAssocie = fils; fils.LocationInParent = coord; nIndex++; } }