LCCObject::setClipPrism
Legt einen prismatischen Clip-Bereich auf Basis eines Polygons fest.
Eine Gruppe koplanarer Polygonpunkte wird entlang der Flächennormale mit offsetMin / offsetMax extrudiert, um ein Prisma zu definieren, an dem die Szene beschnitten wird. Konvexe und konkave Polygone werden unterstützt; selbstüberschneidende Polygone werden nicht unterstützt.
Übergeben Sie undefined oder lassen Sie den Parameter weg, um das Clipping aufzuheben.
Versionsanforderung
SDK v0.6.4+
Engine-Unterstützung
Three.js
API
LCCObject::setClipPrism(param?: LccClipPrismParams): void
Parameter
LccClipPrismParams
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
vertices | IPoint3[] | Ja | - | Polygonpunkte der Referenzebene (Weltkoordinaten, koplanar, beliebige Umlaufrichtung). Mindestens 3, höchstens 200. |
offsetMax | number | Ja | - | Oberer Versatz entlang der Flächennormale (darf negativ sein, muss größer als offsetMin sein). |
offsetMin | number | Ja | - | Unterer Versatz entlang der Flächennormale (darf negativ sein, muss kleiner als offsetMax sein). |
normal | IPoint3 | Ja | - | Normalenrichtung. |
clipSide | number | Nein | 1 | Clip-Modus: 1 = Innenbereich behalten (außen beschneiden), -1 = Außenbereich behalten (innen beschneiden). |
IPoint3
interface IPoint3 {
x: number;
y: number;
z: number;
}
Rückgabewert
void
Verwendungsbeispiel
// Quaderförmigen Clip-Bereich festlegen (4 koplanare Punkte)
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
});
// Umgekehrtes Clipping: Außenbereich des Prismas behalten
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
});
// Clipping aufheben
lccObject.setClipPrism();
Hinweise
- Die Punkte müssen koplanar sein (Toleranz: 0,01 Einheiten in Weltkoordinaten). Nicht koplanare Punkte führen zum Fehlschlagen des Aufrufs mit einem Fehlerprotokoll.
- Die Anzahl der Punkte muss zwischen 3 und 200 liegen. Werte außerhalb dieses Bereichs führen zum Fehlschlagen des Aufrufs.
offsetMaxmuss strikt größer alsoffsetMinsein; andernfalls schlägt der Aufruf fehl.- Das Anpassen von
offsetMin/offsetMax/clipSideist ein leichtgewichtiger Vorgang und kann mit hoher Frequenz aufgerufen werden. - Das Ändern der Polygonpunkte löst intern eine Textur-Aktualisierung aus; häufige Aktualisierungen der Punkte werden daher nicht empfohlen.
- Selbstüberschneidende Polygone werden nicht unterstützt; ihre Verwendung führt zu unvorhersehbaren Clip-Ergebnissen.
Verwandte APIs
LCCObject::setClipBox()— Clipping mit achsenparalleler Bounding BoxLCCObject::setClipPlane()— Clipping an einer Ebene