分离选择材质,避免实体选中时,选中材质导致的内部拉槽显示问题.
修正未选中板件时,视图没有刷新的问题. 加入排钻显示.
This commit is contained in:
		
							
								
								
									
										1
									
								
								dist/Material.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/Material.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,4 @@
 | 
			
		||||
import { MeshBasicMaterial, LineBasicMaterial } from "three";
 | 
			
		||||
export declare let boardMaterial: MeshBasicMaterial;
 | 
			
		||||
export declare let selectMaterial: MeshBasicMaterial;
 | 
			
		||||
export declare let edgeMaterial: LineBasicMaterial;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								dist/Material.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/Material.js
									
									
									
									
										vendored
									
									
								
							@@ -8,6 +8,12 @@ exports.boardMaterial = new three_1.MeshBasicMaterial({
 | 
			
		||||
    polygonOffsetFactor: 1,
 | 
			
		||||
    polygonOffsetUnits: 1
 | 
			
		||||
});
 | 
			
		||||
exports.selectMaterial = new three_1.MeshBasicMaterial({
 | 
			
		||||
    color: new three_1.Color(0.1, 0.5, 0.5),
 | 
			
		||||
    polygonOffset: true,
 | 
			
		||||
    polygonOffsetFactor: 1,
 | 
			
		||||
    polygonOffsetUnits: 1
 | 
			
		||||
});
 | 
			
		||||
//线框的材质
 | 
			
		||||
exports.edgeMaterial = new three_1.LineBasicMaterial({ linewidth: 2, color: new three_1.Color(0, 0, 0) });
 | 
			
		||||
//# sourceMappingURL=Material.js.map
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/Material.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/Material.js.map
									
									
									
									
										vendored
									
									
								
							@@ -1 +1 @@
 | 
			
		||||
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../src/Material.ts"],"names":[],"mappings":";;AAAA,iCAAoE;AAEpE,uBAAuB;AACZ,QAAA,aAAa,GAAG,IAAI,yBAAiB,CAAC;IAC7C,KAAK,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,CAAC;IACtB,kBAAkB,EAAE,CAAC;CACxB,CAAC,CAAC;AAEH,OAAO;AACI,QAAA,YAAY,GAAG,IAAI,yBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC"}
 | 
			
		||||
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../src/Material.ts"],"names":[],"mappings":";;AAAA,iCAAoE;AAEpE,uBAAuB;AACZ,QAAA,aAAa,GAAG,IAAI,yBAAiB,CAAC;IAC7C,KAAK,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,CAAC;IACtB,kBAAkB,EAAE,CAAC;CACxB,CAAC,CAAC;AAEQ,QAAA,cAAc,GAAG,IAAI,yBAAiB,CAAC;IAC9C,KAAK,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,CAAC;IACtB,kBAAkB,EAAE,CAAC;CACxB,CAAC,CAAC;AAEH,OAAO;AACI,QAAA,YAAY,GAAG,IAAI,yBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC"}
 | 
			
		||||
							
								
								
									
										7
									
								
								dist/Viewer.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/Viewer.js
									
									
									
									
										vendored
									
									
								
							@@ -5,7 +5,6 @@ const CameraUpdate_1 = require("./CameraUpdate");
 | 
			
		||||
const GeUtils_1 = require("./GeUtils");
 | 
			
		||||
const PlaneExt_1 = require("./PlaneExt");
 | 
			
		||||
const _1 = require(".");
 | 
			
		||||
const three_1 = require("three");
 | 
			
		||||
class Viewer {
 | 
			
		||||
    //构造
 | 
			
