editor › Globals › TessellationDescriptor
Class: TessellationDescriptor
A TessellationDescriptor is the blueprint for tessellation on a mesh: It defines where the different tessellation- cuts will happen on the surface, and coordinates what happens when the mesh is changed.
Hierarchy
- TessellationDescriptor
Implements
Index
Properties
- assembly
- changeEmitter
- displayNotificationCallback
- meshAnchor
- minimumAngleForTessellationJump
- savedSurfaceTessellations
- surfaceTessellations
- tessellationPresetSizes
Methods
- _clearSavedSurfaceTessellations
- _getJumpWidth
- _improveTessellationPositions
- _jumpAwayFromDoubleIntersectionPoints
- _jumpAwayFromOutlineSections
- _moveIfCutlinesInOnlyOneDirectionPossible
- _notifyUser
- _onAnchorTransformsChange
- _onMeshAnchorChange
- _removeUnnecessaryTessellations
- _saveTessellation
- addSurfaceTessellation
- applyAutoTessellation
- clearSurfaceTessellations
- clone
- destroy
- getAnchor
- getAssembly
- getChangeEventEmitter
- getCompositeModelTessellationSize
- getElementsThisDependsOn
- getIsValid
- getNumberOfCutLines
- getSavedTessellationSizes
- getSurfaceTessellations
- hasSurfaceTessellation
- hasValidTessellation
- isSurfaceTessellatable
- reevaluateSurfaceTessellations
- removeSurfaceTessellation
- setAnchor
- setAssembly
- setDisplayNotificationCallback
- findOrCreateTessellationDescriptor
Properties
Private assembly
• assembly: Assembly
Defined in src/model/data/Concepts/TessellationDescriptor.ts:53
Private changeEmitter
• changeEmitter: EventEmitter‹IModelElementEvent› = new EventEmitter
Defined in src/model/data/Concepts/TessellationDescriptor.ts:56
Private displayNotificationCallback
• displayNotificationCallback: function
Defined in src/model/data/Concepts/TessellationDescriptor.ts:57
Type declaration:
▸ (type: TessellationNotificationType): any
Parameters:
| Name | Type |
|---|---|
type |
TessellationNotificationType |
Private meshAnchor
• meshAnchor: MeshAnchor | null
Defined in src/model/data/Concepts/TessellationDescriptor.ts:54
Private Readonly minimumAngleForTessellationJump
• minimumAngleForTessellationJump: number = Math.PI / 5
Defined in src/model/data/Concepts/TessellationDescriptor.ts:64
Private savedSurfaceTessellations
• savedSurfaceTessellations: Array‹object› = []
Defined in src/model/data/Concepts/TessellationDescriptor.ts:58
Private surfaceTessellations
• surfaceTessellations: SurfaceTessellation[] = []
Defined in src/model/data/Concepts/TessellationDescriptor.ts:55
Static Private tessellationPresetSizes
▪ tessellationPresetSizes: object[] = [ { value: [210, 297], name: "A4" }, { value: [297, 420], name: "A3" }, { value: [420, 594], name: "A2" }, { value: [594, 841], name: "A1" }, ]
Defined in src/model/data/Concepts/TessellationDescriptor.ts:30
Methods
Private _clearSavedSurfaceTessellations
▸ _clearSavedSurfaceTessellations(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:404
Returns: void
Private _getJumpWidth
▸ _getJumpWidth(): number
Defined in src/model/data/Concepts/TessellationDescriptor.ts:380
Returns: number
Private _improveTessellationPositions
▸ _improveTessellationPositions(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:434
Returns: void
Private _jumpAwayFromDoubleIntersectionPoints
▸ _jumpAwayFromDoubleIntersectionPoints(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:460
Returns: void
Private _jumpAwayFromOutlineSections
▸ _jumpAwayFromOutlineSections(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:502
Returns: void
Private _moveIfCutlinesInOnlyOneDirectionPossible
▸ _moveIfCutlinesInOnlyOneDirectionPossible(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:445
This checks if it is possible for some surfaceTessellations to only have cutLines in one direction. If this is possible, we try to move the tessellation that way
Returns: void
Private _notifyUser
▸ _notifyUser(type: TessellationNotificationType): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:413
Parameters:
| Name | Type |
|---|---|
type |
TessellationNotificationType |
Returns: void
Private _onAnchorTransformsChange
▸ _onAnchorTransformsChange(changeEvent: IAnchorChangeEvent): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:546
This will be called, when either the mesh anchor, or one of the Anchors of the surface tessellation changes. The TessellationDescriptor should then be realized again.
Parameters:
| Name | Type |
|---|---|
changeEvent |
IAnchorChangeEvent |
Returns: void
Private _onMeshAnchorChange
▸ _onMeshAnchorChange(event: IMeshAnchorChangeEvent): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:421
Parameters:
| Name | Type |
|---|---|
event |
IMeshAnchorChangeEvent |
Returns: void
Private _removeUnnecessaryTessellations
▸ _removeUnnecessaryTessellations(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:554
Returns: void
Private _saveTessellation
▸ _saveTessellation(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:384
Returns: void
addSurfaceTessellation
▸ addSurfaceTessellation(surfaceTessellation: SurfaceTessellation, checkForValidSurface: boolean): boolean
Defined in src/model/data/Concepts/TessellationDescriptor.ts:71
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
surfaceTessellation |
SurfaceTessellation | - | The surfaceTessellation to add |
checkForValidSurface |
boolean | true | whether to check for surfaceTessellations with the same surface and replace them. This can be useful on deserialization, when we can't be sure the anchor is already returning a valid surface. |
Returns: boolean
applyAutoTessellation
▸ applyAutoTessellation(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:263
Apply a tessellation in the size stored in the compositeModel to the current assembly. When we have a saved tessellation, we first apply it and keep it if it is valid. Otherwise we use the AutoTessellationGenerator to generate a tessellation.
Returns: void
clearSurfaceTessellations
▸ clearSurfaceTessellations(emitEvent: boolean, savePreviousTessellation: boolean): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:153
Clears all surfaceTessellations from the object.
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
emitEvent |
boolean | true | If an event should be emitted |
savePreviousTessellation |
boolean | false | If we want to save the tessellation on the object for later use. |
Returns: void
clone
▸ clone(anchor: MeshAnchor): TessellationDescriptor
Defined in src/model/data/Concepts/TessellationDescriptor.ts:249
Parameters:
| Name | Type |
|---|---|
anchor |
MeshAnchor |
Returns: TessellationDescriptor
destroy
▸ destroy(): void
Implementation of IModelElement
Defined in src/model/data/Concepts/TessellationDescriptor.ts:241
Returns: void
getAnchor
▸ getAnchor(): MeshAnchor
Defined in src/model/data/Concepts/TessellationDescriptor.ts:211
Returns: MeshAnchor
getAssembly
▸ getAssembly(): Assembly
Implementation of IModelElement
Defined in src/model/data/Concepts/TessellationDescriptor.ts:203
Returns: Assembly
getChangeEventEmitter
▸ getChangeEventEmitter(): IPublicEventEmitterInterface‹IModelElementEvent›
Implementation of IModelElement
Defined in src/model/data/Concepts/TessellationDescriptor.ts:199
Returns: IPublicEventEmitterInterface‹IModelElementEvent›
getCompositeModelTessellationSize
▸ getCompositeModelTessellationSize(): Vector2
Defined in src/model/data/Concepts/TessellationDescriptor.ts:371
Return the saved compositeModelTessellationSize in a Vector2, that is sorted ascending, so x will be the smaller value, and y the bigger value
Returns: Vector2
getElementsThisDependsOn
▸ getElementsThisDependsOn(): IModelElement[]
Implementation of IModelElement
Defined in src/model/data/Concepts/TessellationDescriptor.ts:185
Returns: IModelElement[]
getIsValid
▸ getIsValid(): boolean
Implementation of IModelElement
Defined in src/model/data/Concepts/TessellationDescriptor.ts:237
Returns: boolean
getNumberOfCutLines
▸ getNumberOfCutLines(): number
Defined in src/model/data/Concepts/TessellationDescriptor.ts:215
Returns: number
getSavedTessellationSizes
▸ getSavedTessellationSizes(): Array‹object›
Defined in src/model/data/Concepts/TessellationDescriptor.ts:170
This generates the information on the stored tessellations, so in the export dialog they can be displayed as saved tessellations.
Returns: Array‹object›
getSurfaceTessellations
▸ getSurfaceTessellations(): SurfaceTessellation‹›[]
Defined in src/model/data/Concepts/TessellationDescriptor.ts:127
Returns: SurfaceTessellation‹›[]
hasSurfaceTessellation
▸ hasSurfaceTessellation(surfaceTessellation: SurfaceTessellation): boolean
Defined in src/model/data/Concepts/TessellationDescriptor.ts:131
Parameters:
| Name | Type |
|---|---|
surfaceTessellation |
SurfaceTessellation |
Returns: boolean
hasValidTessellation
▸ hasValidTessellation(): boolean
Defined in src/model/data/Concepts/TessellationDescriptor.ts:301
Returns: boolean
isSurfaceTessellatable
▸ isSurfaceTessellatable(surface: MeshSurface): boolean
Defined in src/model/data/Concepts/TessellationDescriptor.ts:106
Parameters:
| Name | Type |
|---|---|
surface |
MeshSurface |
Returns: boolean
reevaluateSurfaceTessellations
▸ reevaluateSurfaceTessellations(): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:342
When valid, this checks if the current tessellation is okay, and otherwise does a new tessellation
Returns: void
removeSurfaceTessellation
▸ removeSurfaceTessellation(surfaceTessellation: SurfaceTessellation, emitEvent: boolean): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:135
Parameters:
| Name | Type | Default |
|---|---|---|
surfaceTessellation |
SurfaceTessellation | - |
emitEvent |
boolean | true |
Returns: void
setAnchor
▸ setAnchor(newAnchor: MeshAnchor): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:222
Parameters:
| Name | Type | Description |
|---|---|---|
newAnchor |
MeshAnchor | the anchor that defines the assembly the mesh the tessellation is applied to |
Returns: void
setAssembly
▸ setAssembly(assembly: Assembly): void
Implementation of IModelElement
Defined in src/model/data/Concepts/TessellationDescriptor.ts:207
Parameters:
| Name | Type |
|---|---|
assembly |
Assembly |
Returns: void
setDisplayNotificationCallback
▸ setDisplayNotificationCallback(displayFunction: function): void
Defined in src/model/data/Concepts/TessellationDescriptor.ts:102
This can be set on the TessellationDescriptor (by the TessellationModule for example) to allow it to show notifications to the user
Parameters:
▪ displayFunction: function
function to call when a user message should be generated
▸ (type: TessellationNotificationType): any
Parameters:
| Name | Type |
|---|---|
type |
TessellationNotificationType |
Returns: void
Static findOrCreateTessellationDescriptor
▸ findOrCreateTessellationDescriptor(mesh: Mesh, assembly: Assembly): TessellationDescriptor
Defined in src/model/data/Concepts/TessellationDescriptor.ts:37
Parameters:
| Name | Type |
|---|---|
mesh |
Mesh |
assembly |
Assembly |
Returns: TessellationDescriptor