From 66a33a002daf2602cd6be337cd566b8b2ab748fa Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 10:26:47 +0800 Subject: [PATCH 01/33] add test.html/js. --- mesh-cut/MeshCutter.js | 3 +- mesh-cut/image/uv_grid_opengl.jpg | Bin 0 -> 549505 bytes mesh-cut/test.html | 24 +++++ mesh-cut/test.js | 150 ++++++++++++++++++++++++++++++ 4 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 mesh-cut/image/uv_grid_opengl.jpg create mode 100644 mesh-cut/test.html create mode 100644 mesh-cut/test.js diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index c85a46b..4ec0c93 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -1,4 +1,5 @@ -import * as THREE from 'three'; +// import * as THREE from 'three'; +import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' class MeshCutter { constructor() { diff --git a/mesh-cut/image/uv_grid_opengl.jpg b/mesh-cut/image/uv_grid_opengl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..885000500e95aa7ac7684e89920888232c2b306c GIT binary patch literal 549505 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

V+FXRkUBLkWz(jb*mx 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≠p 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≦H>r=>R=j#v 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�w<>84C3tiX`>`L6~-2 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

SPJvs2d0$%-Lb&_S7{0@I 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 uDli2}w2~xqU)=ckb5LQ^Nsip( + + + + MeshCutter test + + + + + + + + + + + + \ No newline at end of file diff --git a/mesh-cut/test.js b/mesh-cut/test.js new file mode 100644 index 0000000..d46ac40 --- /dev/null +++ b/mesh-cut/test.js @@ -0,0 +1,150 @@ +// import * as THREE from '../lib/three.js/build/three.module.js' +import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' +window.THREE = THREE +// import { OrbitControls } from '../lib/three.js/examples/jsm/controls/OrbitControls.js' +import { OrbitControls } from 'https://cdn.skypack.dev/three@0.136/examples/jsm/controls/OrbitControls.js' +import { MeshCutter } from './MeshCutter.js' + +window.container = null +window.stats = null +window.camera = null +window.scene = null +window.renderer = null +init_three() +requestAnimationFrame(animate) + +function init_three() { + container = document.createElement('div') + document.body.appendChild(container) + + camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 370) + camera.position.set(3, 5, 7) + camera.lookAt(0, 0, 0) + + scene = new THREE.Scene() + scene.background = new THREE.Color(0xe0e0e0) + + // lights + + let light = new THREE.HemisphereLight(0x888888, 0x333333) + light.position.set(0, 7.41, 0) + scene.add(light) + + window.shadowLight = new THREE.DirectionalLight(0x888888) + shadowLight.position.set(0, 37, 0) + shadowLight.castShadow = true + shadowLight.shadow.mapSize.width = 2048 + shadowLight.shadow.mapSize.height = 2048 + shadowLight.shadow.camera.near = 1 + shadowLight.shadow.camera.far = 185 + shadowLight.shadow.camera.right = 37 + shadowLight.shadow.camera.left = -37 + shadowLight.shadow.camera.top = 37 + shadowLight.shadow.camera.bottom = -37 + // shadowLight.shadow.radius = 2; + shadowLight.shadow.radius = 0 + // shadowLight.shadow.bias = - 0.00006; + scene.add(shadowLight) + scene.add(shadowLight.target) + + // window.supLight = new THREE.DirectionalLight(0x888888) + window.supLight = new THREE.DirectionalLight(0x333333) + supLight.position.set(1, 1, 3) + scene.add(supLight) + + window.gridHelper = new THREE.GridHelper(100, 100, 0x000000, 0x000000) + // gridHelper.position.y = 0.037 + gridHelper.material.opacity = 0.2 + gridHelper.material.transparent = true + scene.add(gridHelper) + + renderer = new THREE.WebGLRenderer({ antialias: true }) + renderer.setPixelRatio(window.devicePixelRatio) + renderer.setSize(window.innerWidth, window.innerHeight) + // renderer.gammaOutput = true + // renderer.gammaFactor = 1.3 + renderer.outputEncoding = THREE.sRGBEncoding + renderer.shadowMap.enabled = true + // renderer.shadowMap.type = THREE.VSMShadowMap; + renderer.shadowMap.type = THREE.PCFSoftShadowMap + container.appendChild(renderer.domElement) + + window.addEventListener('resize', onWindowResize, false) + + // stats + // stats = new Stats() + // container.appendChild(stats.dom) + + window.controls = new OrbitControls(camera, renderer.domElement) +} + +function onWindowResize() { + camera.aspect = window.innerWidth / window.innerHeight + camera.updateProjectionMatrix() + + renderer.setSize(window.innerWidth, window.innerHeight) +} + +// // + +function animate(time) { + requestAnimationFrame(animate) + renderer.render(scene, camera) + + // stats.update() +} + +window.meshCutter = new MeshCutter() + +const geometry = new THREE.BoxGeometry() +// const geometry = new THREE.PlaneGeometry() +// const geometry = new THREE.CylinderGeometry() +// const geometry = new THREE.TorusKnotGeometry() +geometry.scale(0.5, 0.5, 0.5) + +// const geometry = indexedGeometry.toNonIndexed() +// geometry.clearGroups() + +const material = new THREE.MeshStandardMaterial({ + // const material = new THREE.MeshBasicMaterial({ + // color: 'red', + // wireframe: true, + // side: THREE.DoubleSide, + map: new THREE.TextureLoader().load('./image/uv_grid_opengl.jpg'), +}) +const mesh = new THREE.Mesh(geometry, material) +window.scene.add(mesh) +// mesh.position.y = 1 +// mesh.position.z = -6 +// mesh.rotation.y = Math.PI/4 +mesh.updateMatrixWorld() +window.box = mesh + +if (true) { + window.constant = 0 + // window.constant = (Math.random() - 0.5) * 1 + // window.constant = .5 + + // window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(1,0,1).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) + + setTimeout(() => { + window.output = window.meshCutter.cutByPlane(window.box, window.plane) + if (window.output.object1) { + window.scene.add(window.output.object1) + window.output.object1.position.x += -1 + window.output.object1.position.z += 2 + // window.output.object1.updateMatrixWorld() + } + if (window.output.object2) { + window.scene.add(window.output.object2) + window.output.object2.position.x += 1 + window.output.object2.position.z += 2 + // window.output.object2.updateMatrixWorld() + } + // window.box.visible = false + }, 1000) +} From 02c28970206d6e936de34deeabc7e84c620533bd Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:00:56 +0800 Subject: [PATCH 02/33] add pointsInner. --- mesh-cut/MeshCutter.js | 92 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 4ec0c93..baad6ac 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -1,5 +1,6 @@ // import * as THREE from 'three'; import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' +import Delaunator from 'https://cdn.skypack.dev/delaunator@5.0.0'; class MeshCutter { constructor() { @@ -122,12 +123,15 @@ class MeshCutter { const points1 = []; const points2 = []; + const pointsInner = []; const normals1 = []; const normals2 = []; + const normalsInner = []; const uvs1 = []; const uvs2 = []; + const uvsInner = []; // Transform the plane to object local space object.updateMatrix(); @@ -183,10 +187,16 @@ class MeshCutter { points2.push(v2, vI0, vI1); normals2.push(n2, nI0, nI1); uvs2.push(u2, uI0, uI1); + pointsInner.push(vI0, vI1); + normalsInner.push(nI0, nI1); + uvsInner.push(uI0, uI1); } else if (sign2 === 0) { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + pointsInner.push(v2); + normalsInner.push(n2); + uvsInner.push(u2); } } else if (sign0 === 1) { if (sign2 === -1) { @@ -201,20 +211,32 @@ class MeshCutter { points1.push(v2, vI0, vI1); normals1.push(n2, nI0, nI1); uvs1.push(u2, uI0, uI1); + pointsInner.push(vI0, vI1); + normalsInner.push(nI0, nI1); + uvsInner.push(uI0, uI1); } else if (sign2 === 0) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + pointsInner.push(v2); + normalsInner.push(n2); + uvsInner.push(u2); } } else if (sign0 === 0) { if (sign2 === -1) { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + pointsInner.push(v0, v1); + normalsInner.push(n0, n1); + uvsInner.push(u0, u1); } else if (sign2 === 1) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + pointsInner.push(v0, v1); + normalsInner.push(n0, n1); + uvsInner.push(u0, u1); } } } else if (sign1 === sign2) { @@ -231,10 +253,16 @@ class MeshCutter { points2.push(v0, vI0, vI1); normals2.push(n0, nI0, nI1); uvs2.push(u0, uI0, uI1); + pointsInner.push(vI0, vI1); + normalsInner.push(nI0, nI1); + uvsInner.push(uI0, uI1); } else if (sign0 === 0) { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + pointsInner.push(v1, v2); + normalsInner.push(n1, n2); + uvsInner.push(u1, u2); } } else if (sign1 === 1) { if (sign0 === -1) { @@ -249,20 +277,32 @@ class MeshCutter { points1.push(v0, vI0, vI1); normals1.push(n0, nI0, nI1); uvs1.push(u0, uI0, uI1); + pointsInner.push(vI0, vI1); + normalsInner.push(nI0, nI1); + uvsInner.push(uI0, uI1); } else if (sign0 === 0) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + pointsInner.push(v0); + normalsInner.push(n0); + uvsInner.push(u0); } } else if (sign1 === 0) { if (sign0 === -1) { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + pointsInner.push(v1, v2); + normalsInner.push(n1, n2); + uvsInner.push(u1, u2); } else if (sign0 === 1) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + pointsInner.push(v1, v2); + normalsInner.push(n1, n2); + uvsInner.push(u1, u2); } } } else if (sign2 === sign0) { @@ -279,10 +319,16 @@ class MeshCutter { points2.push(v1, vI0, vI1); normals2.push(n1, nI0, nI1); uvs2.push(u1, uI0, uI1); + pointsInner.push(vI0, vI1); + normalsInner.push(nI0, nI1); + uvsInner.push(uI0, uI1); } else if (sign1 === 0) { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + pointsInner.push(v1); + normalsInner.push(n1); + uvsInner.push(u1); } } else if (sign2 === 1) { if (sign1 === -1) { @@ -297,76 +343,116 @@ class MeshCutter { points1.push(v1, vI0, vI1); normals1.push(n1, nI0, nI1); uvs1.push(u1, uI0, uI1); + pointsInner.push(vI0, vI1); + normalsInner.push(nI0, nI1); + uvsInner.push(uI0, uI1); } else if (sign1 === 0) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + pointsInner.push(v1); + normalsInner.push(n1); + uvsInner.push(u1); } } else if (sign2 === 0) { if (sign1 === -1) { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + pointsInner.push(vI2, vI0); + normalsInner.push(nI2, nI0); + uvsInner.push(uI2, uI0); } else if (sign1 === 1) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + pointsInner.push(vI2, vI0); + normalsInner.push(nI2, nI0); + uvsInner.push(uI2, uI0); } } } else if (sign0 === 0) { - const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); if (sign1 === 1) { + const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); points1.push(v0, vI0, v2); normals1.push(n0, nI0, n2); uvs1.push(u0, uI0, u2); points2.push(v0, v1, vI0); normals2.push(n0, n1, nI0); uvs2.push(u0, u1, uI0); + pointsInner.push(vI0, v0); + normalsInner.push(nI0, n0); + uvsInner.push(uI0, u0); } else if (sign1 === -1) { + const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); points2.push(v0, vI0, v2); normals2.push(n0, nI0, n2); uvs2.push(u0, uI0, u2); points1.push(v0, v1, vI0); normals1.push(n0, n1, nI0); uvs1.push(u0, u1, uI0); + pointsInner.push(vI0, v0); + normalsInner.push(nI0, n0); + uvsInner.push(uI0, u0); } } else if (sign1 === 0) { - const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); if (sign2 === 1) { + const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); points1.push(v1, vI0, v0); normals1.push(n1, nI0, n0); uvs1.push(u1, uI0, u0); points2.push(v1, v2, vI0); normals2.push(n1, n2, nI0); uvs2.push(u1, u2, uI0); + pointsInner.push(vI0, v1); + normalsInner.push(nI0, n1); + uvsInner.push(uI0, u1); } else if (sign2 === -1) { + const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); points2.push(v1, vI0, v0); normals2.push(n1, nI0, n0); uvs2.push(u1, uI0, u0); points1.push(v1, v2, vI0); normals1.push(n1, n2, nI0); uvs1.push(u1, u2, uI0); + pointsInner.push(vI0, v1); + normalsInner.push(nI0, n1); + uvsInner.push(uI0, u1); } } else if (sign2 === 0) { - const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); if (sign0 === 1) { + const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); points1.push(v2, vI0, v1); normals1.push(n2, nI0, n1); uvs1.push(u2, uI0, u1); points2.push(v2, v0, vI0); normals2.push(n2, n0, nI0); uvs2.push(u2, u0, uI0); + pointsInner.push(vI0, v2); + normalsInner.push(nI0, n2); + uvsInner.push(uI0, u2); } else if (sign0 === -1) { + const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); points2.push(v2, vI0, v1); normals2.push(n2, nI0, n1); uvs2.push(u2, uI0, u1); points1.push(v2, v0, vI0); normals1.push(n2, n0, nI0); uvs1.push(u2, u0, uI0); + pointsInner.push(vI0, v2); + normalsInner.push(nI0, n2); + uvsInner.push(uI0, u2); } } } + // // test + // points1.push( + // new THREE.Vector3(0, 0, 0), + // new THREE.Vector3(0, 1, -1), + // new THREE.Vector3(0, 1, 1), + // ) + const numPoints1 = points1.length; const numPoints2 = points2.length; From d560517dc65f0fc1256bd215ca93e036a233b373 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:03:17 +0800 Subject: [PATCH 03/33] ok!!!: delaunator inner faces. --- mesh-cut/MeshCutter.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index baad6ac..894db76 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -453,6 +453,29 @@ class MeshCutter { // new THREE.Vector3(0, 1, 1), // ) + console.log({pointsInner}) + const coords2D = []; + pointsInner.forEach(point => { + coords2D.push(point.x, point.y) + }) + const delaunay = new Delaunator(coords2D); + console.log(delaunay); + const numTriangles = delaunay.trianglesLen / 3; + console.log({numTriangles}) + for(let i = 0; i < numTriangles; i++) { + const x0 = coords2D[delaunay.triangles[i * 3 + 0] * 2] + const y0 = coords2D[delaunay.triangles[i * 3 + 0] * 2 + 1] + const x1 = coords2D[delaunay.triangles[i * 3 + 1] * 2] + const y1 = coords2D[delaunay.triangles[i * 3 + 1] * 2 + 1] + const x2 = coords2D[delaunay.triangles[i * 3 + 2] * 2] + const y2 = coords2D[delaunay.triangles[i * 3 + 2] * 2 + 1] + points1.push( + new THREE.Vector3(x0, y0, 0), + new THREE.Vector3(x2, y2, 0), + new THREE.Vector3(x1, y1, 0), + ) + } + const numPoints1 = points1.length; const numPoints2 = points2.length; From 24a47d7e98da7ce3fb7992c620da8aa9137842b1 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:18:00 +0800 Subject: [PATCH 04/33] uvsInner & normalsInner should be logically correct, but the result is not expected. --- mesh-cut/MeshCutter.js | 18 ++++++++++++++++++ mesh-cut/test.js | 8 ++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 894db76..db4356d 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -474,6 +474,24 @@ class MeshCutter { new THREE.Vector3(x2, y2, 0), new THREE.Vector3(x1, y1, 0), ) + + const uv0 = uvsInner[delaunay.triangles[i * 3 + 0]] + const uv1 = uvsInner[delaunay.triangles[i * 3 + 1]] + const uv2 = uvsInner[delaunay.triangles[i * 3 + 2]] + uvs1.push( + uv0, + uv2, + uv1, + ) + + const normal0 = normalsInner[delaunay.triangles[i * 3 + 0]] + const normal1 = normalsInner[delaunay.triangles[i * 3 + 1]] + const normal2 = normalsInner[delaunay.triangles[i * 3 + 2]] + normals1.push( + normal0, + normal2, + normal1, + ) } const numPoints1 = points1.length; diff --git a/mesh-cut/test.js b/mesh-cut/test.js index d46ac40..54915bc 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -17,7 +17,7 @@ function init_three() { container = document.createElement('div') document.body.appendChild(container) - camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 370) + camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, .1, 370) camera.position.set(3, 5, 7) camera.lookAt(0, 0, 0) @@ -135,8 +135,8 @@ if (true) { window.output = window.meshCutter.cutByPlane(window.box, window.plane) if (window.output.object1) { window.scene.add(window.output.object1) - window.output.object1.position.x += -1 - window.output.object1.position.z += 2 + // window.output.object1.position.x += -1 + // window.output.object1.position.z += 2 // window.output.object1.updateMatrixWorld() } if (window.output.object2) { @@ -145,6 +145,6 @@ if (true) { window.output.object2.position.z += 2 // window.output.object2.updateMatrixWorld() } - // window.box.visible = false + window.box.visible = false }, 1000) } From 8cde084cf7ce6972c546c2ec1de03e83a7abdc6e Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:22:15 +0800 Subject: [PATCH 05/33] fix inner points bug. --- mesh-cut/MeshCutter.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index db4356d..cecdf20 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -359,16 +359,16 @@ class MeshCutter { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); - pointsInner.push(vI2, vI0); - normalsInner.push(nI2, nI0); - uvsInner.push(uI2, uI0); + pointsInner.push(v2, v0); + normalsInner.push(n2, n0); + uvsInner.push(u2, u0); } else if (sign1 === 1) { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); - pointsInner.push(vI2, vI0); - normalsInner.push(nI2, nI0); - uvsInner.push(uI2, uI0); + pointsInner.push(v2, v0); + normalsInner.push(n2, n0); + uvsInner.push(u2, u0); } } } else if (sign0 === 0) { @@ -453,6 +453,11 @@ class MeshCutter { // new THREE.Vector3(0, 1, 1), // ) + // // test + // points1.length = 0 + // normals1.length = 0 + // uvs1.length = 0 + console.log({pointsInner}) const coords2D = []; pointsInner.forEach(point => { From edfd55aa83200a76b5edd97bfb9c1d94092acce1 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:27:10 +0800 Subject: [PATCH 06/33] add linesInner. --- mesh-cut/MeshCutter.js | 27 +++++++++++++++++++++ mesh-cut/test.js | 54 +++++++++++++++++++++++++++++++----------- 2 files changed, 67 insertions(+), 14 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index cecdf20..83fe4f2 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -121,6 +121,8 @@ class MeshCutter { numFaces = indices.length / 3; } + const linesInner = []; + const points1 = []; const points2 = []; const pointsInner = []; @@ -187,6 +189,7 @@ class MeshCutter { points2.push(v2, vI0, vI1); normals2.push(n2, nI0, nI1); uvs2.push(u2, uI0, uI1); + linesInner.push(vI0, vI1); pointsInner.push(vI0, vI1); normalsInner.push(nI0, nI1); uvsInner.push(uI0, uI1); @@ -211,6 +214,7 @@ class MeshCutter { points1.push(v2, vI0, vI1); normals1.push(n2, nI0, nI1); uvs1.push(u2, uI0, uI1); + linesInner.push(vI0, vI1); pointsInner.push(vI0, vI1); normalsInner.push(nI0, nI1); uvsInner.push(uI0, uI1); @@ -227,6 +231,7 @@ class MeshCutter { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + linesInner.push(v0, v1); pointsInner.push(v0, v1); normalsInner.push(n0, n1); uvsInner.push(u0, u1); @@ -234,6 +239,7 @@ class MeshCutter { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + linesInner.push(v0, v1); pointsInner.push(v0, v1); normalsInner.push(n0, n1); uvsInner.push(u0, u1); @@ -253,6 +259,7 @@ class MeshCutter { points2.push(v0, vI0, vI1); normals2.push(n0, nI0, nI1); uvs2.push(u0, uI0, uI1); + linesInner.push(vI0, vI1); pointsInner.push(vI0, vI1); normalsInner.push(nI0, nI1); uvsInner.push(uI0, uI1); @@ -260,6 +267,7 @@ class MeshCutter { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + linesInner.push(v1, v2); pointsInner.push(v1, v2); normalsInner.push(n1, n2); uvsInner.push(u1, u2); @@ -277,6 +285,7 @@ class MeshCutter { points1.push(v0, vI0, vI1); normals1.push(n0, nI0, nI1); uvs1.push(u0, uI0, uI1); + linesInner.push(vI0, vI1); pointsInner.push(vI0, vI1); normalsInner.push(nI0, nI1); uvsInner.push(uI0, uI1); @@ -293,6 +302,7 @@ class MeshCutter { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + linesInner.push(v1, v2); pointsInner.push(v1, v2); normalsInner.push(n1, n2); uvsInner.push(u1, u2); @@ -300,6 +310,7 @@ class MeshCutter { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + linesInner.push(v1, v2); pointsInner.push(v1, v2); normalsInner.push(n1, n2); uvsInner.push(u1, u2); @@ -319,6 +330,7 @@ class MeshCutter { points2.push(v1, vI0, vI1); normals2.push(n1, nI0, nI1); uvs2.push(u1, uI0, uI1); + linesInner.push(vI0, vI1); pointsInner.push(vI0, vI1); normalsInner.push(nI0, nI1); uvsInner.push(uI0, uI1); @@ -343,6 +355,7 @@ class MeshCutter { points1.push(v1, vI0, vI1); normals1.push(n1, nI0, nI1); uvs1.push(u1, uI0, uI1); + linesInner.push(vI0, vI1); pointsInner.push(vI0, vI1); normalsInner.push(nI0, nI1); uvsInner.push(uI0, uI1); @@ -359,6 +372,7 @@ class MeshCutter { points1.push(v0, v1, v2); normals1.push(n0, n1, n2); uvs1.push(u0, u1, u2); + linesInner.push(v2, v0); pointsInner.push(v2, v0); normalsInner.push(n2, n0); uvsInner.push(u2, u0); @@ -366,6 +380,7 @@ class MeshCutter { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + linesInner.push(v2, v0); pointsInner.push(v2, v0); normalsInner.push(n2, n0); uvsInner.push(u2, u0); @@ -380,6 +395,7 @@ class MeshCutter { points2.push(v0, v1, vI0); normals2.push(n0, n1, nI0); uvs2.push(u0, u1, uI0); + linesInner.push(vI0, v0); pointsInner.push(vI0, v0); normalsInner.push(nI0, n0); uvsInner.push(uI0, u0); @@ -391,6 +407,7 @@ class MeshCutter { points1.push(v0, v1, vI0); normals1.push(n0, n1, nI0); uvs1.push(u0, u1, uI0); + linesInner.push(vI0, v0); pointsInner.push(vI0, v0); normalsInner.push(nI0, n0); uvsInner.push(uI0, u0); @@ -404,6 +421,7 @@ class MeshCutter { points2.push(v1, v2, vI0); normals2.push(n1, n2, nI0); uvs2.push(u1, u2, uI0); + linesInner.push(vI0, v1); pointsInner.push(vI0, v1); normalsInner.push(nI0, n1); uvsInner.push(uI0, u1); @@ -415,6 +433,7 @@ class MeshCutter { points1.push(v1, v2, vI0); normals1.push(n1, n2, nI0); uvs1.push(u1, u2, uI0); + linesInner.push(vI0, v1); pointsInner.push(vI0, v1); normalsInner.push(nI0, n1); uvsInner.push(uI0, u1); @@ -428,6 +447,7 @@ class MeshCutter { points2.push(v2, v0, vI0); normals2.push(n2, n0, nI0); uvs2.push(u2, u0, uI0); + linesInner.push(vI0, v2); pointsInner.push(vI0, v2); normalsInner.push(nI0, n2); uvsInner.push(uI0, u2); @@ -439,6 +459,7 @@ class MeshCutter { points1.push(v2, v0, vI0); normals1.push(n2, n0, nI0); uvs1.push(u2, u0, uI0); + linesInner.push(vI0, v2); pointsInner.push(vI0, v2); normalsInner.push(nI0, n2); uvsInner.push(uI0, u2); @@ -458,6 +479,12 @@ class MeshCutter { // normals1.length = 0 // uvs1.length = 0 + // test + points1.forEach((point, i) => { + points1[i] = point.clone() + points1[i].z -= 1 + }) + console.log({pointsInner}) const coords2D = []; pointsInner.forEach(point => { diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 54915bc..4831e81 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -56,7 +56,7 @@ function init_three() { // gridHelper.position.y = 0.037 gridHelper.material.opacity = 0.2 gridHelper.material.transparent = true - scene.add(gridHelper) + // scene.add(gridHelper) renderer = new THREE.WebGLRenderer({ antialias: true }) renderer.setPixelRatio(window.devicePixelRatio) @@ -96,20 +96,45 @@ function animate(time) { window.meshCutter = new MeshCutter() -const geometry = new THREE.BoxGeometry() -// const geometry = new THREE.PlaneGeometry() -// const geometry = new THREE.CylinderGeometry() -// const geometry = new THREE.TorusKnotGeometry() -geometry.scale(0.5, 0.5, 0.5) +// const geometry = new THREE.ConeGeometry(.5, 1, 3) +// // const geometry = new THREE.BoxGeometry() +// // const geometry = new THREE.PlaneGeometry() +// // const geometry = new THREE.CylinderGeometry() +// const geometry = new THREE.TorusGeometry( 1, .4, 3, 3 ); +// // const geometry = new THREE.TorusKnotGeometry() +// geometry.scale(0.5, 0.5, 0.5) +// geometry.rotateX(Math.PI/2) +// geometry.rotateY(Math.PI/2) + +const shape = new THREE.Shape(); +shape.moveTo( 0,0 ); +shape.lineTo( .5, .5 ); +shape.lineTo( 0, -1 ); +shape.lineTo( -.5, .5 ); +shape.lineTo( 0, 0 ); +const extrudeSettings = { + curveSegments: 1, + steps: 1, + depth: 1, + bevelEnabled: false, +}; +const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); +geometry.translate(0, 0, -.5) + +// const positions = [ + +// ] +// const geometry = new THREE.BufferGeometry() +// geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) ); // const geometry = indexedGeometry.toNonIndexed() // geometry.clearGroups() const material = new THREE.MeshStandardMaterial({ // const material = new THREE.MeshBasicMaterial({ - // color: 'red', - // wireframe: true, - // side: THREE.DoubleSide, + color: 'black', + wireframe: true, + side: THREE.DoubleSide, map: new THREE.TextureLoader().load('./image/uv_grid_opengl.jpg'), }) const mesh = new THREE.Mesh(geometry, material) @@ -135,16 +160,17 @@ if (true) { window.output = window.meshCutter.cutByPlane(window.box, window.plane) if (window.output.object1) { window.scene.add(window.output.object1) - // window.output.object1.position.x += -1 - // window.output.object1.position.z += 2 + window.output.object1.position.x += -1 / 1 + window.output.object1.position.z += 2 / 1 // window.output.object1.updateMatrixWorld() } if (window.output.object2) { window.scene.add(window.output.object2) - window.output.object2.position.x += 1 - window.output.object2.position.z += 2 + window.output.object2.position.x += 1 / 1 + window.output.object2.position.z += 2 / 1 // window.output.object2.updateMatrixWorld() } - window.box.visible = false + // window.box.visible = false + window.box.position.z += -1 / 1 }, 1000) } From fbf8dbe7450ac988f291c3e265bf62fe4d7ad9e9 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:30:42 +0800 Subject: [PATCH 07/33] filtered out outer triangles when they are aside. --- mesh-cut/MeshCutter.js | 63 ++++++++++++++++++++++++++++++++++++++++-- mesh-cut/test.js | 4 +-- 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 83fe4f2..c6a66c5 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -129,11 +129,11 @@ class MeshCutter { const normals1 = []; const normals2 = []; - const normalsInner = []; + const normalsInner = []; // should don't need, just re-calc is ok. const uvs1 = []; const uvs2 = []; - const uvsInner = []; + const uvsInner = []; // should don't need, just re-calc is ok. // Transform the plane to object local space object.updateMatrix(); @@ -174,6 +174,16 @@ class MeshCutter { points2.push(v0, v1, v2); normals2.push(n0, n1, n2); uvs2.push(u0, u1, u2); + } else if (sign0 === 0) { + points2.push(v0, v1, v2); + normals2.push(n0, n1, n2); + uvs2.push(u0, u1, u2); + linesInner.push(v0, v1); + linesInner.push(v1, v2); + linesInner.push(v2, v0); + pointsInner.push(v0, v1, v2); + normalsInner.push(n0, n1, n2); + uvsInner.push(u0, u1, u2); } } else if (sign0 === sign1) { if (sign0 === -1) { @@ -494,6 +504,9 @@ class MeshCutter { console.log(delaunay); const numTriangles = delaunay.trianglesLen / 3; console.log({numTriangles}) + console.log({linesInner}) + + for(let i = 0; i < numTriangles; i++) { const x0 = coords2D[delaunay.triangles[i * 3 + 0] * 2] const y0 = coords2D[delaunay.triangles[i * 3 + 0] * 2 + 1] @@ -501,6 +514,52 @@ class MeshCutter { const y1 = coords2D[delaunay.triangles[i * 3 + 1] * 2 + 1] const x2 = coords2D[delaunay.triangles[i * 3 + 2] * 2] const y2 = coords2D[delaunay.triangles[i * 3 + 2] * 2 + 1] + + // filter out outer triangles: if has any edge not overlap with original model's edges, delete the triangle. + let isOverlap0 = false + for(let il = 0; il < linesInner.length; il += 2) { + const p0 = linesInner[il] + const p1 = linesInner[il + 1] + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + ) { + isOverlap0 = true; + break; + } + } + if(!isOverlap0) continue; + + let isOverlap1 = false + for(let il = 0; il < linesInner.length; il += 2) { + const p0 = linesInner[il] + const p1 = linesInner[il + 1] + if( + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + ) { + isOverlap1 = true; + break; + } + } + if(!isOverlap1) continue; + + let isOverlap2 = false + for(let il = 0; il < linesInner.length; il += 2) { + const p0 = linesInner[il] + const p1 = linesInner[il + 1] + if( + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + ) { + isOverlap2 = true; + break; + } + } + if(!isOverlap2) continue; + + // end filter out outer triangles + points1.push( new THREE.Vector3(x0, y0, 0), new THREE.Vector3(x2, y2, 0), diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 4831e81..d07466e 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -119,7 +119,7 @@ const extrudeSettings = { bevelEnabled: false, }; const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); -geometry.translate(0, 0, -.5) +// geometry.translate(0, 0, -.5) // const positions = [ @@ -132,7 +132,7 @@ geometry.translate(0, 0, -.5) const material = new THREE.MeshStandardMaterial({ // const material = new THREE.MeshBasicMaterial({ - color: 'black', + // color: 'red', wireframe: true, side: THREE.DoubleSide, map: new THREE.TextureLoader().load('./image/uv_grid_opengl.jpg'), From dcfce7a4ae9622da1d7f32f29157be25eba86ffb Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 11:39:57 +0800 Subject: [PATCH 08/33] skipped edges which have opposite half-edge. filtered out first recur of outer triangles. --- mesh-cut/MeshCutter.js | 85 +++++++++++++++++++++++------------------- mesh-cut/test.js | 4 +- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index c6a66c5..dd8f9a3 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -516,50 +516,59 @@ class MeshCutter { const y2 = coords2D[delaunay.triangles[i * 3 + 2] * 2 + 1] // filter out outer triangles: if has any edge not overlap with original model's edges, delete the triangle. - let isOverlap0 = false - for(let il = 0; il < linesInner.length; il += 2) { - const p0 = linesInner[il] - const p1 = linesInner[il + 1] - if( - (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) - ) { - isOverlap0 = true; - break; + if(true) { // todo: need recur filter out. + if(delaunay.halfedges[i * 3 + 0] === -1) { + let isOverlap0 = false + for(let il = 0; il < linesInner.length; il += 2) { + const p0 = linesInner[il] + const p1 = linesInner[il + 1] + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + ) { + isOverlap0 = true; + break; + } + } + if(!isOverlap0) continue; } - } - if(!isOverlap0) continue; - - let isOverlap1 = false - for(let il = 0; il < linesInner.length; il += 2) { - const p0 = linesInner[il] - const p1 = linesInner[il + 1] - if( - (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) - ) { - isOverlap1 = true; - break; + + if(delaunay.halfedges[i * 3 + 1] === -1) { + let isOverlap1 = false + for(let il = 0; il < linesInner.length; il += 2) { + const p0 = linesInner[il] + const p1 = linesInner[il + 1] + if( + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + ) { + isOverlap1 = true; + break; + } + } + if(!isOverlap1) continue; } - } - if(!isOverlap1) continue; - - let isOverlap2 = false - for(let il = 0; il < linesInner.length; il += 2) { - const p0 = linesInner[il] - const p1 = linesInner[il + 1] - if( - (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) - ) { - isOverlap2 = true; - break; + + if(delaunay.halfedges[i * 3 + 2] === -1) { + let isOverlap2 = false + for(let il = 0; il < linesInner.length; il += 2) { + const p0 = linesInner[il] + const p1 = linesInner[il + 1] + if( + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + ) { + isOverlap2 = true; + break; + } + } + if(!isOverlap2) continue; } } - if(!isOverlap2) continue; - // end filter out outer triangles + console.log('remained triangle') + points1.push( new THREE.Vector3(x0, y0, 0), new THREE.Vector3(x2, y2, 0), diff --git a/mesh-cut/test.js b/mesh-cut/test.js index d07466e..4831e81 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -119,7 +119,7 @@ const extrudeSettings = { bevelEnabled: false, }; const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); -// geometry.translate(0, 0, -.5) +geometry.translate(0, 0, -.5) // const positions = [ @@ -132,7 +132,7 @@ const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); const material = new THREE.MeshStandardMaterial({ // const material = new THREE.MeshBasicMaterial({ - // color: 'red', + color: 'black', wireframe: true, side: THREE.DoubleSide, map: new THREE.TextureLoader().load('./image/uv_grid_opengl.jpg'), From 4ae932cf408a63c9c98ab80653683a32ad3b222d Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 17:01:46 +0800 Subject: [PATCH 09/33] separate codes to createInnerFaces(). --- mesh-cut/MeshCutter.js | 728 +++++++++++++++++++++-------------------- 1 file changed, 366 insertions(+), 362 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index dd8f9a3..61fce64 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -100,6 +100,125 @@ class MeshCutter { return geometry; } + createInnerFaces() { + // // test + // this.points1.push( + // new THREE.Vector3(0, 0, 0), + // new THREE.Vector3(0, 1, -1), + // new THREE.Vector3(0, 1, 1), + // ) + + // // test + // this.points1.length = 0 + // this.normals1.length = 0 + // this.uvs1.length = 0 + + // test + this.points1.forEach((point, i) => { + this.points1[i] = point.clone() + this.points1[i].z -= 1 + }) + + console.log({pointsInner:this.pointsInner}) + const coords2D = []; + this.pointsInner.forEach(point => { + coords2D.push(point.x, point.y) + }) + const delaunay = new Delaunator(coords2D); + console.log(delaunay); + const numTriangles = delaunay.trianglesLen / 3; + console.log({numTriangles}) + console.log({linesInner: this.linesInner}) + + + for(let i = 0; i < numTriangles; i++) { + const x0 = coords2D[delaunay.triangles[i * 3 + 0] * 2] + const y0 = coords2D[delaunay.triangles[i * 3 + 0] * 2 + 1] + const x1 = coords2D[delaunay.triangles[i * 3 + 1] * 2] + const y1 = coords2D[delaunay.triangles[i * 3 + 1] * 2 + 1] + const x2 = coords2D[delaunay.triangles[i * 3 + 2] * 2] + const y2 = coords2D[delaunay.triangles[i * 3 + 2] * 2 + 1] + + // filter out outer triangles: if has any edge not overlap with original model's edges, delete the triangle. + if(true) { // todo: need recur filter out. + if(delaunay.halfedges[i * 3 + 0] === -1) { + let isOverlap0 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + ) { + isOverlap0 = true; + break; + } + } + if(!isOverlap0) continue; + } + + if(delaunay.halfedges[i * 3 + 1] === -1) { + let isOverlap1 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + ) { + isOverlap1 = true; + break; + } + } + if(!isOverlap1) continue; + } + + if(delaunay.halfedges[i * 3 + 2] === -1) { + let isOverlap2 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + ) { + isOverlap2 = true; + break; + } + } + if(!isOverlap2) continue; + } + } + // end filter out outer triangles + + console.log('remained triangle') + + this.points1.push( + new THREE.Vector3(x0, y0, 0), + new THREE.Vector3(x2, y2, 0), + new THREE.Vector3(x1, y1, 0), + ) + + const uv0 = this.uvsInner[delaunay.triangles[i * 3 + 0]] + const uv1 = this.uvsInner[delaunay.triangles[i * 3 + 1]] + const uv2 = this.uvsInner[delaunay.triangles[i * 3 + 2]] + this.uvs1.push( + uv0, + uv2, + uv1, + ) + + const normal0 = this.normalsInner[delaunay.triangles[i * 3 + 0]] + const normal1 = this.normalsInner[delaunay.triangles[i * 3 + 1]] + const normal2 = this.normalsInner[delaunay.triangles[i * 3 + 2]] + this.normals1.push( + normal0, + normal2, + normal1, + ) + } + } + cutByPlane(object, plane) { // Returns breakable objects in output.object1 and output.object2 members, the resulting 2 pieces of the cut. // object2 can be null if the plane doesn't cut the object. @@ -121,19 +240,19 @@ class MeshCutter { numFaces = indices.length / 3; } - const linesInner = []; + this.linesInner = []; - const points1 = []; - const points2 = []; - const pointsInner = []; + this.points1 = []; + this.points2 = []; + this.pointsInner = []; - const normals1 = []; - const normals2 = []; - const normalsInner = []; // should don't need, just re-calc is ok. + this.normals1 = []; + this.normals2 = []; + this.normalsInner = []; // should don't need, just re-calc is ok. - const uvs1 = []; - const uvs2 = []; - const uvsInner = []; // should don't need, just re-calc is ok. + this.uvs1 = []; + this.uvs2 = []; + this.uvsInner = []; // should don't need, just re-calc is ok. // Transform the plane to object local space object.updateMatrix(); @@ -167,92 +286,92 @@ class MeshCutter { if (sign0 === sign1 && sign1 === sign2 && sign2 === sign0) { if (sign0 === -1) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); } else if (sign0 === 1) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); } else if (sign0 === 0) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - linesInner.push(v0, v1); - linesInner.push(v1, v2); - linesInner.push(v2, v0); - pointsInner.push(v0, v1, v2); - normalsInner.push(n0, n1, n2); - uvsInner.push(u0, u1, u2); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.linesInner.push(v0, v1); + this.linesInner.push(v1, v2); + this.linesInner.push(v2, v0); + this.pointsInner.push(v0, v1, v2); + this.normalsInner.push(n0, n1, n2); + this.uvsInner.push(u0, u1, u2); } } else if (sign0 === sign1) { if (sign0 === -1) { if (sign2 === 1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n1, u0, u2); const {vI: vI1, nI: nI1, uI: uI1} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); - points1.push(v0, vI1, vI0); - normals1.push(n0, nI1, nI0); - uvs1.push(u0, uI1, uI0); - points1.push(v0, v1, vI1); - normals1.push(n0, n1, nI1); - uvs1.push(u0, u1, uI1); - points2.push(v2, vI0, vI1); - normals2.push(n2, nI0, nI1); - uvs2.push(u2, uI0, uI1); - linesInner.push(vI0, vI1); - pointsInner.push(vI0, vI1); - normalsInner.push(nI0, nI1); - uvsInner.push(uI0, uI1); + this.points1.push(v0, vI1, vI0); + this.normals1.push(n0, nI1, nI0); + this.uvs1.push(u0, uI1, uI0); + this.points1.push(v0, v1, vI1); + this.normals1.push(n0, n1, nI1); + this.uvs1.push(u0, u1, uI1); + this.points2.push(v2, vI0, vI1); + this.normals2.push(n2, nI0, nI1); + this.uvs2.push(u2, uI0, uI1); + this.linesInner.push(vI0, vI1); + this.pointsInner.push(vI0, vI1); + this.normalsInner.push(nI0, nI1); + this.uvsInner.push(uI0, uI1); } else if (sign2 === 0) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); - pointsInner.push(v2); - normalsInner.push(n2); - uvsInner.push(u2); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); + this.pointsInner.push(v2); + this.normalsInner.push(n2); + this.uvsInner.push(u2); } } else if (sign0 === 1) { if (sign2 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); const {vI: vI1, nI: nI1, uI: uI1} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); - points2.push(v0, vI1, vI0); - normals2.push(n0, nI1, nI0); - uvs2.push(u0, uI1, uI0); - points2.push(v0, v1, vI1); - normals2.push(n0, n1, nI1); - uvs2.push(u0, u1, uI1); - points1.push(v2, vI0, vI1); - normals1.push(n2, nI0, nI1); - uvs1.push(u2, uI0, uI1); - linesInner.push(vI0, vI1); - pointsInner.push(vI0, vI1); - normalsInner.push(nI0, nI1); - uvsInner.push(uI0, uI1); + this.points2.push(v0, vI1, vI0); + this.normals2.push(n0, nI1, nI0); + this.uvs2.push(u0, uI1, uI0); + this.points2.push(v0, v1, vI1); + this.normals2.push(n0, n1, nI1); + this.uvs2.push(u0, u1, uI1); + this.points1.push(v2, vI0, vI1); + this.normals1.push(n2, nI0, nI1); + this.uvs1.push(u2, uI0, uI1); + this.linesInner.push(vI0, vI1); + this.pointsInner.push(vI0, vI1); + this.normalsInner.push(nI0, nI1); + this.uvsInner.push(uI0, uI1); } else if (sign2 === 0) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - pointsInner.push(v2); - normalsInner.push(n2); - uvsInner.push(u2); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.pointsInner.push(v2); + this.normalsInner.push(n2); + this.uvsInner.push(u2); } } else if (sign0 === 0) { if (sign2 === -1) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); - linesInner.push(v0, v1); - pointsInner.push(v0, v1); - normalsInner.push(n0, n1); - uvsInner.push(u0, u1); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); + this.linesInner.push(v0, v1); + this.pointsInner.push(v0, v1); + this.normalsInner.push(n0, n1); + this.uvsInner.push(u0, u1); } else if (sign2 === 1) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - linesInner.push(v0, v1); - pointsInner.push(v0, v1); - normalsInner.push(n0, n1); - uvsInner.push(u0, u1); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.linesInner.push(v0, v1); + this.pointsInner.push(v0, v1); + this.normalsInner.push(n0, n1); + this.uvsInner.push(u0, u1); } } } else if (sign1 === sign2) { @@ -260,70 +379,70 @@ class MeshCutter { if (sign0 === 1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); const {vI: vI1, nI: nI1, uI: uI1} = this.getIntersectNode(v2, v0, n2, n0, u2, u0); - points1.push(v1, vI1, vI0); - normals1.push(n1, nI1, nI0); - uvs1.push(u1, uI1, uI0); - points1.push(v1, v2, vI1); - normals1.push(n1, n2, nI1); - uvs1.push(u1, u2, uI1); - points2.push(v0, vI0, vI1); - normals2.push(n0, nI0, nI1); - uvs2.push(u0, uI0, uI1); - linesInner.push(vI0, vI1); - pointsInner.push(vI0, vI1); - normalsInner.push(nI0, nI1); - uvsInner.push(uI0, uI1); + this.points1.push(v1, vI1, vI0); + this.normals1.push(n1, nI1, nI0); + this.uvs1.push(u1, uI1, uI0); + this.points1.push(v1, v2, vI1); + this.normals1.push(n1, n2, nI1); + this.uvs1.push(u1, u2, uI1); + this.points2.push(v0, vI0, vI1); + this.normals2.push(n0, nI0, nI1); + this.uvs2.push(u0, uI0, uI1); + this.linesInner.push(vI0, vI1); + this.pointsInner.push(vI0, vI1); + this.normalsInner.push(nI0, nI1); + this.uvsInner.push(uI0, uI1); } else if (sign0 === 0) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); - linesInner.push(v1, v2); - pointsInner.push(v1, v2); - normalsInner.push(n1, n2); - uvsInner.push(u1, u2); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); + this.linesInner.push(v1, v2); + this.pointsInner.push(v1, v2); + this.normalsInner.push(n1, n2); + this.uvsInner.push(u1, u2); } } else if (sign1 === 1) { if (sign0 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); const {vI: vI1, nI: nI1, uI: uI1} = this.getIntersectNode(v2, v0, n2, n0, u2, u0); - points2.push(v1, vI1, vI0); - normals2.push(n1, nI1, nI0); - uvs2.push(u1, uI1, uI0); - points2.push(v1, v2, vI1); - normals2.push(n1, n2, nI1); - uvs2.push(u1, u2, uI1); - points1.push(v0, vI0, vI1); - normals1.push(n0, nI0, nI1); - uvs1.push(u0, uI0, uI1); - linesInner.push(vI0, vI1); - pointsInner.push(vI0, vI1); - normalsInner.push(nI0, nI1); - uvsInner.push(uI0, uI1); + this.points2.push(v1, vI1, vI0); + this.normals2.push(n1, nI1, nI0); + this.uvs2.push(u1, uI1, uI0); + this.points2.push(v1, v2, vI1); + this.normals2.push(n1, n2, nI1); + this.uvs2.push(u1, u2, uI1); + this.points1.push(v0, vI0, vI1); + this.normals1.push(n0, nI0, nI1); + this.uvs1.push(u0, uI0, uI1); + this.linesInner.push(vI0, vI1); + this.pointsInner.push(vI0, vI1); + this.normalsInner.push(nI0, nI1); + this.uvsInner.push(uI0, uI1); } else if (sign0 === 0) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - pointsInner.push(v0); - normalsInner.push(n0); - uvsInner.push(u0); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.pointsInner.push(v0); + this.normalsInner.push(n0); + this.uvsInner.push(u0); } } else if (sign1 === 0) { if (sign0 === -1) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); - linesInner.push(v1, v2); - pointsInner.push(v1, v2); - normalsInner.push(n1, n2); - uvsInner.push(u1, u2); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); + this.linesInner.push(v1, v2); + this.pointsInner.push(v1, v2); + this.normalsInner.push(n1, n2); + this.uvsInner.push(u1, u2); } else if (sign0 === 1) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - linesInner.push(v1, v2); - pointsInner.push(v1, v2); - normalsInner.push(n1, n2); - uvsInner.push(u1, u2); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.linesInner.push(v1, v2); + this.pointsInner.push(v1, v2); + this.normalsInner.push(n1, n2); + this.uvsInner.push(u1, u2); } } } else if (sign2 === sign0) { @@ -331,271 +450,156 @@ class MeshCutter { if (sign1 === 1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v2, v1, n2, n1, u2, u1); const {vI: vI1, nI: nI1, uI: uI1} = this.getIntersectNode(v0, v1, n0, n1, u0, u1); - points1.push(v2, vI1, vI0); - normals1.push(n2, nI1, nI0); - uvs1.push(u2, uI1, uI0); - points1.push(v2, v0, vI1); - normals1.push(n2, n0, nI1); - uvs1.push(u2, u0, uI1); - points2.push(v1, vI0, vI1); - normals2.push(n1, nI0, nI1); - uvs2.push(u1, uI0, uI1); - linesInner.push(vI0, vI1); - pointsInner.push(vI0, vI1); - normalsInner.push(nI0, nI1); - uvsInner.push(uI0, uI1); + this.points1.push(v2, vI1, vI0); + this.normals1.push(n2, nI1, nI0); + this.uvs1.push(u2, uI1, uI0); + this.points1.push(v2, v0, vI1); + this.normals1.push(n2, n0, nI1); + this.uvs1.push(u2, u0, uI1); + this.points2.push(v1, vI0, vI1); + this.normals2.push(n1, nI0, nI1); + this.uvs2.push(u1, uI0, uI1); + this.linesInner.push(vI0, vI1); + this.pointsInner.push(vI0, vI1); + this.normalsInner.push(nI0, nI1); + this.uvsInner.push(uI0, uI1); } else if (sign1 === 0) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); - pointsInner.push(v1); - normalsInner.push(n1); - uvsInner.push(u1); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); + this.pointsInner.push(v1); + this.normalsInner.push(n1); + this.uvsInner.push(u1); } } else if (sign2 === 1) { if (sign1 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v2, v1, n2, n1, u2, u1); const {vI: vI1, nI: nI1, uI: uI1} = this.getIntersectNode(v0, v1, n0, n1, u0, u1); - points2.push(v2, vI1, vI0); - normals2.push(n2, nI1, nI0); - uvs2.push(u2, uI1, uI0); - points2.push(v2, v0, vI1); - normals2.push(n2, n0, nI1); - uvs2.push(u2, u0, uI1); - points1.push(v1, vI0, vI1); - normals1.push(n1, nI0, nI1); - uvs1.push(u1, uI0, uI1); - linesInner.push(vI0, vI1); - pointsInner.push(vI0, vI1); - normalsInner.push(nI0, nI1); - uvsInner.push(uI0, uI1); + this.points2.push(v2, vI1, vI0); + this.normals2.push(n2, nI1, nI0); + this.uvs2.push(u2, uI1, uI0); + this.points2.push(v2, v0, vI1); + this.normals2.push(n2, n0, nI1); + this.uvs2.push(u2, u0, uI1); + this.points1.push(v1, vI0, vI1); + this.normals1.push(n1, nI0, nI1); + this.uvs1.push(u1, uI0, uI1); + this.linesInner.push(vI0, vI1); + this.pointsInner.push(vI0, vI1); + this.normalsInner.push(nI0, nI1); + this.uvsInner.push(uI0, uI1); } else if (sign1 === 0) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - pointsInner.push(v1); - normalsInner.push(n1); - uvsInner.push(u1); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.pointsInner.push(v1); + this.normalsInner.push(n1); + this.uvsInner.push(u1); } } else if (sign2 === 0) { if (sign1 === -1) { - points1.push(v0, v1, v2); - normals1.push(n0, n1, n2); - uvs1.push(u0, u1, u2); - linesInner.push(v2, v0); - pointsInner.push(v2, v0); - normalsInner.push(n2, n0); - uvsInner.push(u2, u0); + this.points1.push(v0, v1, v2); + this.normals1.push(n0, n1, n2); + this.uvs1.push(u0, u1, u2); + this.linesInner.push(v2, v0); + this.pointsInner.push(v2, v0); + this.normalsInner.push(n2, n0); + this.uvsInner.push(u2, u0); } else if (sign1 === 1) { - points2.push(v0, v1, v2); - normals2.push(n0, n1, n2); - uvs2.push(u0, u1, u2); - linesInner.push(v2, v0); - pointsInner.push(v2, v0); - normalsInner.push(n2, n0); - uvsInner.push(u2, u0); + this.points2.push(v0, v1, v2); + this.normals2.push(n0, n1, n2); + this.uvs2.push(u0, u1, u2); + this.linesInner.push(v2, v0); + this.pointsInner.push(v2, v0); + this.normalsInner.push(n2, n0); + this.uvsInner.push(u2, u0); } } } else if (sign0 === 0) { if (sign1 === 1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); - points1.push(v0, vI0, v2); - normals1.push(n0, nI0, n2); - uvs1.push(u0, uI0, u2); - points2.push(v0, v1, vI0); - normals2.push(n0, n1, nI0); - uvs2.push(u0, u1, uI0); - linesInner.push(vI0, v0); - pointsInner.push(vI0, v0); - normalsInner.push(nI0, n0); - uvsInner.push(uI0, u0); + this.points1.push(v0, vI0, v2); + this.normals1.push(n0, nI0, n2); + this.uvs1.push(u0, uI0, u2); + this.points2.push(v0, v1, vI0); + this.normals2.push(n0, n1, nI0); + this.uvs2.push(u0, u1, uI0); + this.linesInner.push(vI0, v0); + this.pointsInner.push(vI0, v0); + this.normalsInner.push(nI0, n0); + this.uvsInner.push(uI0, u0); } else if (sign1 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); - points2.push(v0, vI0, v2); - normals2.push(n0, nI0, n2); - uvs2.push(u0, uI0, u2); - points1.push(v0, v1, vI0); - normals1.push(n0, n1, nI0); - uvs1.push(u0, u1, uI0); - linesInner.push(vI0, v0); - pointsInner.push(vI0, v0); - normalsInner.push(nI0, n0); - uvsInner.push(uI0, u0); + this.points2.push(v0, vI0, v2); + this.normals2.push(n0, nI0, n2); + this.uvs2.push(u0, uI0, u2); + this.points1.push(v0, v1, vI0); + this.normals1.push(n0, n1, nI0); + this.uvs1.push(u0, u1, uI0); + this.linesInner.push(vI0, v0); + this.pointsInner.push(vI0, v0); + this.normalsInner.push(nI0, n0); + this.uvsInner.push(uI0, u0); } } else if (sign1 === 0) { if (sign2 === 1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); - points1.push(v1, vI0, v0); - normals1.push(n1, nI0, n0); - uvs1.push(u1, uI0, u0); - points2.push(v1, v2, vI0); - normals2.push(n1, n2, nI0); - uvs2.push(u1, u2, uI0); - linesInner.push(vI0, v1); - pointsInner.push(vI0, v1); - normalsInner.push(nI0, n1); - uvsInner.push(uI0, u1); + this.points1.push(v1, vI0, v0); + this.normals1.push(n1, nI0, n0); + this.uvs1.push(u1, uI0, u0); + this.points2.push(v1, v2, vI0); + this.normals2.push(n1, n2, nI0); + this.uvs2.push(u1, u2, uI0); + this.linesInner.push(vI0, v1); + this.pointsInner.push(vI0, v1); + this.normalsInner.push(nI0, n1); + this.uvsInner.push(uI0, u1); } else if (sign2 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); - points2.push(v1, vI0, v0); - normals2.push(n1, nI0, n0); - uvs2.push(u1, uI0, u0); - points1.push(v1, v2, vI0); - normals1.push(n1, n2, nI0); - uvs1.push(u1, u2, uI0); - linesInner.push(vI0, v1); - pointsInner.push(vI0, v1); - normalsInner.push(nI0, n1); - uvsInner.push(uI0, u1); + this.points2.push(v1, vI0, v0); + this.normals2.push(n1, nI0, n0); + this.uvs2.push(u1, uI0, u0); + this.points1.push(v1, v2, vI0); + this.normals1.push(n1, n2, nI0); + this.uvs1.push(u1, u2, uI0); + this.linesInner.push(vI0, v1); + this.pointsInner.push(vI0, v1); + this.normalsInner.push(nI0, n1); + this.uvsInner.push(uI0, u1); } } else if (sign2 === 0) { if (sign0 === 1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); - points1.push(v2, vI0, v1); - normals1.push(n2, nI0, n1); - uvs1.push(u2, uI0, u1); - points2.push(v2, v0, vI0); - normals2.push(n2, n0, nI0); - uvs2.push(u2, u0, uI0); - linesInner.push(vI0, v2); - pointsInner.push(vI0, v2); - normalsInner.push(nI0, n2); - uvsInner.push(uI0, u2); + this.points1.push(v2, vI0, v1); + this.normals1.push(n2, nI0, n1); + this.uvs1.push(u2, uI0, u1); + this.points2.push(v2, v0, vI0); + this.normals2.push(n2, n0, nI0); + this.uvs2.push(u2, u0, uI0); + this.linesInner.push(vI0, v2); + this.pointsInner.push(vI0, v2); + this.normalsInner.push(nI0, n2); + this.uvsInner.push(uI0, u2); } else if (sign0 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); - points2.push(v2, vI0, v1); - normals2.push(n2, nI0, n1); - uvs2.push(u2, uI0, u1); - points1.push(v2, v0, vI0); - normals1.push(n2, n0, nI0); - uvs1.push(u2, u0, uI0); - linesInner.push(vI0, v2); - pointsInner.push(vI0, v2); - normalsInner.push(nI0, n2); - uvsInner.push(uI0, u2); + this.points2.push(v2, vI0, v1); + this.normals2.push(n2, nI0, n1); + this.uvs2.push(u2, uI0, u1); + this.points1.push(v2, v0, vI0); + this.normals1.push(n2, n0, nI0); + this.uvs1.push(u2, u0, uI0); + this.linesInner.push(vI0, v2); + this.pointsInner.push(vI0, v2); + this.normalsInner.push(nI0, n2); + this.uvsInner.push(uI0, u2); } } } - // // test - // points1.push( - // new THREE.Vector3(0, 0, 0), - // new THREE.Vector3(0, 1, -1), - // new THREE.Vector3(0, 1, 1), - // ) - - // // test - // points1.length = 0 - // normals1.length = 0 - // uvs1.length = 0 - - // test - points1.forEach((point, i) => { - points1[i] = point.clone() - points1[i].z -= 1 - }) - - console.log({pointsInner}) - const coords2D = []; - pointsInner.forEach(point => { - coords2D.push(point.x, point.y) - }) - const delaunay = new Delaunator(coords2D); - console.log(delaunay); - const numTriangles = delaunay.trianglesLen / 3; - console.log({numTriangles}) - console.log({linesInner}) - - - for(let i = 0; i < numTriangles; i++) { - const x0 = coords2D[delaunay.triangles[i * 3 + 0] * 2] - const y0 = coords2D[delaunay.triangles[i * 3 + 0] * 2 + 1] - const x1 = coords2D[delaunay.triangles[i * 3 + 1] * 2] - const y1 = coords2D[delaunay.triangles[i * 3 + 1] * 2 + 1] - const x2 = coords2D[delaunay.triangles[i * 3 + 2] * 2] - const y2 = coords2D[delaunay.triangles[i * 3 + 2] * 2 + 1] - - // filter out outer triangles: if has any edge not overlap with original model's edges, delete the triangle. - if(true) { // todo: need recur filter out. - if(delaunay.halfedges[i * 3 + 0] === -1) { - let isOverlap0 = false - for(let il = 0; il < linesInner.length; il += 2) { - const p0 = linesInner[il] - const p1 = linesInner[il + 1] - if( - (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) - ) { - isOverlap0 = true; - break; - } - } - if(!isOverlap0) continue; - } - - if(delaunay.halfedges[i * 3 + 1] === -1) { - let isOverlap1 = false - for(let il = 0; il < linesInner.length; il += 2) { - const p0 = linesInner[il] - const p1 = linesInner[il + 1] - if( - (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) - ) { - isOverlap1 = true; - break; - } - } - if(!isOverlap1) continue; - } - - if(delaunay.halfedges[i * 3 + 2] === -1) { - let isOverlap2 = false - for(let il = 0; il < linesInner.length; il += 2) { - const p0 = linesInner[il] - const p1 = linesInner[il + 1] - if( - (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) - ) { - isOverlap2 = true; - break; - } - } - if(!isOverlap2) continue; - } - } - // end filter out outer triangles - - console.log('remained triangle') - - points1.push( - new THREE.Vector3(x0, y0, 0), - new THREE.Vector3(x2, y2, 0), - new THREE.Vector3(x1, y1, 0), - ) - - const uv0 = uvsInner[delaunay.triangles[i * 3 + 0]] - const uv1 = uvsInner[delaunay.triangles[i * 3 + 1]] - const uv2 = uvsInner[delaunay.triangles[i * 3 + 2]] - uvs1.push( - uv0, - uv2, - uv1, - ) - - const normal0 = normalsInner[delaunay.triangles[i * 3 + 0]] - const normal1 = normalsInner[delaunay.triangles[i * 3 + 1]] - const normal2 = normalsInner[delaunay.triangles[i * 3 + 2]] - normals1.push( - normal0, - normal2, - normal1, - ) - } + this.createInnerFaces(); - const numPoints1 = points1.length; - const numPoints2 = points2.length; + const numPoints1 = this.points1.length; + const numPoints2 = this.points2.length; let object1 = null; let object2 = null; @@ -603,13 +607,13 @@ class MeshCutter { let numObjects = 0; if (numPoints1 > 4) { - object1 = new THREE.Mesh(this.createGeometry(points1, uvs1, normals1), object.material); + object1 = new THREE.Mesh(this.createGeometry(this.points1, this.uvs1, this.normals1), object.material); object1.quaternion.copy(object.quaternion); numObjects++; } if (numPoints2 > 4) { - object2 = new THREE.Mesh(this.createGeometry(points2, uvs2, normals2), object.material); + object2 = new THREE.Mesh(this.createGeometry(this.points2, this.uvs2, this.normals2), object.material); object2.quaternion.copy(object.quaternion); numObjects++; } From 1c84cfd3a3068fb93adf2256d2d7e2e75654609e Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 18:15:57 +0800 Subject: [PATCH 10/33] doing: separate delOuterTriangles(). --- mesh-cut/MeshCutter.js | 170 ++++++++++++++++++++++++----------------- 1 file changed, 99 insertions(+), 71 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 61fce64..164a8c3 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -100,6 +100,85 @@ class MeshCutter { return geometry; } + delOuterTriangles() { + // todo: need recur filter out. + + // this.delaunay2 = { + // coords: this.delaunay.coords.slice(), + // halfedges: this.delaunay.halfedges.slice(), + // hull: this.delaunay.hull.slice(), + // triangles: this.delaunay.triangles.slice(), + // trianglesLen: this.delaunay.trianglesLen, + // } + this.delaunay2 = { + coords: [], + halfedges: [], + hull: [], + triangles: [], + trianglesLen: 0, + } + + for(let i = 0; i < this.delaunay.numTriangles; i++) { + const x0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2] + const y0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2 + 1] + const x1 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 1] * 2] + const y1 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 1] * 2 + 1] + const x2 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 2] * 2] + const y2 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 2] * 2 + 1] + + if(this.delaunay.halfedges[i * 3 + 0] === -1) { + let isOverlap0 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + ) { + isOverlap0 = true; + break; + } + } + if(!isOverlap0) continue; + } + + if(this.delaunay.halfedges[i * 3 + 1] === -1) { + let isOverlap1 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + ) { + isOverlap1 = true; + break; + } + } + if(!isOverlap1) continue; + } + + if(this.delaunay.halfedges[i * 3 + 2] === -1) { + let isOverlap2 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + ) { + isOverlap2 = true; + break; + } + } + if(!isOverlap2) continue; + } + + this.delaunay2.triangles.push() + } + + } + createInnerFaces() { // // test // this.points1.push( @@ -120,76 +199,25 @@ class MeshCutter { }) console.log({pointsInner:this.pointsInner}) - const coords2D = []; + this.innerCoords2D = []; this.pointsInner.forEach(point => { - coords2D.push(point.x, point.y) + this.innerCoords2D.push(point.x, point.y) }) - const delaunay = new Delaunator(coords2D); - console.log(delaunay); - const numTriangles = delaunay.trianglesLen / 3; - console.log({numTriangles}) + this.delaunay = new Delaunator(this.innerCoords2D); + console.log(this.delaunay); + this.delaunay.numTriangles = this.delaunay.trianglesLen / 3; + console.log({numTriangles: this.delaunay.numTriangles}) console.log({linesInner: this.linesInner}) + this.delOuterTriangles(); - for(let i = 0; i < numTriangles; i++) { - const x0 = coords2D[delaunay.triangles[i * 3 + 0] * 2] - const y0 = coords2D[delaunay.triangles[i * 3 + 0] * 2 + 1] - const x1 = coords2D[delaunay.triangles[i * 3 + 1] * 2] - const y1 = coords2D[delaunay.triangles[i * 3 + 1] * 2 + 1] - const x2 = coords2D[delaunay.triangles[i * 3 + 2] * 2] - const y2 = coords2D[delaunay.triangles[i * 3 + 2] * 2 + 1] - - // filter out outer triangles: if has any edge not overlap with original model's edges, delete the triangle. - if(true) { // todo: need recur filter out. - if(delaunay.halfedges[i * 3 + 0] === -1) { - let isOverlap0 = false - for(let il = 0; il < this.linesInner.length; il += 2) { - const p0 = this.linesInner[il] - const p1 = this.linesInner[il + 1] - if( - (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) - ) { - isOverlap0 = true; - break; - } - } - if(!isOverlap0) continue; - } - - if(delaunay.halfedges[i * 3 + 1] === -1) { - let isOverlap1 = false - for(let il = 0; il < this.linesInner.length; il += 2) { - const p0 = this.linesInner[il] - const p1 = this.linesInner[il + 1] - if( - (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) - ) { - isOverlap1 = true; - break; - } - } - if(!isOverlap1) continue; - } - - if(delaunay.halfedges[i * 3 + 2] === -1) { - let isOverlap2 = false - for(let il = 0; il < this.linesInner.length; il += 2) { - const p0 = this.linesInner[il] - const p1 = this.linesInner[il + 1] - if( - (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) - ) { - isOverlap2 = true; - break; - } - } - if(!isOverlap2) continue; - } - } - // end filter out outer triangles + for(let i = 0; i < this.delaunay.numTriangles; i++) { + const x0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2] + const y0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2 + 1] + const x1 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 1] * 2] + const y1 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 1] * 2 + 1] + const x2 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 2] * 2] + const y2 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 2] * 2 + 1] console.log('remained triangle') @@ -199,18 +227,18 @@ class MeshCutter { new THREE.Vector3(x1, y1, 0), ) - const uv0 = this.uvsInner[delaunay.triangles[i * 3 + 0]] - const uv1 = this.uvsInner[delaunay.triangles[i * 3 + 1]] - const uv2 = this.uvsInner[delaunay.triangles[i * 3 + 2]] + const uv0 = this.uvsInner[this.delaunay.triangles[i * 3 + 0]] + const uv1 = this.uvsInner[this.delaunay.triangles[i * 3 + 1]] + const uv2 = this.uvsInner[this.delaunay.triangles[i * 3 + 2]] this.uvs1.push( uv0, uv2, uv1, ) - const normal0 = this.normalsInner[delaunay.triangles[i * 3 + 0]] - const normal1 = this.normalsInner[delaunay.triangles[i * 3 + 1]] - const normal2 = this.normalsInner[delaunay.triangles[i * 3 + 2]] + const normal0 = this.normalsInner[this.delaunay.triangles[i * 3 + 0]] + const normal1 = this.normalsInner[this.delaunay.triangles[i * 3 + 1]] + const normal2 = this.normalsInner[this.delaunay.triangles[i * 3 + 2]] this.normals1.push( normal0, normal2, From 56f673842d0ffd937139324e27eaf728c0dcdf78 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 18:57:17 +0800 Subject: [PATCH 11/33] ok: pok: separate delOuterTriangles(). --- mesh-cut/MeshCutter.js | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 164a8c3..118cbdc 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -110,21 +110,25 @@ class MeshCutter { // triangles: this.delaunay.triangles.slice(), // trianglesLen: this.delaunay.trianglesLen, // } - this.delaunay2 = { - coords: [], + this.delaunayTemp = { + coords: this.delaunay.coords, // note: don't need filter out. halfedges: [], hull: [], triangles: [], trianglesLen: 0, } + // todo: performance: filter halfedge === -1 first. for(let i = 0; i < this.delaunay.numTriangles; i++) { - const x0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2] - const y0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2 + 1] - const x1 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 1] * 2] - const y1 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 1] * 2 + 1] - const x2 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 2] * 2] - const y2 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 2] * 2 + 1] + const coordIndex0 = this.delaunay.triangles[i * 3 + 0]; + const coordIndex1 = this.delaunay.triangles[i * 3 + 1]; + const coordIndex2 = this.delaunay.triangles[i * 3 + 2]; + const x0 = this.delaunay.coords[coordIndex0 * 2] + const y0 = this.delaunay.coords[coordIndex0 * 2 + 1] + const x1 = this.delaunay.coords[coordIndex1 * 2] + const y1 = this.delaunay.coords[coordIndex1 * 2 + 1] + const x2 = this.delaunay.coords[coordIndex2 * 2] + const y2 = this.delaunay.coords[coordIndex2 * 2 + 1] if(this.delaunay.halfedges[i * 3 + 0] === -1) { let isOverlap0 = false @@ -174,9 +178,18 @@ class MeshCutter { if(!isOverlap2) continue; } - this.delaunay2.triangles.push() + this.delaunayTemp.triangles.push( + coordIndex0, + coordIndex1, + coordIndex2, + ) + // this.delaunayTemp.halfedges } + this.delaunayTemp.trianglesLen = this.delaunayTemp.triangles.length; + this.delaunayTemp.numTriangles = this.delaunayTemp.trianglesLen / 3; + + this.delaunay = this.delaunayTemp } createInnerFaces() { From a2eeb7ec6d2c93b958729598659c39fd1794fe55 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 20:56:35 +0800 Subject: [PATCH 12/33] ok!: pok: markOuterHalfedges() then delOuterTriangles(). todo: real recur. performance: prevent redundant codes. --- mesh-cut/MeshCutter.js | 145 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 136 insertions(+), 9 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 118cbdc..1ae7a5e 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -100,6 +100,122 @@ class MeshCutter { return geometry; } + markOuterHalfedges() { + // todo: need recur filter out. + + // this.delaunay2 = { + // coords: this.delaunay.coords.slice(), + // halfedges: this.delaunay.halfedges.slice(), + // hull: this.delaunay.hull.slice(), + // triangles: this.delaunay.triangles.slice(), + // trianglesLen: this.delaunay.trianglesLen, + // } + // this.delaunayTemp = { + // coords: this.delaunay.coords, // note: don't need filter out, so don't need clone. + // halfedges: [], + // hull: [], + // triangles: [], + // trianglesLen: 0, + // } + + // todo: performance: filter halfedge === -1 first. + for(let i = 0; i < this.delaunay.numTriangles; i++) { + const halfedge0 = this.delaunay.halfedges[i * 3 + 0]; + const halfedge1 = this.delaunay.halfedges[i * 3 + 1]; + const halfedge2 = this.delaunay.halfedges[i * 3 + 2]; + + const coordIndex0 = this.delaunay.triangles[i * 3 + 0]; + const coordIndex1 = this.delaunay.triangles[i * 3 + 1]; + const coordIndex2 = this.delaunay.triangles[i * 3 + 2]; + const x0 = this.delaunay.coords[coordIndex0 * 2] + const y0 = this.delaunay.coords[coordIndex0 * 2 + 1] + const x1 = this.delaunay.coords[coordIndex1 * 2] + const y1 = this.delaunay.coords[coordIndex1 * 2 + 1] + const x2 = this.delaunay.coords[coordIndex2 * 2] + const y2 = this.delaunay.coords[coordIndex2 * 2 + 1] + + let anyNotOverlap = false + if(halfedge0 === -1) { + let isOverlap0 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + ) { + isOverlap0 = true; + break; + } + } + if(!isOverlap0) { + anyNotOverlap = true + // continue + }; + } + + if(halfedge1 === -1) { + let isOverlap1 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + ) { + isOverlap1 = true; + break; + } + } + if(!isOverlap1) { + anyNotOverlap = true + // continue + }; + } + + if(halfedge2 === -1) { + let isOverlap2 = false + for(let il = 0; il < this.linesInner.length; il += 2) { + const p0 = this.linesInner[il] + const p1 = this.linesInner[il + 1] + if( + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + ) { + isOverlap2 = true; + break; + } + } + if(!isOverlap2) { + anyNotOverlap = true + // continue + }; + } + + if(anyNotOverlap) { + this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 0]] = -1 + this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 1]] = -1 + this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 2]] = -1 + } + + // this.delaunayTemp.triangles.push( + // coordIndex0, + // coordIndex1, + // coordIndex2, + // ) + // this.delaunayTemp.halfedges.push( + // halfedge0, + // halfedge1, + // halfedge2, + // ) + } + + // this.delaunayTemp.trianglesLen = this.delaunayTemp.triangles.length; + // this.delaunayTemp.numTriangles = this.delaunayTemp.trianglesLen / 3; + + // this.delaunay = this.delaunayTemp + } + delOuterTriangles() { // todo: need recur filter out. @@ -111,7 +227,7 @@ class MeshCutter { // trianglesLen: this.delaunay.trianglesLen, // } this.delaunayTemp = { - coords: this.delaunay.coords, // note: don't need filter out. + coords: this.delaunay.coords, // note: don't need filter out, so don't need clone. halfedges: [], hull: [], triangles: [], @@ -120,6 +236,10 @@ class MeshCutter { // todo: performance: filter halfedge === -1 first. for(let i = 0; i < this.delaunay.numTriangles; i++) { + const halfedge0 = this.delaunay.halfedges[i * 3 + 0]; + const halfedge1 = this.delaunay.halfedges[i * 3 + 1]; + const halfedge2 = this.delaunay.halfedges[i * 3 + 2]; + const coordIndex0 = this.delaunay.triangles[i * 3 + 0]; const coordIndex1 = this.delaunay.triangles[i * 3 + 1]; const coordIndex2 = this.delaunay.triangles[i * 3 + 2]; @@ -130,7 +250,7 @@ class MeshCutter { const x2 = this.delaunay.coords[coordIndex2 * 2] const y2 = this.delaunay.coords[coordIndex2 * 2 + 1] - if(this.delaunay.halfedges[i * 3 + 0] === -1) { + if(halfedge0 === -1) { let isOverlap0 = false for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] @@ -143,10 +263,10 @@ class MeshCutter { break; } } - if(!isOverlap0) continue; + if(!isOverlap0) continue } - if(this.delaunay.halfedges[i * 3 + 1] === -1) { + if(halfedge1 === -1) { let isOverlap1 = false for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] @@ -159,10 +279,10 @@ class MeshCutter { break; } } - if(!isOverlap1) continue; + if(!isOverlap1) continue } - if(this.delaunay.halfedges[i * 3 + 2] === -1) { + if(halfedge2 === -1) { let isOverlap2 = false for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] @@ -175,7 +295,7 @@ class MeshCutter { break; } } - if(!isOverlap2) continue; + if(!isOverlap2) continue } this.delaunayTemp.triangles.push( @@ -183,7 +303,11 @@ class MeshCutter { coordIndex1, coordIndex2, ) - // this.delaunayTemp.halfedges + this.delaunayTemp.halfedges.push( + halfedge0, + halfedge1, + halfedge2, + ) } this.delaunayTemp.trianglesLen = this.delaunayTemp.triangles.length; @@ -222,7 +346,10 @@ class MeshCutter { console.log({numTriangles: this.delaunay.numTriangles}) console.log({linesInner: this.linesInner}) - this.delOuterTriangles(); + this.markOuterHalfedges(); + this.markOuterHalfedges(); + + this.delOuterTriangles() for(let i = 0; i < this.delaunay.numTriangles; i++) { const x0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2] From d37daeed3050c5e5bd7a26a18d29206c33c6a8d8 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 21:30:09 +0800 Subject: [PATCH 13/33] doing: recur. --- mesh-cut/MeshCutter.js | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 1ae7a5e..a3c7be7 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -102,22 +102,8 @@ class MeshCutter { markOuterHalfedges() { // todo: need recur filter out. - - // this.delaunay2 = { - // coords: this.delaunay.coords.slice(), - // halfedges: this.delaunay.halfedges.slice(), - // hull: this.delaunay.hull.slice(), - // triangles: this.delaunay.triangles.slice(), - // trianglesLen: this.delaunay.trianglesLen, - // } - // this.delaunayTemp = { - // coords: this.delaunay.coords, // note: don't need filter out, so don't need clone. - // halfedges: [], - // hull: [], - // triangles: [], - // trianglesLen: 0, - // } + let anyNotOverlap = false // todo: performance: filter halfedge === -1 first. for(let i = 0; i < this.delaunay.numTriangles; i++) { const halfedge0 = this.delaunay.halfedges[i * 3 + 0]; @@ -134,7 +120,7 @@ class MeshCutter { const x2 = this.delaunay.coords[coordIndex2 * 2] const y2 = this.delaunay.coords[coordIndex2 * 2 + 1] - let anyNotOverlap = false + let anyNotOverlap2 = false if(halfedge0 === -1) { let isOverlap0 = false for(let il = 0; il < this.linesInner.length; il += 2) { @@ -149,7 +135,7 @@ class MeshCutter { } } if(!isOverlap0) { - anyNotOverlap = true + anyNotOverlap2 = true // continue }; } @@ -168,7 +154,7 @@ class MeshCutter { } } if(!isOverlap1) { - anyNotOverlap = true + anyNotOverlap2 = true // continue }; } @@ -187,15 +173,16 @@ class MeshCutter { } } if(!isOverlap2) { - anyNotOverlap = true + anyNotOverlap2 = true // continue }; } - if(anyNotOverlap) { + if(anyNotOverlap2) { this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 0]] = -1 this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 1]] = -1 this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 2]] = -1 + anyNotOverlap = true } // this.delaunayTemp.triangles.push( @@ -210,10 +197,7 @@ class MeshCutter { // ) } - // this.delaunayTemp.trianglesLen = this.delaunayTemp.triangles.length; - // this.delaunayTemp.numTriangles = this.delaunayTemp.trianglesLen / 3; - - // this.delaunay = this.delaunayTemp + return anyNotOverlap } delOuterTriangles() { @@ -348,6 +332,10 @@ class MeshCutter { this.markOuterHalfedges(); this.markOuterHalfedges(); + + // while(this.markOuterHalfedges()) { + // console.log('recur') + // } this.delOuterTriangles() From 7b4b5f983a3799f6ad982e207b2b2f0af402bec2 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 21:38:52 +0800 Subject: [PATCH 14/33] ok: recur del outer triangles. --- mesh-cut/MeshCutter.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index a3c7be7..793c6a5 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -106,6 +106,8 @@ class MeshCutter { let anyNotOverlap = false // todo: performance: filter halfedge === -1 first. for(let i = 0; i < this.delaunay.numTriangles; i++) { + if(this.delaunay.outers[i * 3 + 0]) continue + const halfedge0 = this.delaunay.halfedges[i * 3 + 0]; const halfedge1 = this.delaunay.halfedges[i * 3 + 1]; const halfedge2 = this.delaunay.halfedges[i * 3 + 2]; @@ -183,6 +185,9 @@ class MeshCutter { this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 1]] = -1 this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 2]] = -1 anyNotOverlap = true + this.delaunay.outers[i * 3 + 0] = true + this.delaunay.outers[i * 3 + 1] = true + this.delaunay.outers[i * 3 + 2] = true } // this.delaunayTemp.triangles.push( @@ -330,12 +335,16 @@ class MeshCutter { console.log({numTriangles: this.delaunay.numTriangles}) console.log({linesInner: this.linesInner}) - this.markOuterHalfedges(); - this.markOuterHalfedges(); - - // while(this.markOuterHalfedges()) { - // console.log('recur') - // } + this.delaunay.outers = [] + for(let i = 0; i < this.delaunay.trianglesLen; i++) { + this.delaunay.outers.push(false) + } + while(this.markOuterHalfedges()) { + console.log('recur') + // debugger + } + // this.markOuterHalfedges(); + // this.markOuterHalfedges(); this.delOuterTriangles() From 6aef4698d7d0131a265a8641294ec8572a4b8791 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 21:58:16 +0800 Subject: [PATCH 15/33] dev: star geometry. --- mesh-cut/test.js | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 4831e81..f5c443e 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -107,11 +107,26 @@ window.meshCutter = new MeshCutter() // geometry.rotateY(Math.PI/2) const shape = new THREE.Shape(); -shape.moveTo( 0,0 ); -shape.lineTo( .5, .5 ); +// shape.moveTo( 0,0 ); +// shape.lineTo( .5, .5 ); +// shape.lineTo( 0, -1 ); +// shape.lineTo( -.5, .5 ); +// shape.lineTo( 0, 0 ); + +// shape.lineTo( -.5, 1.5 ); +// shape.lineTo( 0, 1 ); +// shape.lineTo( .5, 1.5 ); +// shape.lineTo( 0, 0 ); + +shape.moveTo( 0, 1 ); +shape.lineTo( .3, .3 ); +shape.lineTo( 1, 0 ); +shape.lineTo( .3, -.3 ); shape.lineTo( 0, -1 ); -shape.lineTo( -.5, .5 ); -shape.lineTo( 0, 0 ); +shape.lineTo( -.3, -.3 ); +shape.lineTo( -1, 0 ); +shape.lineTo( -.3, .3 ); +shape.lineTo( 0, 1 ); const extrudeSettings = { curveSegments: 1, steps: 1, @@ -160,17 +175,17 @@ if (true) { window.output = window.meshCutter.cutByPlane(window.box, window.plane) if (window.output.object1) { window.scene.add(window.output.object1) - window.output.object1.position.x += -1 / 1 - window.output.object1.position.z += 2 / 1 + window.output.object1.position.x += -1 * 1.1 + window.output.object1.position.z += 2 * 1.1 // window.output.object1.updateMatrixWorld() } if (window.output.object2) { window.scene.add(window.output.object2) - window.output.object2.position.x += 1 / 1 - window.output.object2.position.z += 2 / 1 + window.output.object2.position.x += 1 * 1.1 + window.output.object2.position.z += 2 * 1.1 // window.output.object2.updateMatrixWorld() } // window.box.visible = false - window.box.position.z += -1 / 1 + window.box.position.z += -1 * 1.1 }, 1000) } From 14cd089759d0e076943b48d22b8249f3d95fcffc Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 22:37:03 +0800 Subject: [PATCH 16/33] dev --- mesh-cut/MeshCutter.js | 2 +- mesh-cut/test.js | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 793c6a5..530e4e5 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -321,7 +321,7 @@ class MeshCutter { // test this.points1.forEach((point, i) => { this.points1[i] = point.clone() - this.points1[i].z -= 1 + // this.points1[i].z -= 1 // test }) console.log({pointsInner:this.pointsInner}) diff --git a/mesh-cut/test.js b/mesh-cut/test.js index f5c443e..9b200af 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -107,26 +107,26 @@ window.meshCutter = new MeshCutter() // geometry.rotateY(Math.PI/2) const shape = new THREE.Shape(); -// shape.moveTo( 0,0 ); -// shape.lineTo( .5, .5 ); -// shape.lineTo( 0, -1 ); -// shape.lineTo( -.5, .5 ); -// shape.lineTo( 0, 0 ); +shape.moveTo( 0,0 ); +shape.lineTo( .5, .5 ); +shape.lineTo( 0, -1 ); +shape.lineTo( -.5, .5 ); +shape.lineTo( 0, 0 ); // shape.lineTo( -.5, 1.5 ); // shape.lineTo( 0, 1 ); // shape.lineTo( .5, 1.5 ); // shape.lineTo( 0, 0 ); -shape.moveTo( 0, 1 ); -shape.lineTo( .3, .3 ); -shape.lineTo( 1, 0 ); -shape.lineTo( .3, -.3 ); -shape.lineTo( 0, -1 ); -shape.lineTo( -.3, -.3 ); -shape.lineTo( -1, 0 ); -shape.lineTo( -.3, .3 ); -shape.lineTo( 0, 1 ); +// shape.moveTo( 0, 1 ); +// shape.lineTo( .3, .3 ); +// shape.lineTo( 1, 0 ); +// shape.lineTo( .3, -.3 ); +// shape.lineTo( 0, -1 ); +// shape.lineTo( -.3, -.3 ); +// shape.lineTo( -1, 0 ); +// shape.lineTo( -.3, .3 ); +// shape.lineTo( 0, 1 ); const extrudeSettings = { curveSegments: 1, steps: 1, @@ -147,8 +147,8 @@ geometry.translate(0, 0, -.5) const material = new THREE.MeshStandardMaterial({ // const material = new THREE.MeshBasicMaterial({ - color: 'black', - wireframe: true, + // color: 'black', + // wireframe: true, side: THREE.DoubleSide, map: new THREE.TextureLoader().load('./image/uv_grid_opengl.jpg'), }) From afc47f17da1f907267ae9b05f66ed978759ea81e Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 22:49:20 +0800 Subject: [PATCH 17/33] add arg: isInnerFaces. && don't need normalsInner, use computeVertexNormals() instead. --- mesh-cut/MeshCutter.js | 82 ++++++++++++++++++++++++------------------ mesh-cut/test.js | 2 +- 2 files changed, 49 insertions(+), 35 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 530e4e5..f50bd68 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -372,24 +372,36 @@ class MeshCutter { uv2, uv1, ) + // this.uvs1.push( + // 0, + // 0, + // 0, + // ) - const normal0 = this.normalsInner[this.delaunay.triangles[i * 3 + 0]] - const normal1 = this.normalsInner[this.delaunay.triangles[i * 3 + 1]] - const normal2 = this.normalsInner[this.delaunay.triangles[i * 3 + 2]] + // const normal0 = this.normalsInner[this.delaunay.triangles[i * 3 + 0]] + // const normal1 = this.normalsInner[this.delaunay.triangles[i * 3 + 1]] + // const normal2 = this.normalsInner[this.delaunay.triangles[i * 3 + 2]] + // this.normals1.push( + // normal0, + // normal2, + // normal1, + // ) this.normals1.push( - normal0, - normal2, - normal1, + 0, + 0, + 0, ) } } - cutByPlane(object, plane) { + cutByPlane(object, plane, isInnerFaces = false) { // Returns breakable objects in output.object1 and output.object2 members, the resulting 2 pieces of the cut. // object2 can be null if the plane doesn't cut the object. // object1 can be null only in case of internal error // Returned value is number of pieces, 0 for error. + this.isInnerFaces = isInnerFaces; + const geometry = object.geometry; const coords = geometry.attributes.position.array; const normals = geometry.attributes.normal.array; @@ -413,7 +425,7 @@ class MeshCutter { this.normals1 = []; this.normals2 = []; - this.normalsInner = []; // should don't need, just re-calc is ok. + // this.normalsInner = []; // should don't need, just re-calc is ok. this.uvs1 = []; this.uvs2 = []; @@ -466,7 +478,7 @@ class MeshCutter { this.linesInner.push(v1, v2); this.linesInner.push(v2, v0); this.pointsInner.push(v0, v1, v2); - this.normalsInner.push(n0, n1, n2); + // this.normalsInner.push(n0, n1, n2); this.uvsInner.push(u0, u1, u2); } } else if (sign0 === sign1) { @@ -485,14 +497,14 @@ class MeshCutter { this.uvs2.push(u2, uI0, uI1); this.linesInner.push(vI0, vI1); this.pointsInner.push(vI0, vI1); - this.normalsInner.push(nI0, nI1); + // this.normalsInner.push(nI0, nI1); this.uvsInner.push(uI0, uI1); } else if (sign2 === 0) { this.points1.push(v0, v1, v2); this.normals1.push(n0, n1, n2); this.uvs1.push(u0, u1, u2); this.pointsInner.push(v2); - this.normalsInner.push(n2); + // this.normalsInner.push(n2); this.uvsInner.push(u2); } } else if (sign0 === 1) { @@ -510,14 +522,14 @@ class MeshCutter { this.uvs1.push(u2, uI0, uI1); this.linesInner.push(vI0, vI1); this.pointsInner.push(vI0, vI1); - this.normalsInner.push(nI0, nI1); + // this.normalsInner.push(nI0, nI1); this.uvsInner.push(uI0, uI1); } else if (sign2 === 0) { this.points2.push(v0, v1, v2); this.normals2.push(n0, n1, n2); this.uvs2.push(u0, u1, u2); this.pointsInner.push(v2); - this.normalsInner.push(n2); + // this.normalsInner.push(n2); this.uvsInner.push(u2); } } else if (sign0 === 0) { @@ -527,7 +539,7 @@ class MeshCutter { this.uvs1.push(u0, u1, u2); this.linesInner.push(v0, v1); this.pointsInner.push(v0, v1); - this.normalsInner.push(n0, n1); + // this.normalsInner.push(n0, n1); this.uvsInner.push(u0, u1); } else if (sign2 === 1) { this.points2.push(v0, v1, v2); @@ -535,7 +547,7 @@ class MeshCutter { this.uvs2.push(u0, u1, u2); this.linesInner.push(v0, v1); this.pointsInner.push(v0, v1); - this.normalsInner.push(n0, n1); + // this.normalsInner.push(n0, n1); this.uvsInner.push(u0, u1); } } @@ -555,7 +567,7 @@ class MeshCutter { this.uvs2.push(u0, uI0, uI1); this.linesInner.push(vI0, vI1); this.pointsInner.push(vI0, vI1); - this.normalsInner.push(nI0, nI1); + // this.normalsInner.push(nI0, nI1); this.uvsInner.push(uI0, uI1); } else if (sign0 === 0) { this.points1.push(v0, v1, v2); @@ -563,7 +575,7 @@ class MeshCutter { this.uvs1.push(u0, u1, u2); this.linesInner.push(v1, v2); this.pointsInner.push(v1, v2); - this.normalsInner.push(n1, n2); + // this.normalsInner.push(n1, n2); this.uvsInner.push(u1, u2); } } else if (sign1 === 1) { @@ -581,14 +593,14 @@ class MeshCutter { this.uvs1.push(u0, uI0, uI1); this.linesInner.push(vI0, vI1); this.pointsInner.push(vI0, vI1); - this.normalsInner.push(nI0, nI1); + // this.normalsInner.push(nI0, nI1); this.uvsInner.push(uI0, uI1); } else if (sign0 === 0) { this.points2.push(v0, v1, v2); this.normals2.push(n0, n1, n2); this.uvs2.push(u0, u1, u2); this.pointsInner.push(v0); - this.normalsInner.push(n0); + // this.normalsInner.push(n0); this.uvsInner.push(u0); } } else if (sign1 === 0) { @@ -598,7 +610,7 @@ class MeshCutter { this.uvs1.push(u0, u1, u2); this.linesInner.push(v1, v2); this.pointsInner.push(v1, v2); - this.normalsInner.push(n1, n2); + // this.normalsInner.push(n1, n2); this.uvsInner.push(u1, u2); } else if (sign0 === 1) { this.points2.push(v0, v1, v2); @@ -606,7 +618,7 @@ class MeshCutter { this.uvs2.push(u0, u1, u2); this.linesInner.push(v1, v2); this.pointsInner.push(v1, v2); - this.normalsInner.push(n1, n2); + // this.normalsInner.push(n1, n2); this.uvsInner.push(u1, u2); } } @@ -626,14 +638,14 @@ class MeshCutter { this.uvs2.push(u1, uI0, uI1); this.linesInner.push(vI0, vI1); this.pointsInner.push(vI0, vI1); - this.normalsInner.push(nI0, nI1); + // this.normalsInner.push(nI0, nI1); this.uvsInner.push(uI0, uI1); } else if (sign1 === 0) { this.points1.push(v0, v1, v2); this.normals1.push(n0, n1, n2); this.uvs1.push(u0, u1, u2); this.pointsInner.push(v1); - this.normalsInner.push(n1); + // this.normalsInner.push(n1); this.uvsInner.push(u1); } } else if (sign2 === 1) { @@ -651,14 +663,14 @@ class MeshCutter { this.uvs1.push(u1, uI0, uI1); this.linesInner.push(vI0, vI1); this.pointsInner.push(vI0, vI1); - this.normalsInner.push(nI0, nI1); + // this.normalsInner.push(nI0, nI1); this.uvsInner.push(uI0, uI1); } else if (sign1 === 0) { this.points2.push(v0, v1, v2); this.normals2.push(n0, n1, n2); this.uvs2.push(u0, u1, u2); this.pointsInner.push(v1); - this.normalsInner.push(n1); + // this.normalsInner.push(n1); this.uvsInner.push(u1); } } else if (sign2 === 0) { @@ -668,7 +680,7 @@ class MeshCutter { this.uvs1.push(u0, u1, u2); this.linesInner.push(v2, v0); this.pointsInner.push(v2, v0); - this.normalsInner.push(n2, n0); + // this.normalsInner.push(n2, n0); this.uvsInner.push(u2, u0); } else if (sign1 === 1) { this.points2.push(v0, v1, v2); @@ -676,7 +688,7 @@ class MeshCutter { this.uvs2.push(u0, u1, u2); this.linesInner.push(v2, v0); this.pointsInner.push(v2, v0); - this.normalsInner.push(n2, n0); + // this.normalsInner.push(n2, n0); this.uvsInner.push(u2, u0); } } @@ -691,7 +703,7 @@ class MeshCutter { this.uvs2.push(u0, u1, uI0); this.linesInner.push(vI0, v0); this.pointsInner.push(vI0, v0); - this.normalsInner.push(nI0, n0); + // this.normalsInner.push(nI0, n0); this.uvsInner.push(uI0, u0); } else if (sign1 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v2, n1, n2, u1, u2); @@ -703,7 +715,7 @@ class MeshCutter { this.uvs1.push(u0, u1, uI0); this.linesInner.push(vI0, v0); this.pointsInner.push(vI0, v0); - this.normalsInner.push(nI0, n0); + // this.normalsInner.push(nI0, n0); this.uvsInner.push(uI0, u0); } } else if (sign1 === 0) { @@ -717,7 +729,7 @@ class MeshCutter { this.uvs2.push(u1, u2, uI0); this.linesInner.push(vI0, v1); this.pointsInner.push(vI0, v1); - this.normalsInner.push(nI0, n1); + // this.normalsInner.push(nI0, n1); this.uvsInner.push(uI0, u1); } else if (sign2 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v0, v2, n0, n2, u0, u2); @@ -729,7 +741,7 @@ class MeshCutter { this.uvs1.push(u1, u2, uI0); this.linesInner.push(vI0, v1); this.pointsInner.push(vI0, v1); - this.normalsInner.push(nI0, n1); + // this.normalsInner.push(nI0, n1); this.uvsInner.push(uI0, u1); } } else if (sign2 === 0) { @@ -743,7 +755,7 @@ class MeshCutter { this.uvs2.push(u2, u0, uI0); this.linesInner.push(vI0, v2); this.pointsInner.push(vI0, v2); - this.normalsInner.push(nI0, n2); + // this.normalsInner.push(nI0, n2); this.uvsInner.push(uI0, u2); } else if (sign0 === -1) { const {vI: vI0, nI: nI0, uI: uI0} = this.getIntersectNode(v1, v0, n1, n0, u1, u0); @@ -755,13 +767,13 @@ class MeshCutter { this.uvs1.push(u2, u0, uI0); this.linesInner.push(vI0, v2); this.pointsInner.push(vI0, v2); - this.normalsInner.push(nI0, n2); + // this.normalsInner.push(nI0, n2); this.uvsInner.push(uI0, u2); } } } - this.createInnerFaces(); + if(this.isInnerFaces) this.createInnerFaces(); const numPoints1 = this.points1.length; const numPoints2 = this.points2.length; @@ -775,12 +787,14 @@ class MeshCutter { object1 = new THREE.Mesh(this.createGeometry(this.points1, this.uvs1, this.normals1), object.material); object1.quaternion.copy(object.quaternion); numObjects++; + if(this.isInnerFaces) object1.geometry.computeVertexNormals(); } if (numPoints2 > 4) { object2 = new THREE.Mesh(this.createGeometry(this.points2, this.uvs2, this.normals2), object.material); object2.quaternion.copy(object.quaternion); numObjects++; + if(this.isInnerFaces) object2.geometry.computeVertexNormals(); } return { diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 9b200af..675448d 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -172,7 +172,7 @@ if (true) { // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { - window.output = window.meshCutter.cutByPlane(window.box, window.plane) + window.output = window.meshCutter.cutByPlane(window.box, window.plane, true) if (window.output.object1) { window.scene.add(window.output.object1) window.output.object1.position.x += -1 * 1.1 From bd205f9624079ea4771d6fd555c3e0f01bf1cde6 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 23:28:57 +0800 Subject: [PATCH 18/33] dev --- mesh-cut/MeshCutter.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index f50bd68..9c08c49 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -797,11 +797,12 @@ class MeshCutter { if(this.isInnerFaces) object2.geometry.computeVertexNormals(); } - return { + const output = { object1, object2, numObjects, }; + return output; } } From 66ba5e1d2a873c0bf4d60f592d3a51a5a8ff14e5 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 23:31:04 +0800 Subject: [PATCH 19/33] branch: MeshCutterDev. --- mesh-cut/MeshCutter.js | 10 +++++----- mesh-cut/test.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 9c08c49..66f2164 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -313,10 +313,10 @@ class MeshCutter { // new THREE.Vector3(0, 1, 1), // ) - // // test - // this.points1.length = 0 - // this.normals1.length = 0 - // this.uvs1.length = 0 + // test + this.points1.length = 0 + this.normals1.length = 0 + this.uvs1.length = 0 // test this.points1.forEach((point, i) => { @@ -394,7 +394,7 @@ class MeshCutter { } } - cutByPlane(object, plane, isInnerFaces = false) { + cutByPlane(object, plane, isInnerFaces = false) { // todo: add arg: isDelOuterTriangles = false, convex geometries don't need delete outer triangles. // Returns breakable objects in output.object1 and output.object2 members, the resulting 2 pieces of the cut. // object2 can be null if the plane doesn't cut the object. // object1 can be null only in case of internal error diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 675448d..7f11fb0 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -167,8 +167,8 @@ if (true) { // window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) - window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) - // window.plane = new THREE.Plane(new THREE.Vector3(1,0,1).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(1,0,1).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { From 53effd9725000b513f5a468188836dd94f95df47 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 23:47:45 +0800 Subject: [PATCH 20/33] dev --- mesh-cut/test.js | 109 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 77 insertions(+), 32 deletions(-) diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 7f11fb0..d94d20b 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -96,6 +96,8 @@ function animate(time) { window.meshCutter = new MeshCutter() +// geometry + // const geometry = new THREE.ConeGeometry(.5, 1, 3) // // const geometry = new THREE.BoxGeometry() // // const geometry = new THREE.PlaneGeometry() @@ -106,45 +108,88 @@ window.meshCutter = new MeshCutter() // geometry.rotateX(Math.PI/2) // geometry.rotateY(Math.PI/2) -const shape = new THREE.Shape(); -shape.moveTo( 0,0 ); -shape.lineTo( .5, .5 ); -shape.lineTo( 0, -1 ); -shape.lineTo( -.5, .5 ); -shape.lineTo( 0, 0 ); +// -// shape.lineTo( -.5, 1.5 ); -// shape.lineTo( 0, 1 ); -// shape.lineTo( .5, 1.5 ); +// const shape = new THREE.Shape(); +// shape.moveTo( 0,0 ); +// shape.lineTo( .5, .5 ); +// shape.lineTo( 0, -1 ); +// shape.lineTo( -.5, .5 ); // shape.lineTo( 0, 0 ); -// shape.moveTo( 0, 1 ); -// shape.lineTo( .3, .3 ); -// shape.lineTo( 1, 0 ); -// shape.lineTo( .3, -.3 ); -// shape.lineTo( 0, -1 ); -// shape.lineTo( -.3, -.3 ); -// shape.lineTo( -1, 0 ); -// shape.lineTo( -.3, .3 ); -// shape.lineTo( 0, 1 ); -const extrudeSettings = { - curveSegments: 1, - steps: 1, - depth: 1, - bevelEnabled: false, -}; -const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); -geometry.translate(0, 0, -.5) - -// const positions = [ - -// ] -// const geometry = new THREE.BufferGeometry() -// geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) ); +// // shape.lineTo( -.5, 1.5 ); +// // shape.lineTo( 0, 1 ); +// // shape.lineTo( .5, 1.5 ); +// // shape.lineTo( 0, 0 ); + +// // shape.moveTo( 0, 1 ); +// // shape.lineTo( .3, .3 ); +// // shape.lineTo( 1, 0 ); +// // shape.lineTo( .3, -.3 ); +// // shape.lineTo( 0, -1 ); +// // shape.lineTo( -.3, -.3 ); +// // shape.lineTo( -1, 0 ); +// // shape.lineTo( -.3, .3 ); +// // shape.lineTo( 0, 1 ); +// const extrudeSettings = { +// curveSegments: 1, +// steps: 1, +// depth: 1, +// bevelEnabled: false, +// }; +// const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); +// geometry.translate(0, 0, -.5) + +// + +const positions = [ + -1, 0, 1, + 1, 0, 1, + 0, 1, 0, + + 0, 0, -1, + -1, 0, 1, + 0, 1, 0, + + 0, 0, -1, + 1, 0, 1, + 0, 1, 0, + + 0, 0, -1, + 1, 0, 1, + -1, 0, 1, +] +const uvs = [ + .5, 1, + 0, 0, + 1, 0, + + .5, 1, + 0, 0, + 1, 0, + + .5, 1, + 0, 0, + 1, 0, + + .5, 1, + 0, 0, + 1, 0, +] +const geometry = new THREE.BufferGeometry() +geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) ); +geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 3 ) ); +geometry.computeVertexNormals() +console.log({geometry}) + +// // const geometry = indexedGeometry.toNonIndexed() // geometry.clearGroups() +window.geometry = geometry +// end geometry + const material = new THREE.MeshStandardMaterial({ // const material = new THREE.MeshBasicMaterial({ // color: 'black', From 9e15a1ef411ceeee7978e28318fc526c984cee03 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Tue, 15 Mar 2022 23:52:25 +0800 Subject: [PATCH 21/33] dev --- mesh-cut/MeshCutter.js | 6 +++--- mesh-cut/test.js | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 66f2164..1f3784f 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -314,9 +314,9 @@ class MeshCutter { // ) // test - this.points1.length = 0 - this.normals1.length = 0 - this.uvs1.length = 0 + // this.points1.length = 0 + // this.normals1.length = 0 + // this.uvs1.length = 0 // test this.points1.forEach((point, i) => { diff --git a/mesh-cut/test.js b/mesh-cut/test.js index d94d20b..9f3dde5 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -178,9 +178,8 @@ const uvs = [ ] const geometry = new THREE.BufferGeometry() geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) ); -geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 3 ) ); +geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) ); geometry.computeVertexNormals() -console.log({geometry}) // @@ -212,8 +211,8 @@ if (true) { // window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) - // window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) - window.plane = new THREE.Plane(new THREE.Vector3(1,0,1).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(1,0,1).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { From ff7f8892074702e200a14fe33ca64cafe5a97312 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 00:59:02 +0800 Subject: [PATCH 22/33] ok: geometry.lookAt( xAxisCutPlane ). --- mesh-cut/MeshCutter.js | 74 +++++++++++++----------------------------- mesh-cut/test.js | 16 ++++----- 2 files changed, 30 insertions(+), 60 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 1f3784f..cb7e4e6 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -1,59 +1,15 @@ // import * as THREE from 'three'; -import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' +// import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' import Delaunator from 'https://cdn.skypack.dev/delaunator@5.0.0'; class MeshCutter { constructor() { this.tempLine1 = new THREE.Line3(); - this.localPlane = new THREE.Plane(); + this.localPlane = new THREE.Plane(new THREE.Vector3(0, 0, 1), 0); this.tempVector3 = new THREE.Vector3(); this.tempVector2 = new THREE.Vector2(); - } - - transformFreeVectorInverse(v, m) { - // input: - // vector interpreted as a free vector - // THREE.Matrix4 orthogonal matrix (matrix without scale) - - const x = v.x; - const y = v.y; - const z = v.z; - const e = m.elements; - - v.x = e[0] * x + e[1] * y + e[2] * z; - v.y = e[4] * x + e[5] * y + e[6] * z; - v.z = e[8] * x + e[9] * y + e[10] * z; - - return v; - } - - transformTiedVectorInverse(v, m) { - // input: - // vector interpreted as a tied (ordinary) vector - // THREE.Matrix4 orthogonal matrix (matrix without scale) - - const x = v.x; - const y = v.y; - const z = v.z; - const e = m.elements; - - v.x = e[0] * x + e[1] * y + e[2] * z - e[12]; - v.y = e[4] * x + e[5] * y + e[6] * z - e[13]; - v.z = e[8] * x + e[9] * y + e[10] * z - e[14]; - - return v; - } - - transformPlaneToLocalSpace(plane, m, resultPlane) { - resultPlane.normal.copy(plane.normal); - resultPlane.constant = plane.constant; - - const referencePoint = this.transformTiedVectorInverse(plane.coplanarPoint(this.tempVector3), m); - - this.transformFreeVectorInverse(resultPlane.normal, m); - - // recalculate constant (like in setFromNormalAndCoplanarPoint) - resultPlane.constant = -referencePoint.dot(resultPlane.normal); + this.planeNormal = new THREE.Vector3(); + this.planeNormalNegate = new THREE.Vector3(); } getIntersectNode(v0, v1, n0, n1, u0, u1) { @@ -400,6 +356,9 @@ class MeshCutter { // object1 can be null only in case of internal error // Returned value is number of pieces, 0 for error. + this.planeNormal.copy(plane.normal); + this.planeNormalNegate.copy(plane.normal).negate(); + this.isInnerFaces = isInnerFaces; const geometry = object.geometry; @@ -432,8 +391,11 @@ class MeshCutter { this.uvsInner = []; // should don't need, just re-calc is ok. // Transform the plane to object local space - object.updateMatrix(); - this.transformPlaneToLocalSpace(plane, object.matrix, this.localPlane); + // object.updateMatrix(); + // this.transformPlaneToLocalSpace(plane, object.matrix, this.localPlane); + + // Transform the object.geometry to plane space + object.geometry.lookAt(this.planeNormalNegate) // Iterate through the faces adding points to both pieces for (let i = 0; i < numFaces; i++) { @@ -787,16 +749,24 @@ class MeshCutter { object1 = new THREE.Mesh(this.createGeometry(this.points1, this.uvs1, this.normals1), object.material); object1.quaternion.copy(object.quaternion); numObjects++; - if(this.isInnerFaces) object1.geometry.computeVertexNormals(); + if(this.isInnerFaces) { + object1.geometry.computeVertexNormals(); + object1.geometry.lookAt(this.planeNormal) + } } if (numPoints2 > 4) { object2 = new THREE.Mesh(this.createGeometry(this.points2, this.uvs2, this.normals2), object.material); object2.quaternion.copy(object.quaternion); numObjects++; - if(this.isInnerFaces) object2.geometry.computeVertexNormals(); + if(this.isInnerFaces) { + object2.geometry.computeVertexNormals(); + object2.geometry.lookAt(this.planeNormal) + } } + object.geometry.lookAt(this.planeNormal) + const output = { object1, object2, diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 9f3dde5..43240b0 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -1,8 +1,8 @@ -// import * as THREE from '../lib/three.js/build/three.module.js' -import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' +import * as THREE from '/lib/three.js_github/build/three.module.js' +// import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' window.THREE = THREE -// import { OrbitControls } from '../lib/three.js/examples/jsm/controls/OrbitControls.js' -import { OrbitControls } from 'https://cdn.skypack.dev/three@0.136/examples/jsm/controls/OrbitControls.js' +import { OrbitControls } from '/lib/three.js_github/examples/jsm/controls/OrbitControls.js' +// import { OrbitControls } from 'https://cdn.skypack.dev/three@0.136/examples/jsm/controls/OrbitControls.js' import { MeshCutter } from './MeshCutter.js' window.container = null @@ -56,7 +56,7 @@ function init_three() { // gridHelper.position.y = 0.037 gridHelper.material.opacity = 0.2 gridHelper.material.transparent = true - // scene.add(gridHelper) + scene.add(gridHelper) renderer = new THREE.WebGLRenderer({ antialias: true }) renderer.setPixelRatio(window.devicePixelRatio) @@ -209,10 +209,10 @@ if (true) { // window.constant = (Math.random() - 0.5) * 1 // window.constant = .5 - // window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) - window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) - // window.plane = new THREE.Plane(new THREE.Vector3(1,0,1).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { From c443286e32d664dc6b11e90c2744a789c2bca05f Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 01:21:08 +0800 Subject: [PATCH 23/33] ok: pok: inner faces supported arbitrary cut plane. --- mesh-cut/MeshCutter.js | 39 ++++++++++++++++++++++++--------------- mesh-cut/test.js | 4 ++-- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index cb7e4e6..091872f 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -8,8 +8,10 @@ class MeshCutter { this.localPlane = new THREE.Plane(new THREE.Vector3(0, 0, 1), 0); this.tempVector3 = new THREE.Vector3(); this.tempVector2 = new THREE.Vector2(); - this.planeNormal = new THREE.Vector3(); - this.planeNormalNegate = new THREE.Vector3(); + this.planeQuaternion = new THREE.Quaternion(); + this.planeQuaternionNegate = new THREE.Quaternion(); + this.zAxis = new THREE.Vector3(0, 0, 1); + this.epsilon = 0.001; } getIntersectNode(v0, v1, n0, n1, u0, u1) { @@ -84,9 +86,11 @@ class MeshCutter { for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] - if( - (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + if( // todo: why lost precision? + // (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + // (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + (Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon && Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon) || + (Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon && Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon) ) { isOverlap0 = true; break; @@ -104,8 +108,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + // (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + // (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + (Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon && Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon) || + (Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon && Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon) ) { isOverlap1 = true; break; @@ -123,8 +129,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + // (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + // (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + (Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon && Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon) || + (Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon && Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon) ) { isOverlap2 = true; break; @@ -356,8 +364,8 @@ class MeshCutter { // object1 can be null only in case of internal error // Returned value is number of pieces, 0 for error. - this.planeNormal.copy(plane.normal); - this.planeNormalNegate.copy(plane.normal).negate(); + this.planeQuaternion.setFromUnitVectors(this.zAxis, plane.normal); + this.planeQuaternionNegate.setFromUnitVectors(plane.normal, this.zAxis); this.isInnerFaces = isInnerFaces; @@ -393,9 +401,10 @@ class MeshCutter { // Transform the plane to object local space // object.updateMatrix(); // this.transformPlaneToLocalSpace(plane, object.matrix, this.localPlane); + // todo: still use "Transform the plane to object local space" // Transform the object.geometry to plane space - object.geometry.lookAt(this.planeNormalNegate) + object.geometry.applyQuaternion(this.planeQuaternionNegate) // Iterate through the faces adding points to both pieces for (let i = 0; i < numFaces; i++) { @@ -751,7 +760,7 @@ class MeshCutter { numObjects++; if(this.isInnerFaces) { object1.geometry.computeVertexNormals(); - object1.geometry.lookAt(this.planeNormal) + object1.geometry.applyQuaternion(this.planeQuaternion) } } @@ -761,11 +770,11 @@ class MeshCutter { numObjects++; if(this.isInnerFaces) { object2.geometry.computeVertexNormals(); - object2.geometry.lookAt(this.planeNormal) + object2.geometry.applyQuaternion(this.planeQuaternion) } } - object.geometry.lookAt(this.planeNormal) + object.geometry.applyQuaternion(this.planeQuaternion) const output = { object1, diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 43240b0..9c816a3 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -209,10 +209,10 @@ if (true) { // window.constant = (Math.random() - 0.5) * 1 // window.constant = .5 - window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) - // window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { From 9183329f3ab74075531954e3ca26de5085adceed Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 01:28:04 +0800 Subject: [PATCH 24/33] ok!: inner faces supported arbitrary cut plane. --- mesh-cut/MeshCutter.js | 20 +++++++++++++------- mesh-cut/test.js | 4 ++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 091872f..8011b45 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -208,9 +208,11 @@ class MeshCutter { for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] - if( - (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + if( // todo: why lost precision? + // (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + // (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + (Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon && Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon) || + (Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon && Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon) ) { isOverlap0 = true; break; @@ -225,8 +227,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + // (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + // (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + (Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon && Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon) || + (Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon && Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon) ) { isOverlap1 = true; break; @@ -241,8 +245,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + // (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + // (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + (Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon && Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon) || + (Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon && Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon) ) { isOverlap2 = true; break; diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 9c816a3..1cfbb71 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -212,8 +212,8 @@ if (true) { // window.plane = new THREE.Plane(new THREE.Vector3(1,0,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) - window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) - // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) + // window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { window.output = window.meshCutter.cutByPlane(window.box, window.plane, true) From 3c19e713c1633ccb583e519a4756221200307b7d Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 01:38:35 +0800 Subject: [PATCH 25/33] ok!!!: generate inner faces. && generate inner faces of object2. --- mesh-cut/MeshCutter.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 8011b45..c44aef0 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -288,11 +288,11 @@ class MeshCutter { // this.normals1.length = 0 // this.uvs1.length = 0 - // test - this.points1.forEach((point, i) => { - this.points1[i] = point.clone() - // this.points1[i].z -= 1 // test - }) + // // test + // this.points1.forEach((point, i) => { + // this.points1[i] = point.clone() + // // this.points1[i].z -= 1 // test + // }) console.log({pointsInner:this.pointsInner}) this.innerCoords2D = []; @@ -333,6 +333,11 @@ class MeshCutter { new THREE.Vector3(x2, y2, 0), new THREE.Vector3(x1, y1, 0), ) + this.points2.push( + new THREE.Vector3(x0, y0, 0), + new THREE.Vector3(x1, y1, 0), + new THREE.Vector3(x2, y2, 0), + ) const uv0 = this.uvsInner[this.delaunay.triangles[i * 3 + 0]] const uv1 = this.uvsInner[this.delaunay.triangles[i * 3 + 1]] @@ -342,6 +347,11 @@ class MeshCutter { uv2, uv1, ) + this.uvs2.push( + uv0, + uv1, + uv2, + ) // this.uvs1.push( // 0, // 0, @@ -361,6 +371,11 @@ class MeshCutter { 0, 0, ) + this.normals2.push( + 0, + 0, + 0, + ) } } From b01fa5ab6a3098c88b21dfa19b156ad2c8519c14 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 01:44:51 +0800 Subject: [PATCH 26/33] lib: use cdn. --- mesh-cut/MeshCutter.js | 1 - mesh-cut/test.js | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index c44aef0..3760a6f 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -1,5 +1,4 @@ // import * as THREE from 'three'; -// import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' import Delaunator from 'https://cdn.skypack.dev/delaunator@5.0.0'; class MeshCutter { diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 1cfbb71..bf34e9e 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -1,8 +1,8 @@ -import * as THREE from '/lib/three.js_github/build/three.module.js' -// import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' +// import * as THREE from '/lib/three.js_github/build/three.module.js' +import * as THREE from 'https://cdn.skypack.dev/three@0.136?min' window.THREE = THREE -import { OrbitControls } from '/lib/three.js_github/examples/jsm/controls/OrbitControls.js' -// import { OrbitControls } from 'https://cdn.skypack.dev/three@0.136/examples/jsm/controls/OrbitControls.js' +// import { OrbitControls } from '/lib/three.js_github/examples/jsm/controls/OrbitControls.js' +import { OrbitControls } from 'https://cdn.skypack.dev/three@0.136/examples/jsm/controls/OrbitControls.js' import { MeshCutter } from './MeshCutter.js' window.container = null From f5e5dbe2d22819c1ecf649e417d9e45637d8f902 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 12:14:38 +0800 Subject: [PATCH 27/33] fix pointsInner bug. --- mesh-cut/MeshCutter.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 3760a6f..535e562 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -564,10 +564,9 @@ class MeshCutter { this.points1.push(v0, v1, v2); this.normals1.push(n0, n1, n2); this.uvs1.push(u0, u1, u2); - this.linesInner.push(v1, v2); - this.pointsInner.push(v1, v2); - // this.normalsInner.push(n1, n2); - this.uvsInner.push(u1, u2); + this.pointsInner.push(v0); + // this.normalsInner.push(n0); + this.uvsInner.push(u0); } } else if (sign1 === 1) { if (sign0 === -1) { From c5733e597c4a35f2ca6bbb6f5453a00f4d53da86 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 12:44:29 +0800 Subject: [PATCH 28/33] rename. --- mesh-cut/MeshCutter.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 535e562..c0c40fb 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -58,9 +58,7 @@ class MeshCutter { } markOuterHalfedges() { - // todo: need recur filter out. - - let anyNotOverlap = false + let anyTriangleNotOverlap = false // todo: performance: filter halfedge === -1 first. for(let i = 0; i < this.delaunay.numTriangles; i++) { if(this.delaunay.outers[i * 3 + 0]) continue @@ -79,7 +77,7 @@ class MeshCutter { const x2 = this.delaunay.coords[coordIndex2 * 2] const y2 = this.delaunay.coords[coordIndex2 * 2 + 1] - let anyNotOverlap2 = false + let anyEdgeNotOverlap = false if(halfedge0 === -1) { let isOverlap0 = false for(let il = 0; il < this.linesInner.length; il += 2) { @@ -96,7 +94,7 @@ class MeshCutter { } } if(!isOverlap0) { - anyNotOverlap2 = true + anyEdgeNotOverlap = true // continue }; } @@ -117,7 +115,7 @@ class MeshCutter { } } if(!isOverlap1) { - anyNotOverlap2 = true + anyEdgeNotOverlap = true // continue }; } @@ -138,16 +136,16 @@ class MeshCutter { } } if(!isOverlap2) { - anyNotOverlap2 = true + anyEdgeNotOverlap = true // continue }; } - if(anyNotOverlap2) { + if(anyEdgeNotOverlap) { this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 0]] = -1 this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 1]] = -1 this.delaunay.halfedges[this.delaunay.halfedges[i * 3 + 2]] = -1 - anyNotOverlap = true + anyTriangleNotOverlap = true this.delaunay.outers[i * 3 + 0] = true this.delaunay.outers[i * 3 + 1] = true this.delaunay.outers[i * 3 + 2] = true @@ -165,12 +163,10 @@ class MeshCutter { // ) } - return anyNotOverlap + return anyTriangleNotOverlap } delOuterTriangles() { - // todo: need recur filter out. - // this.delaunay2 = { // coords: this.delaunay.coords.slice(), // halfedges: this.delaunay.halfedges.slice(), From 4efee2cc0ebfd0aa821bf603aa6e72aa1d1766d6 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 12:45:22 +0800 Subject: [PATCH 29/33] fix precision problem --- mesh-cut/MeshCutter.js | 7 ++++++- mesh-cut/test.js | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index c0c40fb..a31211d 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -10,7 +10,7 @@ class MeshCutter { this.planeQuaternion = new THREE.Quaternion(); this.planeQuaternionNegate = new THREE.Quaternion(); this.zAxis = new THREE.Vector3(0, 0, 1); - this.epsilon = 0.001; + this.epsilon = 0.000001; } getIntersectNode(v0, v1, n0, n1, u0, u1) { @@ -29,6 +29,11 @@ class MeshCutter { const uvPart = this.tempVector2.subVectors(u1, u0).multiplyScalar(ratio); const uI = new THREE.Vector2().copy(u0).add(uvPart); + // round vI + vI.x = Math.round(vI.x / this.epsilon) * this.epsilon; + vI.y = Math.round(vI.y / this.epsilon) * this.epsilon; + vI.z = Math.round(vI.z / this.epsilon) * this.epsilon; + return {vI, nI, uI}; } diff --git a/mesh-cut/test.js b/mesh-cut/test.js index bf34e9e..105e773 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -213,7 +213,16 @@ if (true) { // window.plane = new THREE.Plane(new THREE.Vector3(0,1,0).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(0,0,1).normalize(), constant) // window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) - window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) + + // all fixed + window.plane = new THREE.Plane(new THREE.Vector3(-0.786569122554457, -0.5837970457276649, -0.20122133297332703).normalize(), constant) // error + // window.plane = new THREE.Plane(new THREE.Vector3(-0.8670086735851099, 0.07824129821275651, 0.49211203925749536).normalize(), constant) // problem numTriangles 4 + // window.plane = new THREE.Plane(new THREE.Vector3(-0.4222418818893121, -0.445712066991348, 0.7893367763615682).normalize(), constant) // problem numTriangles 3 + // end all fixed + + // window.plane = new THREE.Plane(new THREE.Vector3(-0.011821913469205796, -0.8798684146138617, -0.47507032671680977).normalize(), constant) // numTriangles 1 + + // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { window.output = window.meshCutter.cutByPlane(window.box, window.plane, true) From db3d1903660c2c8e8221d10ab1aff075d5417724 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 12:48:17 +0800 Subject: [PATCH 30/33] dev --- mesh-cut/test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 105e773..73b8fc3 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -215,14 +215,14 @@ if (true) { // window.plane = new THREE.Plane(new THREE.Vector3(1,-1,1).normalize(), constant) // all fixed - window.plane = new THREE.Plane(new THREE.Vector3(-0.786569122554457, -0.5837970457276649, -0.20122133297332703).normalize(), constant) // error + // window.plane = new THREE.Plane(new THREE.Vector3(-0.786569122554457, -0.5837970457276649, -0.20122133297332703).normalize(), constant) // error // window.plane = new THREE.Plane(new THREE.Vector3(-0.8670086735851099, 0.07824129821275651, 0.49211203925749536).normalize(), constant) // problem numTriangles 4 // window.plane = new THREE.Plane(new THREE.Vector3(-0.4222418818893121, -0.445712066991348, 0.7893367763615682).normalize(), constant) // problem numTriangles 3 // end all fixed // window.plane = new THREE.Plane(new THREE.Vector3(-0.011821913469205796, -0.8798684146138617, -0.47507032671680977).normalize(), constant) // numTriangles 1 - // window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) + window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { window.output = window.meshCutter.cutByPlane(window.box, window.plane, true) From 898006d9b6555ded898b0022e0022d4531a31e68 Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 13:16:02 +0800 Subject: [PATCH 31/33] already rounded in getIntersectNode(), so should no need to round elsewhere. --- mesh-cut/MeshCutter.js | 52 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index a31211d..015ba38 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -88,11 +88,11 @@ class MeshCutter { for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] - if( // todo: why lost precision? - // (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - // (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) - (Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon && Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon) || - (Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon && Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon) + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + // (Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon && Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon) || + // (Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon && Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon) ) { isOverlap0 = true; break; @@ -110,10 +110,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - // (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - // (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) - (Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon && Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon) || - (Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon && Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon) + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + // (Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon && Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon) || + // (Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon && Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon) ) { isOverlap1 = true; break; @@ -131,10 +131,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - // (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - // (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) - (Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon && Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon) || - (Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon && Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon) + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + // (Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon && Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon) || + // (Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon && Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon) ) { isOverlap2 = true; break; @@ -208,11 +208,11 @@ class MeshCutter { for(let il = 0; il < this.linesInner.length; il += 2) { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] - if( // todo: why lost precision? - // (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || - // (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) - (Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon && Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon) || - (Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon && Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon) + if( + (x0 === p0.x && y0 === p0.y && x1 === p1.x && y1 === p1.y) || + (x0 === p1.x && y0 === p1.y && x1 === p0.x && y1 === p0.y) + // (Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon && Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon) || + // (Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon && Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon) ) { isOverlap0 = true; break; @@ -227,10 +227,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - // (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || - // (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) - (Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon && Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon) || - (Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon && Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon) + (x1 === p0.x && y1 === p0.y && x2 === p1.x && y2 === p1.y) || + (x1 === p1.x && y1 === p1.y && x2 === p0.x && y2 === p0.y) + // (Math.abs(x1 - p0.x) < this.epsilon && Math.abs(y1 - p0.y) < this.epsilon && Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon) || + // (Math.abs(x1 - p1.x) < this.epsilon && Math.abs(y1 - p1.y) < this.epsilon && Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon) ) { isOverlap1 = true; break; @@ -245,10 +245,10 @@ class MeshCutter { const p0 = this.linesInner[il] const p1 = this.linesInner[il + 1] if( - // (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || - // (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) - (Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon && Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon) || - (Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon && Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon) + (x2 === p0.x && y2 === p0.y && x0 === p1.x && y0 === p1.y) || + (x2 === p1.x && y2 === p1.y && x0 === p0.x && y0 === p0.y) + // (Math.abs(x2 - p0.x) < this.epsilon && Math.abs(y2 - p0.y) < this.epsilon && Math.abs(x0 - p1.x) < this.epsilon && Math.abs(y0 - p1.y) < this.epsilon) || + // (Math.abs(x2 - p1.x) < this.epsilon && Math.abs(y2 - p1.y) < this.epsilon && Math.abs(x0 - p0.x) < this.epsilon && Math.abs(y0 - p0.y) < this.epsilon) ) { isOverlap2 = true; break; From 42e74a782b407e9ee0faa95ea092c5b3127c455b Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 14:54:12 +0800 Subject: [PATCH 32/33] fix normal problem: keep original normals again, just set normals of new inner faces. --- mesh-cut/MeshCutter.js | 30 +++++++++-------- mesh-cut/test.js | 74 +++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 50 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index 015ba38..e079f13 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -4,12 +4,14 @@ import Delaunator from 'https://cdn.skypack.dev/delaunator@5.0.0'; class MeshCutter { constructor() { this.tempLine1 = new THREE.Line3(); + this.plane = null this.localPlane = new THREE.Plane(new THREE.Vector3(0, 0, 1), 0); this.tempVector3 = new THREE.Vector3(); this.tempVector2 = new THREE.Vector2(); this.planeQuaternion = new THREE.Quaternion(); this.planeQuaternionNegate = new THREE.Quaternion(); this.zAxis = new THREE.Vector3(0, 0, 1); + this.zAxisN = new THREE.Vector3(0, 0, -1); this.epsilon = 0.000001; } @@ -353,9 +355,9 @@ class MeshCutter { uv2, ) // this.uvs1.push( - // 0, - // 0, - // 0, + // new THREE.Vector2(), + // new THREE.Vector2(), + // new THREE.Vector2(), // ) // const normal0 = this.normalsInner[this.delaunay.triangles[i * 3 + 0]] @@ -367,14 +369,14 @@ class MeshCutter { // normal1, // ) this.normals1.push( - 0, - 0, - 0, + this.zAxis, + this.zAxis, + this.zAxis, ) this.normals2.push( - 0, - 0, - 0, + this.zAxisN, + this.zAxisN, + this.zAxisN, ) } } @@ -385,8 +387,10 @@ class MeshCutter { // object1 can be null only in case of internal error // Returned value is number of pieces, 0 for error. - this.planeQuaternion.setFromUnitVectors(this.zAxis, plane.normal); - this.planeQuaternionNegate.setFromUnitVectors(plane.normal, this.zAxis); + this.plane = plane + + this.planeQuaternion.setFromUnitVectors(this.zAxis, this.plane.normal); + this.planeQuaternionNegate.setFromUnitVectors(this.plane.normal, this.zAxis); this.isInnerFaces = isInnerFaces; @@ -779,7 +783,7 @@ class MeshCutter { object1.quaternion.copy(object.quaternion); numObjects++; if(this.isInnerFaces) { - object1.geometry.computeVertexNormals(); + // object1.geometry.computeVertexNormals(); // note: can't re-compute here, will break other normals other than inner faces. object1.geometry.applyQuaternion(this.planeQuaternion) } } @@ -789,7 +793,7 @@ class MeshCutter { object2.quaternion.copy(object.quaternion); numObjects++; if(this.isInnerFaces) { - object2.geometry.computeVertexNormals(); + // object2.geometry.computeVertexNormals(); // note: can't re-compute here, will break other normals other than inner faces. object2.geometry.applyQuaternion(this.planeQuaternion) } } diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 73b8fc3..9863cd6 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -103,8 +103,8 @@ window.meshCutter = new MeshCutter() // // const geometry = new THREE.PlaneGeometry() // // const geometry = new THREE.CylinderGeometry() // const geometry = new THREE.TorusGeometry( 1, .4, 3, 3 ); -// // const geometry = new THREE.TorusKnotGeometry() -// geometry.scale(0.5, 0.5, 0.5) +const geometry = new THREE.TorusKnotGeometry() +geometry.scale(0.5, 0.5, 0.5) // geometry.rotateX(Math.PI/2) // geometry.rotateY(Math.PI/2) @@ -142,44 +142,44 @@ window.meshCutter = new MeshCutter() // -const positions = [ - -1, 0, 1, - 1, 0, 1, - 0, 1, 0, - - 0, 0, -1, - -1, 0, 1, - 0, 1, 0, - - 0, 0, -1, - 1, 0, 1, - 0, 1, 0, - - 0, 0, -1, - 1, 0, 1, - -1, 0, 1, -] -const uvs = [ - .5, 1, - 0, 0, - 1, 0, +// const positions = [ +// -1, 0, 1, +// 1, 0, 1, +// 0, 1, 0, + +// 0, 0, -1, +// -1, 0, 1, +// 0, 1, 0, + +// 0, 0, -1, +// 1, 0, 1, +// 0, 1, 0, + +// 0, 0, -1, +// 1, 0, 1, +// -1, 0, 1, +// ] +// const uvs = [ +// .5, 1, +// 0, 0, +// 1, 0, - .5, 1, - 0, 0, - 1, 0, +// .5, 1, +// 0, 0, +// 1, 0, - .5, 1, - 0, 0, - 1, 0, +// .5, 1, +// 0, 0, +// 1, 0, - .5, 1, - 0, 0, - 1, 0, -] -const geometry = new THREE.BufferGeometry() -geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) ); -geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) ); -geometry.computeVertexNormals() +// .5, 1, +// 0, 0, +// 1, 0, +// ] +// const geometry = new THREE.BufferGeometry() +// geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) ); +// geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) ); +// geometry.computeVertexNormals() // From 72418d27b693147adc53bb8de27a6f94c6fa5fef Mon Sep 17 00:00:00 2001 From: gonnavis Date: Wed, 16 Mar 2022 15:10:48 +0800 Subject: [PATCH 33/33] add arg: isDelOuterTriangles. && doc. --- mesh-cut/MeshCutter.js | 38 ++++++++++++++++++++++++-------------- mesh-cut/test.js | 2 +- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/mesh-cut/MeshCutter.js b/mesh-cut/MeshCutter.js index e079f13..08a7ca7 100644 --- a/mesh-cut/MeshCutter.js +++ b/mesh-cut/MeshCutter.js @@ -307,18 +307,20 @@ class MeshCutter { console.log({numTriangles: this.delaunay.numTriangles}) console.log({linesInner: this.linesInner}) - this.delaunay.outers = [] - for(let i = 0; i < this.delaunay.trianglesLen; i++) { - this.delaunay.outers.push(false) - } - while(this.markOuterHalfedges()) { - console.log('recur') - // debugger - } - // this.markOuterHalfedges(); - // this.markOuterHalfedges(); + if(this.isDelOuterTriangles) { + this.delaunay.outers = [] + for(let i = 0; i < this.delaunay.trianglesLen; i++) { + this.delaunay.outers.push(false) + } + while(this.markOuterHalfedges()) { + console.log('recur') + // debugger + } + // this.markOuterHalfedges(); + // this.markOuterHalfedges(); - this.delOuterTriangles() + this.delOuterTriangles() + } for(let i = 0; i < this.delaunay.numTriangles; i++) { const x0 = this.delaunay.coords[this.delaunay.triangles[i * 3 + 0] * 2] @@ -381,19 +383,27 @@ class MeshCutter { } } - cutByPlane(object, plane, isInnerFaces = false) { // todo: add arg: isDelOuterTriangles = false, convex geometries don't need delete outer triangles. + cutByPlane(object, plane, isInnerFaces = false, isDelOuterTriangles = false) { // todo: add arg: isDelOuterTriangles = false, convex geometries don't need delete outer triangles. // Returns breakable objects in output.object1 and output.object2 members, the resulting 2 pieces of the cut. // object2 can be null if the plane doesn't cut the object. // object1 can be null only in case of internal error // Returned value is number of pieces, 0 for error. + /* args: + object: The THREE.Object3D which it's geometry will be cut. + plane: The THREE.Plane used to cut the object. + isInnerFaces: Whether generate inner faces at cut plane. + isDelOuterTriangles: When isInnerFaces is true, whether search and delete outer triangles. Convex geometry don't need delete outer triangles. + */ + // args this.plane = plane + this.isInnerFaces = isInnerFaces; + this.isDelOuterTriangles = isDelOuterTriangles; + // end args this.planeQuaternion.setFromUnitVectors(this.zAxis, this.plane.normal); this.planeQuaternionNegate.setFromUnitVectors(this.plane.normal, this.zAxis); - this.isInnerFaces = isInnerFaces; - const geometry = object.geometry; const coords = geometry.attributes.position.array; const normals = geometry.attributes.normal.array; diff --git a/mesh-cut/test.js b/mesh-cut/test.js index 9863cd6..e56a487 100644 --- a/mesh-cut/test.js +++ b/mesh-cut/test.js @@ -225,7 +225,7 @@ if (true) { window.plane = new THREE.Plane(new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize(), constant) setTimeout(() => { - window.output = window.meshCutter.cutByPlane(window.box, window.plane, true) + window.output = window.meshCutter.cutByPlane(window.box, window.plane, true, true) if (window.output.object1) { window.scene.add(window.output.object1) window.output.object1.position.x += -1 * 1.1