		||||
    constructor(canvasContainer) {
 | 
			
		||||
@@ -38,8 +37,6 @@ class Viewer {
 | 
			
		||||
        window.addEventListener("resize", () => {
 | 
			
		||||
            this.OnSize();
 | 
			
		||||
        });
 | 
			
		||||
        //选中
 | 
			
		||||
        let selectMaterial = new three_1.MeshBasicMaterial({ color: new three_1.Color(0.1, 0.5, 0.5) });
 | 
			
		||||
        let oldMesh;
 | 
			
		||||
        this.m_Render.domElement.addEventListener("mousemove", (e) => {
 | 
			
		||||
            let mesh = _1.PointPick(this, e.offsetX, e.offsetY);
 | 
			
		||||
@@ -47,9 +44,9 @@ class Viewer {
 | 
			
		||||
                oldMesh.material = _1.boardMaterial;
 | 
			
		||||
            if (mesh) {
 | 
			
		||||
                oldMesh = mesh;
 | 
			
		||||
                mesh.material = selectMaterial;
 | 
			
		||||
                this.m_bNeedUpdate = true;
 | 
			
		||||
                mesh.material = _1.selectMaterial;
 | 
			
		||||
            }
 | 
			
		||||
            this.m_bNeedUpdate = true;
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    //初始化render
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/Viewer.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/Viewer.js.map
									
									
									
									
										vendored
									
									
								
							@@ -1 +1 @@
 | 
			
		||||
{"version":3,"file":"Viewer.js","sourceRoot":"","sources":["../src/Viewer.ts"],"names":[],"mappings":"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"}
 | 
			
		||||
{"version":3,"file":"Viewer.js","sourceRoot":"","sources":["../src/Viewer.ts"],"names":[],"mappings":"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"}
 | 
			
		||||
							
								
								
									
										22
									
								
								dist/createBoard.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								dist/createBoard.js
									
									
									
									
										vendored
									
									
								
							@@ -109,14 +109,29 @@ function createBoard(boardData) {
 | 
			
		||||
    //外边.
 | 
			
		||||
    let edges = [createEdge(ext)];
 | 
			
		||||
    //差集
 | 
			
		||||
    if (boardData["SubBoardLocal"].length > 0) {
 | 
			
		||||
        let subBoardList = boardData["SubBoardLocal"].map(d => createBoard(d));
 | 
			
		||||
    if (checkObjectArray(boardData, "SubBoardLocal")
 | 
			
		||||
        || checkObjectArray(boardData, "Drillings")) {
 | 
			
		||||
        let thisCsg = new ThreeCSG_1.ThreeBSP(ext);
 | 
			
		||||
        if (boardData["SubBoardLocal"]) {
 | 
			
		||||
            let subBoardList = boardData["SubBoardLocal"].map(d => createBoard(d));
 | 
			
		||||
            for (let br of subBoardList) {
 | 
			
		||||
                edges.push(...br.edges);
 | 
			
		||||
                let subCsg = new ThreeCSG_1.ThreeBSP(br.mesh);
 | 
			
		||||
                thisCsg = thisCsg.subtract(subCsg);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (boardData["Drillings"]) {
 | 
			
		||||
            let dris = boardData["Drillings"];
 | 
			
		||||
            for (let dri of dris) {
 | 
			
		||||
                let geo = new three_1.CylinderGeometry(dri.r, dri.r, dri.h, 32);
 | 
			
		||||
                geo.rotateX(Math.PI * 0.5);
 | 
			
		||||
                geo.translate(dri.x, dri.y, 0);
 | 
			
		||||
                geo.applyMatrix(boardMat);
 | 
			
		||||
                edges.push(createEdge(geo));
 | 
			
		||||
                let subCsg = new ThreeCSG_1.ThreeBSP(geo);
 | 
			
		||||
                thisCsg = thisCsg.subtract(subCsg);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        ext = thisCsg.toGeometry();
 | 
			
		||||
    }
 | 
			
		||||
    if (boardData["BoardName"] === "地脚线")
 | 
			
		||||
@@ -125,6 +140,9 @@ function createBoard(boardData) {
 | 
			
		||||
    return { mesh, edges };
 | 
			
		||||
}
 | 
			
		||||
exports.createBoard = createBoard;
 | 
			
		||||
function checkObjectArray(obj, key) {
 | 
			
		||||
    return obj[key] && obj[key].length > 0;
 | 
			
		||||
}
 | 
			
		||||
function createTemplateBoard(brDataList) {
 | 
			
		||||
    let meshs = [];
 | 
			
		||||
    let edgesa = [];
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/createBoard.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/createBoard.js.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -8,6 +8,13 @@ export let boardMaterial = new MeshBasicMaterial({
 | 
			
		||||
    polygonOffsetUnits: 1
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export let selectMaterial = new MeshBasicMaterial({
 | 
			
		||||
    color: new Color(0.1, 0.5, 0.5),
 | 
			
		||||
    polygonOffset: true,
 | 
			
		||||
    polygonOffsetFactor: 1, // positive value pushes polygon further away
 | 
			
		||||
    polygonOffsetUnits: 1
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
//线框的材质
 | 
			
		||||
export let edgeMaterial = new LineBasicMaterial({ linewidth: 2, color: new Color(0, 0, 0) });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ import * as THREE from "three";
 | 
			
		||||
import { CameraUpdate } from "./CameraUpdate";
 | 
			
		||||
import { GetBox, GetBoxArr, cZeroVec } from "./GeUtils";
 | 
			
		||||
import { PlaneExt } from "./PlaneExt";
 | 
			
		||||
import { PointPick, boardMaterial, CameraControls } from ".";
 | 
			
		||||
import { PointPick, boardMaterial, CameraControls, selectMaterial } from ".";
 | 
			
		||||
import { MeshBasicMaterial, Color, Mesh } from "three";
 | 
			
		||||
 | 
			
		||||
export class Viewer
 | 
			
		||||
@@ -32,9 +32,6 @@ export class Viewer
 | 
			
		||||
            this.OnSize();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        //选中
 | 
			
		||||
        let selectMaterial = new MeshBasicMaterial({ color: new Color(0.1, 0.5, 0.5) });
 | 
			
		||||
 | 
			
		||||
        let oldMesh: Mesh;
 | 
			
		||||
        this.m_Render.domElement.addEventListener("mousemove", (e: MouseEvent) =>
 | 
			
		||||
        {
 | 
			
		||||
@@ -45,8 +42,8 @@ export class Viewer
 | 
			
		||||
            {
 | 
			
		||||
                oldMesh = mesh;
 | 
			
		||||
                mesh.material = selectMaterial;
 | 
			
		||||
                this.m_bNeedUpdate = true;
 | 
			
		||||
            }
 | 
			
		||||
            this.m_bNeedUpdate = true;
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import * as THREE from 'three';
 | 
			
		||||
import { Geometry, LineSegments, Shape, Vector2 } from 'three';
 | 
			
		||||
import { Geometry, LineSegments, Shape, Vector2, CylinderGeometry } from 'three';
 | 
			
		||||
import { polar } from './GeUtils';
 | 
			
		||||
import { boardMaterial, edgeMaterial } from './Material';
 | 
			
		||||
import { RotateUVs } from './RotateUV';
 | 
			
		||||
@@ -90,7 +90,6 @@ export function createBoard(boardData: object)
 | 
			
		||||
    let matInv: THREE.Matrix4 = new THREE.Matrix4();
 | 
			
		||||
    //InitBoardMat
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        let xD = getVec(boardData["XVec"]);
 | 
			
		||||
        let yD = getVec(boardData["YVec"]);
 | 
			
		||||
        let ZD = getVec(boardData["ZVec"]);
 | 
			
		||||
@@ -139,18 +138,40 @@ export function createBoard(boardData: object)
 | 
			
		||||
 | 
			
		||||
    //外边.
 | 
			
		||||
    let edges = [createEdge(ext)];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //差集
 | 
			
		||||
    if (boardData["SubBoardLocal"].length > 0)
 | 
			
		||||
    if (checkObjectArray(boardData, "SubBoardLocal")
 | 
			
		||||
        || checkObjectArray(boardData, "Drillings"))
 | 
			
		||||
    {
 | 
			
		||||
        let subBoardList = boardData["SubBoardLocal"].map(d => createBoard(d));
 | 
			
		||||
        let thisCsg = new ThreeBSP(ext);
 | 
			
		||||
 | 
			
		||||
        if (boardData["SubBoardLocal"])
 | 
			
		||||
        {
 | 
			
		||||
            let subBoardList = boardData["SubBoardLocal"].map(d => createBoard(d));
 | 
			
		||||
            for (let br of subBoardList)
 | 
			
		||||
            {
 | 
			
		||||
                edges.push(...br.edges);
 | 
			
		||||
                let subCsg = new ThreeBSP(br.mesh);
 | 
			
		||||
                thisCsg = thisCsg.subtract(subCsg);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (boardData["Drillings"])
 | 
			
		||||
        {
 | 
			
		||||
            let dris = boardData["Drillings"];
 | 
			
		||||
            for (let dri of dris)
 | 
			
		||||
            {
 | 
			
		||||
                let geo = new CylinderGeometry(dri.r, dri.r, dri.h, 32);
 | 
			
		||||
                geo.rotateX(Math.PI * 0.5);
 | 
			
		||||
                geo.translate(dri.x, dri.y, 0);
 | 
			
		||||
                geo.applyMatrix(boardMat);
 | 
			
		||||
 | 
			
		||||
                edges.push(createEdge(geo));
 | 
			
		||||
 | 
			
		||||
                let subCsg = new ThreeBSP(geo);
 | 
			
		||||
                thisCsg = thisCsg.subtract(subCsg);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        ext = thisCsg.toGeometry();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -161,6 +182,11 @@ export function createBoard(boardData: object)
 | 
			
		||||
    return { mesh, edges };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkObjectArray(obj: any, key: string)
 | 
			
		||||
{
 | 
			
		||||
    return obj[key] && obj[key].length > 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function createTemplateBoard(brDataList: any[])
 | 
			
		||||
{
 | 
			
		||||
    let meshs = [];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user