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
- assembly
- buttonDebouncedPromise
- changeEventEmitter
- currentScaleFactorIndex
- dimensions
- meshImporter
- onScaleButtonInteractionTimeout
- resolveFunction
- scaleFactors
- transformsAnchor
- transformsChangeEventEmitter
Methods
- _applyScale
- _onAnchorTransformsChange
- _translateModelOnScale
- abortBuilding
- destroy
- getAssembliesToPlace
- getAssembly
- getButtonDebouncedPromise
- getChangeEventEmitter
- getCurrentScaleFactor
- getDimension
- getDimensions
- getElementsThisDependsOn
- getIsValid
- getMaxDimension
- getParent
- getScaleButtonParameters
- getScaleFactors
- getTransforms
- getTransformsChangeEventEmitter
- getTransformsDefiner
- initForBuildingProcess
- setAssembly
- setDimensions
- setScaleFactors
- setTransformsDefiner
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 |
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