slab-decomposition
Slab decomposition data structure for 2D vertical ray queries
Last updated 11 years ago by mikolalysenko .
MIT · Repository · Bugs · Original npm
$ cnpm install slab-decomposition 
SYNC missed versions from official npm registry.

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

Current Tags

  • 1.0.2                                ...           latest (11 years ago)

1 Versions

  • 1.0.2                                ...           11 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (2)
Dependents (0)
None

Copyright 2013 - present © cnpmjs.org