/// <summary> /// Aggiunge un elemento alla Display List /// Ridimensiona array se necessario /// </summary> /// <param name="shape">Forma</param> /// <param name="colour">Colore</param> /// <param name="x1">Primo punto: X...</param> /// <param name="y1">...e Y</param> /// <param name="x2">Secondo punto: X...</param> /// <param name="y2">...e Y</param> public void Add(Elemento element, Def.Shape shape, int cx, int cy) { com[count].elemento = element; com[count].shape = shape; //com[count].colour = colour; com[count].center.X = cx; com[count].center.Y = cy; if (element != null) { count++; // Aggiunge all'array solo le l'elemento non è nullo } if (com.Length - count < Def.FREE_MIN) { Array.Resize <Command>(ref com, count + Def.FREE_MAX); #if (DEBUG) LOG.Write($"DisplayList.Command[{com.Length}]+"); #endif } return; }
/// <summary> /// Aggiunge un elemento, verificando: /// tipo di elemento, capienza liste, /// riferimenti agli elementi, rami già esistenti /// </summary> /// <param name="e">Elemento</param> /// <returns>true se riuscito</returns> public bool Add(Elemento e) { bool ok = false; if ((e is Nodo) && (!maxIDerror)) // Se è Nodo e con ID accettabile { e.ID = freeIDnodo; freeIDnodo++; e.Name = $"N{e.ID}"; if (nodi.Count < Def.NUM_NODI_MAX) // Controlla capienza { nodi.Add((Nodo)e); ok = true; } } else if ((e is Ramo) && (!maxIDerror)) // Se è Ramo e con ID accettabile { e.ID = freeIDramo; freeIDramo++; e.Name = $"R{e.ID}"; if (AggiornaRifNodiInRamo((Ramo)e)) { if (rami.Count < Def.NUM_RAMI_MAX) // Controlla capienza { uint n1 = ((Ramo)e).N1; uint n2 = ((Ramo)e).N2; if (GetRami(n1, n2).Count == 0) { rami.Add((Ramo)e); ok = true; } } } } CheckMaxID(); return(ok); }
public StatoAttivo() { stat = Def.Stat.Vista; dragging = false; dragFromElement = null; }
/// <summary> /// CopyData /// Copia i dati serializzabili, ma non l'ID, dall'elemento 'e' a this /// Clone() con estensione o altro: laborioso (https://www.c-sharpcorner.com/article/cloning-objects-in-net-framework/) /// </summary> /// <param name="e">elemento da cui copiare i dati</param> public virtual void CopyData(Elemento e) { name = e.name; // Copia il nome }
/// <summary> /// Aggiunge un elemento alla Display List /// </summary> /// <param name="element">Rif. all'Elemento</param> /// <param name="shape"></param> /// <param name="colour"></param> /// <param name="x1">Primo punto</param> /// <param name="y1"></param> /// <param name="x2">econdo punto</param> /// <param name="y2"></param> /// <param name="cx">Centro</param> /// <param name="cy"></param> public void AddDL(Elemento element, Def.Shape shape, int cx, int cy) { dl.Add(element, shape, cx, cy); }