Skip to content

editorGlobalsReinforcementComponent

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: EventEmitterIModelElementEvent = 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: GraphPlate›, weakJoint: Joint[]): Reinforcement[]

Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:397

Parameters:

Name Type
graph GraphPlate
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): PromiseAssembly[]› | 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: PromiseAssembly[]› | 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(): IPublicEventEmitterInterfaceIModelElementEvent

Defined in src/modules/kyub.core.reinforcement/src/ReinforcementComponent.ts:120

Returns: IPublicEventEmitterInterfaceIModelElementEvent


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