Skip to content

editor › Globals › MosaicElementAnnotation

Class: MosaicElementAnnotation

These annotations annotate a pattern and a grid container as polygons. The PolygonOrnamentDescriptor's polygons can be reconstructed out of all the MosaicElementAnnotations.

Hierarchy

↳ MosaicElementAnnotation

Index

Constructors

Properties

Methods

Constructors

constructor

+ new MosaicElementAnnotation(point: ArrayPoint2, containerPolygon: Polygon, patternPolygons: Polygon[], mosaicType: "cutout" | "engraving", darkness: number): MosaicElementAnnotation

Overrides PolygonOrnamentAnnotation.constructor

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:26

Parameters:

Name Type Description
point ArrayPoint2 where in local space of the polygon descriptor does this annotation lie
containerPolygon Polygon surrounding grid polygon of this annotation in local space. Used for alignment etc.
patternPolygons Polygon[] pattern cut inside the grid polygon in local space. Used for graphic etc.
mosaicType "cutout" | "engraving" -
darkness number -

Returns: MosaicElementAnnotation

Properties

Protected appliedCount

• appliedCount: number

Inherited from PolygonOrnamentAnnotation.appliedCount

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:21


Private Readonly containerPolygon

• containerPolygon: Polygon

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:25


Protected darkness

• darkness: number

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:23


Protected mosaicType

• mosaicType: "cutout" | "engraving" = "cutout"

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:22


Private Readonly patternPolygons

• patternPolygons: Polygon[]

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:26


Protected point

• point: ArrayPoint2

Inherited from PolygonOrnamentAnnotation.point

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:19


Protected type

• type: string = "MosaicElement"

Overrides PolygonOrnamentAnnotation.type

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:21


Static Private inflationOffset

▪ inflationOffset: number = 3 * Config.get("modelLimits.maximumPositionPrecision")

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:15

Methods

Protected _replacePoint

▸ _replacePoint(polygon: Polygon, idx: number, points: ArrayPoint2[]): Polygon

Inherited from PolygonOrnamentAnnotation._replacePoint

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:98

Parameters:

Name Type
polygon Polygon
idx number
points ArrayPoint2[]

Returns: Polygon


addAppliedCount

▸ addAppliedCount(): void

Inherited from PolygonOrnamentAnnotation.addAppliedCount

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:94

Returns: void


applyMatrix

▸ applyMatrix(matrix: Matrix4): this

Overrides PolygonOrnamentAnnotation.applyMatrix

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:115

Parameters:

Name Type
matrix Matrix4

Returns: this


applyOntoContainerPolygons

▸ applyOntoContainerPolygons(polygons: Polygon[]): Polygon[]

Overrides PolygonOrnamentAnnotation.applyOntoContainerPolygons

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:99

A PolygonOrnamentDescriptor applies this method on all of its MosaicElementAnnotations. It always passes the last result as the "polygons" of the new method call. This leeds to all the MosaicElementAnnotations containerPolygons being incrementally merged into the final container.

Parameters:

Name Type Description
polygons Polygon[] given an existing array of polygons

Returns: Polygon[]

new polygons where the grid polygons of this Annotation are merged with the given polygons.


applyOntoCutoutPolygons

▸ applyOntoCutoutPolygons(polygons: Polygon[]): Polygon[]

Overrides PolygonOrnamentAnnotation.applyOntoCutoutPolygons

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:70

A PolygonOrnamentDescriptor applies this method on all of its MosaicElementAnnotations. It always passes the last result as the "polygons" of the new method call. This leeds to all the MosaicElementAnnotations cutoutPolygons being incrementally merged into the final cutout.

Parameters:

Name Type Description
polygons Polygon[] given an existing array of polygons

Returns: Polygon[]

new polygons where the cutout polygons are merged


applyOntoPolygons

▸ applyOntoPolygons(polygons: Polygon[]): Polygon[]

Inherited from PolygonOrnamentAnnotation.applyOntoPolygons

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:44

