|
|
|
@ -31,24 +31,12 @@ export class DrawTopBottomBoard implements Command
|
|
|
|
|
let state = await store.GetBoardOption();
|
|
|
|
|
if (state === ModalState.Ok)
|
|
|
|
|
{
|
|
|
|
|
let opt = store.boardOption;
|
|
|
|
|
let topOpt = store.topBoardOption;
|
|
|
|
|
let bottomOpt = store.bottomBoardOption;
|
|
|
|
|
|
|
|
|
|
let topBarod: Board;
|
|
|
|
|
this.buildTBBoard(spaceParse, topOpt, spaceParse.BaseTopUpPoint, spaceParse.BaseTopDownPoint, true)
|
|
|
|
|
this.buildTBBoard(spaceParse, bottomOpt, spaceParse.BaseBottomDownPoint, spaceParse.BaseBottomUpPoint);
|
|
|
|
|
|
|
|
|
|
if (opt.isTopWrapSide)
|
|
|
|
|
{
|
|
|
|
|
topBarod = Board.CreateBoard(spaceParse.TotalLength, spaceParse.SpaceWidth - parseFloat(opt.forwardDistance) + parseFloat(opt.behindDistance), parseFloat(opt.thickness), BoardType.Layer);
|
|
|
|
|
spaceParse.BaseTopUpPoint.add(new Vector3(0, 0, parseFloat(opt.thickness)));
|
|
|
|
|
topBarod.ApplyMatrix(MoveMatrix(spaceParse.BaseTopUpPoint));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
topBarod = Board.CreateBoard(spaceParse.SpaceLength, spaceParse.SpaceWidth - parseFloat(opt.forwardDistance) + parseFloat(opt.behindDistance), parseFloat(opt.thickness), BoardType.Layer)
|
|
|
|
|
topBarod.ApplyMatrix(MoveMatrix(spaceParse.BaseTopDownPoint));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
topBarod.ApplyMatrix(new Matrix4().extractRotation(spaceParse.OCS))
|
|
|
|
|
app.m_Database.ModelSpace.Append(topBarod);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -61,4 +49,31 @@ export class DrawTopBottomBoard implements Command
|
|
|
|
|
app.m_Editor.m_CommandStore.Prompt("不是选择2块板或者板类型不正确")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
buildTBBoard(spaceParse: TopAndBottomSpaceParse, opt, wrapPt: Vector3, noWrapPt: Vector3, isTop = false)
|
|
|
|
|
{
|
|
|
|
|
let board: Board;
|
|
|
|
|
let basePt: Vector3;
|
|
|
|
|
let length;
|
|
|
|
|
|
|
|
|
|
if (opt.isWrapSide)
|
|
|
|
|
{
|
|
|
|
|
length = spaceParse.TotalLength;
|
|
|
|
|
basePt = wrapPt;
|
|
|
|
|
isTop && basePt.add(new Vector3(0, 0, parseFloat(opt.thickness)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
length = spaceParse.SpaceLength;
|
|
|
|
|
basePt = noWrapPt;
|
|
|
|
|
!isTop && basePt.add(new Vector3(0, 0, parseFloat(opt.thickness)));
|
|
|
|
|
basePt.add(new Vector3(0, 0, parseFloat(opt.offset) * (isTop ? -1 : 1)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
board = Board.CreateBoard(length, spaceParse.SpaceWidth - parseFloat(opt.forwardDistance) + parseFloat(opt.behindDistance), parseFloat(opt.thickness), BoardType.Layer)
|
|
|
|
|
board.ApplyMatrix(MoveMatrix(basePt));
|
|
|
|
|
|
|
|
|
|
let rot = new Matrix4().extractRotation(spaceParse.OCS)
|
|
|
|
|
board.ApplyMatrix(rot);
|
|
|
|
|
app.m_Database.ModelSpace.Append(board);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|