新增通过ID选中板材
This commit is contained in:
parent
d79d759091
commit
fc4c46d280
@ -2,8 +2,7 @@
|
|||||||
"name": "cadview",
|
"name": "cadview",
|
||||||
"version": "1.1.9",
|
"version": "1.1.9",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "src/index.ts",
|
||||||
"types": "dist/index.d.ts",
|
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
|
28
src/Utils.ts
28
src/Utils.ts
@ -1,5 +1,5 @@
|
|||||||
import { Object3D } from "three";
|
import { Object3D } from "three";
|
||||||
import { createTemplateBoard, DrawDimension, Viewer } from ".";
|
import { createTemplateBoard, DrawDimension, Viewer, selectMaterial } from ".";
|
||||||
|
|
||||||
function dispose(m: Object3D)
|
function dispose(m: Object3D)
|
||||||
{
|
{
|
||||||
@ -11,6 +11,13 @@ function dispose(m: Object3D)
|
|||||||
m.children.forEach(o => dispose(o));
|
m.children.forEach(o => dispose(o));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let blockMeshs: THREE.Mesh[];
|
||||||
|
let dataRelations: {
|
||||||
|
blockMeshMap: Map<number, number>,
|
||||||
|
meshBlockMap: Map<number, number>
|
||||||
|
};
|
||||||
|
|
||||||
export function LoadBoard(view: Viewer, data: any[], clear: boolean = true)
|
export function LoadBoard(view: Viewer, data: any[], clear: boolean = true)
|
||||||
{
|
{
|
||||||
if (clear)
|
if (clear)
|
||||||
@ -21,7 +28,11 @@ export function LoadBoard(view: Viewer, data: any[], clear: boolean = true)
|
|||||||
|
|
||||||
if (data.length === 0) return;
|
if (data.length === 0) return;
|
||||||
//加板
|
//加板
|
||||||
let { meshs, edgesa } = createTemplateBoard(data);
|
let { meshs, edgesa, relations } = createTemplateBoard(data);
|
||||||
|
|
||||||
|
blockMeshs = meshs;
|
||||||
|
dataRelations = relations;
|
||||||
|
|
||||||
//加标注
|
//加标注
|
||||||
let dims = DrawDimension(meshs);
|
let dims = DrawDimension(meshs);
|
||||||
|
|
||||||
@ -33,3 +44,16 @@ export function LoadBoard(view: Viewer, data: any[], clear: boolean = true)
|
|||||||
view.ZoomAll();
|
view.ZoomAll();
|
||||||
view.Zoom(1.1);
|
view.Zoom(1.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function SelectBlock(dataID: number)
|
||||||
|
{
|
||||||
|
if (dataRelations.blockMeshMap.has(dataID))
|
||||||
|
{
|
||||||
|
let meshId = dataRelations.blockMeshMap.get(dataID);
|
||||||
|
let mesh = blockMeshs.find(i => i.id == meshId);
|
||||||
|
if (mesh)
|
||||||
|
{
|
||||||
|
mesh.material = selectMaterial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -200,13 +200,24 @@ export function createTemplateBoard(brDataList: any[])
|
|||||||
{
|
{
|
||||||
let meshs = [];
|
let meshs = [];
|
||||||
let edgesa = [];
|
let edgesa = [];
|
||||||
|
|
||||||
|
let relations = {
|
||||||
|
blockMeshMap: new Map<number, number>(),
|
||||||
|
meshBlockMap: new Map<number, number>()
|
||||||
|
};
|
||||||
for (let d of brDataList)
|
for (let d of brDataList)
|
||||||
{
|
{
|
||||||
let { mesh, edges } = createBoard(d);
|
let { mesh, edges } = createBoard(d);
|
||||||
meshs.push(mesh);
|
meshs.push(mesh);
|
||||||
edgesa.push(...edges);
|
edgesa.push(...edges);
|
||||||
|
|
||||||
|
if (d['DataID'])
|
||||||
|
{
|
||||||
|
relations.blockMeshMap.set(d['DataID'], mesh.id);
|
||||||
|
relations.meshBlockMap.set(mesh.id, d['DataID']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return { meshs, edgesa };
|
return { meshs, edgesa, relations };
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createEdge(geo: Geometry): LineSegments
|
export function createEdge(geo: Geometry): LineSegments
|
||||||
|
Loading…
Reference in New Issue
Block a user