//-------------------------------------- public bool AddFils(C2iComposant3D fils) { if (fils == this) { return(false); } fils.m_parent = this; if (fils.LocationInParent != null) { fils.LocationInParent.ComposantAssocie = fils; } if (!m_listeFils.Contains(fils)) { m_listeFils.Add(fils); CEmplacementDansParent newPlace = GetNewEmplacementForChild(fils); newPlace.ComposantAssocie = fils; if (fils.LocationInParent == null || fils.LocationInParent.GetType() != newPlace.GetType()) { fils.LocationInParent = newPlace; } RepositionneChilds(); return(true); } return(false); }
//--------------------------------------- private bool PlaceFilsACoordonnées(IObjetACoordonnees fils, CNiveauCoordonnee[] niveaux) { if (niveaux == null || niveaux.Length == 0) { return(false); } C2iComposant3D composant = fils.GetComposantPhysique(); if (composant == null) { return(false); } IEnumerable <IComposantPourObjetACoordonnées> lstPossibles = GetTousLesFilsPourElementsACoordonnées(niveaux[0].Prefixe); if (lstPossibles.Count() > 0) { IComposantPourObjetACoordonnées composantParent = lstPossibles.ElementAt(0); if (niveaux.Length == 1) { return(composantParent.AddFilsWithIndex(composant, niveaux[0].Index)); } else { List <CNiveauCoordonnee> lst = new List <CNiveauCoordonnee>(niveaux); lst.RemoveAt(0); return(composant.PlaceFilsACoordonnées(fils, lst.ToArray())); } } return(false); }
//----------------------------------------------- public C2i3DEn2D( C2iComposant3D composant, EFaceVueDynamique face) { m_composant3D = composant; m_faceVisible = face; }
//-------------------------------------- public void RemoveFils(C2iComposant3D fils) { if (m_listeFils.Contains(fils)) { m_listeFils.Remove(fils); fils.m_parent = null; } }
//-------------------------------------- public void BringToFront(C2iComposant3D composant) { if (m_listeFils.Contains(composant)) { m_listeFils.Remove(composant); AddFils(composant); } }
//---------------------------------------------- public bool AddFilsWithIndex(C2iComposant3D composant, int nIndex) { CGraduateCoordinate coord = new CGraduateCoordinate(composant); coord.Position = nIndex; composant.LocationInParent = coord; AddFils(composant); return(true); }
//-------------------------------------- public void FrontToBack(C2iComposant3D composant) { if (m_listeFils.Contains(composant)) { m_listeFils.Remove(composant); m_listeFils.Insert(0, composant); RepositionneChilds(); } }
public void AjustePosition(C2iComposant3D composant, int nGraduation) { List <C2iComposant3D> lst = GetChildsTries(); C2iComposant3D cRef = null; int nIndex = lst.IndexOf(composant); if (lst.Count > nGraduation) { cRef = lst[nGraduation]; } else if (lst.Count > 0) { cRef = lst[lst.Count - 1]; } CPositionneurDansParentAutoFill p = new CPositionneurDansParentAutoFill(composant, GetAxeAlignement()); CPositionneurDansParentAutoFill pRef = null; if (cRef != null) { pRef = new CPositionneurDansParentAutoFill(cRef, GetAxeAlignement()); } int nVal = p.ValeurAxe; int nTaille = new CPositionneurDansParentAutoFill(this, GetAxeAlignement()).TailleOccupee; switch (FillOrientation) { case EGraduationOrientation.HorizMinToMax: case EGraduationOrientation.VertMinToMax: if (pRef == null) { nVal = -1; } else { nVal = pRef.ValeurAxe + Math.Sign(nGraduation - nIndex); } break; case EGraduationOrientation.VertMaxToMin: case EGraduationOrientation.HorizMaxToMin: if (pRef == null) { nVal = nTaille + 1; } else { nVal = pRef.ValeurAxe - Math.Sign(nGraduation - nIndex); } break; } p.ValeurAxe = nVal; MyRepositionneChilds(); }
public void AjustePosition(C2iComposant3D composant, int nGraduation) { int nVal = nGraduation * m_nEspaceGraduations; int nX = composant.Position.X; int nY = composant.Position.Y; int nZ = composant.Position.Z; switch (HorizontalAlignment) { case E3DAlignement.Min: nX = 0; break; case E3DAlignement.Max: nX = Size.With - composant.Size.With; break; case E3DAlignement.Center: nX = (Size.With - composant.Size.With) / 2; break; } switch (VerticalAlignment) { case E3DAlignement.Min: nY = 0; break; case E3DAlignement.Max: nY = Size.Height - composant.Size.Height; break; case E3DAlignement.Center: nY = (Size.Height - composant.Size.Height) / 2; break; } switch (DepthAlignment) { case E3DAlignement.Min: nZ = 0; break; case E3DAlignement.Max: nZ = Size.Depth - composant.Size.Depth; break; case E3DAlignement.Center: nZ = (Size.Depth - composant.Size.Depth) / 2; break; } composant.Position = new C3DPoint(nX, nY, nZ); CPositionneurDansParentAutoFill p = new CPositionneurDansParentAutoFill(composant, GetAxeAlignement()); int nTaille = new CPositionneurDansParentAutoFill(this, GetAxeAlignement()).TailleOccupee; switch (GraduationOrientation) { case EGraduationOrientation.HorizMinToMax: case EGraduationOrientation.VertMinToMax: p.ValeurAxe = nVal; break; case EGraduationOrientation.HorizMaxToMin: case EGraduationOrientation.VertMaxToMin: p.ValeurAxe = nTaille - nVal; break; } }
public override CEmplacementDansParent GetNewEmplacementForChild(C2iComposant3D composantFils) { CGraduateCoordinate coord = new CGraduateCoordinate(composantFils); return(coord); }
public CEmplacementDansParent(C2iComposant3D composant) { m_composantAssocie = composant; }
//----------------------------------------------------- public override CEmplacementDansParent GetNewEmplacementForChild(C2iComposant3D fils) { return(new CDockStyle(fils)); }
public CPositionneurDansParentAutoFill(C2iComposant3D composant, EOrientationAxe axePositionne) { m_axePositionne = axePositionne; m_composant = composant; }
public CDockStyle(C2iComposant3D composant) : base(composant) { }
public CGraduateCoordinate(C2iComposant3D composant) : base(composant) { }
//----------------------------------------------------- public virtual CEmplacementDansParent GetNewEmplacementForChild(C2iComposant3D composantFils) { return(null); }