Skip to content

editorGlobalsMultiPolygon

Class: MultiPolygon

A MultiPolygon is a set of polygons, that behaves as if they were one.

Hierarchy

  • MultiPolygon

Index

Constructors

Properties

Methods

Constructors

constructor

+ new MultiPolygon(polygons: Polygon[]): MultiPolygon

Defined in src/util/polygon/MultiPolygon.ts:51

Construct a new MultiPolygon from one or more Polygons.

Note: This does not clone the polygons in order to save allocations. The Polygons passed to this function must therefore be considered invalid afterwards.

Note: This does not enforce any constraints on the polygons. All operations on this MultiPolygon work without any constraints except for subtractPolygonSimple. Others operating on this MultiPolygon might require constraints e.g. the TriangulatingPolygonClipper requires them to not overlap.

Parameters:

Name Type
polygons Polygon[]

Returns: MultiPolygon

Properties

Readonly isMultiPolygon

isMultiPolygon: true = true

Defined in src/util/polygon/MultiPolygon.ts:49


Private polygons

polygons: Polygon[]

Defined in src/util/polygon/MultiPolygon.ts:51

Methods

addCutLinesIfNecessary

addCutLinesIfNecessary(cutLines: ArrayLine2[]): void

Defined in src/util/polygon/MultiPolygon.ts:133

Parameters:

Name Type
cutLines ArrayLine2[]

Returns: void


applyMatrix

applyMatrix(matrix: Matrix4): this

Defined in src/util/polygon/MultiPolygon.ts:197

Parameters:

Name Type
matrix Matrix4

Returns: this


cleanse

cleanse(epsilon?: number, options?: object): boolean

Defined in src/util/polygon/MultiPolygon.ts:234

Parameters:

Optional epsilon: number

Optional options: object

Name Type
area? boolean
collinearPoints? boolean
duplicatePoints? boolean

Returns: boolean


clearCutLines

clearCutLines(): ArrayLine2[]

Defined in src/util/polygon/MultiPolygon.ts:147

Returns: ArrayLine2[]


clone

clone(): MultiPolygon

Defined in src/util/polygon/MultiPolygon.ts:298

Returns: MultiPolygon


constrainCutLinesToAABB

constrainCutLinesToAABB(clamp: boolean): void

Defined in src/util/polygon/MultiPolygon.ts:159

Parameters:

Name Type Default
clamp boolean false

Returns: void


contains

contains(point: ReadonlyVector3, epsilon: number): boolean

Defined in src/util/polygon/MultiPolygon.ts:302

Parameters:

Name Type Default
point ReadonlyVector3 -
epsilon number 0

Returns: boolean


couldIntersect

couldIntersect(otherPolygon: Polygon | MultiPolygon): boolean

Defined in src/util/polygon/MultiPolygon.ts:202

Parameters:

Name Type
otherPolygon Polygon | MultiPolygon

Returns: boolean


discardPolygonsSmallerThan

discardPolygonsSmallerThan(minimumArea: number): void

Defined in src/util/polygon/MultiPolygon.ts:322

Parameters:

Name Type
minimumArea number

Returns: void


getAABB

getAABB(): AABB | null

Defined in src/util/polygon/MultiPolygon.ts:163

Returns: AABB | null


getAllOutlines

getAllOutlines(): ArrayPoint2[][]

Defined in src/util/polygon/MultiPolygon.ts:96

Returns: ArrayPoint2[][]

all outlines of this polygon. First the outlines of all polygons, followed by all the holes.


getAllOutlinesRef

getAllOutlinesRef(): ArrayPoint2[][]

Defined in src/util/polygon/MultiPolygon.ts:103

Returns: ArrayPoint2[][]

references to all outlines of this polygon. First the outlines of all polygons, followed by all the holes.


getArea

getArea(): number

Defined in src/util/polygon/MultiPolygon.ts:230

Returns: number


getCutLines

getCutLines(): ReturnType‹Polygon["getCutLines"]›

Defined in src/util/polygon/MultiPolygon.ts:115

Returns: ReturnType‹Polygon["getCutLines"]›


getDescriptions

getDescriptions(): string[]

Defined in src/util/polygon/MultiPolygon.ts:155

Returns: string[]


getHoles

getHoles(): ReturnType‹Polygon["getHoles"]›

Defined in src/util/polygon/MultiPolygon.ts:107

Returns: ReturnType‹Polygon["getHoles"]›


getHolesRef

getHolesRef(): ReturnType‹Polygon["getHolesRef"]›

Defined in src/util/polygon/MultiPolygon.ts:111

Returns: ReturnType‹Polygon["getHolesRef"]›


getOutlines

getOutlines(): ArrayPoint2[][]

Defined in src/util/polygon/MultiPolygon.ts:85

Returns: ArrayPoint2[][]


getOutlinesRef

getOutlinesRef(): ArrayPoint2[][]

Defined in src/util/polygon/MultiPolygon.ts:89

Returns: ArrayPoint2[][]


