Skip to content

editor › Globals › PolygonOrnamentDescriptor

Class: PolygonOrnamentDescriptor

This class describes an ornament that is described by a polygon. The idea is that we can add several ornaments so that we can move, scale and rotate them as one polygon.

A PolygonOrnamentDescriptor consists of container polygons (outline for alignment) and cutout/engraving polygons (that represent the actual cutouts and engravings). The annotations are used to calculate the cutout and engraving polygons from the container polygons and also store additional data like the darkness of engravings or information about rounded corners.

When adding an Ornament to the descriptor their polygons are merged which is displayed by the PolygonOrnamentDescriptorRealizer.

They are always placed on the FrontSide because it doesn't make a difference for cutouts and it makes alignment easier. TODO: for duplex-core also allow placing them on the backside TODO: for duplex-core allow holes inside of polygons that should not be cut out

Hierarchy

↳ LocalOrnamentDescriptor

↳ PolygonOrnamentDescriptor

Implements

Index

Constructors

Properties

Methods

Constructors

constructor

+ new PolygonOrnamentDescriptor(polygonPoints: ArrayPoint2[][], annotations: PolygonOrnamentAnnotation[], ornamentType?: "cutout" | "engraving"): PolygonOrnamentDescriptor

Overrides LocalOrnamentDescriptor.constructor

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:91

Parameters:

Name Type Default
polygonPoints ArrayPoint2[][] []
annotations PolygonOrnamentAnnotation[] []
ornamentType? "cutout" | "engraving" -

Returns: PolygonOrnamentDescriptor

Properties

Protected anchor

• anchor: PointOnSurfaceAnchor | null

Inherited from AbstractOrnamentDescriptor.anchor

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


Private annotations

• annotations: PolygonOrnamentAnnotation[] = []

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:91

roundings and mosaic element annotations ({@see PolygonOrnamentAnnotation} for more detailed explanation)


Protected assembly

• assembly: Assembly

Inherited from AbstractOrnamentDescriptor.assembly

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


Protected Readonly assetIdAndResourceName

• assetIdAndResourceName: string

Inherited from OrnamentDescriptor.assetIdAndResourceName

Defined in src/model/data/Concepts/OrnamentDescriptor.ts:11


Protected Readonly changeEventEmitter

• changeEventEmitter: EventEmitter‹IModelElementEvent› = new EventEmitter()

Inherited from AbstractOrnamentDescriptor.changeEventEmitter

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


Private containerPolygons

• containerPolygons: Polygon[] = []

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:77

The container polygons describe the outline of the PolygonOrnamentDescriptor. It is used for alignment. The actual cutoutPolygons are always inside the containerPolygons.


Protected coversWholePlate

• coversWholePlate: boolean = true

Inherited from AbstractOrnamentDescriptor.coversWholePlate

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


Private cutoutPolygons

• cutoutPolygons: Polygon[] = []

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:83

The cutout polygons are created by applying the annotations onto the container polygons. In the end, they represent the actual cutout


Private engravingContent

• engravingContent: string | null

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:88

Contains an SVG with the engravings. The darkness of each engraving is provided as greyscale


Protected scale

• scale: Vector3 = new Vector3(1, 1, 1)

Inherited from AbstractOrnamentDescriptor.scale

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:27


Protected side

• side: PlateSide

Inherited from AbstractOrnamentDescriptor.side

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:31


Protected Readonly transformsChangeEventEmitter

• transformsChangeEventEmitter: EventEmitter‹ITransformsChangeEvent› = new EventEmitter()

Inherited from AbstractOrnamentDescriptor.transformsChangeEventEmitter

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:29


Static Private inflationOffset

▪ inflationOffset: number = 4 * PolygonOrnamentDescriptor.roundPrecision

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:36


Static Private roundPrecision

▪ roundPrecision: any = Config.get("modelLimits.maximumPositionPrecision")

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:35

Methods

Private _arePolygonsDifferent

▸ _arePolygonsDifferent(polygons: Polygon[], other: Polygon[]): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:630

Parameters:

Name Type
polygons Polygon[]
other Polygon[]

Returns: boolean


Private _doesIntersectWithLocalPolygons

▸ _doesIntersectWithLocalPolygons(polygons: Polygon[]): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:511

Parameters:

