Clip
Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG
Divide la entidad por una línea límite y devuelve las partes como entidades nuevas. Es un método de IClippable.
IEnumerable<Entity> Clip(ReadOnlyLine limit)
Parámetros
| Parámetro | Descripción |
|---|---|
limit |
Línea por la que se divide la entidad. Puede ser abierta o cerrada. No se modifica. |
Valor devuelto
Una enumeración de entidades nuevas sin archivo de dibujo (Owner es null), de lectura y escritura, con los códigos de esta entidad. Esta entidad no se modifica.
El método calcula las intersecciones de esta entidad con limit. En una línea abierta, parte la línea por esas intersecciones. En una línea cerrada o un polígono, forma los recintos que delimitan los tramos resultantes de las dos y se queda con los recintos cuyo punto interior no está fuera de esta entidad:
| Tipo | Resultado |
|---|---|
ReadOnlyLine, Line cerrada en X, Y |
Una Line cerrada por cada recinto. Si limit no corta la línea, la enumeración está vacía. |
ReadOnlyLine, Line abierta |
Los tramos en que limit parte esta línea: con N intersecciones, N + 1 líneas, incluidos el tramo inicial y el final. limit no se parte. Si limit no corta la línea, la enumeración está vacía. |
ReadOnlyPolygon, Polygon |
Un Polygon, con sus huecos, por cada recinto; los recintos que quedan dentro de un hueco del polígono no se devuelven. Si limit no corta el contorno ni los huecos, solo se divide el polígono cuando limit está completamente dentro de él. Si el resultado es un único polígono, la enumeración está vacía. |
Excepciones
| Excepción | Cuándo |
|---|---|
InvalidOperationException |
La entidad es una línea con menos de 2 vértices. |
Exception |
El análisis topológico de los tramos encuentra puntos dobles o arcos de un solo punto, o no tiene datos suficientes para formar recintos. El mensaje está en el idioma de la interfaz de Digi3D.AI. |
Ejemplo
El ejemplo de IClippable divide un polígono por una línea cerrada.