分离选择材质,避免实体选中时,选中材质导致的内部拉槽显示问题.
修正未选中板件时,视图没有刷新的问题. 加入排钻显示.
This commit is contained in:
parent
4f3d7a6388
commit
cbe28efb08
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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"}
|
30
dist/createBoard.js
vendored
30
dist/createBoard.js
vendored
@ -109,13 +109,28 @@ 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);
|
||||
for (let br of subBoardList) {
|
||||
edges.push(...br.edges);
|
||||
let subCsg = new ThreeCSG_1.ThreeBSP(br.mesh);
|
||||
thisCsg = thisCsg.subtract(subCsg);
|
||||
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();
|
||||
}
|
||||
@ -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,17 +138,39 @@ 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);
|
||||
|
||||
for (let br of subBoardList)
|
||||
if (boardData["SubBoardLocal"])
|
||||
{
|
||||
edges.push(...br.edges);
|
||||
let subCsg = new ThreeBSP(br.mesh);
|
||||
thisCsg = thisCsg.subtract(subCsg);
|
||||
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 = [];
|
||||
|
Loading…
Reference in New Issue
Block a user