Skip to content

editorGlobalsDelaunayPolygonTriangulator

Class: DelaunayPolygonTriangulator

Hierarchy

DelaunayPolygonTriangulator

Index

Properties

Methods

Properties

Protected steinerPointDistanceLevels

steinerPointDistanceLevels: number[] = [256, 128, 32, 16, 8, 4, 2]

Inherited from PolygonTriangulator.steinerPointDistanceLevels

Defined in src/util/polygon/triangulatingClipper/Triangulator/PolygonTriangulator.ts:22

Methods

Private _addCollinearPoints

_addCollinearPoints(points: ArrayPoint2[], maxDesiredPointDistance: number): void

Defined in src/util/polygon/triangulatingClipper/Triangulator/DelaunayPolygonTriangulator.ts:274

Adds collinear points to long lines to improve triangulation result. modifies the points array

Parameters:

Name Type Description
points ArrayPoint2[] -
maxDesiredPointDistance number -

Returns: void


Private _deduplicatePoints

_deduplicatePoints(outline: ArrayPoint2[]): object

Defined in src/util/polygon/triangulatingClipper/Triangulator/DelaunayPolygonTriangulator.ts:118

Parameters:

Name Type
outline ArrayPoint2[]

Returns: object

point and edges (filled with pairs of point indices) based on a possibly duplicate outline.

  • edges: Array‹[ArrayPoint2, ArrayPoint2]›

  • points: ArrayPoint2[]


Protected _generateSteinerPoints

_generateSteinerPoints(polygon: Polygon | MultiPolygon, options: ISteinerPointOptions): Array‹object›

Inherited from PolygonTriangulator._generateSteinerPoints

Defined in src/util/polygon/triangulatingClipper/Triangulator/PolygonTriangulator.ts:46

Steiner points are additional triangulation points inside the polygon that are triangulated to optimize the quality of the triangulation solution. we add regularly spaced steiner points in order to prevent long (and degenerated) triangles.

Parameters:

Name Type Default
polygon Polygon | MultiPolygon -
options ISteinerPointOptions {}

Returns: Array‹object›


Private _getCandidatePoints

_getCandidatePoints(candidates: Array‹Polygon | MultiPolygon›, minSteinerPointsDistance: any, ε: any): ArrayPoint2[]

Defined in src/util/polygon/triangulatingClipper/Triangulator/DelaunayPolygonTriangulator.ts:241

Based on the candidate triangles, returns a list of points that will be used for candidate triangulation and thus should be used as steiner points for this polygon

Parameters:

Name Type Description
candidates Array‹Polygon | MultiPolygon -
minSteinerPointsDistance any -
ε any -

Returns: ArrayPoint2[]


Private _mergePointsWithOutlines

_mergePointsWithOutlines(points: ArrayPoint2[], outlines: any, ε: number): ArrayPoint2[]

Defined in src/util/polygon/triangulatingClipper/Triangulator/DelaunayPolygonTriangulator.ts:172

Given an array of points and and array of outlines, tries to put the points on the outlines. Removes all points that have been placed on the altered outlines

Parameters:

Name Type Description
points ArrayPoint2[] -
outlines any -
ε number -

Returns: ArrayPoint2[]

filtered points array, points that were merged onto the outlines are removed


Private _reconstructTriangles

_reconstructTriangles(pointsAsVectors: Vector3[], trianglesAsIndices: Array‹[number, number, number]›): Triangle[]

Inherited from PolygonTriangulator._reconstructTriangles

Defined in src/util/polygon/triangulatingClipper/Triangulator/PolygonTriangulator.ts:161

Parameters:

Name Type Description
pointsAsVectors Vector3[] -
trianglesAsIndices Array‹[number, number, number]› indices into the pointsAsVectors array

Returns: Triangle[]


triangulate

triangulate(polygon: Polygon | MultiPolygon, candidates: Array‹Polygon | MultiPolygon›, addSteinerPoints: boolean): Triangle[]

Overrides PolygonTriangulator.triangulate

Defined in src/util/polygon/triangulatingClipper/Triangulator/DelaunayPolygonTriangulator.ts:20

Parameters:

Name Type Default Description
polygon Polygon | MultiPolygon - -
candidates Array‹Polygon | MultiPolygon [] -
addSteinerPoints boolean true -

Returns: Triangle[]