Skip to content

editorGlobalsPolygonOrnamentDescriptor

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: EventEmitterIModelElementEvent = 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: EventEmitterITransformsChangeEvent = 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(): IPublicEventEmitterInterfaceIModelElementEvent

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getChangeEventEmitter

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

Returns: IPublicEventEmitterInterfaceIModelElementEvent


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(): IPublicEventEmitterInterfaceITransformsChangeEvent

Implementation of IPositionableElement

Inherited from AbstractOrnamentDescriptor.getTransformsChangeEventEmitter

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

Returns: IPublicEventEmitterInterfaceITransformsChangeEvent


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[]