LCCObject::setClipPrism
Establece una región de recorte con forma de prisma poligonal.
Define un volumen prismático extruyendo un conjunto de vértices coplanares de un polígono a lo largo de la normal de la cara mediante offsetMin / offsetMax, y recorta la escena en consecuencia. Admite polígonos convexos y cóncavos; los polígonos autointersecantes no son compatibles.
Pasa undefined u omite el parámetro para eliminar el recorte.
Requisito de versión
SDK v0.6.4+
Compatibilidad de motor
Three.js
API
LCCObject::setClipPrism(param?: LccClipPrismParams): void
Parámetros
LccClipPrismParams
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
vertices | IPoint3[] | Sí | - | Vértices del polígono del plano de referencia (coordenadas del mundo, coplanares, en cualquier orden de recorrido). Mínimo 3, máximo 200. |
offsetMax | number | Sí | - | Desplazamiento superior a lo largo de la normal de la cara (puede ser negativo; debe ser mayor que offsetMin). |
offsetMin | number | Sí | - | Desplazamiento inferior a lo largo de la normal de la cara (puede ser negativo; debe ser menor que offsetMax). |
normal | IPoint3 | Sí | - | Dirección de la normal. |
clipSide | number | No | 1 | Modo de recorte: 1 = conservar el interior (recortar el exterior), -1 = conservar el exterior (recortar el interior). |
IPoint3
interface IPoint3 {
x: number;
y: number;
z: number;
}
Valor de retorno
void
Ejemplo de uso
// Establecer una región de recorte en forma de prisma rectangular (4 vértices coplanares)
lccObject.setClipPrism({
vertices: [
{ x: 0, y: 0, z: 0 },
{ x: 10, y: 0, z: 0 },
{ x: 10, y: 10, z: 0 },
{ x: 0, y: 10, z: 0 }
],
offsetMin: -5,
offsetMax: 5,
normal: { x: 0, y: 0, z: 1 },
clipSide: 1
});
// Recorte inverso: conservar el exterior del prisma
lccObject.setClipPrism({
vertices: [
{ x: 0, y: 0, z: 0 },
{ x: 10, y: 0, z: 0 },
{ x: 10, y: 10, z: 0 },
{ x: 0, y: 10, z: 0 }
],
offsetMin: -5,
offsetMax: 5,
normal: { x: 0, y: 0, z: 1 },
clipSide: -1
});
// Eliminar el recorte
lccObject.setClipPrism();
Notas
- Los vértices deben ser coplanares (tolerancia: 0,01 unidades de coordenadas del mundo). Si no lo son, la llamada falla y se registra un error.
- El número de vértices debe estar entre 3 y 200. Los valores fuera de este rango hacen que la llamada falle.
offsetMaxdebe ser estrictamente mayor queoffsetMin; de lo contrario, la llamada falla.- Ajustar
offsetMin/offsetMax/clipSidees una operación ligera y puede llamarse con alta frecuencia. - Modificar los vértices del polígono provoca una actualización interna de textura, por lo que no se recomienda actualizar los vértices con frecuencia.
- Los polígonos autointersecantes no son compatibles; usarlos produce resultados de recorte impredecibles.
APIs relacionadas
LCCObject::setClipBox()— Recorte con caja delimitadora alineada con los ejesLCCObject::setClipPlane()— Recorte por plano