Name Type
polygons Polygon[]

Returns: boolean


Private _doesIntersectWithPolygonDescriptor

▸ _doesIntersectWithPolygonDescriptor(descriptor: PolygonOrnamentDescriptor): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:505

Parameters:

Name Type
descriptor PolygonOrnamentDescriptor

Returns: boolean


Private _generateSVGForContent

▸ _generateSVGForContent(polygons: Array‹object›, boundingBox: AABB): string

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:766

Parameters:

Name Type
polygons Array‹object›
boundingBox AABB

Returns: string


Private _getAnnotationsFromOtherPolygonOrnaments

▸ _getAnnotationsFromOtherPolygonOrnaments(polygonOrnaments: PolygonOrnamentDescriptor[]): PolygonOrnamentAnnotation[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:531

We get the annotations from the other PolygonOrnamentDescriptors to merge them with this PolygonOrnamentDescriptor. Because the other PolygonOrnamentDescriptors have a different coordinate space we have to translate and rotate them.

Parameters:

Name Type Description
polygonOrnaments PolygonOrnamentDescriptor[] other PolygonOrnamentDescriptors that we are merging with.

Returns: PolygonOrnamentAnnotation[]


Private _getCutoutPolygonsFromOtherPolygonOrnaments

▸ _getCutoutPolygonsFromOtherPolygonOrnaments(polygonOrnaments: PolygonOrnamentDescriptor[]): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:558

Parameters:

Name Type
polygonOrnaments PolygonOrnamentDescriptor[]

Returns: Polygon[]


Private _getEngravingPolygonsFromAnnotations

▸ _getEngravingPolygonsFromAnnotations(): Array‹object›

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:741

Return all the engraving polygons from annotations in a format where each annotation is represented with - polygon: the Polygon of the annotation - isCutout: false (since they are all engravings) - darkness: the darkness of the element

Returns: Array‹object›


Private _getGlobalCutoutPolygon

▸ _getGlobalCutoutPolygon(): ArrayPoint3[][]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:566

Returns: ArrayPoint3[][]


Private _getGlobalPolygons

▸ _getGlobalPolygons(): ArrayPoint3[][]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:562

Returns: ArrayPoint3[][]


Private _getPolygonsFromOtherPolygonOrnaments

▸ _getPolygonsFromOtherPolygonOrnaments(polygonOrnaments: PolygonOrnamentDescriptor[]): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:554

Parameters:

Name Type
polygonOrnaments PolygonOrnamentDescriptor[]

Returns: Polygon[]


Private _globalToLocalPolygons

▸ _globalToLocalPolygons(globalPolygons: ArrayPoint3[][]): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:579

Parameters:

Name Type
globalPolygons ArrayPoint3[][]

Returns: Polygon[]


Private _localToGlobalPolygons

▸ _localToGlobalPolygons(localPolygons: Polygon[]): ArrayPoint3[][]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:570

Parameters:

Name Type
localPolygons Polygon[]

Returns: ArrayPoint3[][]


Private _mergeCutoutPolygons

▸ _mergeCutoutPolygons(polygons: Polygon[]): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:688

Parameters:

Name Type
polygons Polygon[]

Returns: void


Protected _onAnchorChange

▸ _onAnchorChange(event: IAnchorChangeEvent): void

Inherited from AbstractOrnamentDescriptor._onAnchorChange

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:191

Parameters:

Name Type
event IAnchorChangeEvent

Returns: void


Protected _onAnchorTransformsChange

▸ _onAnchorTransformsChange(changeEvent: ITransformsChangeEvent): void

Inherited from AbstractOrnamentDescriptor._onAnchorTransformsChange

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:217

Parameters:

Name Type
changeEvent ITransformsChangeEvent

Returns: void


Private _setContentFromPolygons

▸ _setContentFromPolygons(): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:705

Sets the content based on this.cutoutPolygons. It also sets the engravingContent based on "engravingPolygons" which are defined by annotations only. Both created SVGs have the same AABB which is defined by this.containerPolygons

Returns: void


Private _setPolygonsByMerging

▸ _setPolygonsByMerging(polygons: Polygon[]): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:612

Parameters:

Name Type
polygons Polygon[]

Returns: void


Private _setPolygonsFromMultiPolygon

▸ _setPolygonsFromMultiPolygon(polygon: MultiPolygon, updateCutoutPolygons: boolean): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:618

Parameters:

Name Type Default
polygon MultiPolygon -
updateCutoutPolygons boolean true

Returns: void


Private _setPolygonsFromPoints

▸ _setPolygonsFromPoints(polygonPoints: ArrayPoint2[][]): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:782

Parameters:

Name Type
polygonPoints ArrayPoint2[][]

Returns: void


Private _translateGlobalPolygons

▸ _translateGlobalPolygons(polygons: Polygon[], assemblyPosition: Vector3): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:596

Parameters:

Name Type
polygons Polygon[]
assemblyPosition Vector3

Returns: Polygon[]


Private _translatePolygons

▸ _translatePolygons(polygons: Polygon[], localPosition: Vector3): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:601

Parameters:

Name Type
polygons Polygon[]
localPosition Vector3

Returns: Polygon[]


Private _updateCutoutPolygons

▸ _updateCutoutPolygons(polygons: Polygon[]): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:695

Parameters:

Name Type
polygons Polygon[]

Returns: void


Private _updateCutoutPolygonsFromAnnotations

▸ _updateCutoutPolygonsFromAnnotations(): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:653

Returns: void


Private _updatePolygons

▸ _updatePolygons(polygons: Polygon[], mergeWithExistingPolygon: boolean): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:605

Parameters:

Name Type Default
polygons Polygon[] []
mergeWithExistingPolygon boolean true

Returns: void


Private _updatePolygonsFromAnnotations

▸ _updatePolygonsFromAnnotations(): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:671

Returns: void


addMosaicElement

▸ addMosaicElement(containerPolygon: Polygon, cutoutPolygons: Polygon[], assemblyPosition: Vector3, type: "cutout" | "engraving", darkness: number): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:192

Parameters:

Name Type Default
containerPolygon Polygon -
cutoutPolygons Polygon[] -
assemblyPosition Vector3 -
type "cutout" | "engraving" null
darkness number null

Returns: void


addPolygons

▸ addPolygons(ornamentPolygons: Polygon[], assemblyPosition: Vector3): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:186

Parameters:

Name Type Description
ornamentPolygons Polygon[] cutout polygons of ornament to add to the PolygonOrnamentDescriptor.
assemblyPosition Vector3 position of ornament in assembly space.

Returns: void


addRoundedCorner

▸ addRoundedCorner(localPosition: Vector3): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:292

Parameters:

Name Type Description
localPosition Vector3 click position in local space. When called this method will add a rounded corner annotation to the descriptor. If the corner already has an annotation it increases its rounding.

Returns: void


changePropertyOfAllMosaicAnnotations

▸ changePropertyOfAllMosaicAnnotations(property: "type" | "darkness", newValue: any): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:407

Changes a given property for all annotations that are a MosaicElementAnnotation

Parameters:

Name Type Description
property "type" | "darkness" the property that should be changed
newValue any the new value that the property should be set to (only allowed types for that property should be entered since the typecheck is not possible here)

Returns: void

whether or not any MosaicElementAnnotation was changed.


changePropertyOfMosaicAnnotation

▸ changePropertyOfMosaicAnnotation(annotation: MosaicElementAnnotation, property: "type" | "darkness", newValue: any): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:383

Changes a given property for the given annotation.

Parameters:

Name Type Description
annotation MosaicElementAnnotation the annotation that should be changed
property "type" | "darkness" the property that should be changed
newValue any the new value that the property should be set to (only allowed types for that property should be entered since the typecheck is not possible here)

Returns: boolean

whether or not an MosaicElementAnnotation was changed.


clone

▸ clone(): PolygonOrnamentDescriptor

Overrides LocalOrnamentDescriptor.clone

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:454

Returns: PolygonOrnamentDescriptor


destroy

▸ destroy(): void

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.destroy

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:187

Returns: void


distanceToAssemblyPoint

▸ distanceToAssemblyPoint(assemblyPoint: Vector3): number

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:165

Parameters:

Name Type
assemblyPoint Vector3

Returns: number

distance between given point and this polygon ornament (its polygons, not its cutoutPolygons!).


distanceToPoint

▸ distanceToPoint(point: Vector3): number

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:177

Parameters:

Name Type Description
point Vector3 point in local space.

Returns: number

distance between given point and this polygon ornament. This means the distance to the polygon container, not the polygon cutouts. If given point is inside of the polygon container it will return 0.


doesCoverWholePlate

▸ doesCoverWholePlate(): boolean

Inherited from AbstractOrnamentDescriptor.doesCoverWholePlate

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:51

Whether the ornament covers the whole plate (e.g. an endless ornament or a programmatic ornament that always uses the whole plate).

Ornaments that cover the whole plate still stay valid event if their "position" is outside the plate border.

Returns: boolean


doesIntersectWithPolygons

▸ doesIntersectWithPolygons(polygons: Polygon[], ornamentAssemblyPosition: Vector3): boolean

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

Parameters:

Name Type Description
polygons Polygon[] check if intersects with given polygons of ornament.
ornamentAssemblyPosition Vector3 position of ornament in assembly space.

Returns: boolean

if ornaments polygons intersect with any of the polygons of this descriptor.


getAnchor

▸ getAnchor(): PointOnSurfaceAnchor‹›

Inherited from AbstractOrnamentDescriptor.getAnchor

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:101

Returns: PointOnSurfaceAnchor‹›


getAnnotations

▸ getAnnotations(): PolygonOrnamentAnnotation[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:497

Returns: PolygonOrnamentAnnotation[]


getAssembly

▸ getAssembly(): Assembly

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getAssembly

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:105

Returns: Assembly


getAssetIdAndResourceName

▸ getAssetIdAndResourceName(): string

Inherited from OrnamentDescriptor.getAssetIdAndResourceName

Defined in src/model/data/Concepts/OrnamentDescriptor.ts:31

The assetID and resource name of the ornament ToDo: How to handle pre-defined programmatic ornaments? by using "special/voronoi" as a assetIdAndResourceName?

Returns: string


getChangeEventEmitter

▸ getChangeEventEmitter(): IPublicEventEmitterInterface‹IModelElementEvent›

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getChangeEventEmitter

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:130

Returns: IPublicEventEmitterInterface‹IModelElementEvent›


getContainerPolygons

▸ getContainerPolygons(): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:470

Returns: Polygon[]

reference of polygons in local space


getContent

▸ getContent(): string | ArrayBuffer | null

Inherited from LocalOrnamentDescriptor.getContent

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:63

Returns: string | ArrayBuffer | null


getCutoutPolygons

▸ getCutoutPolygons(): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:477

Returns: Polygon[]

reference of cutout polygons in local space


getElementsThisDependsOn

▸ getElementsThisDependsOn(): IModelElement[]

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getElementsThisDependsOn

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:123

Returns: IModelElement[]


getEngravingContent

▸ getEngravingContent(): string | null

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:485

Returns: string | null


getIsValid

▸ getIsValid(): boolean

Implementation of IPositionableElement

Inherited from OrnamentDescriptor.getIsValid

Overrides AbstractOrnamentDescriptor.getIsValid

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

Returns: boolean


getMosaicAnnotation

▸ getMosaicAnnotation(localPosition: Vector3): MosaicElementAnnotation | null

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:430

Parameters:

Name Type Description
localPosition Vector3 click position in local space.

Returns: MosaicElementAnnotation | null

the MosaicElementAnnotation closest to the provided position or null, if none exists


getMosaicElementAnnotations

▸ getMosaicElementAnnotations(): MosaicElementAnnotation[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:501

Returns: MosaicElementAnnotation[]


getOrnamentParameters

▸ getOrnamentParameters(): OrnamentParameters

Inherited from LocalOrnamentDescriptor.getOrnamentParameters

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:49

Returns: OrnamentParameters


getOrnamentType

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

Inherited from LocalOrnamentDescriptor.getOrnamentType

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:45

Returns: "engraving" | "cutout"


getParent

▸ getParent(): ITransformable

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getParent

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:149

Returns: ITransformable


getPosition

▸ getPosition(): Vector3‹›

Inherited from AbstractOrnamentDescriptor.getPosition

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:71

Returns: Vector3‹›


getRealizerForClone

▸ getRealizerForClone(modelElement: PolygonOrnamentDescriptor): PolygonOrnamentDescriptorRealizer

Overrides LocalOrnamentDescriptor.getRealizerForClone

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:463

Parameters:

Name Type
modelElement PolygonOrnamentDescriptor

Returns: PolygonOrnamentDescriptorRealizer


getRotation

▸ getRotation(): Quaternion‹›

Inherited from AbstractOrnamentDescriptor.getRotation

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:97

Returns: Quaternion‹›


getScale

▸ getScale(): ReadonlyVector3

Inherited from AbstractOrnamentDescriptor.getScale

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:75

Returns: ReadonlyVector3


getSide

▸ getSide(): PlateSide

Inherited from AbstractOrnamentDescriptor.getSide

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:40

Returns: PlateSide


getSurface

▸ getSurface(): MeshSurface | null

Inherited from AbstractOrnamentDescriptor.getSurface

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:63

Returns: MeshSurface | null


getTransforms

▸ getTransforms(): IReadOnlyTransforms

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getTransforms

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:142

Returns: IReadOnlyTransforms


getTransformsChangeEventEmitter

▸ getTransformsChangeEventEmitter(): IPublicEventEmitterInterface‹ITransformsChangeEvent›

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getTransformsChangeEventEmitter

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:134

Returns: IPublicEventEmitterInterface‹ITransformsChangeEvent›


getTransformsDefiner

▸ getTransformsDefiner(): IPositionableElementTransformsDefiner

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getTransformsDefiner

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:138

Returns: IPositionableElementTransformsDefiner


getType

▸ getType(): LocalOrnamentDescriptorType

Inherited from LocalOrnamentDescriptor.getType

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

Returns: LocalOrnamentDescriptorType


hasAnyCutout

▸ hasAnyCutout(): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:493

Returns: boolean

if it has any polygons cutoutPolygons we actually have cutouts. So it will return false if this is a spacer or an engraving like object.


hasContentBeenUpdated

▸ hasContentBeenUpdated(): boolean

Inherited from LocalOrnamentDescriptor.hasContentBeenUpdated

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:83

Returns: boolean


isPointWithinContainer

▸ isPointWithinContainer(point: Vector3): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:149

Parameters:

Name Type Description
point Vector3 position to check for in assembly space.

Returns: boolean

if given point is inside or lies on outline of this polygon ornaments container.


mapGlobalPositionToLocalPosition

▸ mapGlobalPositionToLocalPosition(position: Vector3): Vector3

Inherited from AbstractOrnamentDescriptor.mapGlobalPositionToLocalPosition

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:109

Parameters:

Name Type
position Vector3

Returns: Vector3


mapScaleOntoPolygon

▸ mapScaleOntoPolygon(): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:233

When called this method will set the scale of the descriptor to 1 and calculate the scale onto the polygon. We do this, so we don't have to worry about scale when calculating with the polygons.

Returns: void


mergePolygonOrnamentDescriptors

▸ mergePolygonOrnamentDescriptors(polygonOrnaments: PolygonOrnamentDescriptor[]): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:273

Parameters:

Name Type Description
polygonOrnaments PolygonOrnamentDescriptor[] other PolygonOrnamentDescriptors to add to this PolygonOrnamentDescriptor to merge them. They will be destroyed afterwards.

Returns: void


mergeWithIntersectingPolygonOrnamentDescriptorsOnSurface

▸ mergeWithIntersectingPolygonOrnamentDescriptorsOnSurface(): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:253

When called this method will merge this polygon descriptor with all other intersecting polygon ornaments on the same surface. This is done to maintain WYSIATI properties e.g. after moving ornaments.

Returns: void


removeAnnotation

▸ removeAnnotation(localPosition: Vector3, allowedDistance: number): boolean

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:354

Parameters:

Name Type Default Description
localPosition Vector3 - click position in local space.
allowedDistance number 10 allowed distance of the middle to the click position to still be removed. When called this method will remove the annotation that is closest to the given position if it's inside the allowed distance. In case of MosaicElements it is also removed, as long as the click position is inside its polygon.

Returns: boolean

whether or not an annotation was removed.


roundAllCorners

▸ roundAllCorners(): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:328

When called this method will round all corners. If all corners are already rounded it increases the rounding of all corners that have the least rounding. If all corners have the same rounding it increases all roundings.

Returns: void


setAssembly

▸ setAssembly(assembly: Assembly): void

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.setAssembly

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:156

Parameters:

Name Type
assembly Assembly

Returns: void


setContent

▸ setContent(content: any): void

Inherited from LocalOrnamentDescriptor.setContent

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:59

Parameters:

Name Type
content any

Returns: void


setContentAsUpdated

▸ setContentAsUpdated(updated: boolean): void

Inherited from LocalOrnamentDescriptor.setContentAsUpdated

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:87

Parameters:

Name Type Default
updated boolean true

Returns: void


setCoversWholePlate

▸ setCoversWholePlate(coversWholePlate: any): void

Inherited from AbstractOrnamentDescriptor.setCoversWholePlate

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:55

Parameters:

Name Type
coversWholePlate any

Returns: void


setEngravingContent

▸ setEngravingContent(newContent: string | null): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:481

Parameters:

Name Type
newContent string | null

Returns: void


setFromPolygonOrnament

▸ setFromPolygonOrnament(polygonOrnament: PolygonOrnamentDescriptor): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:125

Parameters:

Name Type Description
polygonOrnament PolygonOrnamentDescriptor other PolygonOrnamentDescriptor which is essentially cloned.

Returns: void


setOrnamentParameters

▸ setOrnamentParameters(params: OrnamentParameters): void

Inherited from LocalOrnamentDescriptor.setOrnamentParameters

Defined in src/model/data/Concepts/LocalOrnamentDescriptor.ts:53

Parameters:

Name Type
params OrnamentParameters

Returns: void


setPlateSide

▸ setPlateSide(plateSide: PlateSide): void

Overrides AbstractOrnamentDescriptor.setPlateSide

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:446

Parameters:

Name Type
plateSide PlateSide

Returns: void


setPolygon

▸ setPolygon(polygon: Polygon): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:118

Parameters:

Name Type Description
polygon Polygon a polygon which the content is set to. It will be set as the container, but it will also lead to a recomputation of the cutout polygons.

Returns: void


setPosition

▸ setPosition(position: ReadonlyVector3): void

Inherited from AbstractOrnamentDescriptor.setPosition

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:89

Parameters:

Name Type
position ReadonlyVector3

Returns: void


setRotation

▸ setRotation(rotation: Quaternion): void

Inherited from AbstractOrnamentDescriptor.setRotation

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:93

Parameters:

Name Type
rotation Quaternion

Returns: void


setScale

▸ setScale(scale: ReadonlyVector3): this

Inherited from AbstractOrnamentDescriptor.setScale

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:79

Parameters:

Name Type
scale ReadonlyVector3

Returns: this


setTransformsDefiner

▸ setTransformsDefiner(newAnchor: PointOnSurfaceAnchor): this

Inherited from AbstractOrnamentDescriptor.setTransformsDefiner

Defined in src/model/data/Concepts/AbstractOrnamentDescriptor.ts:163

Parameters:

Name Type Description
newAnchor PointOnSurfaceAnchor the anchor that defines the point on surface

Returns: this


Static Private _createMosaicElementAnnotation

▸ _createMosaicElementAnnotation(localPosition: Vector3, containerPolygon: Polygon, cutoutPolygons: Polygon[], type: "cutout" | "engraving", darkness: number): MosaicElementAnnotation

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

Parameters:

Name Type
localPosition Vector3
containerPolygon Polygon
cutoutPolygons Polygon[]
type "cutout" | "engraving"
darkness number

Returns: MosaicElementAnnotation


Static Private _destroyAndRemove

▸ _destroyAndRemove(descriptor: PolygonOrnamentDescriptor): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:68

Parameters:

Name Type
descriptor PolygonOrnamentDescriptor

Returns: void


Static Private _destroyAndRemoveOrnamentDescriptors

▸ _destroyAndRemoveOrnamentDescriptors(ornamentDescriptors: PolygonOrnamentDescriptor[]): void

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:64

Parameters:

Name Type
ornamentDescriptors PolygonOrnamentDescriptor[]

Returns: void


Static Private _getUnionOfPolygons

▸ _getUnionOfPolygons(polygon: MultiPolygon): Polygon[]

Defined in src/model/data/Concepts/PolygonOrnamentDescriptor.ts:38

Parameters:

Name Type
polygon MultiPolygon

Returns: Polygon[]