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
- addCutLinesIfNecessary
- applyMatrix
- cleanse
- clearCutLines
- clone
- constrainCutLinesToAABB
- contains
- couldIntersect
- discardPolygonsSmallerThan
- getAABB
- getAllOutlines
- getAllOutlinesRef
- getArea
- getCutLines
- getDescriptions
- getHoles
- getHolesRef
- getOutlines
- getOutlinesRef
- getPolygonUnion
- getPolygons
- getPolygonsRef
- getSerializedLength
- isEmpty
- isSelfIntersecting
- normalize
- rotate
- round
- scale
- scaleAroundEach
- setCutLines
- setDescription
- signedDistanceToPoint
- subtractPolygonSimple
- toArray
- toNestingSvg
- toSvg
- translate
- fromArray
- fromPolygons
- fromRasterizedOutlines
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