editor › Globals › MosaicElementContainer
Class: MosaicElementContainer
The MosaicElementContainer class defines a polygon which is placed on a grid to align cutouts. Currently, there exist triangle, square and hexagon container types. Every MosaicElementContainer contains a set of cutouts (polygons living inside this container polygon, {@see MosaicElementCutout}).
Hierarchy
- MosaicElementContainer
Index
Constructors
Properties
- _isNullMosaicElementContainer
- circumference
- cutouts
- id
- marginBetweenMosaicElements
- polygon
- rotationAnglesOfContainer
- rotationAnglesOfCutout
- scale
- sideLength
Methods
- _calculateCenter
- _calculateCircumference
- _calculateCutoutRotationAngles
- _calculateMarginBetweenMosaicElements
- _calculateSideLength
- _createMosaicElementCutouts
- _findRotationCenter
- _normalizePolygon
- _setPolygonStats
- getAABB
- getCircumference
- getCutout
- getMarginBetweenMosaicElements
- getPolygon
- getRotationAnglesOfContainer
- getRotationAnglesOfCutout
- getScale
- getSideLength
- getUnscaledPolygon
- isNullMosaicElementContainer
- rotatePolygons
- setScale
Constructors
constructor
+ new MosaicElementContainer(id: string, polygon: Polygon, patterns: Array‹object›, rotationAnglesOfContainer: number[]): MosaicElementContainer
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:37
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
id |
string | - | id of mosaic element container |
polygon |
Polygon | - | polygon that defines mosaic element container points |
patterns |
Array‹object› | [] | - |
rotationAnglesOfContainer |
number[] | [0] | around which angles can this polygon be rotated so that a different polygon is created |
Returns: MosaicElementContainer
Properties
Protected _isNullMosaicElementContainer
• _isNullMosaicElementContainer: boolean = false
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:21
Private circumference
• circumference: number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:32
Stats needed to align the mosaic polygons
Private cutouts
• cutouts: Map‹string, MosaicElementCutout›
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:37
MosaicElementCutouts that live inside this mosaic container
Readonly id
• id: string
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:19
Private marginBetweenMosaicElements
• marginBetweenMosaicElements: number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:33
Private polygon
• polygon: Polygon
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:23
Private rotationAnglesOfContainer
• rotationAnglesOfContainer: number[]
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:25
Rotation axes of container polygon
Private rotationAnglesOfCutout
• rotationAnglesOfCutout: number[]
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:27
Rotation axes of cutout polygon
Private scale
• scale: Vector3‹› = new Vector3(1, 1, 1)
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:29
Private sideLength
• sideLength: number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:34
Methods
Private _calculateCenter
▸ _calculateCenter(outline: ArrayPoint2[]): Vector3
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:243
Parameters:
| Name | Type |
|---|---|
outline |
ArrayPoint2[] |
Returns: Vector3
Private _calculateCircumference
▸ _calculateCircumference(): number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:210
Returns: number
Private _calculateCutoutRotationAngles
▸ _calculateCutoutRotationAngles(): number[]
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:189
Returns: number[]
Private _calculateMarginBetweenMosaicElements
▸ _calculateMarginBetweenMosaicElements(): number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:229
Returns: number
Private _calculateSideLength
▸ _calculateSideLength(): number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:219
Returns: number
Private _createMosaicElementCutouts
▸ _createMosaicElementCutouts(patterns: Array‹object›): Map‹string, MosaicElementCutout›
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:250
Parameters:
| Name | Type |
|---|---|
patterns |
Array‹object› |
Returns: Map‹string, MosaicElementCutout›
Private _findRotationCenter
▸ _findRotationCenter(polygon: Polygon): Vector3
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:169
Parameters:
| Name | Type |
|---|---|
polygon |
Polygon |
Returns: Vector3
Protected _normalizePolygon
▸ _normalizePolygon(polygon: Polygon): Polygon
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:154
Parameters:
| Name | Type |
|---|---|
polygon |
Polygon |
Returns: Polygon
Private _setPolygonStats
▸ _setPolygonStats(): void
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:204
Returns: void
getAABB
▸ getAABB(): AABB | null
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:93
Returns: AABB | null
getCircumference
▸ getCircumference(): number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:132
Returns: number
getCutout
▸ getCutout(id: string): MosaicElementCutout
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:69
Parameters:
| Name | Type |
|---|---|
id |
string |
Returns: MosaicElementCutout
getMarginBetweenMosaicElements
▸ getMarginBetweenMosaicElements(): number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:146
Returns: number
distance between center of two mosaic elements aligned on a grid of this container.
getPolygon
▸ getPolygon(): Polygon
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:120
Returns: Polygon
getRotationAnglesOfContainer
▸ getRotationAnglesOfContainer(): number[]
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:128
Returns: number[]
getRotationAnglesOfCutout
▸ getRotationAnglesOfCutout(): number[]
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:124
Returns: number[]
getScale
▸ getScale(): Vector3
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:89
Returns: Vector3
getSideLength
▸ getSideLength(): number
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:139
Returns: number
length of one side of the polygon of this grid
getUnscaledPolygon
▸ getUnscaledPolygon(): Polygon
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:111
Returns: Polygon
isNullMosaicElementContainer
▸ isNullMosaicElementContainer(): boolean
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:150
Returns: boolean
rotatePolygons
▸ rotatePolygons(quaternion: Quaternion): Polygon
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:103
clones, rotates the polygon and transforms it to the given point.
Parameters:
| Name | Type |
|---|---|
quaternion |
Quaternion |
Returns: Polygon
cloned polygon
setScale
▸ setScale(scale: Vector3): void
Defined in src/modules/kyub.core.plateOrnaments/src/MosaicElementOrnaments/MosaicElementContainer.ts:77
Parameters:
| Name | Type |
|---|---|
scale |
Vector3 |
Returns: void