|
|
@ -1,7 +1,6 @@
|
|
|
|
import { Box3, Vector3 } from "three";
|
|
|
|
import { Vector3 } from "three";
|
|
|
|
import { arrayLast } from "../../Common/ArrayExt";
|
|
|
|
|
|
|
|
import { FixIndex } from "../../Common/Utils";
|
|
|
|
import { FixIndex } from "../../Common/Utils";
|
|
|
|
import { BoardType, ConverBoardTypeToSpaceType } from "../../DatabaseServices/Board";
|
|
|
|
import { ConverBoardTypeToSpaceType } from "../../DatabaseServices/Board";
|
|
|
|
import { Curve } from "../../DatabaseServices/Curve";
|
|
|
|
import { Curve } from "../../DatabaseServices/Curve";
|
|
|
|
import { Polyline } from "../../DatabaseServices/Polyline";
|
|
|
|
import { Polyline } from "../../DatabaseServices/Polyline";
|
|
|
|
import { Region } from "../../DatabaseServices/Region";
|
|
|
|
import { Region } from "../../DatabaseServices/Region";
|
|
|
@ -14,7 +13,7 @@ import { ISpaceParse } from "./ISpaceParse";
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export class SurroundOutlineParse extends ISpaceParse
|
|
|
|
export class SurroundOutlineParse extends ISpaceParse
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_Outline: Curve[] = [];
|
|
|
|
m_Outlines: Curve[] = [];
|
|
|
|
async Parse()
|
|
|
|
async Parse()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let pls: Polyline[] = [];
|
|
|
|
let pls: Polyline[] = [];
|
|
|
@ -23,24 +22,7 @@ export class SurroundOutlineParse extends ISpaceParse
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let splitType = ConverBoardTypeToSpaceType(type);
|
|
|
|
let splitType = ConverBoardTypeToSpaceType(type);
|
|
|
|
let bs = this.ParseBoardBox(brs, splitType);
|
|
|
|
let bs = this.ParseBoardBox(brs, splitType);
|
|
|
|
let boxes = [];
|
|
|
|
|
|
|
|
if (type === BoardType.Layer)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let box = new Box3();
|
|
|
|
|
|
|
|
for (let b of bs)
|
|
|
|
for (let b of bs)
|
|
|
|
{
|
|
|
|
|
|
|
|
box.union(b);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boxes = [box];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
boxes = [bs[0]];
|
|
|
|
|
|
|
|
if (bs.length > 1)
|
|
|
|
|
|
|
|
boxes.push(arrayLast(bs));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (let b of boxes)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let max = b.max;
|
|
|
|
let max = b.max;
|
|
|
|
if (max.z > height)
|
|
|
|
if (max.z > height)
|
|
|
@ -76,7 +58,7 @@ export class SurroundOutlineParse extends ISpaceParse
|
|
|
|
i--;
|
|
|
|
i--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.m_Outline.push(...cus);
|
|
|
|
this.m_Outlines.push(...cus);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|