46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { Object3D, Vector3 } from "three";
|
|
import { DrawDimension, Viewer, createTemplateBoard } from ".";
|
|
|
|
export const XAxis = new Vector3(1, 0, 0);
|
|
export const XAxisN = new Vector3(-1, 0, 0);
|
|
export const YAxis = new Vector3(0, 1, 0);
|
|
export const YAxisN = new Vector3(0, -1, 0);
|
|
export const ZAxis = new Vector3(0, 0, 1);
|
|
export const ZAxisN = new Vector3(0, 0, -1);
|
|
|
|
function dispose(m: Object3D)
|
|
{
|
|
//@ts-ignore
|
|
if (m.geometry)
|
|
//@ts-ignore
|
|
m.geometry.dispose();
|
|
|
|
m.children.forEach(o => dispose(o));
|
|
}
|
|
|
|
export function LoadBoard(view: Viewer, data: any[], clear: boolean = true)
|
|
{
|
|
if (clear)
|
|
{
|
|
dispose(view.m_Scene);
|
|
view.m_Scene.children.length = 0;
|
|
}
|
|
|
|
if (data.length === 0) return;
|
|
//加板
|
|
let { meshs, edgesa, relations } = createTemplateBoard(data, view._Settings.boardMaterial);
|
|
|
|
//加标注
|
|
let dims = DrawDimension(meshs);
|
|
|
|
view.m_Scene.add(...meshs);
|
|
view.m_Scene.add(...edgesa);
|
|
view.m_Scene.add(...dims);
|
|
|
|
view.ViewToSwiso();
|
|
view.ZoomAll();
|
|
view.Zoom(1.1);
|
|
|
|
return relations;
|
|
}
|