GeometryFactory
Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG
Clase estática con métodos de extensión que crean geometrías a partir de otras.
public static class GeometryFactory
Herencia: Object → GeometryFactory
Los métodos de extensión se llaman como métodos de instancia de ReadOnlyLine (y por tanto de Line) en un archivo que importa el espacio de nombres Digi21.DigiNG.Entities: línea.CreateParallel(5.0).
Métodos de extensión
| Miembro | Descripción |
|---|---|
Line CreateParallel(this ReadOnlyLine line, double distance) |
Devuelve una línea nueva paralela a line en el plano XY, a distance unidades. Las Z de los vértices no cambian. |
Line CreateParallel(this ReadOnlyLine line, double distanceXY, double distanceZ) |
Devuelve una línea nueva paralela a line a distanceXY unidades en el plano XY y con distanceZ sumado a la Z de cada vértice. |
Ejemplo
Este programa crea el eje de un vial y los dos bordes, a 3,5 unidades a cada lado; el borde izquierdo queda además 0,2 unidades por debajo del eje:
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.IO.BinDouble;
using Digi21.Math;
if (args.Length != 1)
{
Console.WriteLine("Uso: CreaParalelas <salida.bind>");
return 1;
}
using var archivo = new BinDouble(args[0]);
var eje = new Line(new Code("040101"));
eje.Points.Add(new Point3D(0.0, 0.0, 100.0));
eje.Points.Add(new Point3D(100.0, 0.0, 102.0));
eje.Points.Add(new Point3D(100.0, 100.0, 104.0));
// Con distancia positiva la paralela queda a la derecha del sentido de avance.
Line bordeDerecho = eje.CreateParallel(3.5);
// A la izquierda y 0,2 por debajo del eje.
Line bordeIzquierdo = eje.CreateParallel(-3.5, -0.2);
archivo.Add(eje);
archivo.Add(bordeDerecho);
archivo.Add(bordeIzquierdo);
foreach (var vértice in bordeIzquierdo.Points)
Console.WriteLine(vértice);
return 0;