API Docs for: 0.1.0
Show:

Polygon Class

Defined in: src/Polygon.js:7

Polygon class.

Constructor

Polygon

()

Defined in src/Polygon.js:7

Methods

append

(
  • poly
  • from
  • to
)
Array

Defined in src/Polygon.js:61

Append points "from" to "to"-1 from an other polygon "poly" onto this one.

Parameters:

  • poly Polygon

    The polygon to get points from.

  • from Number

    The vertex index in "poly".

  • to Number

    The end vertex index in "poly". Note that this vertex is NOT included when appending.

Returns:

Array:

at

(
  • i
)
Array

Defined in src/Polygon.js:22

Get a vertex at position i. It does not matter if i is out of bounds, this function will just cycle.

Parameters:

  • i Number

Returns:

Array:

canSee

(
  • a
  • b
)
Boolean

Defined in src/Polygon.js:128

Check if two vertices in the polygon can see each other

Parameters:

  • a Number

    Vertex index 1

  • b Number

    Vertex index 2

Returns:

Boolean:

clear

() Array

Defined in src/Polygon.js:52

Clear the polygon data

Returns:

Array:

copy

(
  • i
  • j
  • [targetPoly]
)
Polygon

Defined in src/Polygon.js:160

Copy the polygon from vertex i to vertex j.

Parameters:

  • i Number
  • j Number
  • [targetPoly] Polygon optional

    Optional target polygon to save in.

Returns:

Polygon:

The resulting copy.

decomp

() Array

Defined in src/Polygon.js:223

Decomposes the polygon into one or more convex sub-Polygons.

Returns:

Array:

An array or Polygon objects.

first

() Array

Defined in src/Polygon.js:34

Get first vertex

Returns:

Array:

getCutEdges

() Array

Defined in src/Polygon.js:190

Decomposes the polygon into convex pieces. Returns a list of edges [[p1,p2],[p2,p3],...] that cuts the polygon. Note that this algorithm has complexity O(N^4) and will be very slow for polygons with many vertices.

Returns:

Array:

isReflex

(
  • i
)
Boolean

Defined in src/Polygon.js:115

Check if a point in the polygon is a reflex point

Parameters:

  • i Number

Returns:

Boolean:

isSimple

(
  • path
)
Boolean

Defined in src/Polygon.js:280

Checks that the line segments of this polygon do not intersect each other.

Parameters:

  • path Array

    An array of vertices e.g. [[0,0],[0,1],...]

Returns:

Boolean:

last

() Array

Defined in src/Polygon.js:43

Get last vertex

Returns:

Array:

makeCCW

()

Defined in src/Polygon.js:82

Make sure that the polygon vertices are ordered counter-clockwise.

quickDecomp

(
  • result
  • [reflexVertices]
  • [steinerPoints]
  • [delta]
  • [maxlevel]
  • [level]
)
Array

Defined in src/Polygon.js:324

Quickly decompose the Polygon into convex sub-polygons.

Parameters:

  • result Array
  • [reflexVertices] Array optional
  • [steinerPoints] Array optional
  • [delta] Number optional
  • [maxlevel] Number optional
  • [level] Number optional

Returns:

Array:

removeCollinearPoints

(
  • [precision]
)
Number

Defined in src/Polygon.js:477

Remove collinear points in the polygon.

Parameters:

  • [precision] Number optional

    The threshold angle to use when determining whether two edges are collinear. Use zero for finest precision.

Returns:

Number:

The number of points removed

reverse

()

Defined in src/Polygon.js:103

Reverse the vertices in the polygon

slice

(
  • cutEdges
)
Array

Defined in src/Polygon.js:236

Slices the polygon given one or more cut edges. If given one, this function will return two polygons (false on failure). If many, an array of polygons.

Parameters:

  • cutEdges Array

    A list of edges, as returned by .getCutEdges()

Returns:

Array:

Properties

vertices

Array

Defined in src/Polygon.js:14

Vertices that this polygon consists of. An array of array of numbers, example: [[0,0],[1,0],..]