修正内存泄漏,提供增量加载.

This commit is contained in:
ChenX
2018-07-02 12:07:16 +08:00
parent fcf2a1eb73
commit c1e9aac48b
12 changed files with 46 additions and 28 deletions

View File

@@ -1,15 +1,25 @@
import { Viewer, createTemplateBoard, createEdge, DrawDimension } from ".";
import { Geometry } from "three";
import { Object3D } from "three";
import { createTemplateBoard, DrawDimension, Viewer } from ".";
export function LoadBoard(view: Viewer, data: any[])
function dispose(m: Object3D)
{
view.m_Scene.children.forEach(obj =>
{
let geo = obj["geometry"] as Geometry;
if (geo) geo.dispose();
})
view.m_Scene.children.length = 0;
//@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 } = createTemplateBoard(data);
//加标注