1.3.0 โข Published 4 years ago
intersection-wasm v1.3.0
About
Mesh-Mesh and Triangle-Triangle Intersection tests.
/**
* Triangle/triangle intersection test
* @returns true if the triangles intersect, otherwise false
*/
const noDivTriTriIsect = (
v0: [number, number, number],
v1: [number, number, number],
v2: [number, number, number],
u0: [number, number, number],
u1: [number, number, number],
u2: [number, number, number],
// not used by default
epsilon?: number
): boolean => {...}
/**
* Mesh/mesh intersection test
* @returns true if the meshes intersect, otherwise false
*/
const meshMeshIsect => (
// m1.length should be divisible by 9
m1: ArrayLike<number>,
// m2.length should be divisible by 9
m2: ArrayLike<number>,
// defaults to 0.000001
epsilon?: number
): boolean => {...}
๐ด Usage
Installation
You will need a package manager, either npm (comes with node) or yarn.
You will also need a bundler, webpack or Rollup, configured for your project.
Then, in a terminal:
npm install intersection-wasm
# Or, yarn add intersection-wasm
Afterwards, import and use as follows:
import * as intersection from 'intersection-wasm';
intersection.noDivTriTriIsect(
[0.848311, 0.71034, 0.799546],
[0.921121, 0.519029, 0.950985],
[0, 1.751, 0],
[-0.5, 0.8755, 0.5],
[0.5, 0.8755, 1.5],
[0.5, 0.8755, 0.5]
); // โ false
intersection.meshMeshIsect(
new Float32Array([
-140.98574829101562,
-173.12110900878906,
-0.9740447998046875,
-140.98574829101562,
-174.72113037109375,
-0.9740447998046875,
-140.68576049804688,
-174.72113037109375,
-0.9740447998046875
]),
new Float32Array([
-140.98574829101562,
-174.72113037109375,
-0.9740447998046875,
-140.98574829101562,
-174.72113037109375,
-0.9740447998046875,
-140.98574829101562,
-174.72113037109375,
-1.137430191040039,
-140.68576049804688,
-174.72113037109375,
-1.137430191040039,
-140.98574829101562,
-174.72113037109375,
-0.9740447998046875,
-140.68576049804688,
-174.72113037109375,
-1.137430191040039
]),
0.0001
); // โ true
โ Development
๐ ๏ธ Build WASM
wasm-pack build
๐ ๏ธ Build natively
cargo build
๐ฌ Run tests in the browser
cd demo && npm i && npm start
๐ฌ Test natively
cargo test
๐ Publish to NPM
wasm-pack publish