From 24be219cb58e5ffbd3111a08a5769c477aa73cd3 Mon Sep 17 00:00:00 2001 From: Zoe Date: Wed, 4 Jul 2018 16:29:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=83=8C=E6=9D=BF,=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=A1=B6=E5=BA=95=E6=9D=BF,=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9C=B0=E8=84=9A=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/DrawBoard/DrawBehindBoard.ts | 56 +++++++++++++ src/Add-on/{ => DrawBoard}/DrawBoard.ts | 11 ++- .../{ => DrawBoard}/DrawLeftRightBoard.ts | 22 +++--- .../{ => DrawBoard}/DrawTopBottomBoard.ts | 38 +++++---- src/Add-on/test.ts | 6 +- src/DatabaseServices/Board.ts | 4 +- src/Editor/CommandRegister.ts | 8 +- src/Geometry/SpaceParse.ts | 78 +++++++++++++++---- src/UI/Components/Board/BehindBoardModal.tsx | 75 ++++++++++++++++++ ...ottomBaord.tsx => TopBottomBoardModal.tsx} | 6 +- ...htBaordDlg.tsx => leftRightBoardModal.tsx} | 16 +--- src/UI/Components/Modal/ModalsManage.tsx | 21 ++--- src/UI/Store/BoardStore.ts | 23 +++++- 13 files changed, 284 insertions(+), 80 deletions(-) create mode 100644 src/Add-on/DrawBoard/DrawBehindBoard.ts rename src/Add-on/{ => DrawBoard}/DrawBoard.ts (82%) rename src/Add-on/{ => DrawBoard}/DrawLeftRightBoard.ts (69%) rename src/Add-on/{ => DrawBoard}/DrawTopBottomBoard.ts (66%) create mode 100644 src/UI/Components/Board/BehindBoardModal.tsx rename src/UI/Components/Board/{TopBottomBaord.tsx => TopBottomBoardModal.tsx} (97%) rename src/UI/Components/Board/{leftRightBaordDlg.tsx => leftRightBoardModal.tsx} (83%) diff --git a/src/Add-on/DrawBoard/DrawBehindBoard.ts b/src/Add-on/DrawBoard/DrawBehindBoard.ts new file mode 100644 index 000000000..5b8190b23 --- /dev/null +++ b/src/Add-on/DrawBoard/DrawBehindBoard.ts @@ -0,0 +1,56 @@ +import { Matrix4, Vector3 } from 'three'; +import { TopBottomBoardStore, ModalState, BehindBoardStore } from '../../UI/Store/BoardStore'; +import { app } from '../../ApplicationServices/Application'; +import { PromptStatus } from '../../Editor/PromptResult'; +import { Board, BoardType } from '../../DatabaseServices/Board'; +import { TopAndBottomSpaceParse } from '../../Geometry/SpaceParse'; +import { Command } from '../../Editor/CommandMachine'; +import { MoveMatrix } from '../../Geometry/GeUtils'; +import { BehindBoardModal } from '../../UI/Components/Board/BehindBoardModal'; +export class DrawBehindBoard implements Command +{ + async exec() + { + let exSsRes = await app.m_Editor.GetSelection({ Msg: "请选择对象<全部选择>:", UseSelect: true }); + if (exSsRes.Status === PromptStatus.Cancel) + return; + + let boardCus = exSsRes.SelectSet.SelectEntityList.filter(en => + en instanceof Board) as Board[]; + + if (boardCus.length >= 2) + { + let spaceParse = new TopAndBottomSpaceParse(boardCus, false); + + await spaceParse.SpaceParse(); + + if (spaceParse.IsVail) + { + let store = BehindBoardStore.Store(); + + app.m_Editor.m_ModalManage.RenderBoardModal(store, BehindBoardModal); + + let state = await store.GetBoardOption(); + + if (state === ModalState.Ok) + { + let board = Board.CreateBoard(spaceParse.BehindLength, spaceParse.SpaceLength, parseFloat(store.behindBoardOption.thickness), BoardType.Behind); + spaceParse.BaseBehindPoint.add(new Vector3(0, -parseFloat(store.behindBoardOption.thickness))) + + board.ApplyMatrix(MoveMatrix(spaceParse.BaseBehindPoint)); + let rot = new Matrix4().extractRotation(spaceParse.OCS) + board.ApplyMatrix(rot); + app.m_Database.ModelSpace.Append(board); + } + } + else + { + app.m_Editor.m_CommandStore.Prompt("选择板无效") + } + } + else + { + app.m_Editor.m_CommandStore.Prompt("不是选择2块板或者板类型不正确") + } + } +} diff --git a/src/Add-on/DrawBoard.ts b/src/Add-on/DrawBoard/DrawBoard.ts similarity index 82% rename from src/Add-on/DrawBoard.ts rename to src/Add-on/DrawBoard/DrawBoard.ts index 0b6fc6ad8..480e87331 100644 --- a/src/Add-on/DrawBoard.ts +++ b/src/Add-on/DrawBoard/DrawBoard.ts @@ -1,11 +1,10 @@ //绘制板件 import * as THREE from 'three'; - -import { app } from '../ApplicationServices/Application'; -import { CreateBoardUtil } from '../ApplicationServices/mesh/createBoard'; -import { MaterialNeedUpdateKey } from '../DatabaseServices/MaterialDictionary'; -import { Command } from '../Editor/CommandMachine'; -import { MoveMatrix } from '../Geometry/GeUtils'; +import { Command } from '../../Editor/CommandMachine'; +import { MaterialNeedUpdateKey } from '../../DatabaseServices/MaterialDictionary'; +import { MoveMatrix } from '../../Geometry/GeUtils'; +import { CreateBoardUtil } from '../../ApplicationServices/mesh/createBoard'; +import { app } from '../../ApplicationServices/Application'; export class Command_DrawBoard implements Command { diff --git a/src/Add-on/DrawLeftRightBoard.ts b/src/Add-on/DrawBoard/DrawLeftRightBoard.ts similarity index 69% rename from src/Add-on/DrawLeftRightBoard.ts rename to src/Add-on/DrawBoard/DrawLeftRightBoard.ts index 5105eba9b..36d82ec8f 100644 --- a/src/Add-on/DrawLeftRightBoard.ts +++ b/src/Add-on/DrawBoard/DrawLeftRightBoard.ts @@ -1,24 +1,26 @@ import { Vector3 } from 'three'; -import { app } from '../ApplicationServices/Application'; -import { Board, BoardType } from '../DatabaseServices/Board'; -import { Command } from '../Editor/CommandMachine'; -import { PromptStatus } from '../Editor/PromptResult'; -import { MoveMatrix } from '../Geometry/GeUtils'; -import { ModalState, SideBoardStore } from '../UI/Store/BoardStore'; +import { SideBoardStore, ModalState } from '../../UI/Store/BoardStore'; +import { BoardType, Board } from '../../DatabaseServices/Board'; +import { Command } from '../../Editor/CommandMachine'; +import { app } from '../../ApplicationServices/Application'; +import { MoveMatrix } from '../../Geometry/GeUtils'; +import { PromptStatus } from '../../Editor/PromptResult'; +import { LeftRightBoardModal } from '../../UI/Components/Board/leftRightBoardModal'; export class DrawLeftRight implements Command { async exec() { - app.m_Editor.m_ModalManage.RenderLeftRightBoard(); - let sideBoardStore = SideBoardStore.Store(); + let store = SideBoardStore.Store(); - let state = await sideBoardStore.GetBoardOption(); + app.m_Editor.m_ModalManage.RenderBoardModal(store, LeftRightBoardModal); + + let state = await store.GetBoardOption(); if (state === ModalState.Ok) { - let data = sideBoardStore.boardOption; + let data = store.boardOption; let lenght = data.lenght ? parseFloat(data.lenght) : 0; let width = data.width ? parseFloat(data.width) : 0; let thickness = data.thickness ? parseFloat(data.thickness) : 0; diff --git a/src/Add-on/DrawTopBottomBoard.ts b/src/Add-on/DrawBoard/DrawTopBottomBoard.ts similarity index 66% rename from src/Add-on/DrawTopBottomBoard.ts rename to src/Add-on/DrawBoard/DrawTopBottomBoard.ts index 4a2048683..d6a6f1d04 100644 --- a/src/Add-on/DrawTopBottomBoard.ts +++ b/src/Add-on/DrawBoard/DrawTopBottomBoard.ts @@ -1,11 +1,13 @@ -import { app } from '../ApplicationServices/Application'; -import { Board, BoardType } from '../DatabaseServices/Board'; -import { Command } from '../Editor/CommandMachine'; -import { PromptStatus } from '../Editor/PromptResult'; -import { MoveMatrix } from '../Geometry/GeUtils'; -import { TopAndBottomSpaceParse } from '../Geometry/SpaceParse'; -import { ModalState, TopBottomBoardStore } from '../UI/Store/BoardStore'; + import { Matrix4, Vector3 } from 'three'; +import { TopBottomBoardStore, ModalState } from '../../UI/Store/BoardStore'; +import { app } from '../../ApplicationServices/Application'; +import { PromptStatus } from '../../Editor/PromptResult'; +import { Board, BoardType } from '../../DatabaseServices/Board'; +import { TopAndBottomSpaceParse } from '../../Geometry/SpaceParse'; +import { Command } from '../../Editor/CommandMachine'; +import { MoveMatrix } from '../../Geometry/GeUtils'; +import { TopBottomBoardModal } from '../../UI/Components/Board/TopBottomBoardModal'; export class DrawTopBottomBoard implements Command { @@ -16,9 +18,9 @@ export class DrawTopBottomBoard implements Command return; let boardCus = exSsRes.SelectSet.SelectEntityList.filter(en => - en instanceof Board && en.BoardType === BoardType.Vertical) as Board[]; + en instanceof Board) as Board[]; - if (boardCus.length === 2) + if (boardCus.length >= 2) { let spaceParse = new TopAndBottomSpaceParse(boardCus); @@ -26,9 +28,12 @@ export class DrawTopBottomBoard implements Command if (spaceParse.IsVail) { - app.m_Editor.m_ModalManage.RenderTopBottomBoard(); let store = TopBottomBoardStore.Store(); + + app.m_Editor.m_ModalManage.RenderBoardModal(store, TopBottomBoardModal); + let state = await store.GetBoardOption(); + if (state === ModalState.Ok) { let topOpt = store.topBoardOption; @@ -49,12 +54,14 @@ export class DrawTopBottomBoard implements Command app.m_Editor.m_CommandStore.Prompt("不是选择2块板或者板类型不正确") } } - buildTBBoard(spaceParse: TopAndBottomSpaceParse, opt, wrapPt: Vector3, noWrapPt: Vector3, isTop = false) + buildTBBoard(spaceParse: TopAndBottomSpaceParse, opt: any, wrapPt: Vector3, noWrapPt: Vector3, isTop = false) { let board: Board; let basePt: Vector3; let length; + let rot = new Matrix4().extractRotation(spaceParse.OCS) + if (opt.isWrapSide) { length = spaceParse.TotalLength; @@ -67,12 +74,17 @@ export class DrawTopBottomBoard implements Command basePt = noWrapPt; !isTop && basePt.add(new Vector3(0, 0, parseFloat(opt.thickness))); basePt.add(new Vector3(0, 0, parseFloat(opt.offset) * (isTop ? -1 : 1))); + if (!isTop) + { + let footBoard = Board.CreateBoard(parseFloat(opt.offset), spaceParse.SpaceLength, parseFloat(opt.footThickness), BoardType.Behind); + footBoard.ApplyMatrix(MoveMatrix(spaceParse.BaseFootPoint)); + footBoard.ApplyMatrix(rot); + app.m_Database.ModelSpace.Append(footBoard); + } } 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); } diff --git a/src/Add-on/test.ts b/src/Add-on/test.ts index 0a2e5d7eb..5f534f34a 100644 --- a/src/Add-on/test.ts +++ b/src/Add-on/test.ts @@ -25,9 +25,9 @@ export class Test implements Command b1.ApplyMatrix(MoveMatrix(new Vector3(10, 10, 10))) b2.ApplyMatrix(MoveMatrix(new Vector3(10, 10, 10))) b3.ApplyMatrix(MoveMatrix(new Vector3(10, 10, 10))) - b1.ApplyMatrix(rotate) - b2.ApplyMatrix(rotate) - b3.ApplyMatrix(rotate) + // b1.ApplyMatrix(rotate) + // b2.ApplyMatrix(rotate) + // b3.ApplyMatrix(rotate) app.m_Database.ModelSpace.Append(b1); app.m_Database.ModelSpace.Append(b2); diff --git a/src/DatabaseServices/Board.ts b/src/DatabaseServices/Board.ts index 0813f8f9d..eecd2c8bf 100644 --- a/src/DatabaseServices/Board.ts +++ b/src/DatabaseServices/Board.ts @@ -8,6 +8,7 @@ import { Entity } from './Entity'; import { Line } from './Line'; import { DbPhysicalMaterial } from './PhysicalMaterial'; import { Shape } from './Shape'; +import { ColorMaterial } from '../Common/ColorPalette'; @@ -86,6 +87,7 @@ export class Board extends Entity let roMat = board.getRotateMatrix4(boardType); board.ApplyMatrix(roMat); + board.ColorIndex = boardType + 1; return board; } getRotateMatrix4(boardType: BoardType) @@ -201,7 +203,7 @@ export class Board extends Entity } InitDrawObject(renderType: RenderType = RenderType.Wireframe): Object3D { - return new THREE.Mesh(this.UpdateGeometry()); + return new THREE.Mesh(this.UpdateGeometry(), ColorMaterial.GetLineMaterial(this.ColorIndex)); } private UpdateGeometry() { diff --git a/src/Editor/CommandRegister.ts b/src/Editor/CommandRegister.ts index 6fc2c5ad3..1c9aa034a 100644 --- a/src/Editor/CommandRegister.ts +++ b/src/Editor/CommandRegister.ts @@ -7,7 +7,7 @@ import { CopyClip } from '../Add-on/CopyClip'; import { Command_CopyPoint } from '../Add-on/CopyPoint'; import { CustomUcs } from '../Add-on/CostumUCS'; import { DrawArc } from '../Add-on/DrawArc'; -import { Command_DrawBoard } from '../Add-on/DrawBoard'; +import { Command_DrawBoard } from '../Add-on/DrawBoard/DrawBoard'; import { DrawAlignedDimension } from '../Add-on/DrawDim/DrawAlignedDimension'; import { DrawLineAngularDimension } from '../Add-on/DrawDim/DrawLineAngularDimension'; import { DrawLinearDimension } from '../Add-on/DrawDim/DrawLinearDimension'; @@ -64,8 +64,9 @@ import { Command_DimTest } from '../DatabaseServices/Dimension/dimTest'; import { commandMachine } from './CommandMachine'; import { Union } from '../Add-on/CSGUnion'; import { Command_Ssget } from '../Add-on/ssget'; -import { DrawLeftRight } from '../Add-on/DrawLeftRightBoard'; -import { DrawTopBottomBoard } from '../Add-on/DrawTopBottomBoard'; +import { DrawLeftRight } from '../Add-on/DrawBoard/DrawLeftRightBoard'; +import { DrawTopBottomBoard } from '../Add-on/DrawBoard/DrawTopBottomBoard'; +import { DrawBehindBoard } from '../Add-on/DrawBoard/DrawBehindBoard'; export function registerCommand() { @@ -166,6 +167,7 @@ export function registerCommand() commandMachine.RegisterCommand("pe", new Pedit()); commandMachine.RegisterCommand("zyc", new DrawLeftRight()); commandMachine.RegisterCommand("dd", new DrawTopBottomBoard()); + commandMachine.RegisterCommand("bb", new DrawBehindBoard()); /*******test ↓↓↓*********/ diff --git a/src/Geometry/SpaceParse.ts b/src/Geometry/SpaceParse.ts index 92a9a369c..2259bfb1f 100644 --- a/src/Geometry/SpaceParse.ts +++ b/src/Geometry/SpaceParse.ts @@ -29,11 +29,13 @@ export class SpaceParse private m_BehindBoard: Board; protected boardMap: Map = new Map(); protected m_StandardBoard: Board; + protected isSetStandardBoard: boolean = true; - constructor(boards: Board[]) + constructor(boards: Board[], isSet?: boolean) { this.m_Boards = boards || []; - + if (isSet !== undefined) + this.isSetStandardBoard = isSet; } SpaceParse() { @@ -77,10 +79,11 @@ export class TopAndBottomSpaceParse extends SpaceParse //底包侧底板基点 private m_BaseBottomUpPoint: Vector3; - constructor(boards: Board[]) - { - super(boards); - } + //背板基点 + private m_BaseBehindPoint: Vector3; + private m_BehindLength: number; + private m_BaseFootPoint: Vector3; + get IsVail() { return this.m_IsVail; @@ -97,6 +100,10 @@ export class TopAndBottomSpaceParse extends SpaceParse { return this.m_SpaceWidth } + get BehindLength() + { + return this.m_BehindLength; + } get BaseTopDownPoint() { return this.m_BaseTopDownPoint; @@ -113,6 +120,14 @@ export class TopAndBottomSpaceParse extends SpaceParse { return this.m_BaseBottomUpPoint; } + get BaseBehindPoint() + { + return this.m_BaseBehindPoint; + } + get BaseFootPoint() + { + return this.m_BaseFootPoint; + } get OCS() { return this.m_StandardBoard ? this.m_StandardBoard.BoardOCS : new Matrix4(); @@ -174,9 +189,14 @@ export class TopAndBottomSpaceParse extends SpaceParse { let lMinPt = b1.MinPoint; let rMinPt = b2.MinPoint; + let lMaxPt = b1.MaxPoint; let rMaxPt = b2.MaxPoint; + let sMinPt: Vector3; + let sMaxPt: Vector3; + + //左右侧板之间的垂直距离 let vec = rMinPt.clone().sub(lMinPt); let ang = b1.Normal.angleTo(vec); let dist = vec.length() * Math.cos(ang); @@ -189,25 +209,42 @@ export class TopAndBottomSpaceParse extends SpaceParse //空间宽度 this.m_SpaceWidth = this.m_StandardBoard.Width; + //顶底板基点位置 if (this.m_StandardBoard === this.m_LeftBoard) { + [sMinPt, sMaxPt] = [lMinPt, lMaxPt]; + this.m_BaseTopDownPoint = new Vector3(rMinPt.x, lMinPt.y); this.m_BaseTopUpPoint = new Vector3(rMinPt.x + b2.Thickness, lMinPt.y); } else { + [sMinPt, sMaxPt] = [rMinPt, rMaxPt]; + this.m_BaseTopDownPoint = new Vector3(rMinPt.x, rMinPt.y); this.m_BaseTopUpPoint = new Vector3(rMinPt.x + b2.Thickness, rMinPt.y) } - this.m_BaseTopDownPoint.setZ(lMaxPt.z < rMaxPt.z ? lMaxPt.z : rMaxPt.z); - this.m_BaseTopUpPoint.setZ(lMaxPt.z > rMaxPt.z ? lMaxPt.z : rMaxPt.z); - this.m_BaseBottomUpPoint = this.m_BaseTopDownPoint.clone(); this.m_BaseBottomDownPoint = this.m_BaseTopUpPoint.clone(); - this.m_BaseBottomUpPoint.setZ(lMinPt.z > rMinPt.z ? lMinPt.z : rMinPt.z); - this.m_BaseBottomDownPoint.setZ(lMinPt.z < rMinPt.z ? lMinPt.z : rMinPt.z) + this.m_BaseTopDownPoint.setZ(Math.min(lMaxPt.z, rMaxPt.z)); + + this.m_BaseTopUpPoint.setZ(Math.max(lMaxPt.z, rMaxPt.z)); + + this.m_BaseBottomUpPoint.setZ(Math.max(lMinPt.z, rMinPt.z)); + this.m_BaseBottomDownPoint.setZ(Math.min(lMinPt.z, rMinPt.z)); + + //背板基点位置 + this.m_BaseBehindPoint = new Vector3(b1.Position.x, Math.min(lMaxPt.y, rMaxPt.y), Math.min(lMinPt.z, rMinPt.z)); + + //地脚板基点位置 + this.m_BaseFootPoint = this.m_BaseBottomDownPoint.clone(); + this.m_BaseFootPoint.setX(b1.Position.x); + + //背板长 + this.m_BehindLength = + Math.min(lMaxPt.z, rMaxPt.z) - Math.min(lMinPt.z, rMinPt.z); //分析背板 let behindBoards = this.boardMap.get(BoardType.Behind); @@ -215,21 +252,36 @@ export class TopAndBottomSpaceParse extends SpaceParse { let behindBoard = behindBoards[0]; + let b3 = behindBoard.Clone() as Board; + let behindNormal = b3.Normal; + let bMinPt = b3.MinPoint; + + //背板和左右侧板垂直 + if (equaln(behindNormal.angleTo(b1.Normal), Math.PI / 2, 1e-6)) + { + if (bMinPt.y < sMaxPt.y - b3.Thickness && bMinPt.y > sMinPt.y + b3.Thickness) + { + // 背板在左右侧板上,更新空间的宽度 + this.m_SpaceWidth = Math.abs(bMinPt.y - sMinPt.y + b3.Thickness) + } + } } } async GetStandardBoard(b1: Board, b2: Board) { let lMinPt = b1.MinPoint; let rMinPt = b2.MinPoint; - if (equaln(lMinPt.y, rMinPt.y) + if ((equaln(lMinPt.y, rMinPt.y) && equaln(lMinPt.z, rMinPt.z) && equaln(b1.Width, b2.Width) && equaln(b1.Lenght, b2.Lenght)) + || !this.isSetStandardBoard + ) { this.m_StandardBoard = this.m_LeftBoard; return true; } - else + else { while (true) { diff --git a/src/UI/Components/Board/BehindBoardModal.tsx b/src/UI/Components/Board/BehindBoardModal.tsx new file mode 100644 index 000000000..c66281882 --- /dev/null +++ b/src/UI/Components/Board/BehindBoardModal.tsx @@ -0,0 +1,75 @@ +import { Button, Dialog } from '@blueprintjs/core'; +import { inject, observer } from 'mobx-react'; +import * as React from 'react'; +import { KeyBoard } from '../../../Common/KeyEnum'; +import { BehindBoardStore, ModalState } from '../../Store/BoardStore'; + + +@inject("store") +@observer +export class BehindBoardModal extends React.Component<{ store?: BehindBoardStore }, {}> { + constructor(props) + { + super(props); + } + render() + { + let store = this.props.store; + + return ( + store.OnOk(ModalState.Cancel)} + canOutsideClickClose={false} + enforceFocus={false} + title="背板" + > +
+ { + if (e.keyCode === KeyBoard.Enter) + { + store.OnOk(ModalState.Ok); + } + e.stopPropagation(); + } + }> + + { + Array.from(store.m_Parameter.keys()).map(k => + { + return ( +
+ + + { + store.behindBoardOption[k] = e.target.value; + }} + /> +
+ ) + }) + } +
+ +
+
+
+
+ + ); + } +} diff --git a/src/UI/Components/Board/TopBottomBaord.tsx b/src/UI/Components/Board/TopBottomBoardModal.tsx similarity index 97% rename from src/UI/Components/Board/TopBottomBaord.tsx rename to src/UI/Components/Board/TopBottomBoardModal.tsx index 3611f0a75..cc7cc6f97 100644 --- a/src/UI/Components/Board/TopBottomBaord.tsx +++ b/src/UI/Components/Board/TopBottomBoardModal.tsx @@ -5,7 +5,11 @@ import { inject, observer } from 'mobx-react'; @inject("store") @observer -export class TopBottomBaordDiaLog extends React.Component<{ store?: TopBottomBoardStore }> { +export class TopBottomBoardModal extends React.Component<{ store?: TopBottomBoardStore }> { + constructor(props) + { + super(props); + } render() { let store = this.props.store; diff --git a/src/UI/Components/Board/leftRightBaordDlg.tsx b/src/UI/Components/Board/leftRightBoardModal.tsx similarity index 83% rename from src/UI/Components/Board/leftRightBaordDlg.tsx rename to src/UI/Components/Board/leftRightBoardModal.tsx index 2697a0387..66f403974 100644 --- a/src/UI/Components/Board/leftRightBaordDlg.tsx +++ b/src/UI/Components/Board/leftRightBoardModal.tsx @@ -4,27 +4,13 @@ import * as React from 'react'; import { KeyBoard } from '../../../Common/KeyEnum'; import { ModalState, SideBoardStore } from '../../Store/BoardStore'; -interface LRState -{ - lenght: string, - width: string, - thickness: string, - spacing: string -} @inject("store") @observer -export class LeftRightBaordDialog extends React.Component<{ store?: SideBoardStore }, LRState> { +export class LeftRightBoardModal extends React.Component<{ store?: SideBoardStore }, {}> { constructor(props) { super(props); - let store = this.props.store; - this.state = { - lenght: store.boardOption.lenght + "", - width: store.boardOption.width + "", - thickness: store.boardOption.thickness + "", - spacing: store.boardOption.spacing + "" - } } render() { diff --git a/src/UI/Components/Modal/ModalsManage.tsx b/src/UI/Components/Modal/ModalsManage.tsx index 6b90f3336..2d3d848a5 100644 --- a/src/UI/Components/Modal/ModalsManage.tsx +++ b/src/UI/Components/Modal/ModalsManage.tsx @@ -9,11 +9,12 @@ import { PointLight } from '../../../DatabaseServices/PointLight'; import { Text } from '../../../DatabaseServices/Text/Text'; import { Editor } from '../../../Editor/Editor'; import { PointPick } from '../../../Editor/PointPick'; -import { SideBoardStore, TopBottomBoardStore } from '../../Store/BoardStore'; -import { LeftRightBaordDialog } from '../Board/leftRightBaordDlg'; +import { SideBoardStore, TopBottomBoardStore, BoardStore, BehindBoardStore } from '../../Store/BoardStore'; +import { LeftRightBoardModal } from '../Board/leftRightBoardModal'; import { LightModal } from './LightModal'; import './Modal.css'; -import { TopBottomBaordDiaLog } from '../Board/TopBottomBaord'; +import { TopBottomBoardModal } from '../Board/TopBottomBoardModal'; +import { BehindBoardModal } from '../Board/BehindBoardModal'; export class ModalManage @@ -44,19 +45,11 @@ export class ModalManage this.OnMouseDbClick() }) } - RenderLeftRightBoard() + RenderBoardModal(store: BoardStore, Com: any) { ReactDOM.render( - - - , - this.m_ModalContainer); - } - RenderTopBottomBoard() - { - ReactDOM.render( - - + + , this.m_ModalContainer); } diff --git a/src/UI/Store/BoardStore.ts b/src/UI/Store/BoardStore.ts index 7037a5fd0..d82fece30 100644 --- a/src/UI/Store/BoardStore.ts +++ b/src/UI/Store/BoardStore.ts @@ -21,7 +21,7 @@ export enum ModalState Cancel = -1 } -class BoardStore +export class BoardStore { protected m_PromisRes; constructor() @@ -106,3 +106,24 @@ export class TopBottomBoardStore extends BoardStore return this._store; } } + +export class BehindBoardStore extends BoardStore +{ + @observable behindBoardOption = { + leftExt: "0", + rightExt: "0", + topExt: "0", + bottomExt: "0", + thickness: "0.18", + }; + m_Parameter = new Map([ + ["leftExt", "左延伸"], ["rightExt", "右延伸"], ["topExt", "顶延伸"], + ["bottomExt", "底延伸"], ["thickness", "板厚"], + ]); + private static _store: BehindBoardStore; + static Store() + { + if (!this._store) this._store = new BehindBoardStore(); + return this._store; + } +}