Skip to content

editorGlobalsMeshImportWSClient

Class: MeshImportWSClient

An APIClient that deals with low level websocket functions. Dimensions and meshes are received using their serialized classes, files sent through binary data

The results will be cached internally, thus they should be treated as immutable.

Hierarchy

  • MeshImportWSClient

Implements

Index

Constructors

Properties

Methods

Constructors

constructor

+ new MeshImportWSClient(notificationController: any, progressId: number): MeshImportWSClient

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:52

Parameters:

Name Type
notificationController any
progressId number

Returns: MeshImportWSClient

Properties

Private assemblyPromise

assemblyPromise: ICancellablePromise‹IScaledAssemblies

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:50


Private assemblyPromiseRej

assemblyPromiseRej: function

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:52

Type declaration:

▸ (any: any): void

Parameters:

Name Type
any any

Private assemblyPromiseRes

assemblyPromiseRes: function

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:51

Type declaration:

▸ (any: any): void

Parameters:

Name Type
any any

Private awaitedScale

awaitedScale: number

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:35


Private currentAssembliesData

currentAssembliesData: any

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:34


Private dimensionPromise

dimensionPromise: ICancellablePromise‹ISerializedImportedModelDescriptor› | null

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:45


Private dimensionPromiseRej

dimensionPromiseRej: function

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:47

Type declaration:

▸ (any: any): void

Parameters:

Name Type
any any

Private dimensionPromiseRes

dimensionPromiseRes: function

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:46

Type declaration:

▸ (ISerializedImportedModelDescriptor: any): void

Parameters:

Name Type
ISerializedImportedModelDescriptor any

Private estimatedBitsPerMS

estimatedBitsPerMS: any = Config.get("modelImport.estimatedBitsPerMS")

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:39


Private fileBlob

fileBlob: Blob

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:33


Private importWebsocket

importWebsocket: WebSocket | null = null

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:42


Private isWaitingForAssembly

isWaitingForAssembly: boolean = false

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:36


Private Readonly notificationController

notificationController: any

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:30


Private Readonly progressId

progressId: number

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:31


Private serverFakeProgress

serverFakeProgress: FakeProgressBar

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:32


Private wsEndpointUrl

wsEndpointUrl: string = Config.get("general.apiRoot") + "api/v2/mesh_importer"

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:38

Methods

Private _abort

_abort(ev: any): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:198

Parameters:

Name Type
ev any

Returns: void


Private _clearAssembliesPromise

_clearAssembliesPromise(): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:264

Returns: void


Private _clearDimensionPromise

_clearDimensionPromise(): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:258

Returns: void


Private _closeWs

_closeWs(): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:237

Returns: void


Private _getEstimatedServerTime

_getEstimatedServerTime(file: IBrowserFile): number

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:270

Parameters:

Name Type
file IBrowserFile

Returns: number


Private _getImportWebsocket

_getImportWebsocket(): WebSocket

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:193

Returns: WebSocket


Private _handleAssembliesMessage

_handleAssembliesMessage(data: any): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:230

Parameters:

Name Type
data any

Returns: void


Private _handleDimensionMessage

_handleDimensionMessage(data: any): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:225

Parameters:

Name Type
data any

Returns: void


Private _handleWebsocketMessage

_handleWebsocketMessage(messageObject: any): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:207

Parameters:

Name Type
messageObject any

Returns: void


Private _initWebsocket

_initWebsocket(file: IBrowserFile): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:159

Parameters:

Name Type
file IBrowserFile

Returns: void


Private _initializeAssembliesPromise

_initializeAssembliesPromise(): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:252

Returns: void


Private _initializeDimensionPromise

_initializeDimensionPromise(): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:246

Returns: void


canSendAssemblyRequest

canSendAssemblyRequest(): boolean

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:109

Checks if one can send and wait for an assembly promise to be sent and received

Returns: boolean


cancelRequest

cancelRequest(event: Event): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:95

Cancels ongoing server request if there is one and closes ws

Parameters:

Name Type Default
event Event new CloseEvent("close") as Event

Returns: void


finishImportConnection

finishImportConnection(): boolean

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:127

Since we send out several updated scales and therefore get multiple assemblies, we only want to resolve the internal promises with the choosen scale if that's the one we waited for. Then, we're done choosing and are ready to close the connection.

Returns: boolean

Whether the import could be finished


import

import(file: IBrowserFile): IImportResults

Implementation of IAsyncMeshImporter

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:71

Parameters:

Name Type Description
file IBrowserFile containing a triangulated two manifold mesh which should be converted into - first: a ISerializedImportedModelDescriptor - second: a ISerializedObjectContainer[] which are assemblies with serialized modelelements

Returns: IImportResults


isConnectionClosable

isConnectionClosable(): boolean

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:117

Checks if the connection could be closed if wanted regarding if the assemblies were already sent back and the connection is still ongoing.

Returns: boolean


sendUpdatedScale

sendUpdatedScale(newScale: number): void

Defined in src/modules/kyub.core.editInBlender/src/MeshImportWSClient.ts:146

Sends the server a request for assemblies being scaled with newScale if an ISerializedImportedModelDescriptor has been returned before and the connection is still open.

Parameters:

Name Type
newScale number

Returns: void