slab-decomposition

WebJar for slab-decomposition

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

slab-decomposition
Last Version

Last Version

1.0.2
Release Date

Release Date

Type

Type

jar
Description

Description

slab-decomposition
WebJar for slab-decomposition
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mikolalysenko/slab-decomposition

Download slab-decomposition

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/slab-decomposition/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>slab-decomposition</artifactId>
    <version>1.0.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/slab-decomposition/
implementation 'org.webjars.npm:slab-decomposition:1.0.2'
// https://jarcasting.com/artifacts/org.webjars.npm/slab-decomposition/
implementation ("org.webjars.npm:slab-decomposition:1.0.2")
'org.webjars.npm:slab-decomposition:jar:1.0.2'
<dependency org="org.webjars.npm" name="slab-decomposition" rev="1.0.2">
  <artifact name="slab-decomposition" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='slab-decomposition', version='1.0.2')
)
libraryDependencies += "org.webjars.npm" % "slab-decomposition" % "1.0.2"
[org.webjars.npm/slab-decomposition "1.0.2"]

Dependencies

compile (3)

Group / Artifact Type Version
org.webjars.npm : binary-search-bounds jar [1.0.0,2)
org.webjars.npm : functional-red-black-tree jar [1.0.0,2)
org.webjars.npm : robust-orientation jar [1.1.3,2)

Project Modules

There are no modules declared in this project.

slab-decomposition

Given a collection of line segments, constructs a slab decomposition for the purpose of point location queries. This implementation uses a functional red-black tree to store the slabs, requires O(n log(n)) space and answers vertical ray queries in O(log(n)) time.

Example

var makeSlab = require("slab-decomposition")
var slabs = makeSlab([
  [[0, 0], [10, 10]],
  [[10,10], [20, 0]],
  [[5, 5], [20, 0]]
])

for(var i=-10; i<10; ++i) {
  console.log(slabs.castUp([i, -1]))
}

Install

npm install slab-decomposition

API

Constructor

var slabs = require("slab-decomposition")(segments)

Constructs a slab decomposition from the segments

  • segments is a collection of line segments which only overlap at their end points

Returns A slab decomposition data structure

Methods

slabs.castUp(point)

Casts a vertical ray from point going upward along [0,1]. Returns the index of the first segment hit.

  • point is the base point of the ray

Returns The index of the first segment hit by point, otherwise -1 if no segment intersects the ray.

Credits

(c) 2014 Mikola Lysenko. MIT License

Versions

Version
1.0.2