IDesplazable
Espacio de nombres: Digi21.Math
Ensamblado: Digi21.DigiNG
Objeto que se desplaza sumando un incremento a sus coordenadas.
public interface IDesplazable
Tipos que implementan la interfaz:
| Tipo | Comportamiento |
|---|---|
| Line, Point, Text | Desplazan todas sus coordenadas. Lanzan InvalidOperationException si la entidad pertenece a un archivo de dibujo (su propiedad Owner no es null). |
| Point2D | Ignora el incremento en Z. |
| Point3D | Desplaza X, Y y Z. |
| Window2D | Ignora el incremento en Z. Lanza InvalidOperationException si la ventana no está inicializada. |
| Window3D | Desplaza las coordenadas mínimas y máximas. Lanza InvalidOperationException si la ventana no está inicializada. |
Polygon y Complex no implementan la interfaz.
Point2D, Point3D, Window2D y Window3D son tipos de valor: si se llama a Offset a través de una variable de tipo IDesplazable, se desplaza la copia guardada en esa variable, no la variable original.
Métodos
| Método | Descripción |
|---|---|
| Offset(Point2D) | Desplaza en X e Y. |
| Offset(Point3D) | Desplaza en X, Y y Z. |
| Offset(double, double) | Desplaza en X e Y. |
| Offset(double, double, double) | Desplaza en X, Y y Z. |
Ejemplo
Este programa desplaza una línea y un texto a través de la interfaz, y un Point3D directamente:
using Digi21.DigiNG.Entities;
using Digi21.Math;
var incremento = new Point3D(100.0, 200.0, 0.0);
var línea = new Line(new Code("020101"));
línea.Points.Add(new Point3D(0.0, 0.0, 10.0));
línea.Points.Add(new Point3D(5.0, 5.0, 12.0));
var texto = new Text(new Code("TEXTO"));
texto.Coordinate = new Point3D(1.0, 1.0, 0.0);
// Line y Text implementan IDesplazable.
IDesplazable[] geometrías = [línea, texto];
foreach (var geometría in geometrías)
geometría.Offset(incremento);
Console.WriteLine(línea.Points[0]); // (100,200,10)
Console.WriteLine(texto.Coordinate); // (101,201,0)
// Point3D es un tipo de valor: se desplaza la variable, no una copia.
var punto = new Point3D(1.0, 2.0, 3.0);
punto.Offset(incremento);
Console.WriteLine(punto); // (101,202,3)