editor › Globals › HullPlateRealizer
Class: HullPlateRealizer
Realizes a mesh by transforming the surfaces 1:1 to plates
Hierarchy
- HullPlateRealizer
Implements
Index
Constructors
Properties
- assembly
- compositeModel
- edgesToOutlineSections
- lastTransforms
- materialType
- mesh
- numberOfRealizedSurfaces
- outlineSectionsToEdges
- plateDirty
- plateRemoved
- platesToSurfaces
- realizedSurfaceNumbersOfPoints
- surfacesToPlates
Methods
- _anythingRealized
- _clearPlateDependencies
- _createFingerJoints
- _createPlate
- _createPlates
- _ensureCachesAreValid
- _findSurfaceDisplayAnnotationFromPlanarSurfaces
- _getDimensionConception
- _insertComponentsIfNecessary
- _isSurfaceDisabled
- _onAssemblyChange
- _onObjectRemove
- _onShapeChange
- _plateFromSurface
- _realizeFromScratch
- _removePhysicalObjects
- _requiresPlateRegeneration
- _setPolishFlagOnAssembly
- _storePlateInternally
- _syncSurfaceAnnotationsWithPlanarSurfaces
- _updatePlates
- _updatePlatesTransforms
- _updateSurfaceIdentifiers
- _updateSurfaceRef
- addPlateMergingComponentIfNotPresent
- addReinforcementComponentIfNotPresent
- beforeExport
- checkValidityAndCleanUp
- destroy
- findModelElement
- getAdditionalExportSvg
- getAssembly
- getEdgesToOutlineSections
- getModelElement
- getOutlineSectionsToEdges
- getSurfaceFromPlate
- getSurfacesToPlates
- initializeWithExistingPlates
- onRemove
- realize
- recreateWith
- setAssembly
- setCompositeModel
- setPermanent
- getEdgeUnfoldingAnnotation
- getSurfaceDisplayAnnotation
- isSurfaceDisabled
Constructors
constructor
+ new HullPlateRealizer(mesh: Mesh, existingPlates: Plate[]): HullPlateRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:165
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
mesh |
Mesh | - | the mesh that should be realized |
existingPlates |
Plate[] | [] | if the mesh was created based on existing plates, you can specify them here. The realizer will take over ownership and will modify/delete them to adapt to the mesh, so you do not have to do this manually when creating a mesh from existing plates. The realizer assumes that the mesh's surfaces are in the same order as plates. |
Returns: HullPlateRealizer
Properties
Private assembly
• assembly: Assembly
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:155
Private compositeModel
• compositeModel: CompositeModel
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:153
Private edgesToOutlineSections
• edgesToOutlineSections: Map‹MeshHalfEdge, OutlineSection› = new Map()
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:161
Private lastTransforms
• lastTransforms: Transforms
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:151
Protected materialType
• materialType: string
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:149
Private mesh
• mesh: Mesh
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:154
Private numberOfRealizedSurfaces
• numberOfRealizedSurfaces: number = 0
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:157
Private outlineSectionsToEdges
• outlineSectionsToEdges: Map‹OutlineSection, MeshHalfEdge› = new Map()
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:163
Private plateDirty
• plateDirty: Map‹Plate, boolean› = new Map()
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:164
Private plateRemoved
• plateRemoved: Map‹Plate, boolean› = new Map()
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:165
Private platesToSurfaces
• platesToSurfaces: Map‹Plate, MeshSurface› = new Map()
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:162
Private realizedSurfaceNumbersOfPoints
• realizedSurfaceNumbersOfPoints: number[] = []
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:158
Private surfacesToPlates
• surfacesToPlates: Map‹MeshSurface, Plate› = new Map()
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:160
Methods
Private _anythingRealized
▸ _anythingRealized(): boolean
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:685
Returns: boolean
Private _clearPlateDependencies
▸ _clearPlateDependencies(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:698
Returns: void
Protected _createFingerJoints
▸ _createFingerJoints(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:484
Returns: void
Private _createPlate
▸ _createPlate(outline: Outline, holes: Outline[]): Plate‹›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:556
Parameters:
| Name | Type |
|---|---|
outline |
Outline |
holes |
Outline[] |
Returns: Plate‹›
Private _createPlates
▸ _createPlates(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:707
Returns: void
Private _ensureCachesAreValid
▸ _ensureCachesAreValid(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:564
If mapping from surfaces to plates is not bijective, throw an Error.
Returns: void
Private _findSurfaceDisplayAnnotationFromPlanarSurfaces
▸ _findSurfaceDisplayAnnotationFromPlanarSurfaces(surface: MeshSurface, meshTransforms: IReadOnlyTransforms, otherMeshAnalyzers: MeshSurfaceAnalyzer[]): SurfaceDisplayAnnotation‹›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:941
We try to find a SurfaceDisplayAnnotation for surfaces laying in the same plane. The according plates of these will (with high probably) get merged, and so the texture offsets should align, so that in the unmerged version, where the plates just lay next to each other, they already look merged.
Parameters:
| Name | Type | Description |
|---|---|---|
surface |
MeshSurface | - |
meshTransforms |
IReadOnlyTransforms | - |
otherMeshAnalyzers |
MeshSurfaceAnalyzer[] | - |
Returns: SurfaceDisplayAnnotation‹›
Private _getDimensionConception
▸ _getDimensionConception(): DimensionConception
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:1030
Returns: DimensionConception
Private _insertComponentsIfNecessary
▸ _insertComponentsIfNecessary(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:858
Returns: void
Private _isSurfaceDisabled
▸ _isSurfaceDisabled(surface: MeshSurface): boolean
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:547
Parameters:
| Name | Type |
|---|---|
surface |
MeshSurface |
Returns: boolean
Private _onAssemblyChange
▸ _onAssemblyChange(__namedParameters: object): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:215
Registered on the the assembly
Parameters:
▪ __namedParameters: object
| Name | Type |
|---|---|
newCompositeModel |
CompositeModel‹› |
Returns: void
_onObjectRemove
▸ _onObjectRemove(object: PhysicalObject): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:462
Called by the compositeModel when a physical Object is removed. (f.e. by the PlateMergingComponent)
Parameters:
| Name | Type |
|---|---|
object |
PhysicalObject |
Returns: void
Private _onShapeChange
▸ _onShapeChange(plate: Plate): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:869
Parameters:
| Name | Type |
|---|---|
plate |
Plate |
Returns: void
Private _plateFromSurface
▸ _plateFromSurface(surface: MeshSurface, mesh: Mesh): Plate
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:800
Parameters:
| Name | Type |
|---|---|
surface |
MeshSurface |
mesh |
Mesh |
Returns: Plate
Private _realizeFromScratch
▸ _realizeFromScratch(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:579
Returns: void
Private _removePhysicalObjects
▸ _removePhysicalObjects(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:689
Returns: void
Private _requiresPlateRegeneration
▸ _requiresPlateRegeneration(): boolean
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:637
todo: we didn't find a case where this fail but it is possible that is requires something more strict. Evaluates whether we can reuse the already realized plates because the mesh did not change dramatically. It could be possible that by just swapping out a mesh implementation the identity of surfaces changes and we need to regenerate anyways because we then cannot map the new surfaces to the old plates.
Returns: boolean
Private _setPolishFlagOnAssembly
▸ _setPolishFlagOnAssembly(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:591
Although "isPolished" can be set per surface display annotation, the current export data structure sets this once per assembly (general-issues#2255). So, iterate over all annotations and polish the assembly if one is set to true.
Returns: void
Private _storePlateInternally
▸ _storePlateInternally(surface: MeshSurface, plate: Plate): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:873
Parameters:
| Name | Type |
|---|---|
surface |
MeshSurface |
plate |
Plate |
Returns: void
Private _syncSurfaceAnnotationsWithPlanarSurfaces
▸ _syncSurfaceAnnotationsWithPlanarSurfaces(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:511
Returns: void
Private _updatePlates
▸ _updatePlates(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:732
We can update the plates by just adjusting their OutlinePoints to the positions of the halfEdges because we know that the mesh did not change "dramatically". Useful in pushPull. This is optimized to reduce the amount of vector waste.
Returns: void
Private _updatePlatesTransforms
▸ _updatePlatesTransforms(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:899
Returns: void
Private _updateSurfaceIdentifiers
▸ _updateSurfaceIdentifiers(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:615
Counts the numbers of numbers of points of a surface. (this is not a typo)
Returns: void
Private _updateSurfaceRef
▸ _updateSurfaceRef(newSurface: MeshSurface): boolean
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:984
Tries to update references to a MeshSurface to a new instance.
Parameters:
| Name | Type | Description |
|---|---|---|
newSurface |
MeshSurface | The new identity of the surface, that should replace old references |
Returns: boolean
addPlateMergingComponentIfNotPresent
▸ addPlateMergingComponentIfNotPresent(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:279
Returns: void
addReinforcementComponentIfNotPresent
▸ addReinforcementComponentIfNotPresent(): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:471
Returns: void
beforeExport
▸ beforeExport(): void
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:370
Returns: void
checkValidityAndCleanUp
▸ checkValidityAndCleanUp(): void
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:223
Returns: void
destroy
▸ destroy(): void
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:455
Returns: void
findModelElement
▸ findModelElement‹DesiredType›(desiredType: any, interactionData: IInteractionData, maxDistance: number, strategy: FindModelElementReturnStrategy): FoundModelElements‹DesiredType›
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:374
Type parameters:
▪ DesiredType
Parameters:
| Name | Type | Default |
|---|---|---|
desiredType |
any | - |
interactionData |
IInteractionData | - |
maxDistance |
number | 20 |
strategy |
FindModelElementReturnStrategy | FindModelElementReturnStrategy.FIRST |
Returns: FoundModelElements‹DesiredType›
getAdditionalExportSvg
▸ getAdditionalExportSvg(): Promise‹string | null›
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:302
Returns: Promise‹string | null›
getAssembly
▸ getAssembly(): Assembly‹›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:195
Returns: Assembly‹›
getEdgesToOutlineSections
▸ getEdgesToOutlineSections(): Map‹MeshHalfEdge, OutlineSection›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:330
Returns: Map‹MeshHalfEdge, OutlineSection›
getModelElement
▸ getModelElement(): Mesh
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:207
Returns: Mesh
getOutlineSectionsToEdges
▸ getOutlineSectionsToEdges(): Map‹OutlineSection, MeshHalfEdge›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:326
Returns: Map‹OutlineSection, MeshHalfEdge›
getSurfaceFromPlate
▸ getSurfaceFromPlate(plate: Plate): MeshSurface
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:309
Parameters:
| Name | Type | Description |
|---|---|---|
plate |
Plate | which has been realized by this instance (output of realize) |
Returns: MeshSurface
getSurfacesToPlates
▸ getSurfacesToPlates(): Map‹MeshSurface, Plate›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:219
Returns: Map‹MeshSurface, Plate›
initializeWithExistingPlates
▸ initializeWithExistingPlates(existingPlates: Plate[]): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:339
Assuming the existing plates would equal the result of the hull plate realizer's realization, this assigns a binding in order to not have to re-create all plates from scratch, if this mesh was created based on existing plates.
Parameters:
| Name | Type |
|---|---|
existingPlates |
Plate[] |
Returns: void
onRemove
▸ onRemove(removePhysicalObjects: boolean): void
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:291
Parameters:
| Name | Type | Default |
|---|---|---|
removePhysicalObjects |
boolean | true |
Returns: void
realize
▸ realize(targets: Array‹object›, lastChangeEvent: IModelElementEvent, lastTransformsChangeEvent: ITransformsChangeEvent): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:237
Parameters:
| Name | Type |
|---|---|
targets |
Array‹object› |
lastChangeEvent |
IModelElementEvent |
lastTransformsChangeEvent |
ITransformsChangeEvent |
Returns: void
recreateWith
▸ recreateWith(otherModelElement: Mesh): HullPlateRealizer‹›
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:322
Parameters:
| Name | Type |
|---|---|
otherModelElement |
Mesh |
Returns: HullPlateRealizer‹›
setAssembly
▸ setAssembly(assembly: Assembly): void
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:183
Parameters:
| Name | Type |
|---|---|
assembly |
Assembly |
Returns: void
setCompositeModel
▸ setCompositeModel(compositeModel: CompositeModel): void
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:199
Parameters:
| Name | Type |
|---|---|
compositeModel |
CompositeModel |
Returns: void
setPermanent
▸ setPermanent(): void
Implementation of IModelElementRealizer
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:233
Returns: void
Static getEdgeUnfoldingAnnotation
▸ getEdgeUnfoldingAnnotation(edge: MeshHalfEdge, mesh: Mesh): EdgeUnfoldingAnnotation
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:121
Returns a EdgeUnfoldingAnnotation or generates it based on the edges current values.
Parameters:
| Name | Type | Description |
|---|---|---|
edge |
MeshHalfEdge | the edge to annotate |
mesh |
Mesh | the mesh that the edge is part of |
Returns: EdgeUnfoldingAnnotation
Static getSurfaceDisplayAnnotation
▸ getSurfaceDisplayAnnotation(surface: MeshSurface, mesh: Mesh, plate?: Plate): SurfaceDisplayAnnotation
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:65
Returns a SurfaceDisplayAnnotation or generates it based on the plate's current values.
Parameters:
| Name | Type | Description |
|---|---|---|
surface |
MeshSurface | the surface to annotate |
mesh |
Mesh | the mesh that the surface is part of |
plate? |
Plate | the plate to copy values from (e.g. material and thickness) |
Returns: SurfaceDisplayAnnotation
Static isSurfaceDisabled
▸ isSurfaceDisabled(surface: MeshSurface, mesh: any): boolean
Defined in src/model/data/Concepts/Realization/HullPlateRealizer.ts:55
Parameters:
| Name | Type |
|---|---|
surface |
MeshSurface |
mesh |
any |
Returns: boolean