|
|
|
@ -37,12 +37,15 @@ export class Box3Ext extends Box3
|
|
|
|
|
if (interBox.isEmpty() || !interBox.isSolid())
|
|
|
|
|
return [this];
|
|
|
|
|
|
|
|
|
|
let b1Max = this.max.clone().setComponent(spaceType, interBox.min.getComponent(spaceType));
|
|
|
|
|
let b2Min = this.min.clone().setComponent(spaceType, interBox.max.getComponent(spaceType));
|
|
|
|
|
let p1 = interBox.min.clone().setComponent(spaceType, this.min.getComponent(spaceType));
|
|
|
|
|
let p2 = interBox.max.clone().setComponent(spaceType, interBox.min.getComponent(spaceType));
|
|
|
|
|
|
|
|
|
|
let p3 = interBox.min.clone().setComponent(spaceType, interBox.max.getComponent(spaceType));
|
|
|
|
|
let p4 = interBox.max.clone().setComponent(spaceType, this.max.getComponent(spaceType));
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
new Box3Ext(this.min, b1Max),
|
|
|
|
|
new Box3Ext(b2Min, this.max)
|
|
|
|
|
new Box3Ext(p1, p2),
|
|
|
|
|
new Box3Ext(p3, p4)
|
|
|
|
|
].filter(b => b.isSolid());
|
|
|
|
|
}
|
|
|
|
|
clampSpace(b2: Box3Ext, splitType: SplitType)
|
|
|
|
|