UtilidadesSecuenciaVertexPointer

Espacio de nombres: Digi21.Utilities
Ensamblado: Digi21.Utilities

Método de extensión de IEnumerable<VertexPointer>. Cada nodo que devuelve NodeDetector.DetectNodes es un IGrouping<Point2D, VertexPointer>, que es también un IEnumerable<VertexPointer>.

public static class UtilidadesSecuenciaVertexPointer

Métodos estáticos

LíneaLlegaANodo

public static bool LíneaLlegaANodo(this IEnumerable<VertexPointer> secuencia, ReadOnlyLine line)

Devuelve true si algún VertexPointer de secuencia tiene como Line la instancia line. La comparación es de referencias.

Lanza ArgumentNullException si secuencia es null.

Ejemplo

Este programa detecta los nodos de tres líneas y muestra, para cada nodo, si la línea a llega a él:

using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Topology;
using Digi21.Math;
using Digi21.Utilities;

Line CreaLínea(params Point3D[] vértices)
{
    var línea = new Line(new Code("020100"));
    foreach (var vértice in vértices)
        línea.Points.Add(vértice);
    return línea;
}

var a = CreaLínea(new Point3D(0, 0, 0), new Point3D(10, 0, 0));
var b = CreaLínea(new Point3D(10, 0, 0), new Point3D(10, 10, 0));
var c = CreaLínea(new Point3D(10, 10, 0), new Point3D(0, 10, 0));

ReadOnlyLine[] líneas = [a, b, c];
foreach (var nodo in líneas.DetectNodes())
    Console.WriteLine($"{nodo.Key}: {nodo.Count()} extremos, ¿llega a? {nodo.LíneaLlegaANodo(a)}");