getPolygonUnion

getPolygonUnion(): Polygon | Polygon[] | null

Defined in src/util/polygon/MultiPolygon.ts:332

Returns: Polygon | Polygon[] | null

(a) the union of the polygons, (b) an array of unions of polygons if some polygon groups do not touch, (c) null if the polygon is empty.


getPolygons

getPolygons(): Polygon[]

Defined in src/util/polygon/MultiPolygon.ts:70

Returns: Polygon[]

a clone of the polygons.


getPolygonsRef

getPolygonsRef(): readonly Polygon[]

Defined in src/util/polygon/MultiPolygon.ts:81

Returns: readonly Polygon[]

a reference to the polygons. This must not be modified.


getSerializedLength

getSerializedLength(): number

Defined in src/util/polygon/MultiPolygon.ts:226

Returns: number


isEmpty

isEmpty(): boolean

Defined in src/util/polygon/MultiPolygon.ts:74

Returns: boolean


isSelfIntersecting

isSelfIntersecting(): boolean

Defined in src/util/polygon/MultiPolygon.ts:306

Returns: boolean


normalize

normalize(): this

Defined in src/util/polygon/MultiPolygon.ts:172

Returns: this


rotate

rotate(quaternion: ReadonlyQuaternion): this

Defined in src/util/polygon/MultiPolygon.ts:182

Parameters:

Name Type
quaternion ReadonlyQuaternion

Returns: this


round

round(precision?: number): void

Defined in src/util/polygon/MultiPolygon.ts:243

Parameters:

Name Type
precision? number

Returns: void


scale

scale(scale: ReadonlyVector3): this

Defined in src/util/polygon/MultiPolygon.ts:187

Parameters:

Name Type
scale ReadonlyVector3

Returns: this


scaleAroundEach

scaleAroundEach(scale: ReadonlyVector3): this

Defined in src/util/polygon/MultiPolygon.ts:192

Parameters:

Name Type
scale ReadonlyVector3

Returns: this


setCutLines

setCutLines(cutLines: ArrayLine2[]): void

Defined in src/util/polygon/MultiPolygon.ts:119

Parameters:

Name Type
cutLines ArrayLine2[]

Returns: void


setDescription

setDescription(description?: string): void

Defined in src/util/polygon/MultiPolygon.ts:151

Parameters:

Name Type
description? string

Returns: void


signedDistanceToPoint

signedDistanceToPoint(point: ReadonlyVector3): number

Defined in src/util/polygon/MultiPolygon.ts:247

Parameters:

Name Type
point ReadonlyVector3

Returns: number


subtractPolygonSimple

subtractPolygonSimple(...subtractedPolygons: Array‹Polygon | MultiPolygon›): void

Defined in src/util/polygon/MultiPolygon.ts:313

Subtracts the given polygons under the assumption that their outlines do not touch this polygon's outlines.

Parameters:

Name Type
...subtractedPolygons Array‹Polygon | MultiPolygon

Returns: void


toArray

toArray(backingArray?: Float32Array, offset: number): Float32Array‹›

Defined in src/util/polygon/MultiPolygon.ts:206

Parameters:

Name Type Default
backingArray? Float32Array -
offset number 0

Returns: Float32Array‹›


toNestingSvg

toNestingSvg(): string

Defined in src/util/polygon/MultiPolygon.ts:251

Returns: string


toSvg

toSvg(__namedParameters: object): string

Defined in src/util/polygon/MultiPolygon.ts:263

Parameters:

Default value __namedParameters: object= {}

Name Type Default
asDataUrl boolean false
fill string "rgba(0, 0, 0, 0.5)"
includeSvgDescription boolean false
round boolean true
stroke string "red"
strokeWidth string "0.3px"

Returns: string


translate

translate(offset: ReadonlyVector3): this

Defined in src/util/polygon/MultiPolygon.ts:177

Parameters:

Name Type
offset ReadonlyVector3

Returns: this


Static fromArray

fromArray(array: Float32Array | number[], offset: number): MultiPolygon

Defined in src/util/polygon/MultiPolygon.ts:16

Parameters:

Name Type Default
array Float32Array | number[] -
offset number 0

Returns: MultiPolygon


Static fromPolygons

fromPolygons(polygons: Array‹Polygon | MultiPolygon›): MultiPolygon

Defined in src/util/polygon/MultiPolygon.ts:24

Make a MultiPolygon out of polygons. Polygon instances don't get cloned.

Parameters:

Name Type
polygons Array‹Polygon | MultiPolygon

Returns: MultiPolygon


Static fromRasterizedOutlines

fromRasterizedOutlines(plateGroup: PlateGroup, outlines: Map‹Plate, RasterizedOutlineWithHoles›): MultiPolygon

Defined in src/util/polygon/MultiPolygon.ts:32

Parameters:

Name Type
plateGroup PlateGroup
outlines Map‹Plate, RasterizedOutlineWithHoles

Returns: MultiPolygon