IDirectionable
Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG
Entidad cuyo sentido (el orden de sus vértices) se puede invertir.
public interface IDirectionable
Tipos que la implementan: Line. ReadOnlyLine, Polygon y ReadOnlyPolygon no la implementan.
Métodos
| Miembro | Descripción |
|---|---|
void ChangeDirection() |
Invierte el orden de los vértices. |
Ejemplo
Este programa invierte un cauce digitalizado aguas arriba para que avance en el sentido de la corriente (de mayor a menor Z) y lo guarda en un archivo .bind:
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.IO.BinDouble;
using Digi21.Math;
if (args.Length != 1)
{
Console.WriteLine("Uso: CambiaSentido <salida.bind>");
return 1;
}
using var archivo = new BinDouble(args[0]);
var cauce = new Line(new Code("060101"));
cauce.Points.Add(new Point3D(0.0, 0.0, 120.0));
cauce.Points.Add(new Point3D(50.0, 10.0, 110.0));
cauce.Points.Add(new Point3D(100.0, 0.0, 100.0));
// El cauce se digitalizó aguas arriba: se invierte para que avance en el sentido de la corriente.
IDirectionable orientable = cauce;
if (cauce.Points[0].Z < cauce.Points[cauce.Points.Count - 1].Z)
orientable.ChangeDirection();
ReadOnlyLine guardado = archivo.Add(cauce);
Console.WriteLine($"Primer vértice: {guardado.FirstVertex}");
return 0;