diff --git a/src/Utils.ts b/src/Utils.ts index d4ea5c9..69a6c0c 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -11,13 +11,6 @@ function dispose(m: Object3D) m.children.forEach(o => dispose(o)); } - -let blockMeshs: Mesh[]; -let dataRelations: { - blockMeshMap: Map, - meshBlockMap: Map -}; - export function LoadBoard(view: Viewer, data: any[], clear: boolean = true) { if (clear) @@ -30,9 +23,6 @@ export function LoadBoard(view: Viewer, data: any[], clear: boolean = true) //加板 let { meshs, edgesa, relations } = createTemplateBoard(data); - blockMeshs = meshs; - dataRelations = relations; - //加标注 let dims = DrawDimension(meshs); @@ -43,17 +33,26 @@ export function LoadBoard(view: Viewer, data: any[], clear: boolean = true) view.ViewToSwiso(); view.ZoomAll(); view.Zoom(1.1); + + return relations; } -export function SelectBlock(dataID: number) +export function SelectBlock(view: Viewer, blockMeshMap: Map, dataID: number) { - if (dataRelations.blockMeshMap.has(dataID)) + if (blockMeshMap.has(dataID)) { - let meshId = dataRelations.blockMeshMap.get(dataID); - let mesh = blockMeshs.find(i => i.id == meshId); - if (mesh) + let meshId = blockMeshMap.get(dataID); + view.m_Scene.children.forEach(obj => { - mesh.material = selectMaterial; - } + if (obj instanceof Mesh) + { + if (obj.id == meshId) + { + obj.material = selectMaterial; + view.m_bNeedUpdate = true; + } + } + + }) } }