Skip to content

mikolalysenko/robust-in-sphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

robust-in-sphere

Exact arithmetic test to check if (n+2) points are cospherical.

(Very) loosely inspired by Jonathan Shewchuk's work on robust predicates. Currently not as fast, but pull requests are welcome.

testling badge

build status

Example

var inSphere = require("robust-in-sphere")

console.log(inSphere(
  [0, 1],
  [1, 0],
  [-1, 0],
  [0, -1]))

Install

npm install robust-in-sphere

API

var inSphere = require("robust-in-sphere")

inSphere(a,b,c,...)

Tests if a collection of n+2 points in n-dimensional space are cospherical or if the last point is contained in the sphere or not.

  • a,b,c,... is a list of points

Returns A signed integer that gives the orientation of the points

  • <0 if the last point is contained in the oriented sphere defined by the previous two points
  • >0 if the last point is outside the sphere
  • 0 is the points are cospherical

Notes Up to 6 points it is possible to get a specialized version of inSphere that avoids an extra dispatch using the syntax:

inSphere[4](a,b,c,d) === inSphere(a,b,c,d)

Credits

(c) 2014 Mikola Lysenko. MIT License

About

Exact arithmetic test to check if (n+2) points are cospherical

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published