Skip to content

editorGlobalsModelHierarchyGenerator

Class: ModelHierarchyGenerator

Hierarchy

  • ModelHierarchyGenerator

Index

Constructors

Properties

Methods

Constructors

constructor

+ new ModelHierarchyGenerator(model: Iterable‹PlateGroup›): ModelHierarchyGenerator

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:17

Parameters:

Name Type
model Iterable‹PlateGroup

Returns: ModelHierarchyGenerator

Properties

Private facade

facade: PlateGroupGraphFacade

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:17


Private Readonly model

model: SetPlateGroup

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:15


Private modelHierarchy

modelHierarchy: ModelHierarchy = null

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:16

Methods

Private _addEachToHierarchy

_addEachToHierarchy(plateGroups: Iterable‹PlateGroup›, lastNode: ModelHierarchy, areGroupsAdjacent: boolean): Map‹PlateGroup, ModelHierarchy

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:393

Parameters:

Name Type Default
plateGroups Iterable‹PlateGroup -
lastNode ModelHierarchy -
areGroupsAdjacent boolean true

Returns: Map‹PlateGroup, ModelHierarchy


Private _chooseBasePlateGroupsForFrom

_chooseBasePlateGroupsForFrom(components: Iterable‹SetPlateGroup››, candidates: Iterable‹PlateGroup›, returnNullIfNoneFound: boolean): Map‹SetPlateGroup›, PlateGroup› | null

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:218

Parameters:

Name Type Default
components Iterable‹SetPlateGroup›› -
candidates Iterable‹PlateGroup -
returnNullIfNoneFound boolean false

Returns: Map‹SetPlateGroup›, PlateGroup› | null


Private _continueDisassembling

_continueDisassembling(remainingSubmodel: SetPlateGroup›, lastNode: ModelHierarchy): Promise‹void›

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:131

Tries to remove single PlateGroups and then split into separate components.

Parameters:

Name Type
remainingSubmodel SetPlateGroup
lastNode ModelHierarchy

Returns: Promise‹void›


Private _filterOutCompletelyRemovableComponents

_filterOutCompletelyRemovableComponents(submodel: SetPlateGroup›, removableGroups: Iterable‹PlateGroup›): [SetPlateGroup›, Array‹SetPlateGroup››]

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:283

Parameters:

Name Type
submodel SetPlateGroup
removableGroups Iterable‹PlateGroup

Returns: [SetPlateGroup›, Array‹SetPlateGroup››]


Private _getRankedBasePlateCandidates

_getRankedBasePlateCandidates(component: SetPlateGroup›, candidates: Iterable‹Plate›): Plate[]

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:245

Parameters:

Name Type
component SetPlateGroup
candidates Iterable‹Plate

Returns: Plate[]


Private _isRoundingRemovable

_isRoundingRemovable(plateGroup: PlateGroup, plateGroupsInModel: Iterable‹PlateGroup›): Promise‹boolean›

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:350

Parameters:

Name Type
plateGroup PlateGroup
plateGroupsInModel Iterable‹PlateGroup

Returns: Promise‹boolean›


Private _plateGraphFor

_plateGraphFor(component: Iterable‹PlateGroup›): PlateGraph

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:418

Parameters:

Name Type
component Iterable‹PlateGroup

Returns: PlateGraph


Private _removableSingleGroupsFromWith

_removableSingleGroupsFromWith(component: SetPlateGroup›, lastBasePlateGroup?: PlateGroup, allowTilting: boolean, includeBasePlateInModel: boolean, allowIncrementalRoundingRemoval: boolean): PromisePlateGroup[]›

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:307

Parameters:

Name Type Default
component SetPlateGroup -
lastBasePlateGroup? PlateGroup -
allowTilting boolean false
includeBasePlateInModel boolean false
allowIncrementalRoundingRemoval boolean false

Returns: PromisePlateGroup[]›


Private _removeFromComponent

_removeFromComponent(plateGroups: PlateGroup | Iterable‹PlateGroup›, component: SetPlateGroup›): void

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:408

Parameters:

Name Type
plateGroups PlateGroup | Iterable‹PlateGroup
component SetPlateGroup

Returns: void


Private _step

_step(remainingSubmodel: SetPlateGroup›, lastNode: ModelHierarchy): Promise‹void›

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:101

Will either directly split into components, or try to disassemble.

Parameters:

Name Type Description
remainingSubmodel SetPlateGroup are the remaining plateGroups, without the base plate
lastNode ModelHierarchy is the hierarchy node of the parent

Returns: Promise‹void›


Private _stepNewBase

_stepNewBase(remainingSubmodel: SetPlateGroup›, lastNode: ModelHierarchy): Promise‹void›

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:50

Will pick a base plate for the submodel that is connected to the base of the parent. Otherwise, the submodel is treated as completely detached from parent.

Parameters:

Name Type Description
remainingSubmodel SetPlateGroup are the remaining plateGroups, without the base plate
lastNode ModelHierarchy is the hierarchy node of the parentlastNode

Returns: Promise‹void›


compute

compute(): PromiseModelHierarchy

Defined in src/modules/kyub.core.svgObjExporter/src/export/Roadkill/ModelHierarchyGenerator.ts:24

Returns: PromiseModelHierarchy