Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5bccd97ab1 | ||
![]() |
caa39923dd | ||
![]() |
35347e004e | ||
![]() |
2fd1b48d32 | ||
![]() |
a10bb71035 | ||
![]() |
1fbd3d6563 | ||
![]() |
fc4c46d280 |
19
package-lock.json
generated
19
package-lock.json
generated
@@ -2305,7 +2305,8 @@
|
|||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"aproba": {
|
"aproba": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@@ -2720,7 +2721,8 @@
|
|||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"safer-buffer": {
|
"safer-buffer": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
@@ -2776,6 +2778,7 @@
|
|||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^2.0.0"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
@@ -2819,12 +2822,14 @@
|
|||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -5690,9 +5695,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "3.1.3",
|
"version": "3.7.5",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.3.tgz",
|
"resolved": "http://r.cnpmjs.org/typescript/download/typescript-3.7.5.tgz",
|
||||||
"integrity": "sha512-+81MUSyX+BaSo+u2RbozuQk/UWx6hfG0a5gHu4ANEM4sU96XbuIyAB+rWBW1u70c6a5QuZfuYICn3s2UjuHUpA==",
|
"integrity": "sha1-BpLiH2X9QQi5MwI4qsEd0uF3oa4=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "cadview",
|
"name": "cadview",
|
||||||
"version": "1.1.9",
|
"version": "1.2.0",
|
||||||
"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",
|
||||||
@@ -20,7 +19,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/hard-source-webpack-plugin": "^0.9.0",
|
"@types/hard-source-webpack-plugin": "^0.9.0",
|
||||||
"@types/node": "^10.11.7",
|
"@types/node": "^10.11.7",
|
||||||
"@types/three": "^0.92.25",
|
|
||||||
"@types/uglifyjs-webpack-plugin": "^1.1.0",
|
"@types/uglifyjs-webpack-plugin": "^1.1.0",
|
||||||
"@types/webpack": "^4.4.16",
|
"@types/webpack": "^4.4.16",
|
||||||
"@types/webpack-dev-server": "^3.1.1",
|
"@types/webpack-dev-server": "^3.1.1",
|
||||||
@@ -32,7 +30,7 @@
|
|||||||
"html-webpack-plugin": "^3.2.0",
|
"html-webpack-plugin": "^3.2.0",
|
||||||
"ts-loader": "^5.2.1",
|
"ts-loader": "^5.2.1",
|
||||||
"ts-node": "^7.0.1",
|
"ts-node": "^7.0.1",
|
||||||
"typescript": "^3.1.3",
|
"typescript": "^3.7.5",
|
||||||
"uglifyjs-webpack-plugin": "^2.0.1",
|
"uglifyjs-webpack-plugin": "^2.0.1",
|
||||||
"webpack": "^4.20.2",
|
"webpack": "^4.20.2",
|
||||||
"webpack-cli": "^3.1.2",
|
"webpack-cli": "^3.1.2",
|
||||||
@@ -40,6 +38,7 @@
|
|||||||
"webpack-merge": "^4.1.4"
|
"webpack-merge": "^4.1.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@types/three": "^0.92.25",
|
||||||
"three": "^0.95.0",
|
"three": "^0.95.0",
|
||||||
"wolfy87-eventemitter": "^5.2.5"
|
"wolfy87-eventemitter": "^5.2.5"
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
import * as THREE from 'three';
|
import * as THREE from 'three';
|
||||||
import { Vector3, Line3 } from "three";
|
import { Vector3, Line3, Plane } from "three";
|
||||||
|
|
||||||
export class PlaneExt extends THREE.Plane
|
export class PlaneExt extends Plane
|
||||||
{
|
{
|
||||||
constructor(normal?: THREE.Vector3, constant?: number)
|
constructor(normal?: Vector3, constant?: number)
|
||||||
{
|
{
|
||||||
super(normal, constant);
|
super(normal, constant);
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { Font, FontLoader, Mesh, ShapeGeometry, Vector3 } from "three";
|
import { Font, FontLoader, Mesh, ShapeGeometry, Vector3, Shape } from "three";
|
||||||
import { ColorMaterial } from "./ColorPalette";
|
import { ColorMaterial } from "./ColorPalette";
|
||||||
import { MoveMatrix } from "./GeUtils";
|
import { MoveMatrix } from "./GeUtils";
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ export class DbText extends Mesh
|
|||||||
{
|
{
|
||||||
let font = FontLoaderUtil.Load();
|
let font = FontLoaderUtil.Load();
|
||||||
|
|
||||||
let shapes: THREE.Shape[] = font.generateShapes(str, height, 0.1);
|
let shapes: Shape[] = font.generateShapes(str, height, 0.1);
|
||||||
let geometry = new ShapeGeometry(shapes);
|
let geometry = new ShapeGeometry(shapes);
|
||||||
|
|
||||||
geometry.computeBoundingBox();
|
geometry.computeBoundingBox();
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { Object3D } from "three";
|
import { Object3D, Mesh } from "three";
|
||||||
import { createTemplateBoard, DrawDimension, Viewer } from ".";
|
import { createTemplateBoard, DrawDimension, Viewer, selectMaterial } from ".";
|
||||||
|
|
||||||
function dispose(m: Object3D)
|
function dispose(m: Object3D)
|
||||||
{
|
{
|
||||||
@@ -21,7 +21,8 @@ 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);
|
||||||
|
|
||||||
//加标注
|
//加标注
|
||||||
let dims = DrawDimension(meshs);
|
let dims = DrawDimension(meshs);
|
||||||
|
|
||||||
@@ -32,4 +33,6 @@ export function LoadBoard(view: Viewer, data: any[], clear: boolean = true)
|
|||||||
view.ViewToSwiso();
|
view.ViewToSwiso();
|
||||||
view.ZoomAll();
|
view.ZoomAll();
|
||||||
view.Zoom(1.1);
|
view.Zoom(1.1);
|
||||||
|
|
||||||
|
return relations;
|
||||||
}
|
}
|
||||||
|
@@ -37,18 +37,9 @@ export class Viewer
|
|||||||
this.OnSize();
|
this.OnSize();
|
||||||
});
|
});
|
||||||
|
|
||||||
let oldMesh: Mesh;
|
|
||||||
this.m_Render.domElement.addEventListener("mousemove", (e: MouseEvent) =>
|
this.m_Render.domElement.addEventListener("mousemove", (e: MouseEvent) =>
|
||||||
{
|
{
|
||||||
let mesh = PointPick(this, e.offsetX, e.offsetY);
|
this.SelectByPoint(e.offsetX, e.offsetY);
|
||||||
if (oldMesh)
|
|
||||||
oldMesh.material = boardMaterial;
|
|
||||||
if (mesh && mesh.material !== ColorMaterial.GetBasicMaterial(1))
|
|
||||||
{
|
|
||||||
oldMesh = mesh;
|
|
||||||
mesh.material = selectMaterial;
|
|
||||||
}
|
|
||||||
this.m_bNeedUpdate = true;
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,4 +187,40 @@ export class Viewer
|
|||||||
this.m_Camera.LookAt(new Vector3(1, 1, -1));
|
this.m_Camera.LookAt(new Vector3(1, 1, -1));
|
||||||
this.m_bNeedUpdate = true;
|
this.m_bNeedUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
oldMesh: Mesh;
|
||||||
|
SelectByPoint(x: number, y: number)
|
||||||
|
{
|
||||||
|
let mesh = PointPick(this, x, y);
|
||||||
|
if (this.oldMesh)
|
||||||
|
this.oldMesh.material = boardMaterial;
|
||||||
|
if (mesh && mesh.material !== ColorMaterial.GetBasicMaterial(1))
|
||||||
|
{
|
||||||
|
this.oldMesh = mesh;
|
||||||
|
mesh.material = selectMaterial;
|
||||||
|
}
|
||||||
|
this.m_bNeedUpdate = true;
|
||||||
|
}
|
||||||
|
SelectBlock(blockMeshMap: Map<number, number>, dataID: number)
|
||||||
|
{
|
||||||
|
if (blockMeshMap.has(dataID))
|
||||||
|
{
|
||||||
|
let meshId = blockMeshMap.get(dataID);
|
||||||
|
if (this.oldMesh)
|
||||||
|
this.oldMesh.material = boardMaterial;
|
||||||
|
this.m_Scene.children.forEach(obj =>
|
||||||
|
{
|
||||||
|
if (obj instanceof Mesh)
|
||||||
|
{
|
||||||
|
if (obj.id == meshId)
|
||||||
|
{
|
||||||
|
this.oldMesh = obj;
|
||||||
|
obj.material = selectMaterial;
|
||||||
|
this.m_bNeedUpdate = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user