Module: modeling/geometries/poly3

Represents a convex 3D polygon consisting of a list of ordered vertices.

Source:
See:
  • poly3 for data structure information.
Examples
poly3.create([[0,0,0], [4,0,0], [4,3,12]])
{"vertices": [[0,0,0], [4,0,0], [4,3,12]]}

Methods

(static) clone(outopt, polygon) → {poly3}

Create a deep clone of the given polygon

Parameters:
Name Type Attributes Description
out poly3 <optional>

receiving polygon

polygon poly3

polygon to clone

Source:
Returns:

a new polygon

Type
poly3

(static) create(verticesopt) → {poly3}

Creates a new 3D polygon with initial values.

Parameters:
Name Type Attributes Description
vertices Array <optional>

a list of vertices (3D)

Source:
Returns:

a new polygon

Type
poly3

(static) fromPoints(points) → {poly3}

Create a polygon from the given points.

Parameters:
Name Type Description
points Array

list of points (3D)

Source:
Returns:

a new polygon

Type
poly3
Example
const points = [
  [0,  0, 0],
  [0, 10, 0],
  [0, 10, 10]
]
const polygon = fromPoints(points)

(static) fromPointsAndPlane(vertices, plane) → {poly3}

Create a polygon from the given vertices and plane. NOTE: No checks are performed on the parameters.

Parameters:
Name Type Description
vertices Array

list of vertices (3D)

plane plane

plane of the polygon

Source:
Returns:

a new polygon

Type
poly3

(static) invert(polygon) → {poly3}

Invert the give polygon to face the opposite direction.

Parameters:
Name Type Description
polygon poly3

the polygon to invert

Source:
Returns:

a new poly3

Type
poly3

(static) isA(object) → {Boolean}

Determine if the given object is a polygon.

Parameters:
Name Type Description
object Object

the object to interrogate

Source:
Returns:

true if the object matches a poly3

Type
Boolean

(static) isConvex(polygon) → {Boolean}

Check whether the given polygon is convex.

Parameters:
Name Type Description
polygon poly3

the polygon to interrogate

Source:
Returns:

true if convex

Type
Boolean

(static) measureArea(polygon) → {Number}

Measure the area of the given polygon.

Parameters:
Name Type Description
polygon poly3

the polygon to measure

Source:
See:
  • 2000 softSurfer http://geomalgorithms.com
Returns:

area of the polygon

Type
Number

(static) measureBoundingBox(polygon) → {Array}

Parameters:
Name Type Description
polygon poly3

the polygon to measure

Source:
Returns:

an array of two vectors (3D); minimum and maximum coordinates

Type
Array

(static) measureBoundingSphere(polygon) → {vec4}

Measure the bounding sphere of the given polygon.

Parameters:
Name Type Description
polygon poly3

the polygon to measure

Source:
Returns:

the computed bounding sphere; center point (3D) and radius

Type
vec4

(static) measureSignedVolume(polygon) → {Number}

Measure the signed volume of the given polygon, which must be convex. The volume is that formed by the tetrahedron connected to the axis [0,0,0], and will be positive or negative based on the rotation of the vertices.

Parameters:
Name Type Description
polygon poly3

the polygon to measure

Source:
See:
Returns:

volume of the polygon

Type
Number

(static) toPoints(polygon) → {Array}

Return the given polygon as a list of points. NOTE: The returned array should not be modified as the points are shared with the geometry.

Parameters:
Name Type Description
polygon poly3

the polygon

Source:
Returns:

list of points (3D)

Type
Array

(static) toString(polygon) → {String}

Parameters:
Name Type Description
polygon poly3

the polygon to measure

Source:
Returns:

the string representation

Type
String

(static) transform(matrix, polygon) → {poly3}

Transform the given polygon using the given matrix.

Parameters:
Name Type Description
matrix mat4

the matrix to transform with

polygon poly3

the polygon to transform

Source:
Returns:

a new polygon

Type
poly3

(static) validate(object)

Determine if the given object is a valid polygon. Checks for valid data structure, convex polygons, and duplicate points.

If the geometry is not valid, an exception will be thrown with details of the geometry error.

Parameters:
Name Type Description
object Object

the object to interrogate

Source:
Throws:

error if the geometry is not valid

Type
Error