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
- assemblyPromise
- assemblyPromiseRej
- assemblyPromiseRes
- awaitedScale
- currentAssembliesData
- dimensionPromise
- dimensionPromiseRej
- dimensionPromiseRes
- estimatedBitsPerMS
- fileBlob
- importWebsocket
- isWaitingForAssembly
- notificationController
- progressId
- serverFakeProgress
- wsEndpointUrl
Methods
- _abort
- _clearAssembliesPromise
- _clearDimensionPromise
- _closeWs
- _getEstimatedServerTime
- _getImportWebsocket
- _handleAssembliesMessage
- _handleDimensionMessage
- _handleWebsocketMessage
- _initWebsocket
- _initializeAssembliesPromise
- _initializeDimensionPromise
- canSendAssemblyRequest
- cancelRequest
- finishImportConnection
- import
- isConnectionClosable
- sendUpdatedScale
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