Complex
Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG
Complejo de lectura y escritura: una entidad con sus propios códigos formada por otras entidades (líneas, puntos, textos, polígonos u otros complejos). Añade a ReadOnlyComplex los constructores y la colección de lectura y escritura de las entidades.
public class Complex : ReadOnlyComplex
Herencia: Object → Entity → ReadOnlyComplex → Complex
Implementa: las interfaces de Entity.
Una entidad añadida a Entities pasa a pertenecer al complejo: no la añadas a otro complejo, a un polígono ni a un archivo de dibujo. Añadir entidades no actualiza las coordenadas mínimas y máximas del complejo.
Al añadir el complejo a un archivo de dibujo, el complejo pasa a pertenecer al archivo (Owner) y es de solo lectura: los métodos de Entities que lo modifican lanzan InvalidOperationException.
Los miembros de ReadOnlyComplex y de Entity se describen en sus páginas.
Constructores
| Constructor | Descripción |
|---|---|
Complex(Code code) |
Complejo vacío con un código. |
Complex(IEnumerable<Code> codes) |
Complejo vacío con varios códigos. |
Propiedades
| Propiedad | Descripción |
|---|---|
IList<Entity> Entities { get; } |
Entidades del complejo, de lectura y escritura. Oculta ReadOnlyComplex.Entities. |
Ejemplo
Este programa crea un complejo con un punto y una línea y lo escribe en un archivo .bind:
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.IO.BinDouble;
using Digi21.Math;
if (args.Length != 1)
{
Console.WriteLine("Uso: CreaComplejo <salida.bind>");
return 1;
}
var vértice = new Point(new Code("100100"));
vértice.Coordinate = new Point3D(50, 50, 7);
var eje = new Line(new Code("100200"));
eje.Points.Add(new Point3D(0, 50, 7));
eje.Points.Add(new Point3D(100, 50, 7));
// Las entidades añadidas pasan a pertenecer al complejo.
var complejo = new Complex(new Code("100000"));
complejo.Entities.Add(vértice);
complejo.Entities.Add(eje);
Console.WriteLine(complejo.Entities.Count); // 2
Console.WriteLine(complejo.Entities[0].GetType().Name); // Point
foreach (var entidad in complejo.Entities)
Console.WriteLine(entidad.GetType().Name); // Point, Line
using var archivo = new BinDouble(args[0]);
archivo.Add(complejo);
return 0;