Skip to content

editor › Globals › MultiPolygon

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