|
|
|
@ -1,29 +1,30 @@
|
|
|
|
|
import { Vector3 } from "three";
|
|
|
|
|
import { safeEval } from "../../Common/eval";
|
|
|
|
|
import { Log } from "../../Common/Log";
|
|
|
|
|
import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
|
import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
|
|
|
|
|
import { MoveMatrix } from "../../Geometry/GeUtils";
|
|
|
|
|
import { ISpaceParse } from "../../Geometry/SpaceParse/ISpaceParse";
|
|
|
|
|
import { BehindBoardOption, BehindHeightPositon, BrRelativePos, IGrooveOption, LayerBoardOption, VerticalBoardOption, BoardType } from "../../UI/Store/BoardInterface";
|
|
|
|
|
import { Log } from "../../Common/Log";
|
|
|
|
|
import { BehindBoardOption, BehindHeightPositon, BoardType, BrRelativePos, IGrooveOption, LayerBoardOption, VerticalBoardOption } from "../../UI/Store/BoardInterface";
|
|
|
|
|
|
|
|
|
|
export function BuildLayerBoards(opt: LayerBoardOption, space: ISpaceParse): Board[]
|
|
|
|
|
{
|
|
|
|
|
let spaceBox = space.SpaceBox;
|
|
|
|
|
let spaceOCS = space.SpaceOCS;
|
|
|
|
|
let size = spaceBox.getSize(new Vector3());
|
|
|
|
|
const params = { L: size.x, W: size.y, H: size.z, BH: opt.thickness };
|
|
|
|
|
|
|
|
|
|
let width: number;
|
|
|
|
|
if (opt.isTotalLength)
|
|
|
|
|
width = size.y;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
width = safeEval(opt.calcHeight, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
width = safeEval(opt.calcHeight, params);
|
|
|
|
|
}
|
|
|
|
|
let count = opt.count;
|
|
|
|
|
let type = opt.boardRelative;
|
|
|
|
|
let spaceSize = safeEval(opt.calcSpaceSize, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let frontShrink = safeEval(opt.calcFrontShrink, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let spaceSize = safeEval(opt.calcSpaceSize, params);
|
|
|
|
|
let frontShrink = safeEval(opt.calcFrontShrink, params);
|
|
|
|
|
width -= frontShrink;
|
|
|
|
|
|
|
|
|
|
if (width <= 0)
|
|
|
|
@ -32,8 +33,8 @@ export function BuildLayerBoards(opt: LayerBoardOption, space: ISpaceParse): Boa
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let leftShrink = safeEval(opt.calcLeftShrink, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let rightShrink = safeEval(opt.calcRightShrink, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let leftShrink = safeEval(opt.calcLeftShrink, params);
|
|
|
|
|
let rightShrink = safeEval(opt.calcRightShrink, params);
|
|
|
|
|
let thickness = opt.thickness;
|
|
|
|
|
|
|
|
|
|
let len = size.x - leftShrink - rightShrink;
|
|
|
|
@ -84,16 +85,17 @@ export function BuildVerticalBoards(opt: VerticalBoardOption, space: ISpaceParse
|
|
|
|
|
const spaceBox = space.SpaceBox;
|
|
|
|
|
const spaceOCS = space.SpaceOCS;
|
|
|
|
|
let size = spaceBox.getSize(new Vector3());
|
|
|
|
|
const params = { L: size.x, W: size.y, H: size.z, BH: opt.thickness };
|
|
|
|
|
|
|
|
|
|
let frontShrink = safeEval(opt.calcFrontShrink, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let bottomShink = safeEval(opt.calcBottomShrink, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let frontShrink = safeEval(opt.calcFrontShrink, params);
|
|
|
|
|
let bottomShink = safeEval(opt.calcBottomShrink, params);
|
|
|
|
|
|
|
|
|
|
let width: number;
|
|
|
|
|
if (opt.isTotalWidth)
|
|
|
|
|
width = size.y - frontShrink;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
width = safeEval(opt.calcWidth, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
width = safeEval(opt.calcWidth, params);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (width <= 0)
|
|
|
|
@ -107,12 +109,12 @@ export function BuildVerticalBoards(opt: VerticalBoardOption, space: ISpaceParse
|
|
|
|
|
length = size.z - bottomShink;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
length = safeEval(opt.calcHeight, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
length = safeEval(opt.calcHeight, params);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let count = opt.count;
|
|
|
|
|
let type = opt.boardRelative;
|
|
|
|
|
let spaceSize = safeEval(opt.calcSpaceSize, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let spaceSize = safeEval(opt.calcSpaceSize, params);
|
|
|
|
|
let thickness = opt.thickness;
|
|
|
|
|
|
|
|
|
|
let board = Board.CreateBoard(length, width, thickness, BoardType.Vertical);
|
|
|
|
@ -162,13 +164,14 @@ export function BuildBehindBoards(opt: BehindBoardOption, space: ISpaceParse, gr
|
|
|
|
|
|
|
|
|
|
//获取背板高度
|
|
|
|
|
let size = newBox.getSize(new Vector3());
|
|
|
|
|
const params = { L: size.x, W: size.y, H: size.z, BH: opt.thickness };
|
|
|
|
|
let height: number;
|
|
|
|
|
if (opt.boardPosition === BehindHeightPositon.AllHeight)
|
|
|
|
|
height = size.z;
|
|
|
|
|
else
|
|
|
|
|
height = safeEval(opt.calcHeight, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
height = safeEval(opt.calcHeight, params);
|
|
|
|
|
|
|
|
|
|
let moveDist = safeEval(opt.calcMoveDist, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let moveDist = safeEval(opt.calcMoveDist, params);
|
|
|
|
|
|
|
|
|
|
//判断背板位置,更新背板高度
|
|
|
|
|
switch (opt.boardPosition)
|
|
|
|
@ -187,7 +190,7 @@ export function BuildBehindBoards(opt: BehindBoardOption, space: ISpaceParse, gr
|
|
|
|
|
//相对位置
|
|
|
|
|
let relPos = opt.boardRelative;
|
|
|
|
|
//单层空间宽度
|
|
|
|
|
let spaceSize = safeEval(opt.calcSpaceSize, { L: size.x, W: size.y, H: size.z });
|
|
|
|
|
let spaceSize = safeEval(opt.calcSpaceSize, params);
|
|
|
|
|
let thickness = opt.thickness;
|
|
|
|
|
|
|
|
|
|
let board = Board.CreateBoard(height, size.x, thickness, BoardType.Behind);
|
|
|
|
|