From 22242a31ff29f2a8de814ee69cd94419c3677dc8 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 25 Oct 2022 14:48:06 -0400 Subject: [PATCH] updated to track changing PR for direct mesh access --- src/geo/csg.js | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/geo/csg.js b/src/geo/csg.js index a222fb6d..b3f19bcb 100644 --- a/src/geo/csg.js +++ b/src/geo/csg.js @@ -34,7 +34,7 @@ const CSG = { throw "missing one or more meshes"; } const result = Module[op](...args); - const output = result.getMesh({ mode: 2 }); + const output = result.getMesh({ normal: () => undefined }); const errors = [ ...args, result ].map(m => m.status().value); for (let m of [ ...args, result ]) { m.delete(); @@ -47,26 +47,36 @@ const CSG = { toPositionArray(mesh) { const { vertPos, triVerts, vertex, index } = mesh; - if (vertex) { - return vertex; + if (vertex && index) { + const vertices = new Float32Array(index.length * 3); + for (let p=0, i=0, l=index.length; i { console.log({ c, cm: c.getMesh(), - cm0: c.getMesh({ normal: false, mode: 0 }), - cm1: c.getMesh({ normal: false, mode: 1 }), - cm2: c.getMesh({ normal: false, mode: 2 }), - cmn0: c.getMesh({ normal: true, mode: 0 }), - cmn1: c.getMesh({ normal: true, mode: 1 }), - cmn2: c.getMesh({ normal: true, mode: 2 }) + cmd: c.getMesh({ normal: () => undefined }), + cmdn: c.getMesh({}) }); - let l = 5000; + let l = 1000; let s = Module.sphere(10, 100); let sm = s.getMesh(); console.log({ s, sm, - md0: s.getMesh({ mode: 0 }), - md1: s.getMesh({ mode: 1 }), - md2: s.getMesh({ mode: 2 }), + smd: s.getMesh({}), }); console.time('getMesh'); @@ -156,15 +160,11 @@ Module.onRuntimeInitialized = () => { console.timeEnd('getMesh'); console.time(`getMeshDirect`); - for (let i=0; i undefined }); console.timeEnd(`getMeshDirect`); console.time(`getMeshDirect`); - for (let i=0; i