Intersection Wasm

Mesh-Mesh and Triangle-Triangle Intersection tests based on the algorithm by Tomas Akenine-Möller
Alternatives To Intersection Wasm
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Mytinystl8,789
a month ago25otherC++
Achieve a tiny STL in C++11
Web Skills6,285
6 months ago55otherJavaScript
A visual overview of useful skills to learn as a web developer
Awesome Python Resources1,204
6 days ago9apache-2.0
Awesome Python Resources
Scala939
4 months ago22mitScala
All Algorithms implemented in Scala
Rappor698
4 years ago36apache-2.0R
RAPPOR: Privacy-Preserving Reporting Algorithms
Text565603488 years ago15April 13, 20151otherRuby
Collection of text algorithms. gem install text
Algorithm_study502
2 months ago3mitC++
This repository consists of materials for those preparing for coding tests and algorithm interviews.
Cracking The Coding Interview495
2 years ago2bsd-3-clauseC++
:books: C++ and Python solutions with automated tests for Cracking the Coding Interview 6th Edition.
Library Checker Problems383
a day ago121apache-2.0C++
The problem data (Test case generator, judge's solution, task, ...) of Library Checker
Scalgos377
4 years ago13Scala
algorithms in scala
Alternatives To Intersection Wasm
Select To Compare


Alternative Project Comparisons
Readme

intersection-wasm

Mesh-Mesh and Triangle-Triangle Intersection tests based on the algorithm by Tomas Akenine-Möller.[1]

Built with 🦀 Rust and 🕸 WebAssembly.

Build Status GitHub version npm version license

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
1. Möller, T. (1997). A fast triangle-triangle intersection test. Journal of graphics tools, 2(2), 25-30.
Popular Algorithms Projects
Popular Testing Projects
Popular Computer Science Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Testing
Rust
Algorithms
3d Graphics
Mesh
Collision
Rust Library
Collision Detection