Skip to content

editorGlobalsImportedModelDescriptor

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: EventEmitterIModelElementEvent = 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: EventEmitterITransformsChangeEvent = 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›): PromiseAssembly[]›

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: PromiseAssembly[]›


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(): IPublicEventEmitterInterfaceIModelElementEvent

Implementation of IPositionableElement

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

Returns: IPublicEventEmitterInterfaceIModelElementEvent


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(): IPublicEventEmitterInterfaceITransformsChangeEvent

Implementation of IPositionableElement

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

Returns: IPublicEventEmitterInterfaceITransformsChangeEvent


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