修正内存泄漏,提供增量加载.
This commit is contained in:
@@ -134,7 +134,7 @@ export class CameraUpdate
|
||||
}
|
||||
ZoomExtensBox3(box3: THREE.Box3)
|
||||
{
|
||||
if (!box3) return;
|
||||
if (!box3 || box3.isEmpty()) return;
|
||||
this.Camera.updateMatrixWorld(false);
|
||||
//变换到相机坐标系
|
||||
box3.applyMatrix4(this.Camera.matrixWorldInverse);
|
||||
|
28
src/Utils.ts
28
src/Utils.ts
@@ -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);
|
||||
//加标注
|
||||
|
@@ -80,8 +80,8 @@ export function getVec(data: object): THREE.Vector3
|
||||
//创建板件 暂时这么写
|
||||
export function createBoard(boardData: object)
|
||||
{
|
||||
let pts: THREE.Vector2[] = new Array();
|
||||
let buls: number[] = new Array();
|
||||
let pts: THREE.Vector2[] = [];
|
||||
let buls: number[] = [];
|
||||
let boardPts = boardData["Pts"];
|
||||
let boardBuls = boardData["Buls"];
|
||||
|
||||
|
Reference in New Issue
Block a user