Skip to content

editor › Globals › MeshImportWSClient

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