Apply this annotation to the given polygons

Parameters:

Name Type
polygons Polygon[]

Returns: Polygon[]


applyRotationOntoPolygons

▸ applyRotationOntoPolygons(quaternion: Quaternion): this

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:124

Parameters:

Name Type
quaternion Quaternion

Returns: this


clone

▸ clone(): MosaicElementAnnotation

Overrides PolygonOrnamentAnnotation.clone

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:188

Returns: MosaicElementAnnotation


contains

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

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:205

Parameters:

Name Type Default Description
point ReadonlyVector3 - a (2D) Point in the local coordinate system of the annotation.
epsilon number 0 The epsilon accuracy to check for "insideness", defaults to 0. Notice: leaving the default to 0 will use a raycast algorithm, which is fast but unstable for points exactly on the outline / hole's outlines.

Returns: boolean

wether the given point lies inside the containerPolygon


distanceTo

▸ distanceTo(localPosition: Vector3): number

Inherited from PolygonOrnamentAnnotation.distanceTo

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:56

Parameters:

Name Type
localPosition Vector3

Returns: number


doesPointEqual

▸ doesPointEqual(x: number, y: number): boolean

Inherited from PolygonOrnamentAnnotation.doesPointEqual

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:52

Parameters:

Name Type
x number
y number

Returns: boolean


getAppliedCount

▸ getAppliedCount(): number

Inherited from PolygonOrnamentAnnotation.getAppliedCount

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:90

Returns: number


getContainerPolygon

▸ getContainerPolygon(): Polygon

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:131

Returns: Polygon


getDarkness

▸ getDarkness(): number

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:158

Returns: number


getGlobalContainerPolygon

▸ getGlobalContainerPolygon(): Polygon

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:139

Returns: Polygon


getMosaicType

▸ getMosaicType(): "cutout" | "engraving"

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:147

Returns: "cutout" | "engraving"


getPatternPolygons

▸ getPatternPolygons(): Polygon[]

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:135

Returns: Polygon[]


getPoint

▸ getPoint(): ArrayPoint2

Inherited from PolygonOrnamentAnnotation.getPoint

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:86

Returns: ArrayPoint2


getProperty

▸ getProperty(property: "type" | "darkness"): any

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:162

Parameters:

Name Type
property "type" | "darkness"

Returns: any


getType

▸ getType(): string

Inherited from PolygonOrnamentAnnotation.getType

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:82

Returns: string


isStillApplicable

▸ isStillApplicable(polygons: Polygon[]): boolean

Inherited from PolygonOrnamentAnnotation.isStillApplicable

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:48

Parameters:

Name Type
polygons Polygon[]

Returns: boolean


roundPoint

▸ roundPoint(precision: number): this

Inherited from PolygonOrnamentAnnotation.roundPoint

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:73

Parameters:

Name Type Default
precision number 1

Returns: this


setDarkness

▸ setDarkness(darkness: number): void

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:154

Updates the darkness of the annotation

Parameters:

Name Type
darkness number

Returns: void


setMosaicType

▸ setMosaicType(type: "cutout" | "engraving"): void

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:143

Parameters:

Name Type
type "cutout" | "engraving"

Returns: void


setPoint

▸ setPoint(point: ArrayPoint2): this

Inherited from PolygonOrnamentAnnotation.setPoint

Defined in src/model/data/Concepts/PolygonOrnamentAnnotation.ts:67

Parameters:

Name Type
point ArrayPoint2

Returns: this


setProperty

▸ setProperty(property: "type" | "darkness", value: any): void

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:173

Parameters:

Name Type
property "type" | "darkness"
value any

Returns: void


Static Private _getUnionOfPolygons

▸ _getUnionOfPolygons(polygons: MultiPolygon): Polygon[]

Defined in src/model/data/Concepts/MosaicElementAnnotation.ts:17

Parameters:

Name Type
polygons MultiPolygon

Returns: Polygon[]