editor › Globals › ReinforcementComponent
Class: ReinforcementComponent
Hierarchy
↳ ReinforcementComponent
Index
Constructors
Properties
- assembly
- changeEmitter
- createdSurfaceDescriptors
- enabled
- ignoreAllEvents
- isDeleting
- needsReevaluation
- preferZ
- preferredDimension
- removedJoints
- shouldPerformMinCut
- shouldReinforcePrisms
Methods
- _assemblyIsSupported
- _bonusScoringForPopularDirection
- _determineBestJointGroup
- _findWeakness
- _insertReinforcementPlate
- _isApplicable
- _jointIsReinforceable
- _jointsWithPlateOfDirection
- _modelElementChanged
- _onModelElementChange
- _platesFromJointsWithDirection
- _reinforceAssembly
- _reinforcementForJoint
- _scoreDirection
- _setAssembly
- _setCreatedSurfaceDescriptors
- _setIgnoreNextEvent
- _splitConcaveConvex
- _usableConcaveJointsBetweenComponents
- afterRealization
- beforeExport
- beforeInteractionStart
- beforeUpdateVisualizedModel
- deleteAllCreated
- deleteCreatedSingleSurfaceDescriptors
- destroy
- disable
- getAssembly
- getChangeEventEmitter
- getCreatedSurfaceDescriptors
- getElementsThisDependsOn
- isEnabled
- reevaluateReinforcement
- createReinforcementComponent
Constructors
constructor
+ new ReinforcementComponent(enabled: boolean): ReinforcementComponent
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:72
Parameters:
| Name | Type | Default |
|---|---|---|
enabled |
boolean | true |
Returns: ReinforcementComponent
Properties
assembly
• assembly: Assembly
Overrides AssemblyComponent.assembly
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:42
Private Readonly changeEmitter
• changeEmitter: EventEmitter‹IModelElementEvent› = new EventEmitter
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:44
Private createdSurfaceDescriptors
• createdSurfaceDescriptors: SingleSurfaceDescriptor[] = []
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:61
we store directly the created SingeSurfaceDescriptors to be able to delete those. This will be also important for an upcoming delete tool
Private enabled
• enabled: boolean
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:49
Private ignoreAllEvents
• ignoreAllEvents: boolean = false
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:45
Private isDeleting
• isDeleting: boolean = false
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:63
Private needsReevaluation
• needsReevaluation: boolean = false
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:46
Private Readonly preferZ
• preferZ: true = true
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:70
In most cases user build models are best reinforced in Z direction (normal of the inserted reinforcement pointing into z direction in assembly space) This is at this point only a result from observation, so it might go out in the future
Private Readonly preferredDimension
• preferredDimension: Vector3‹› = new Vector3(1, 0, 0)
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:50
Private removedJoints
• removedJoints: Joint[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:72
Private Readonly shouldPerformMinCut
• shouldPerformMinCut: boolean = Config.get( "reinforcement.enableHighLevelAutomaticReinforcement", false, )
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:51
Private Readonly shouldReinforcePrisms
• shouldReinforcePrisms: boolean = Config.get("reinforcement.enablePrismReinforcement", false)
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:55
Methods
Private _assemblyIsSupported
▸ _assemblyIsSupported(): boolean
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:584
Returns: boolean
Private _bonusScoringForPopularDirection
▸ _bonusScoringForPopularDirection(direction: Vector3): number
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:330
A direction is more popular if it is either the z axis of the model (if the config flag for this is on) or if it aligns to the preferred direction of this reinforcement descriptor this is used as a tie breaker to achieve the same orientation in reinforcement plates if suitable
Parameters:
| Name | Type | Description |
|---|---|---|
direction |
Vector3 | - |
Returns: number
Private _determineBestJointGroup
▸ _determineBestJointGroup(platesInPartition1: Plate[], platesInPartition2: Plate[]): object
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:485
Parameters:
| Name | Type |
|---|---|
platesInPartition1 |
Plate[] |
platesInPartition2 |
Plate[] |
Returns: object
-
bestDirection: Vector3
-
bestJointGroup: Joint[]
Private _findWeakness
▸ _findWeakness(graph: Graph‹Plate›, weakJoint: Joint[]): Reinforcement[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:397
Parameters:
| Name | Type |
|---|---|
graph |
Graph‹Plate› |
weakJoint |
Joint[] |
Returns: Reinforcement[]
Private _insertReinforcementPlate
▸ _insertReinforcementPlate(reinforcement: Reinforcement): HullPlateRealizer
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:349
Parameters:
| Name | Type |
|---|---|
reinforcement |
Reinforcement |
Returns: HullPlateRealizer
Private _isApplicable
▸ _isApplicable(): boolean
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:562
This method checks of the assembly consists only of rectangular faces If not it return false The reinforcement then ignores the model
Returns: boolean
Private _jointIsReinforceable
▸ _jointIsReinforceable(jointToCheck: Joint): boolean
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:189
Checks whether a joint between two plates can be reinforced without creating a loop This method assumes directed joints, so plate a gets extended
Parameters:
| Name | Type | Description |
|---|---|---|
jointToCheck |
Joint | - |
Returns: boolean
Private _jointsWithPlateOfDirection
▸ _jointsWithPlateOfDirection(direction: Vector3, usableConcaveJoints: Joint[]): Joint[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:504
Parameters:
| Name | Type |
|---|---|
direction |
Vector3 |
usableConcaveJoints |
Joint[] |
Returns: Joint[]
Private _modelElementChanged
▸ _modelElementChanged(): Promise‹void›
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:341
Returns: Promise‹void›
Private _onModelElementChange
▸ _onModelElementChange(event: any): void
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:345
Parameters:
| Name | Type |
|---|---|
event |
any |
Returns: void
Private _platesFromJointsWithDirection
▸ _platesFromJointsWithDirection(direction: Vector3, usableConcaveJoints: Joint[]): Plate[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:510
Parameters:
| Name | Type |
|---|---|
direction |
Vector3 |
usableConcaveJoints |
Joint[] |
Returns: Plate[]
Private _reinforceAssembly
▸ _reinforceAssembly(): Promise‹void›
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:218
Returns: Promise‹void›
Private _reinforcementForJoint
▸ _reinforcementForJoint(joint: Joint, direction: Vector3): Reinforcement
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:301
Computes the reinforcements for a given Joint
Parameters:
| Name | Type | Description |
|---|---|---|
joint |
Joint | - |
direction |
Vector3 | - |
Returns: Reinforcement
Private _scoreDirection
▸ _scoreDirection(direction: Vector3, usableConcaveJoints: Joint[]): number
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:546
Rates a direction based on the amount of plates that would get elongated if it gets chosen in this reinforcement this.preferedDimension must be set before calling
Parameters:
| Name | Type | Description |
|---|---|---|
direction |
Vector3 | - |
usableConcaveJoints |
Joint[] | - |
Returns: number
_setAssembly
▸ _setAssembly(assembly: Assembly): void
Overrides AssemblyComponent._setAssembly
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:128
Parameters:
| Name | Type |
|---|---|
assembly |
Assembly |
Returns: void
_setCreatedSurfaceDescriptors
▸ _setCreatedSurfaceDescriptors(singleSurfaceDescriptors: SingleSurfaceDescriptor[]): void
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:157
Parameters:
| Name | Type |
|---|---|
singleSurfaceDescriptors |
SingleSurfaceDescriptor[] |
Returns: void
_setIgnoreNextEvent
▸ _setIgnoreNextEvent(ignoreNextEvent: boolean): void
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:179
Parameters:
| Name | Type |
|---|---|
ignoreNextEvent |
boolean |
Returns: void
Private _splitConcaveConvex
▸ _splitConcaveConvex(plates: Plate[], joints: Map‹Plate, Map‹Plate, IDirectionSpace››): IJsgraph
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:374
Parameters:
| Name | Type |
|---|---|
plates |
Plate[] |
joints |
Map‹Plate, Map‹Plate, IDirectionSpace›› |
Returns: IJsgraph
Private _usableConcaveJointsBetweenComponents
▸ _usableConcaveJointsBetweenComponents(platesInPartition1: Plate[], platesInPartition2: Plate[]): Joint[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:525
checks with of the joints in this.removedJoints can be used for reinforcing a weakness between the two given partitions of plates
Parameters:
| Name | Type | Description |
|---|---|---|
platesInPartition1 |
Plate[] | - |
platesInPartition2 |
Plate[] | - |
Returns: Joint[]
joints in a directed manner, so it is ensured that those joint can be used for the reinforcement in the end.
afterRealization
▸ afterRealization(): Promise‹void› | null
Overrides AssemblyComponent.afterRealization
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:83
Returns: Promise‹void› | null
beforeExport
▸ beforeExport(): Promise‹void›
Inherited from Component.beforeExport
Defined in src/model/data/Component/Component.ts:12
Entrypoint for subclasses to modify the assembly before all plates in compositeModel are exported to SVG.
Returns: Promise‹void›
promise that should resolve when the component has done all its work
beforeInteractionStart
▸ beforeInteractionStart(tool: any, visualizationManager: any): Promise‹Assembly[]› | void
Inherited from Component.beforeInteractionStart
Defined in src/model/data/Component/Component.ts:29
is called on the Assembly's components of the interacted physical object before the tool interaction is started.
Parameters:
| Name | Type | Description |
|---|---|---|
tool |
any | the tool the user has currently selected |
visualizationManager |
any | to wake up the editor after creating new objects |
Returns: Promise‹Assembly[]› | void
promise that resolves to the newly created assemblies
beforeUpdateVisualizedModel
▸ beforeUpdateVisualizedModel(): void
Inherited from Component.beforeUpdateVisualizedModel
Defined in src/model/data/Component/Component.ts:19
Entrypoint for subclasses to modify the assembly before rendering a frame.
Returns: void
deleteAllCreated
▸ deleteAllCreated(): Promise‹void›
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:100
this method deletes all created reinforcements it takes care that no other reinforcements are created in the process of the deletion
Returns: Promise‹void›
deleteCreatedSingleSurfaceDescriptors
▸ deleteCreatedSingleSurfaceDescriptors(): void
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:161
Returns: void
destroy
▸ destroy(): void
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:79
Returns: void
disable
▸ disable(): Promise‹void›
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:87
Returns: Promise‹void›
getAssembly
▸ getAssembly(): Assembly
Overrides AssemblyComponent.getAssembly
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:112
Returns: Assembly
getChangeEventEmitter
▸ getChangeEventEmitter(): IPublicEventEmitterInterface‹IModelElementEvent›
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:120
Returns: IPublicEventEmitterInterface‹IModelElementEvent›
getCreatedSurfaceDescriptors
▸ getCreatedSurfaceDescriptors(): SingleSurfaceDescriptor[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:116
Returns: SingleSurfaceDescriptor[]
getElementsThisDependsOn
▸ getElementsThisDependsOn(): IModelElement[]
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:124
Returns: IModelElement[]
isEnabled
▸ isEnabled(): boolean
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:92
Returns: boolean
reevaluateReinforcement
▸ reevaluateReinforcement(): Promise‹void›
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:145
Performs an update of the reinforcements if this descriptor is currently not set to ignore ChangeEvents This might be the case during a push pull action or if the descriptor cleans up itself
Returns: Promise‹void›
Static createReinforcementComponent
▸ createReinforcementComponent(): ReinforcementComponent
Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:37
Returns: ReinforcementComponent