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
↳ PolygonOrnamentDescriptor
Implements
Index
Constructors
Properties
- anchor
- annotations
- assembly
- assetIdAndResourceName
- changeEventEmitter
- containerPolygons
- coversWholePlate
- cutoutPolygons
- engravingContent
- scale
- side
- transformsChangeEventEmitter
- inflationOffset
- roundPrecision
Methods
- _arePolygonsDifferent
- _doesIntersectWithLocalPolygons
- _doesIntersectWithPolygonDescriptor
- _generateSVGForContent
- _getAnnotationsFromOtherPolygonOrnaments
- _getCutoutPolygonsFromOtherPolygonOrnaments
- _getEngravingPolygonsFromAnnotations
- _getGlobalCutoutPolygon
- _getGlobalPolygons
- _getPolygonsFromOtherPolygonOrnaments
- _globalToLocalPolygons
- _localToGlobalPolygons
- _mergeCutoutPolygons
- _onAnchorChange
- _onAnchorTransformsChange
- _setContentFromPolygons
- _setPolygonsByMerging
- _setPolygonsFromMultiPolygon
- _setPolygonsFromPoints
- _translateGlobalPolygons
- _translatePolygons
- _updateCutoutPolygons
- _updateCutoutPolygonsFromAnnotations
- _updatePolygons
- _updatePolygonsFromAnnotations
- addMosaicElement
- addPolygons
- addRoundedCorner
- changePropertyOfAllMosaicAnnotations
- changePropertyOfMosaicAnnotation
- clone
- destroy
- distanceToAssemblyPoint
- distanceToPoint
- doesCoverWholePlate
- doesIntersectWithPolygons
- getAnchor
- getAnnotations
- getAssembly
- getAssetIdAndResourceName
- getChangeEventEmitter
- getContainerPolygons
- getContent
- getCutoutPolygons
- getElementsThisDependsOn
- getEngravingContent
- getIsValid
- getMosaicAnnotation
- getMosaicElementAnnotations
- getOrnamentParameters
- getOrnamentType
- getParent
- getPosition
- getRealizerForClone
- getRotation
- getScale
- getSide
- getSurface
- getTransforms
- getTransformsChangeEventEmitter
- getTransformsDefiner
- getType
- hasAnyCutout
- hasContentBeenUpdated
- isPointWithinContainer
- mapGlobalPositionToLocalPosition
- mapScaleOntoPolygon
- mergePolygonOrnamentDescriptors
- mergeWithIntersectingPolygonOrnamentDescriptorsOnSurface
- removeAnnotation
- roundAllCorners
- setAssembly
- setContent
- setContentAsUpdated
- setCoversWholePlate
- setEngravingContent
- setFromPolygonOrnament
- setOrnamentParameters
- setPlateSide
- setPolygon
- setPosition
- setRotation
- setScale
- setTransformsDefiner
- _createMosaicElementAnnotation
- _destroyAndRemove
- _destroyAndRemoveOrnamentDescriptors
- _getUnionOfPolygons
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[]