Skip to content

editor › Globals › ImportedModelDescriptor

Class: ImportedModelDescriptor

This model elements describes the dimensions of an imported model to give the user early feedback on how big their model is going to be and allow for change in that regard.

Hierarchy

  • ImportedModelDescriptor

Implements

Index

Constructors

Properties

Methods

Constructors

constructor

+ new ImportedModelDescriptor(dimensions: Vector3, scaleFactors: number[], meshImporter?: MeshImportWSClient): ImportedModelDescriptor

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:49

Parameters:

Name Type Default Description
dimensions Vector3 - numbers for x, y, z, describing a three dimensional size
scaleFactors number[] [1] a list of numbers that can be multiplied to the dimensions
meshImporter? MeshImportWSClient - -

Returns: ImportedModelDescriptor

Properties

Private assembly

• assembly: Assembly = null

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:39


Private buttonDebouncedPromise

• buttonDebouncedPromise: Promise‹void›

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:47


Private Readonly changeEventEmitter

• changeEventEmitter: EventEmitter‹IModelElementEvent› = new EventEmitter()

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:37


Private currentScaleFactorIndex

• currentScaleFactorIndex: number

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:43


Private dimensions

• dimensions: Vector3

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:41


Private meshImporter

• meshImporter: MeshImportWSClient

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:49


Private onScaleButtonInteractionTimeout

• onScaleButtonInteractionTimeout: DebouncedFunc‹function›

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:46


Private resolveFunction

• resolveFunction: function

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:48

Type declaration:

▸ (): void


Private scaleFactors

• scaleFactors: number[]

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:42


Private transformsAnchor

• transformsAnchor: IPositioningAnchor | null

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:38


Private Readonly transformsChangeEventEmitter

• transformsChangeEventEmitter: EventEmitter‹ITransformsChangeEvent› = new EventEmitter< ITransformsChangeEvent

()

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:34

Methods

Private _applyScale

▸ _applyScale(): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:281

Returns: void


Private _onAnchorTransformsChange

▸ _onAnchorTransformsChange(event: ITransformsChangeEvent): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:273

Parameters:

Name Type
event ITransformsChangeEvent

Returns: void


Private _translateModelOnScale

▸ _translateModelOnScale(oldDimensions: Vector3, oldScale: number, newScale: number): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:266

Parameters:

Name Type
oldDimensions Vector3
oldScale number
newScale number

Returns: void


abortBuilding

▸ abortBuilding(destroySelf: boolean): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:148

Stops the building process initiated by buildMeshes(). To do that, it - resolves this.buttonDebouncedPromise which would normally only happen when the appropriate scale button hasn't been interacted with for some time. It's the key promise for e.g. {@link EditInBlenderModule} to only place the imported model when the user doesn't want to scale it anymore. - cancels the websocket request for the given meshImporter so the server can stop its calculations and can work on another request immediately - sets the internal state to not building anymore - destroys this descriptor to unlink its listeners and hints

Parameters:

Name Type Default
destroySelf boolean true

Returns: void


destroy

▸ destroy(): void

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:156

Returns: void


getAssembliesToPlace

▸ getAssembliesToPlace(assemblyPromise: ICancellablePromise‹IScaledAssemblies›): Promise‹Assembly[]›

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:95

Awaits the server response with the serialized assemblies. Deserializes them and sets internal state to having finished the building process.

Parameters:

Name Type Description
assemblyPromise ICancellablePromise‹IScaledAssemblies› promise from the server containing the serialized assemblies

Returns: Promise‹Assembly[]›


getAssembly

▸ getAssembly(): Assembly

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:163

Returns: Assembly


getButtonDebouncedPromise

▸ getButtonDebouncedPromise(): Promise‹void›

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:216

Returns: Promise‹void›


getChangeEventEmitter

▸ getChangeEventEmitter(): IPublicEventEmitterInterface‹IModelElementEvent›

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:167

Returns: IPublicEventEmitterInterface‹IModelElementEvent›


getCurrentScaleFactor

▸ getCurrentScaleFactor(): number

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:212

Returns: number


getDimension

▸ getDimension(dimension: Dimension): number

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:175

Parameters:

Name Type
dimension Dimension

Returns: number


getDimensions

▸ getDimensions(): Vector3

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:171

Returns: Vector3


getElementsThisDependsOn

▸ getElementsThisDependsOn(): IModelElement[]

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:192

Returns: IModelElement[]


getIsValid

▸ getIsValid(): boolean

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:196

Returns: boolean


getMaxDimension

▸ getMaxDimension(): Dimension

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:67

Returns the dimension with the highest value

Returns: Dimension


getParent

▸ getParent(): ITransformable

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:220

Returns: ITransformable


getScaleButtonParameters

▸ getScaleButtonParameters(): IButtonParameters

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:110

If the assembly this descriptor is attached to should display a scale button, this function sets all the necessary parameters for it. Behavior of this button is: - when clicked scales the current dimensions with the next factor in this.scalefactors - when not interacting with it for Config<interaction.rotateTime, this.buttonDebouncedPromise resolves

Returns: IButtonParameters


getScaleFactors

▸ getScaleFactors(): number[]

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:188

Returns: number[]


getTransforms

▸ getTransforms(): IReadOnlyTransforms

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:208

Returns: IReadOnlyTransforms


getTransformsChangeEventEmitter

▸ getTransformsChangeEventEmitter(): IPublicEventEmitterInterface‹ITransformsChangeEvent›

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:200

Returns: IPublicEventEmitterInterface‹ITransformsChangeEvent›


getTransformsDefiner

▸ getTransformsDefiner(): IPositionableElementTransformsDefiner | null

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:204

Returns: IPositionableElementTransformsDefiner | null


initForBuildingProcess

▸ initForBuildingProcess(): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:79

If one wants to build the model this descriptor is meant for, this method should be called beforehand in order to secure a valid starting state that can be tracked from the outside, eg what scale factor is currently applied or if the meshes are already finished by checking getAreMeshesStillBuilding(). Also changes the initial dimensions to have been scaled with the first scale factor from the list.

Returns: void


setAssembly

▸ setAssembly(assembly: Assembly): void

Implementation of IPositionableElement

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:227

Parameters:

Name Type
assembly Assembly

Returns: void


setDimensions

▸ setDimensions(dimensions: Vector3): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:231

Parameters:

Name Type
dimensions Vector3

Returns: void


setScaleFactors

▸ setScaleFactors(scaleFactors: number[]): void

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:236

Parameters:

Name Type
scaleFactors number[]

Returns: void


setTransformsDefiner

▸ setTransformsDefiner(transformsAnchor: IPositioningAnchor | null): this

Defined in src/model/data/Concepts/ImportedModelDescriptor.ts:244

Replaces the transformsDefiningAnchor. Emits a transformsChange event with the new anchor.

Parameters:

Name Type Description
transformsAnchor IPositioningAnchor | null -

Returns: this