Skip to content

editor › Globals › ReinforcementComponent

Class: ReinforcementComponent

Hierarchy

↳ AssemblyComponent

↳ ReinforcementComponent

Index

Constructors

Properties

Methods

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